{*************************************************/ * 表格式报表处理系统 of DELPHI
* 原创:王寒松
* 优化(Ver 4.02):宋科(Godman) * 优化内容: 1、增加对流的支持 2、将生成临时文件改为用内存流 3、优化了一些代码,更OO 4、将部分全局变量改为类域 5、修改了因为找不到数据集或字段而报错 6、整理了代码的缩进 7、整理了代码的一些大小写
大家修改后最好是发布到Internet,这样大家共同完善,保护了别人的努力也同时保护了自已的努力。
请将修改后的源码发我一份:Godman138@163.com
宋科(Godman) 珠海 2003.11.27
* 修改: 李泽伦,内容(CReport V4.01):
1.按国人习惯的表格设计,未满一页自动以空表格补齐 (可选) 2.对预览窗口进行了重新设计,在预览时可重设边距及纸张(增加了用户调用页面设置等内容),更加美观和实用. 3.完全重写了PreparePrint过程,不再出现打印空页或有时不能完全打印数据等问题 4.可在预览时由最终用户通过拖动边框线立即永久性修改某一单元格宽. 5.修改了报表模板编辑器(再不需要EXE文件了),与控件为一体,双击即可调用。pageNo有3种样式可选(第?页,第?/?页,第?-?页) 6.增加了数据表字段列表按健,可通过拖动字段自动填入模板单元格中. 7.增加了在模板中控制数值显示格式的功能,不用在字段属性中设置,由此也可不必再设置永久字段了。 8.更正了拆分单元格后,不能对齐的问题。 9.增加了在IDE中的预览和模板编辑器调用功能. 10.增加了两个假函数,可实现统计汇总功能.
1:`SumPage(j1-j2+j3...) 实现每页每列小计
2:`SumAll(j1+j3-j2...) 实现整个报表每列合计
11.去掉了exe编辑模板程序,因为双击控件即可调用,减小了控件大小(编译控件目录下的CReportEdit工程,也可形成单独的exe文件) 12.增加了预览及打印图片功能(图片可根据单元格大小随意宿放,除可在模板编辑程序中编辑外,还能自动识别图片字段并预览或打印). 13.可打印dbgrid. 14.新增及完善了动态报表的支持功能,可对单个cell或成批cell进行设置或赋值。 15.可将表导入EXCEL,机上无需装office,速度是极快。方法简单,一条语句即可。 2003.8.7
***************************************************}
一、安装 1.运行DELPHI,打开Creport4.01.dpk文件,点编译,再点INSTALL. 2.点工具中环境选项,再选路径设置: (1)将控件所在目录增加到路径中 (2)将C:\Program Files\Borland\Delphi6(7)\Source\ToolsAPI(也有可能在其它目录,视自已DELPHI安装目录而定,找到ToolsAPI目录)路径加入.
二、使用
1、使用样板见DEMO程序。 2、数值字段的显示打印格式可在报表模板中设置,如模板中未设置,则以数据库中的设置为准。 3、`SumAll(j1-j2+j3).SumPAge(j1-j2+j3..)的用法: (1).如用第2列的和减第3列的和再加第5列的和则应这样填写模板中的单元格:`SumAll(2-3+5); (2).`SumAll(4)则代表第4列的和。 (3).模板中第1列的标号为1,依次类推。 (4).`SumPAge(j1-j2+j3..)的用法与SumAll(...)相同,不同之处是前者统计整个表,后者仅统计每一页. 4、在IDE中双击ReportRunTime控件可立即调用Creport模板编辑程序。 5、在IDE中设置了相关属性后可点鼠标右健调用预览功能. 6、editept属性为真时,预览中可调用编辑模板程序. 7、enabledit属性为真时,预览中可编辑当前要打印的页和通过拖动调整整个表格单元格宽(暂不能调整高度). 8、reportfile与setdata两个属性均可在调用预览或打印前由程序语句动态设置,不一定非要在ide中设置,但要ide中预览则必须在中ide设置。 9、可打印预览bmp.jpg.ico等类型图片,字段中的BMP图片可自动打印及预览.
10、关于ide中编辑模板与预览问题。 (1)、如果ReportRunTime控件的reportfile属性已填列,则打开编辑过程的同时自动打开该文件(要保证此文件已存在)。 (2)、在ide中预览时,应设置好两个属性:一是reportfile,二是setdata(格式见例子程序),否则不能正确预览。
三、关于demo例子工程
装入demo工程后,可能会有文件错误或其它错误提示,那是因为在我的机子上设置的报表路径与数据库路径与你机子上的不同。打开 data.pas文件,重新设置两个表的databasename属性为t1.db,t2.db文件的路径;设置ReportRunTime1控件的Reportfile属性为CReport_demo.ept文件所在路径及名字即可。
四、问题
本版去掉了原AutoGroup等属性,原工程中用到本控件的单元文件,应在IDE中重新打开一次,出现提示时回答IGNORE,去掉autogroup或其它属性,重新编译即可。
欢迎修改完善,并毫无保留的公布。 有何建议或问题也请来电。
成都 李泽伦(lzl-self@sohu.com) |