对华表Cell支持xml数据导入的无奈

  报表一直是绝大多数企业项目应用中不可或缺的一部分,选择一款适中的报表软件,尤为显得至关重要。大型企业项目,BO或Biro之类的,占有量不少。对于中小型企业应用,则不得不考虑“性价比”了,而对于实施这些企业化应用的软件开发商,则不得不花很多精力来“衡量成本”。
      中小型项目中,我接触过这么几款报表软件:开源的JasperReport,基于ReportServer的水晶报表,国产的润乾报表,国产的用友华表Cell。(以下所说,主要是基于web报表开发,毕竟目前B/S项目应用和客户需求很大)

  相比较其他三款,Cell似乎不能算作“完整的报表软件”,至少缺少了应用中比较重要的“数据源采集”和“数据模型”这两块。因为缺少这两样关键的东西,让项目组使用Cell开发报表的时候,着实费力:笨拙的只能一格格的“代码式的灌数据”;聪明的另辟蹊径,封装一定量的脚本,以求缓解页面端的js工作量;再聪明点的,利用cell的readFromXML来灌输据,却发现“是一把断了刃的刀”,只能勉强可用。

       即使Cell有如此大的缺陷和麻烦,但是,使用Cell开发的还是不少。估计这得益于cell的几个特点:Excel式的风格(虽然润乾也是电子表格方式的);Web端展现的强大功能;开发虽然费劲,但是简单。

  这几天因为要支持项目组,捣鼓了几天cell报表,着实体验了一番“欲罢不能”。为了减少项目组开人员操作js的工作量,从另外一个项目组吸收了一套“数据映射”的解决方案:利用cell的设计器设计cll报表样式,然后自定义了一套数据映射规则,描述当前报表的数据模型和数据映射关系;使用自定义的解析器经过解析和数据集灌输,生成可描述整个报表数据结果的xml文件。在页面端采用自封装的javascript脚本,对此xml进行解析和cell控件表表格的写入—— 这样就完成了一个前端cell报表的显示。

  然而这种方式,效率却是很低,即使经过优化,针对简单的列表型报表显示,仅前端cell的js封装,显示1000行的列表数据,都需要大约5秒多的时间。

  客户对这个效率是很有成见的,不得已只好寻觅其他方式。搬出cell的帮助文档,终于翻出cell竟然支持xml数据导入,当然,这个xml格式是按照其自定义的。—— 当时感觉就像是“柳暗花明”,经过简单的测试,发现100行的显示,只需要1秒多的时间 —— “又一村”啊。

  然后,打击比我想象来的快:搜遍了cell的帮助文档,也没有详细介绍这个xml格式的schema文档,只有简单的一个例子供参考;给cell技术支持打电话,邮件沟通,得到的答复,让人心凉啊:没有schema介绍文档,包括后来开发人员查看了原码,也没有发现详细的注释,并且仅支持String和Number类型,而且这个xml仅仅只能用于灌输数据,不能执行一些“注入插入行,合并列”之类的操作,当然也不能设置显示样式

  后来······只能损失效率,换取样式了,毕竟客户最终不得不接受等待5秒的页面时间,至少等数据出来后,看得舒服点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
用友华表CELL插件Demo 用友华表CELL插件是一款基于ActiveX技术的解决中国式报表显示和打印的第三方控件, 和其它第三方ActiveX控件一样,用友华表CELL插件只能运行在客户端,只能使用JAVASCRIPT、VBSCRIPT客户端语言操纵控件,进行直接处理客户端数据,而客户的数据都存放在服务器端,这势必要求客户端的ActiveX控件与服务器端进行数据交互. 针对客户端ActiveX控件如何与服务器端进行数据交互,本文介绍了实现客户端与服务器端数据交互必须的两个步骤如下: 1、将客户端CELL插件中的数据上传至服务器端的数据库. 方法:在客户端通过Cell的编程接口SaveToBuffer得到数据保存在XML,使用XMLHTTP技术将数据传至服务器并保存在服务器数据库. 2、将服务器端数据库中的数据显示在客户端的CELL插件中. 方法:连接服务器数据库得到数据,通过Response对象将数据传送到客户端,再利用Cell的编程接口ReadFromBuffer展示在客户端. Cell 插件用于开发B/S结构程序,使用Asp, Asp.net, Jsp, VbScript, JavaScript等语言开发,可以在浏览器中直接打印报表(非IE打印),带有国际化数字签名,让用户使用更方便,更安全。 • 具备Cell组件的所有特色功能,在浏览器中提供报表的显示和打印 • 网络报表界面美观,大大改善了浏览器中报表的输出效果 • 带有国际化数字签名,让用户使用的更安全、更放心 • 可将报表文件另存为华表文件或者Excel文件,从而可以进行进一步加工 • 支持ASP、ASP.Net、JSP、VBScript、JavaScript等语言开发 在开发工具中将Cell插件引入至工程,然后将Cell插件拖至页面中即可开始报表设计。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值