在PHP开发中使用ReportAll报表控件
来源:互联网 发布:网络女主播福利视频 编辑:程序博客网 时间:2024/06/07 15:18
前段时间做一个web项目,需要打印证照功能,一开始是采用生成pdf文件再发到本地打印的方法,在客户实际使用中发现不太灵活,主要是在不同打印机环境下,偏移量不太好设定,另外客户想自行调整打印内容,比如字体大小,这个用pdf就比较麻烦了,于是在网上找了一下,看有没有好的web打印方案,发现了reportall这个软件,试用了一下,感觉还不错,而且普通版是免费使用的.现在就和大家分享一下使用心得
一.reportall简介
详细介绍请到其官网查看(网址:http://www.reportall.com.cn),这里只简单说一下.
ra采用的是activeX技术,可以兼容大多数浏览器,在第一次使用的时候,浏览器会把reportall.ocx这个activeX控件下载到本地,这个控件负责解析报表的模板格式(报表文档)以及要打印的动态数据(报表数据),所以服务器端的任务就是负责提供这两类数据.
报表文档:记录报表页面的样式及格式信息.reportall提供了专门的报表设计器来编辑报表文档
动态数据:以xml格式定义的要填写到报表中的内容
二.使用步骤
<1>用reportall报表设计器设计好报表文档,如果你接触过fastreport之类的报表软件,对这种设计方式应该不陌生.具体方法请查看ra的说明文件.最终得到一个后缀名为rad的报表文档.
<2>把报表文档发到服务器的适当地方,比如/public/rad路径下
<3>把下面代码嵌入到需要输出报表的页面里,这段代码定义了报表文档的地址和提供动态数据的服务器地址
<Object clsid="{568DC60B-F884-4147-8610-8C348AAFA2F8}"id="ReportAll" TYPE="application/x-itst-activex"width="100%" height="100%" <!--RA控件 --> param_docsrc ="http://localhost/Public/rad/sample01.rad" <!--报表文档url--> param_datasrc="http://localhost/test/index.php/raserver" > <!--报表数据(web服务器)url--></Object><4>编写提供动态数据的服务器程序
三.PHP服务器程序的编写
下面重点介绍如何用php编写一个向ra控件提供报表数据的服务器程序
<1>数据格式
动态数据是以xml文件方式提供的,
假设我们要输出一个单位的部门清单,这个清单里有两列,第一列是部门编号ID,第二列是部门名称Name
报表数据实例:
<?xmlversion="1.0" encoding="UTF-8" ?><DocumentData> <Detail> <Row ID="1" Name="办公室" /> <Row ID="2" Name="财务科" /> <Row ID="3" Name="物资科" /> <Row ID="4" Name="综合科" /> </Detail></DocumentData>
要点是<Row/>,动态数据就藏身其中.
ID和Name都是fieldname即报表文档中引用动态数据的字段名称,等号后面是数据值
所以一行数据的格式就是
<Row 数据1的字段名称="数据1的取值”数据2的字段名称="数据2的取值”...... />
<2>服务器程序的任务
服务器的任务就是根据请求的参数,从数据库中查询出数据,然后拼装成一个xml格式的字符串,并传递给请求者.
考虑到效率,对这种格式很清楚的xml数据的生成,没必要使用php中的SimpleXML或DomDocument工具,最好采用直接写的方式(这几种方式的效率比较见我的博文 PHP中3种生成XML文件方法的速度比较 )
privatefunction directWriteXml($d){
$xmltext='<?xml version="1.0"encoding="UTF-8" ?>';
$xmltext.='<DocumentData>';
$xmltext .='<Detail>';
foreach($d as $key=$value){
$xmltext.=" <Row ID=\" {$key} \" Name=\"{$value]}\" />" ;
}
$xmltext.='</Detail>';
$xmltext .='</DocumentData>';
return$xmltext;
}
- 在PHP开发中使用ReportAll报表控件
- C#使用ReportAll报表
- 在ASP.NET MVC 中使用ActiveReports报表控件
- 在VS2010Winform项目中使用RDLC报表定义文件、ReportViewer控件生成本地报表
- 使用Jasperreport作为报表控件开发胖客户端报表应用
- 使用Jasperreport作为报表控件开发Web 报表应用
- 使用Jasperreport作为报表控件开发Web 报表应用 后续
- 使用Jasperreport作为报表控件开发胖客户端报表应用
- 使用Jasperreport作为报表控件开发Web报表应用
- VB中使用报表控件(一)
- Vb中使用报表控件(二)
- VB报表设计中使用天宇报表控件
- php中使用python生成excel报表
- 在Qt中使用ActiveX控件(使用VS2008开发)
- 使用智能设备扩展在 C# 中开发自定义控件
- 在.NET开发中灵活使用TreeView控件
- 在开发中使用GMap.Net 控件的心得一
- 在开发中使用GMap.Net 控件的心得一
- 全球半导体厂商以及硬件设备代工厂一览
- 进销存成本核算方法
- Windows XP系统故障终极排查大全
- 采用IOCP模型开发SOCKET服务端设计思路
- 指定小数位数输出
- 在PHP开发中使用ReportAll报表控件
- 江湖救急啊 ,关于C截取字符串的问题
- 初识Ildasm.exe——IL反编译的实用工具
- QT处理汉字乱码
- myeclipse改成中文字符集模式
- 黑马程序员——(学习心得)刚开始接触java时的心情
- Binomial coefficients
- /dev/shm 介绍 --转载
- PTA是什么?BT-WIFI共存