我把信任交给你,你把JAVA的WEB报表打印交给谁?

今天一大早,甲方BB说我去一趟办公室,开门见山,X工呀,由于实际业务需求,还需要增加点小功能,具体如下:

         甲方BB:第1呢,需要实现在BS系统中进行相关证件和文书的打印工作;

         我:行。

         甲方BB:第2呢,打印需要满足市面上的所有主流浏览器;

         我:行。

         甲方BB:第3呢,打印要容易开发和快速上手,不对现有系统造成过度侵入,不影响现有系统使用;

          我:好。

          甲方BB正要继续说下去,电话响了:XX@##%$@$,一通电话后,X工呀,我临时需要参加个会议,我长话短说,最后呢,也是最重要的一点,现在国产化是个趋势,你这的打印必须兼容国产化电脑呀!

        我:好吧。

        话刚送出嘴唇,就听到“吱牛”一声门关上了,留下了我。。。。

 等等,好像有什么地方不对劲呀,我再瞅瞅我说的话,啊!原来连起来是“行 行 好 吧”!

     不是吧,什么时候成了G帮帮Z了。。。。

图片

 

 

需求就是命令,于是我一顿操作梦如虎,开始在网上进行了地毯式搜索,咦!原来打印插件还是蛮多的嘛,顿时来了精神

图片

     按照小学语文老师教的议论文“三板斧”,提出问题---分析问题---解决问题的套路,下面给大家介绍一下。

     第一板斧甲方BB说过了,我就不再啰嗦,省得出现如下画面。

图片

      第二板斧:分析,其实需求核心总结就是,在主流浏览器上实现打印,不影响现有系统,开发容易上手快,可最后兼容国产化机器原来没搞过,是个大雷呀!

图片

   于是我开始抓耳挠腮,认真比对搜索到的向个打印控件。。。

图片

     jatoolsPrinter打印控件,Lodop打印控件,墙外打印控件,Grid++ Report等等,真是不搜不知道,一搜吓一跳,打印插件还真不少呢?   

     但黑山老妖手里的雷怎么扑灭呢?支持国产化UOS统信操作系统的浏览器由:360安全浏览器、火狐浏览器、谷歌浏览器、QQ浏览器,但有一条,只要是是操作内核不变,全部不能使用插件,因为插件在LIUNX下是不被支持的!

图片

     国产化的UOS统信操作系统,龙哥必然要大力支持的!既然不能直接使用插件,那 中间加一层如何呢?有句行话说得好"没有加一层解决不了的"!JDBC不也是在各种数据库驱动的基础之上加了一层吗?

      嘿嘿,果然思路决定出路,虽然 jatoolsPrinter打印控件,Lodop打印控件,墙外打印控件,Grid++ Report看上去一堆,但经过这个雷过滤之后,适合我自己项目的就只有Grid++ Report了,因为他不仅有客户端打印插件,还有服务器端打印支持,这不就是我想要加的一层吗??真是“柳暗花明又一村”呀(别的插件可能也很不错,但是龙哥没有用过,也不过多发表评论与对比)。

     Grid++ Report简单了解一下:

   官网地址是http://www.rubylong.cn,“源自2003年,只专注报表软件”,“开发最佳报表工具,提高报表开发效率”,锐浪软件一直致力于报表软件领域,我们不仅为软件开发者提供最专业的报表开发工具,也为各行各业的现有软件系统提供定制的商业智能分析、报表软件、打印软件,充分挖掘数据的价值!

     先看看第一个例子长啥 样:

图片

    打印表格的效果,右上角有一个水印,但只在预览进显示,实际打印进并没有,所有功能都不设限制,而不是像有些一样,中出钱只能用阉GE过的。作为一个国内企业来说,真的是很有人情味了!

   

    再来分析一下打印模板,这是一个GRF文件,用官方的开发设计器打开打印模板看下长什么样子:

图片

像word一样,有页眉,页脚,中间通过“明细网格”自动实现数据循环展示。

图片

报表模板里面通过配置SQL语句连接ACCESS数据库,直接出的数据。

 

   报表数据格式:

 

{  "Table": [{      "CustomerID": "HUNGC",      "CompanyName": "五金机械",      "ContactName": "苏先生",      "ContactTitle": "销售代表",      "Address": "德昌路甲 29 号",      "City": "大连",      "Region": "东北",      "PostalCode": "564576",      "Country": "中国",      "Phone": "(053) 5556874",      "Fax": "(053) 5552376"    },    {      "CustomerID": "CENTC",      "CompanyName": "三捷实业",      "ContactName": "王先生",      "ContactTitle": "市场经理",      "Address": "英雄山路 84 号",      "City": "大连",      "Region": "东北",      "PostalCode": "130083",      "Country": "中国",      "Phone": "(061) 15553392",      "Fax": "(061) 15557293"    },  ]}

