//通过脚本定义打印图表
(function () {
    var FontBuilder = Packages.net.sf.dynamicreports.report.builder.style.FontBuilder;//系统自定义类
    var DynamicReports = Packages.net.sf.dynamicreports.report.builder.DynamicReports;
    var Templates = Packages.cn.myapps.report.examples.Templates;
    var TextColumnBuilder = Packages.net.sf.dynamicreports.report.builder.column.TextColumnBuilder;
    var DRDataSource = Packages.net.sf.dynamicreports.report.datasource.DRDataSource;
    var DRException = Packages.net.sf.dynamicreports.report.exception.DRException;
    var JRDataSource = Packages.net.sf.jasperreports.engine.JRDataSource;
    var BigDecimal = Packages.java.math.BigDecimal;
    var Integer = Packages.java.lang.Integer;
    function createDataSource() {
        var dataSource = new DRDataSource("item", "quantity", "unitprice");//新建一个类的实例
        dataSource.add("Tablet", new Integer(350), new BigDecimal(300));
        dataSource.add("Laptop", new Integer(300), new BigDecimal(500));
        dataSource.add("Smartphone", new Integer(450), new BigDecimal(250));
        return dataSource;
    }
    var boldFont = DynamicReports.stl.fontArialBold().setFontSize(12);
    var itemColumn = DynamicReports.col.column("Item", "item", DynamicReports.type.stringType());
    var quantityColumn = DynamicReports.col.column("Quantity", "quantity", DynamicReports.type.integerType());
    var unitPriceColumn = DynamicReports.col.column("Unit price", "unitprice", DynamicReports.type.bigDecimalType());
    return DynamicReports.report().setTemplate(Templates.reportTemplate)
        .columns(itemColumn, quantityColumn, unitPriceColumn)
        .title(Templates.createTitleComponent("Bar3DChart"))
        .summary(DynamicReports.cht.bar3DChart()
            .setTitle("Bar 3D chart")
            .setTitleFont(boldFont)
            .setCategory(itemColumn)
            .series(DynamicReports.cht.serie(quantityColumn), DynamicReports.cht.serie(unitPriceColumn))
            .setCategoryAxisFormat(DynamicReports.cht.axisFormat().setLabel("Item")))
        .pageFooter(Templates.footerComponent)
        .setDataSource(createDataSource());
})()
|