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

在通常的Server/Client方式MIS开发中,总是有没完没了的报表需要制作,调试报表花费的时间也是最多而且乏味,还常常不能满足客户的要求。要是能够让用户自己调整报表的格式和内容,然后将它保存下来,程序下次启动时它自动调用保存了的报表格式那有多好。本人通过如下方法最终实现了用的要求。

PB(PowerBuilder)有一种以PSR结尾的特殊的保存报表的文件格式(本文简称作PSR文件)。根据数据窗口可以直接读取PSR文件生成报表的原理,程序通过生成PSR文件,实现动态报表格式的保存。

一、实现原理:

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

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

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

二、实现过程:

1、建立一个数据库表用以保存报表格式文件。

表名:dyn_report
Dwobject Varchar2(20) 数据窗口对象名称 Primary key
Rptitle Varchar2(80) 报表的标题名称  
Memo Long raw 报表格式

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

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

控件名称 控件含义
Dw_print 数据窗口对象
Cb_exit 退出按钮
Cb_savereport 报表格式保存按钮
时间: 2024-12-31 07:34:34

PB动态报表格式自由定义的实现的相关文章

java sql编辑器 动态报表 数据库备份还原 quartz定时任务调度 自定义表单 java图片爬虫

获取[下载地址]   QQ: 313596790A 调用摄像头拍照,自定义裁剪编辑头像 [新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统]B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,开发利器)+快速构建表单;  技术:313596790 freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类,service等完整模块C 集成阿里巴巴数据库连接池druid;  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩

MIS系统开发利器,实施、维护人员自定义报表的福音,AgileEAS.NET SOA平台动态报表指南

一.前言      AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本.缩短开发时间,快速适应市场变化的目的.      AgileEAS.NET SOA中间件平台提供了敏捷快速开发软件工程的最佳实践,通过提供大量的基础支撑功能如IOC.ORM.SOA.分布式体系及敏捷并发开发方法所支撑的插件开发体系,以及提供了大量的

obiee-OBIEE如何制作动态报表

问题描述 OBIEE如何制作动态报表 本人有用Oracle BIEE做了一张report,数据是通过DataSet从数据库里取出来的,现在有个问题,如何将paramters里选择的值动态的传入这个DataSet里,在点击Apply Now时自动更新DataSet里的sql,重新从数据库里取出满足条件的数据. 例如:现在有一张报表 报表显示有登录时间,登入账号,登录IP等,打开报表后自动查出的是登录日期为今天的的数据,现在要求在paramters里选择一个日期或者是日期区间,取出登录日期是这个选择

pdf-打印机选择对水晶报表格式的影响

问题描述 打印机选择对水晶报表格式的影响 大家好,这边有个问题,程序用水晶报表输出数据到PDF,选择不同的打印机,有时一页是26行,有时一页是27行,对比了下27行的PDF一页中内容部分比26行的PDF要高(就是开始部分要高些,结束部分要低些),请问有人知道是打印机的什么配置导致选择不同打印机输出的PDF格式有所差异么?

用友CELL软件如何实现动态报表模板的定制

问题描述 JSPJAVA如何实现通用动态报表模板的定制有数据库的操作越详细越好谢谢各位大神了

sql server-SQL server2012如何创建动态报表?

问题描述 SQL server2012如何创建动态报表? 今天自己试着用了那个链接服务器读取了另外一台数据库的数据,试着做了个简单的报表. 但是现在我希望能实现它自己刷新报表.有什么好的办法麽? 看了有个power view闹不清楚干嘛的. 解决方案 可以用C#调用rdlc创建动态报表,然后用sql server 集成服务去调用. http://blog.csdn.net/fwj380891124/article/details/8804802 解决方案二: 需要什么报表自己写sql语句了

c#动态报表制作(winform)中

问题描述 如何用c#制作动态报表(winform)!我是初学者,以前没做过报表! 解决方案 解决方案二:你想做报表?用水晶报表组件没?解决方案三:你这个动态报表能具体说说是什么要求嘛,不然我们怎么知道你要实现什么功能.解决方案四:是做一个成绩单!实现成绩单的的打印.每个同学所选的科目不同,所以要动态的增加课程的名称.

DevExpress.XtraReports.UI.XtraReport 动态报表

原文:DevExpress.XtraReports.UI.XtraReport 动态报表 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using DevExpress.XtraTab;usin

【SSRS】入门篇(五) -- 设置报表格式

原文:[SSRS]入门篇(五) -- 设置报表格式 在上一节 [SSRS]入门篇(四) -- 向报表添加数据 我们设置好了报表,并可以预览到数据,如下图: 当报表完成后,有个重要的工作就是美化报表格式,这一节将讲解: 设置日期格式 设置货币格式 更改文本样式和列宽 设置日期格式:默认情况下,Data字段显示日期和时间信息:这边我们格式设置为中文日期. 1.单击"设计"选项页: 2.右键单击字段[Date],在弹出的菜单单击"文本框属性": 3.单击"数字&