文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发PowerBuilderPB动态报表格式自由定义的实现
精品推荐
特别推荐
·PowerBuilder实用技巧八则
热点TOP10
·在PB中用Flash制作Splash封面
·PowerBuilder应用开发系列讲座(39)
·PowerBuilder实用技巧八则
·PB代码优化
·在pb中用语音读金额
·PB8.0应用程序编译发布技术研究
·关于PB播放AVI文件的补充
·在PB中如何实现数据模糊查询
·在PowerBulider中读写IC卡
·PowerBuilder的数据窗口

PB动态报表格式自由定义的实现

日期:2008年7月16日 作者: 查看:[大字体 中字体 小字体]


 在通常的Server/Client方式MIS开发中,总是有没完没了的报表需要制作,调试报表花费的时间也是最多而且乏味,还常常不能满足客户的要求。要是能够让用户自己调整报表的格式和内容,然后将它保存下来,程序下次启动时它自动调用保存了的报表格式那有多好。本人通过如下方法最终实现了用的要求。
PB(PowerBuilder)有一种以PSR结尾的特殊的保存报表的文件格式(本文简称作PSR文件)。根据数据窗口可以直接读取PSR文件生成报表的原理,程序通过生成PSR文件,实现动态报表格式的保存。

  一、实现原理: 

  PB中的报表其实就相当于是数据窗口。

  第一步,动态报表的实现。通过设置数据窗口对象(dataobject)中文本、列等的Resizeable和moveable属性为1来实现对象位置的拖动控制,通过数据窗口的Modify函数实现对象值的更改(包括增加和删除)。

  第二步,报表格式的保存。在一个应用当中,数据窗口对象的名称总是唯一的,将每一个数据窗口对象转化成PSR文件存于数据库表中。在窗口打开时,程序先校验报表格式是否存在。如果存在,先将报表格式读取出来放在一个临时文件当中,然后设置数据窗口(datawindow)的数据对象(dataobject)为这个报表文件,然后提取数据;如果不存在,直接提取数据即可。 

  二、实现过程:

   1、建立一个数据库表用以保存报表格式文件。 
表名:dyn_report 
DwobjectVarchar2(20)数据窗口对象名称Primary key 
RptitleVarchar2(80)报表的标题名称  
MemoLong raw 报表格式  

   2、建立一个窗口w_temp。 定义实例变量如下:

   string is_dwtype,is_dwobject //保存报表中对象的类型及名称 

控件名称 控件含义 
Dw_print数据窗口对象 
Cb_exit退出按钮
Cb_savereport 报表格式保存按钮 
   
   3、在窗口的OPEN事件中加入如下代码, 校验报表格式是否存在,如果存在读取定义好的报表格式到数据窗口。

  blob emp_pic
   long ll_handle
   string ls_dwobject,ls_reportfile,ls_path
   ls_dwobject = dw_print.dataobject
   //判断是否存在该数据窗口的报表格式
   select count(*) into:ll_count from dyn_report where dwobject =:ls_dwobject;
   if ll_count>0 then
     //读取报表格式文件到大文本变量
     selectblob memo into:emp_pic from dyn_report where dwobject =:ls_dwobject;
     //创建psr临时文件到硬盘
     ls_reportfile = ’\temp7089.psr’
     ll_handle = FileOpen(is_reportfile,StreamMode!,write!,LockWrite!,Replace!)
     FileWrite(ll_handle,emp_pic)
     FileClose(ll_handle)
     dw_print.dataobject = ls_reportfile
     dw_print.settransobject(sqlca)
   else
     Dw_print.settransobject(sqlca)
   End if
   Dw_print.retrieve()
   4、报表格式的保存。通过Cb_savereport按钮的clicked实现。
   string ls_filename
   long ll_count
   blob Emp_id_pic
   ls_filename = "temp70201.psr"
   //保存报表格式到硬盘临时文件
   dw_print.saveas(ls_filename,PSReport! ,false)
   sqlca.autocommit = true

[1] [2] 下一页 




上一篇:在PB中实现热键的方法

下一篇:PowerBuilder应用开发系列讲座(18)

相关文章:
·如何实现局域网打印机共享
·转换MP4/3GP格式的至尊法宝---MP4/RM转换专家
·建立自由的会计日期的报表--1.4.让报表处理期初和期末之间的数据
·水晶报表的jsp实现
·MPEG、RM、WMV电影文件格式转换指南
·QQ表情下载及QQ自定义动态表情下载
·用Excel实现定时提醒
·Flash制作环型立体旋转的动态文字
·利用VB6.0实现五线谱作曲工具
·Flash教程:加载图片按比例显示的实现方法
相关软件:
·Google Earth 动态卫星地图 汉化版 带我们进入间谍时代 能看见你家院子
·硬盘分区与格式化详解
·Google Earth 动态卫星地图 汉化版 能看见你家院子的车 电信做种
·TCP-IP详解卷2:实现
·动态网页制作视频教程_方成32讲 asf
·新会计准则之下的报表格式
·全能格式转换(Konvertor) V3.45.1 汉化版
·自由背单词V1.32
·搜狗拼音输入法(可自定义字体、大小、颜色等)V3.0Beta2
·《自由战士》

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.com All Rights Reserved. 鄂ICP备05000083号Powered by:vipcn