可以使用BIRT的数据立方体表来实现这个需求。首先,需要创建一个数据源,然后创建一个数据立方体表,将药品作为行维度,将数量作为列维度,并将其放在度量值的区域。最后,对每个记录进行分组。
以下是示例代码:
1.创建数据源
var ds = new Packages.org.eclipse.birt.report.data.dataSource.impl.ScriptDataSource(); ds.setName("data"); ds.setDriverClass("org.h2.Driver"); ds.setProperty("URL", "jdbc:h2:mem:data"); ds.setProperty("user", ""); ds.setProperty("password", "");
2.创建数据立方体表
var table = new ReportItemFactory().newDataCube(); table.setName("medicine_qty_cube"); table.setDataSource(ds); table.setQuery("SELECT medicine, qty FROM myTable");
3.设置维度和度量值
var dimMedicine = new ReportItemFactory().newRowDimension("medicine", "string"); var dimQty = new ReportItemFactory().newColumnDimension("qty", "float"); var measureQty = new ReportItemFactory().newMeasure("qty", "float"); table.setRowDimension(dimMedicine); table.setColumnDimension(dimQty); table.setMeasure(measureQty);
4.设置分组
var groupMedicine = new ReportItemFactory().newGroup("medicine", "string"); groupMedicine.addExpression("medicine"); table.addGroup(groupMedicine);
现在,在BIRT报告中,可以将此数据立方体表添加到报告中,并将其呈现为所需的报表形式。每个记录将被分组为药品和相应的数量。