也是我们常见的json,这对于开发人员基本没有一点障碍,可谓“容易开发和快速上手”,这样一个最简单的打印就可以了。

     下面再来看一个我们常用的套打功能,以官方的发票套打为例,简单分析一下,先来看一下效果图。

图片

分析模板开始,

图片

预览时看到的发票图片,其实是在模板里面设置了一个扫描的彩色底图,只不过上面没有数据而已。然后设置在打印预览进可见,实际打印时不打印,这样就实现的把数据打印在了真实的发票上。

图片

     这是他扫描后在模板里面的设置的发票底图,可以帮助我们更直观的理解模板的制作原量。

     再来看下这个套打的数据

  •  
{"Detail":[{"ProductID":2,"ProductName":"牛奶","UnitPrice":15.2,"Quantity":20,"Amount":304},{"ProductID":16,"ProductName":"饼干","UnitPrice":13.9,"Quantity":35,"Amount":486.5},{"ProductID":36,"ProductName":"鱿鱼","UnitPrice":15.2,"Quantity":25,"Amount":380},{"ProductID":59,"ProductName":"苏澳奶酪","UnitPrice":44,"Quantity":30,"Amount":1320}],"Master":[{"OrderID":10255,"CustomerId":"RICSU","CompanyName":"永大企业","Address":"港务口街 29 号","OrderDate":"1996/7/12 0:00:00","Remark":"余小姐(089) 7034214"}]}

     哇,还是我们最喜爱的JSON图片


       问题分析完了,下面应该进行总结问题了吧。Wait a moment!!你的兼容国产化系统打印还没给甲方88实现呢??图片

      我去,高兴早了,这样吧,我介绍一下思路:通过Grid Report的服务器,把我们制作好的GRF模板,和模板所需要的JSON数据传过我们的后台应用程序,我们后台应用程序再调用Grid Report锐浪报表服务器端(官方已经提供C#版本和JAVA版本),他就会自动把模板和数据合成,返回给我们一个PDF出来,这样不就摆脱了不能用插件的困扰了吗?这就是我上面说的“加一层”。

      什么还是不太明白,这样吧,龙哥好人做到底,已经对这个思路做了封装,并进行开源,还是劳烦大人您亲自过目吧,开源地址如下:

----------------------------------------

JAVA servlet版本封装,请访问 https://gitee.com/ixml/grid-report-server-java/

JAVA SpringBoot版本封装,请访问https://gitee.com/ixml/gridreport-java-server-spring-boot

-----------------------------------------

    欢迎START!有问题请留言反馈,感谢各位大人,下次抽空咱们接着聊,886!

图片

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Grid++Report是一款同时支持C/S软件(桌面程序)与B/S软件(WEB程序)开发的报表工具,功能全面易学易用。C/S开发适用于VB.NET、C#、VB6、VB、VC、Delphi、C++Builder、QT与易语言等。B/S开发适用于ASP.NET(C# & VB.NET),PHP,JSP(JAVA)等,支持所有WEB服务器。开发C/S报表与B/S报表的编程接口、报表模板报表数据通用,共享相同的开发知识与设计资源。 1. 含C/S报表组件、WEB报表插件、HTML5报表WEB报表服务器开发的相关文件。 2. 通用报表设计器应用程序,可视化设计报表模板报表组件、报表插件与HTML5报表都用此程序设计报表模板,同一报表模板可为三种开发模式共 用。 3. 包含大量各种类型,各行各业的报表模板例子,是学习报表设计的最好参考资源。 4. 包含桌面报表(C/S)组件、WEB报表插件、HTML5报表WEB报表服务器的程序文件与例子文件。报表组件例子程序包括:C#, VB.NET, VB, VC, Delphi, C++Builder、中文编程易语言。Web报表例子程序包括:asp.net(c#)、asp.net(vb)、php、jsp。还有可直接运行的例子应用程序。 帮助文档及其它有关Grid++Report的文档与资源。 5. 请根据帮助文档中的相关说明,首先把例子程序运行起来。请尽量模仿最简单的例子程序开始学习。 6. 整理了C/S报表组件免COM注册发布软件的方法,实现绿色发布用Grid++Report开发的软件,并避免不同版本的Grid++Report发布在同一台电脑的冲突

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值