锐浪Grid++ Report绝对是2021辛丑牛年我最新喜欢的Java Web报表工具!
通过实例来说明一下我们常见的文书报表的实现和打印。
这里我们先使用最简单的WEB报表插件方式进行,今天选用一个常见的受理通知书报表。
也是经典的老三步:
1、制作模板
下载官方的设计器并安装到电脑
把上面的受理通知书WORD另存为RTF文件备用。
把WORD里面的需要变化的地方的数据,复制编写一个JSON文件,把相应对KEY-VALUE值整理好。形如下图,备用。
打开安装后的报表设计器,新建模板,并增加明细网络和报表头。为什么要加入明细风格呢?因为有了它,我们就可以引入各种数据源,如直接连数据库,或者本地JSON文件,方便做报表模板时测试预览效果。报表头呢,用来放我们的受理通知书。
设置报表的大小这里我们设置为A4纵向。
然后在明细网格中设置数据源
再根据数据,把他生成相对应的字段
设置报表头的高度为A4的高度29.7,并在报表头中插入RTF综合文本框组件,此文本框的右边 停靠属性设置为平铺。
下面双击RTF文件框,载入受理通知书,并把受理通知书中所有需要变化的地方,用“插入域”绑定JOSN中的字段名。
全部绑定字段名后,如下面的样子
点击预览看看我们的劳动成果吧。
咦日期后面怎么还有0:00:00?这好办,我们去给他设置下日期格式
再次预览果然OK
我们打印到PDF虚拟打印机看看效果
完美!
至此为止,我们的模板开发完毕!
2、提供数据
这个数据的话,我们现在一般都是前后分离的架构,让我们的后台人员写一个API,按照上面的JSON格式返出来就O了,正常写个这接口,估计也就是5分钟的事。
3、放入项目使用
直接上代码!
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>受理通知书打印</title>
<script src="/gridreport/CreateControl.js" type="text/javascript"></script>
<script src="/gridreport/GRInstall.js" type="text/javascript"></script>
</head>
<body style="width: 100%;height:100%">
<div style="width: 100%;height: 100%;">
<script type="text/javascript">
var grf_path='sltzs.grf';
var data_url ='www.xxx.com/api/getSltzsData';
data_url = encodeURI(encodeURI(data_url));
Install_InsertReport();
var Installed =Install_Detect();
if(Installed){
CreatePrintViewerEx("100%", "100%", grf_path, data_url, true, "");
}
</script>
</div>
</body>
</html>
好了,完工。让我们早点回家陪X朋友吧!ENJOY!