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

(原创)php实现报表 原创内容....实现曲线图,饼图,柱形图.转贴请注明出处,http://blog.csdn.net/liq330效果图:原代码如下:phpclass ImageReport{   var $Image;//图片对像   var $ImageName;//报表名称   var $ImageType;//报表类型      var $ImageWidth;//图片宽   阅读详情

    前段时间做一个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/>,动态数据就藏身其中.

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

所以一行数据的格式就是

   <Row    数据1的字段名称="数据1的取值数据2的字段名称="数据2的取值......    />

<2>服务器程序的任务

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

考虑到效率,对这种格式很清楚的xml数据的生成,没必要使用php中的SimpleXMLDomDocument工具,最好采用直接写的方式(这几种方式的效率比较见我的博文 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;
}

reportall工作方式图示






report工具 此工具专门用于打开report文件,免安装 绿色软件。打开的文件像排版好的照片一样。 立即下载

相关推荐

ReportAll报表开发工具2.0(免费)

一款功能超强而且全免费的国产报表工具,拖动 -- 绑定 -- 搞掂 ReportAll是面向软件开发人员的报表开发工具,具有全新的设计思想,将“对象摆放”类和“电子表格”类报表开发工具完美融合,使用种类丰富且功能强大的报表对象组合生成任意复杂的报表样式。在ReportAll中,无论是“带区(Band)”、“表格(Grid)”、“图表(Chart)”、“文字”及“线条”等元素都作为报表对象嵌入在报表页面之中。这些报表对象独立占据一定的区域,独立地进行分页控制。事实上,使用ReportAll报表布局不受任何限制,开发人员可以随意灵活地利用每一块页面空间。另外,ReportAll提供的报表对象都是“数据感知”的,当他们和虚拟数据集中的数据建立“绑定”关系后,可以实时显示数据和感知数据的变化。 ReportAll是面向软件开发人员的报表开发工具,具有全新的设计思想,将“对象摆放”类和“电子表格”类报表开发工具完美融合,使用种类丰富且功能强大的报表对象组合生成任意复杂的报表样式。在ReportAll中,无论是“带区(Band)”、“表格(Grid)”、“图表(Chart)”、“文字”及“线条”等元素都作为报表对象嵌入在报表页面之中。这些报表对象独立占据一定的区域,独立地进行分页控制。事实上,使用ReportAll报表布局不受任何限制,开发人员可以随意灵活地利用每一块页面空间。另外,ReportAll提供的报表对象都是“数据感知”的,当他们和虚拟数据集中的数据建立“绑定”关系后,可以实时显示数据和感知数据的变化。

PHP写的开源报表生成工具Reportico

PHP写的开源报表生成工具Reportico 2011-10-16 22:11:56 其实现在还没有足够的时间看这个工具,只是到软件首页初步了解了一下,感觉不错。灵活度非常大,直接定制报表的纸型、CSS显示样式、控制sql结果等。总体说真是不错的。特别怕忘,所以在这做个记录,等咱细细学完了Mysql那本书之后再找时间消灭它! 项目主页:http://www.reportico...

weixin_30924087的博客 1205

C#使用ReportAll报表

最近想学习使用报表,没有找到什么合适的,用了一些水晶报表,还是比较方便,不过要用一些复杂的,学习成本就比较高了。看了一下FineReport,这个使用好象很方便,但是好象又是主要用于WEB的,C#WINFORM不好用(在网上找了一下,说是嵌入HTML还是什么)放弃了。后来又找到ReportALL,这个是COM组件,C#可以用,可以在程序中控制数据,作报表还是相对比较方便。试了一下,就用这个。 下

happyw2004的专栏 1996

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

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

weixin_28880179的博客 528

php 图形报表,PHP 使用Echarts生成数据统计报表的实现代码

