DynamicJasper:使用数组或列表作为无对象的数据源

时间:2019-06-29 10:38:53

标签: java dynamic-jasper

我正在使用DynamicJasper来生成报告,但是我在这里面临的唯一问题是您需要传递一组对象作为数据源。
但就我而言,我需要传递动态列和数据,例如: 检查此链接http://dynamicjasper.com/documentation-examples/getting-started/: 在“ 创建简单的报告”部分下,他们传递了Product作为数据源的列表:

FastReportBuilder drb = new FastReportBuilder();
DynamicReport dr = drb.addColumn("State", "state", String.class.getName(),30)
.addColumn("Branch", "branch", String.class.getName(),30)
.addColumn("Product Line", "productLine", String.class.getName(),50)
.addColumn("Item", "item", String.class.getName(),50)
.addColumn("Item Code", "id", Long.class.getName(),30,true)
.addColumn("Quantity", "quantity", Long.class.getName(),60,true)
.addColumn("Amount", "amount", Float.class.getName(),70,true)
.addGroups(2)
.setTitle("November 2006 sales report")
.setSubtitle("This report was generated at " + new Date())
.setPrintBackgroundOnOddRows(true)
.setUseFullPageWidth(true)
.build();

JRDataSource ds = new JRBeanCollectionDataSource(TestRepositoryProducts.getDummyCollection());// here they give list of Products
JasperPrint jp = DynamicJasperHelper.generateJasperPrint(dr, new ClassicLayoutManager(), ds);
JasperViewer.viewReport(jp);

在此示例中,他们使用了Product实体列表,该实体具有statebranch等属性,因此可以匹配给定的列。
< / p>

但是对于我来说,我要获取动态数据,它不是对象列表,而是数据数组(字符串,整数,日期等)。

我的问题是:是否可以将自定义列表传递给JRBeanCollectionDataSource而不是预定义对象列表?

1 个答案:

答案 0 :(得分:0)

解决方案是使用import sys import random import datetime as dt import numpy as np import torch torch.manual_seed(42) torch.cuda.manual_seed(42) np.random.seed(42) random.seed(42) torch.backends.cudnn.deterministic = True features = torch.randn(2, 5) # Print stuff. fnp = features.view(-1).numpy() print("Time: {}".format(dt.datetime.now())) for el in fnp: print("{:.20f}".format(el)) print("Python: {}".format(sys.version)) print("Numpy: {}".format(np.__version__)) print("Pytorch: {}".format(torch.__version__)) 而不是JRMapCollectionDataSource
这样,我可以像这样传递数据:

JRBeanCollectionDataSource