php报表控件,在PHP开发中使用ReportAll报表控件

前段时间做一个web项目,需要打印证照功能,一开始是采用生成pdf文件再发到本地打印的方法,在客户实际使用中发现不太灵活,主要是在不同打印机环境下,偏移量不太好设定,另外客户想自行调整打印内容,比如字体大小,这个用pdf就比较麻烦了,于是在网上找了一下,看有没有好的web打印方案,发现了reportall这个软件,试用了一下,感觉还不错,而且普通版是免费使用的.现在就和大家分享一下使用心得

一.reportall简介

ra采用的是activeX技术,可以兼容大多数浏览器,在第一次使用的时候,浏览器会把reportall.ocx这个activeX控件下载到本地,这个控件负责解析报表的模板格式(报表文档)以及要打印的动态数据(报表数据),所以服务器端的任务就是负责提供这两类数据.

报表文档:记录报表页面的样式及格式信息.reportall提供了专门的报表设计器来编辑报表文档

动态数据:以xml格式定义的要填写到报表中的内容

二.使用步骤

<1>用reportall报表设计器设计好报表文档,如果你接触过fastreport之类的报表软件,对这种设计方式应该不陌生.具体方法请查看ra的说明文件.最终得到一个后缀名为rad的报表文档.

<2>把报表文档发到服务器的适当地方,比如/public/rad路径下

<3>把下面代码嵌入到需要输出报表的页面里,这段代码定义了报表文档的地址和提供动态数据的服务器地址

param_docsrc ="http://localhost/Public/rad/sample01.rad"

param_datasrc="http://localhost/test/index.php/raserver" >

<4>编写提供动态数据的服务器程序

三.PHP服务器程序的编写

下面重点介绍如何用php编写一个向ra控件提供报表数据的服务器程序

<1>数据格式

动态数据是以xml文件方式提供的,

假设我们要输出一个单位的部门清单,这个清单里有两列,第一列是部门编号ID,第二列是部门名称Name

报表数据实例:

要点是,动态数据就藏身其中.

ID和Name都是fieldname即报表文档中引用动态数据的字段名称,等号后面是数据值

所以一行数据的格式就是

<2>服务器程序的任务

服务器的任务就是根据请求的参数,从数据库中查询出数据,然后拼装成一个xml格式的字符串,并传递给请求者.

考虑到效率,对这种格式很清楚的xml数据的生成,没必要使用php中的SimpleXML或DomDocument工具,最好采用直接写的方式(这几种方式的效率比较见我的博文PHP中3种生成XML文件方法的速度比较)

privatefunction directWriteXml($d){

$xmltext='<?xml version="1.0"encoding="UTF-8" ?>';

$xmltext.='';

$xmltext .='';

foreach($d as $key=$value){

$xmltext.=" " ;

}

$xmltext.='';

$xmltext .='';

return$xmltext;

}

0818b9ca8b590ca3270a3433284dd417.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值