echarts统计,简单示例先看下效果图看下代码HTML页面 为ECharts准备一个Dom,宽高自定义js文件可以参考官网,或者在这里下载,引入下面是具体方法var date = [],num = [];$(document).ready(function () {// 绘制反馈量图形var init_echarts = function () {var refreshChart = funct...

weixin_42118701的博客 491

利用THINKPHP框架开发的自定义表单及数据字典模板

在人力资源管理系统的项目开发中,有一个功能需求如下: 用户未知有多少个报表要出,并且不知道将来会有什么样的报表,因些需要客户自定义报表的格式功能,并且报表里的数据要自动抽取。例如 A公司员工X在BB地点出了车祸,C职员为他报案。 此时,OA系统会自动按报表格式,取得X员工的所有社保信息,根据报表格式出报表。 根据此需求,系统设计需要分3步 1、设定报表的模板,用户可以在根据规则的变化调整

emtit2008的专栏 9509

php 做图像报表

pChart是一个开源的图表生成库,主要涉及3个Class:pChart.class, pData.class, pCache.class,可生成20多种简单或复杂的图表,支持PNG,JPG,GIF通用图片格式。数据源可以来自于Database,CSV,当然也可以手写。使用该程序PHP需要开启GD服务,先来看看pChart的工作流程: 主要分为三步: * 读取用于生成图表数据(

永不停歇 5865

二十三、【开源】EFW框架Web前端开发之常用组件(FusionCharts图表、ReportAll报表等)

回《【开源】EFW框架系列文章索引》        EFW框架源代码下载V1.2:http://pan.baidu.com/s/1hcnuA EFW框架实例源代码下载:http://pan.baidu.com/s/1o6MAKCa          前言:上一章讲了EFW框架中的界面框架JqueryEasyUI,在一个Web系统开发中除了需要一个好的界面框架还有需要一些

727

报表开发 相关工具 插件

ReportAll报表开发工具 http://www.reportall.com.cn/index.html 硕正轻量级富Web应用套件  http://www.supcan.cn/ 锐浪Grid++Report5 报表开发工具 http://www.rubylong.cn/index.htm

过客代码站 1153

php报表打印,PHPExcel 打印报表

因工作需求,需要将前端页面显示的 table 报表打印成 Excel 文件,因为报表类型多样,好多的 td 标签存在跨行又跨列的情况,PHPExcel 作为一款 php 处理 Excel 的插件,虽然方便,但在处理这些报表起来也非常的复杂。如果我们能够在 js 中确定整个 table 的行数和列数,并确定每个 td 在 Excel 中的坐标以及跨行跨列后最终点的坐标,然后在后台 php 将接收到的...

weixin_29131709的博客 883

php 打印报表_别再被报表厂商骗了,这五大技术才是硬货!

最近经常有做报表的朋友向我抱怨,做报表开发太难了,难得不是自己不会做报表,而是公司的报表系统实在是太差了,隔三差五就会因为数据量过大而造成宕机,一宕机报表平台就停转,报表系统一停转数据就会丢失,造成的严重损失不说,最难受地是每天都要担惊受怕。这让我想起了之前我们曾经用过的一家国内厂商的报表平台,在业务不多的时候表现还很正常的,没有出现什么问题,但一旦到了业务高峰期就绝对要出问题。有一次,我们发现报...

weixin_39693193的博客 228

PHP实例打印报表,PHP导出报表(案例)

效果需求为了实现报表效果,自己杜撰的需求。主要是思路,思路通了实现其他效果也OK。统计每个人在一年中每一天迟到早退的情况。思路用 PHP 语言进行实现。首先将报表样式用 HTML 实现,然后利用PHP header 函数生成 xls 下载。知识点表格中的列合并与行合并PHP 获取一年中的每一天进行展示PHP header 函数Smarty 模板函数Smarty 自定义函数…PHP 代码public...

weixin_34763128的博客 434

PHPExcel 打印报表

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33695450的博客 644

php报表服务器配置,PHP Report Maker(PHP报表设计器)v12.0.6版

HP Report Maker是一款非常好用的PHP报表制作工具,软件生成的Web页面是纯PHP,不需要服务器端或客户端组件,最主要的就是它可以为您节省大量时间,非常适合初学者和有经验的开发人员,有需要的赶快来下载吧!软件功能:1、【Bootstrap 4和AdminLTE 3的全新布局】使用Font Awesome 4(替换Bootstrap 3 Glyphicons)2、【导航栏菜单项】同时允...

weixin_34796621的博客 389

php 报表模板_PHP导出报表(案例)

效果报表.png报表.gif需求为了实现报表效果,自己杜撰的需求。主要是思路,思路通了实现其他效果也OK。统计每个人在一年中每一天迟到早退的情况。思路用 PHP 语言进行实现。首先将报表样式用 HTML 实现,然后利用PHP header 函数生成 xls 下载。知识点表格中的列合并与行合并PHP 获取一年中的每一天进行展示PHP header 函数Smarty 模板函数Smarty 自定义函数....

weixin_39575410的博客 513

php 报表平台,php report报表引擎

1.phpreport报表原理我只查看了其中的SQL语句,因为它就是靠拼凑SQL语句来实现的文字报表: 首先对每个分组进行了递归group by col,出行分组,然后检索分组下的数据。最后分析公式,得到文字报表。图形报表使用jpgraph,首先对X轴的列名进行group,然后对Y轴列名在X轴下的sum(y列),得到数字。2.phpreports报表原理使用 xslt/PHPReport.xsl...

weixin_39847244的博客 527

【亲测免费】 PHP Reports: 一款强大而灵活的报告生成工具

PHP Reports: 一款强大而灵活的报告生成工具 是一个基于 PHP 的开源库,用于生成各种类型的报告。它提供了丰富的功能、高度的定制性以及良好的性能,是开发人员生成报表的理想选择。 项目简介 PHP Reports 提供了一个简单易用的 API,可以轻松地将数据转换为 PDF、Excel 或 HTML 格式的报告。通过此库,您可以创建复杂的报告结构,包括分组、排序、过滤器等,同时还能添加图...

gitblog_00081的博客 872

php 输出查询报表,PHP+CSS实现打印简单数据报表功能

-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>Daily Report body {margin: 9px;padding: 0;color: black;text-decoration: none;font-size: 10pt;font-f...

weixin_42298881的博客 389
上一篇: PHP中3种生成XML文件方法的速度比较
下一篇: php生成"局部唯一识别码"LUID
mangdun
博客等级 码龄19年 5粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值