多语言展示
当前在线:503今日阅读:57今日分享:41

java图表工具中如何定义文件数据集

XML数据集,就是指数据源是一系列的xml文件。而我们就是要将这些文件作为数据来源,用java图表工具FineReport来呈现这些数据,并做相应的数据分析。
工具/原料
1

java图表工具FineReport7.1.1

2

大小:148.2M 适用平台:windows/linux

方法/步骤
1

假设当前报表环境\WebReport\WEB-INF\reportlets目录下已经存在frtest.xml.,其内容如下,下面我们来看下文本数据集的制作步骤:

2

点击数据集下面的加号,选择文件数据集,如下图:

3

选择xml文件然后弹出文件数据集对话框,将文件类型选择:xml,点击本地文件后面的选择按钮,选择已经存在的frtest.xml文件,右侧的关键节点面板即会自动刷新获取xml中的所有节点信息,并将节点以树状结构的形式显示出来,如下图:

4

注:若一节点,有多个同名同级子节点,但各个子节点的叶子节点不同(存储数据的节点标志),取叶子节点的并集,如下图所示:另:如果xml数据集中有2个根节点,那么FineReport会自动在顶部添加一个没有名字的空根节点。

5

节点选择FineReport的xml文件数据集支持将文件中的所有节点以树状结构显示出来,但是不能像存储过程一样返回多个结果集,将每个节点的数据均显示在一个数据集中,一次只能返回一个子节点中的所有数据,想要显示哪个子节点的信息就选中该子节点即可,最后数据来源于选中节点的子节点、子节点的子节点直至叶子节点。其返回数据集中的数据遵循以下五个规则:1、选中节点只有叶子节点,则叶子节点的并集为数据集字段;

6

2、选中节点只有一个非叶子节点的子节点,则此子节点的叶子节点为数据集字段,如选中PickDetail,效果与选中PrintPickDetailEntity一致;

7

3、选中节点有多个子节点(非叶子节点),此时按第一个子节点来计算。如选中pactDetail,有多个子节点(PrintPackEntity和Other),此时按照第一个子节点“PrintPackEntity”来计算

8

4、选中节点既有叶子节点,又有普通子节点(非叶子节点),此情况为一对多,(其中叶子节点为“一”,普通子节点的叶子节点为“多),则数据集字段为所有叶子节点加第一个普通子节点的叶子节点,数据内容:其中“一”跟随“多”来扩展,如选中根节点PickBillPrintEntity,他有三个叶子节点和两个子节点(pickDetail和PacDetail,选第一个),数据如下图,显示其三个叶子节点和第一个子节点中的数据:

9

5、若同一叶子节点有多个值,用“;”隔开,如下图,author这个字段的值为:James McGovern;Per Bothner;Kurt Cagle;James Linn;Vaidyanathan Nagaraian。注:必须选中一个节点,不选中节点,点击确定,预览为空。

10

示例中只有一个子节点Customers,我们这里选中父节点frtest,子节点Customers或者叶子节点的任何一个,其返注回的结果都一样,那么就选中Customers子节点,点击预览按钮,如下图:

11

效果查看设置完后,可以看到模板数据集中会增加一个名为'File1'的数据集,如下图:

推荐信息