1 开发工具
名称:TIBCO Jaspersoft Studio
版本:6.0或以上,建议6.2.1
免安装软件包,拷贝即可使用,建议放在D:盘或其它自己好找的目录。
拷贝好软件后,可为主程序创建一个快捷方式:
安装好后打开主界面,关掉欢迎页面,即可出现开发主界面,如下:
打开或设计报表时,为如下界面:
打开主菜单“File —> Switch WorkSpace”,选择你打算存放报表工程及报表设计文件的目录。
点击OK后,程序将自动关闭并重新启动。如果没有重启,请手工重新打开。
重新打开界面后,系统会自动创建一个默认的报表工程:
此时,在你工作空间所在目录会生成如下文件夹:
在MyReports目录里创建3个目录:
l JSON:用于后期存放在设计报表格式时用到的样例数据文件
l DataAdapter:用于存放设计报表需要定义的数据源
l Print:报表设计文件(*.jrxml)及编译好的报表格式文件(*.jasper)
l 用浏览器打开猿猿企业管理系统(这里以谷歌浏览器为例进行说明),登录后打开需要设计打印格式的功能界面(如采购订单),打开(或新建)一张有多行商品数据的单据。
l 按下F12,打开调试界面,在单号位置输入单号回车,如下图。
按图中的步骤,找到JSON数据,并将其全部复制出来(也许是第一个action,也可能是最后一个,更有可能是几个合起来(,"SER_FWDFASP":[{"YH)。
l 可在浏览器中打开JSON解析工具对JSON字符串进行格式化。解析工具地址:http://www.bejson.com/jsonview2
l 将刚才格式化好的JSON字符串复制粘贴到新建的文件中,并进行编辑:
n 将前5(7)行替换为【{"PUR_CGDD":】
n 后4行替换为 【}】
n 替换完毕后,能在试图中看到以下结构则表示格式正确,可以继续后续操作:
l 切换到报表设计工具,在报表工程的JSON目录创建一个JSON文件:
在JSON目录点鼠标右键àNew/Fileà输入文件名PUR_CGDD1.json-->Finish
l 将刚才编辑好的JSON字符串全选,拷贝到新文件中。
l 样例数据到此准备就绪。
在工程的DataAdapter目录点右键àNewàData Adapter,打开如下界面:
点Next:
选择JSON File,点Next:
输入数据源名称;
File/Url位置选中刚才建好的json文件名;
选择Use the report JSON expression when filling the report。
点击Finish。
测试一下,成功则进入下一步。
在Print目录(或其子目录)点右键àNew/Jasper Report,打开如下界面:
Next:
输入打印报表名称PUR_CGDD1.jrxml,Next:
选择刚才建好的数据源,在下面的列表里选中主节点“PUR_CGDD”,Next
可用字段全选,Finish。(主报表不需要设置分组字段Group by)
界面上出现了一个待设计的空打印模版。
上面有若干个栏位,删除其他栏位,保留Page Header、Detail 1、Page footer,并适当拉宽3者的高度,以方便放置内容。
在下图方框区域点右键àPage Format…,调出纸张设置对话框:
按纸张实际大小进行设置,注意将所有单位设置成mm(毫米)。
在右上方组件区域找到【Static Text】,鼠标选中后,在页面空白处点击一下或者拖放到页面,即可增加一个静态文本组件。
双击该组件可对需要显示的文本内容进行编辑。通过工具栏的相关按钮可对字体、文本对齐方式、组件对齐方式进行调整。
在屏幕左下方的组件列表中找到Fields列表,将需要的字段拖放到报表上。当拖放到Detail 1区域时,系统会生成一个静态标签和一个字段值标签,拖放到其他位置时只有字段值标签。
将组件进行相应编辑,并拖放到PageHeader的相应区域。
继续添加完其它字段内容,预览如下:
条码在拖放到报表上时,会要求选择条码格式,请按公司扫码设备要求进行选定。选定后,在右下方的组件属性栏选择“AdvancedàCode Expression”,弹框选择对应的字段即可。
在界面右下方的报表元素列表Variables栏增加一个Variable;
在右边的属性中做如下设置:
报表元素
取值必须修改为Double类型,不然无法相加数据,Double才正常
最后把这个Variable拖拽到ColumnFooter区域。
选中相应的数量、金额字段后,在属性页面找到属性”TextField Properties/Pattern”,点后面的按钮调出格式设置对话框进行设置即可。
在右上方将Subreport拖入Detail 1,弹出如下界面:
选择Create anew report,Next,默认纸张,输入子报表的文件名:
然后选择数据源:
Next,与主报表一样选择所有字段,再Next,选择Group by 字段(CKKQID):(只有需要按某字段分组时才选此项,否则直接Next)
Next,选择子报表获取数据表达式:
按下列表达式填入文本框,其中最后的双引号中是子表对应的JSON节点名称。(填入软件)-改expression为主目录"PUR_CGDDMX.J"
((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("PUR_CGDDMX") |
点击Finish,生成子报表,子报表只保留“Column Header、Detail 1、Column Fooder”三个区域。
然后将商品明细需要展示的字段拖到Detail 1区域,并排版。
((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("CRM_VIPCLXX")
CRM_VIPCLXX取值另外一个aciton的CRM_VIPCLXX
跨表取值必须建立子报表
subDataSource取值
首先,在子报表创建时,在Group by页面选择要分组的字段(采购订单上为:CKKQID);
在子报表设计页面左下方的CKKQID Group Header,点右键Add Header Band;
将CKKQID、CKKQMC等字段配置到新增加的Group Header Band区域。
所有设置完毕后,预览效果,如下:
分组增加代码:1、
(order=“Descending”表示倒序排列)
2、分组重新开页
2、
3、合计按分组打印
l 报表文件设计好后,经过编译(BuildALL),可在报表目录生成*.jsper文件。
l 将两个*.jsper文件拷贝出来,放在Tomcat/bin/resources/print目录下与该功能界面jsp相同的子目录中。
l 并在界面配置表中按钮定义表里打印按钮的AURL字段设置为对应的主报表文件名称。
l 报表格式即发布成功。
编辑窗口:
1、 显示不了中文:
Ⅰ编码转换
Source添加如下内容: