报表的数据来源多种多样,有时会接收来自HTTP服务器的数据进行报表展现,一般报表工具只能通过报表自定义数据源使用高级语言(如JAVA)进行处理,实现较为复杂。集算报表简单地通用集算器接收HTTP数据源完成报表展现。这里通过一个实例说明。
学生成绩信息存储在远程的JSON格式文件中,其所在HTTP服务器对外提供统一HTTP访问接口,现需要读取学生成绩信息开发报表,汇总学生成绩并按总成绩排名。报表样式如下:
JSON文件中包含班级、编号、姓名、学科、成绩等信息,格式如下:
[
{
"class": "Class one",
"id": 1,
"name": "Emily",
"subject": "English",
"score": 84
},
{
"class": "Class one",
"id": 1,
"name": "Emily",
"subject": "Math",
"score": 77
},
......
{
"class": "Class one",
"id": 7,
"name": "Nicholas",
"subject": "PE",
"score": 60
}
]
以下为实现步骤。
编写集算器脚本
首先使用集算器读取远程HTTP文件,并计算结果
A1:通过httpfile函数读取远程HTTP文件score.json;
A2:以字符串格式读入json格式文件后,使用import@j()将json串解析成序表;
A3:对学生ID分组,在A4中汇总总成绩;
A5:按照总成绩降序排列,并通过A7中result为报表返回结果集
需要指出的是,httpfile参数中的URL串指向任何HTTP服务器,如某个servlet,这样可以访问带有参数的WEB服务返回的数据,比如:
httpfile(“http://192.168.1.101:6001/demo/Servlet?action=4&name=report1&excelFormat=2003”,GBK)
返回的结果是Excel。当然,返回的结果可以是普通格式的文本(如csv),也可以是json串或xml串,集算器都可以处理。
新建报表
打开集算报表设计器,菜单栏选择文件-新建报表,点击“生成空白报表”,新建一个空白报表。
设置数据集
菜单栏选择报表-数据集,数据集类型选择“集算器”,在弹出的集算器数据集设置窗口中选择dfx文件,创建数据集ds1。
编辑报表模板及表达式
报表模板第一行为报表头,第二行为表达式。
通过B2取学生编号列表,C2、D2根据B2扩展取值姓名和总成绩,A2中排名使用&B2表达式并设置其左主格为B2可以实现排名。
展现报表
在报表设计器中,选择工具栏中的“预览报表”,即可在设计器中查看报表展现结果。
此外,集算报表设计器内置了Tomcat,允许用户将报表发布到web端查看页面效果,点击工具栏右上角的IE图标,设置报表主目录和DFX主目录(可采用默认),完成报表发布。
转载于:https://blog.51cto.com/report5/1529643