|
盒子资源分类 |
![]() |
|
|
|
Creport4.02 (中式报表控件) |
![]() |
关键字:Creport 中式报表控件 表格 打印 |
来 自:原创 |
平 台:Win9x,Win2k/NT,WinXP |
下载所需:0 火柴 |
深浅度:高级 |
完成时间:2003/11/28 |
发布者:godman138 |
发布时间:2003/12/3 |
编辑器:DELPHI6 |
语 种:简体中文 |
分 类:报表 |
下载浏览:3643/20836 |
|
|
|
|
{*************************************************/ * 表格式报表处理系统 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) |
![]() |
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们! |
相关文章 |
|
![]() |
|
相关评论 |
![]() |
共有评论27条
当前显示最后6条评论
|
kevinfarias |
2005/2/25 11:06:52 |
确实发现预览窗口中的打印出错,跟踪到LoadTempStream(I);时出错,是里面的FTempStreams[Page-1].Position := 0;这句。其它功能还不错。 |
ningxc |
2005/6/9 13:06:41 |
用demo可以,自己做个就不行,reportcontrol找不到。 控件是不错,我想也应该用起来方便,这样才不失是个好东东。 不过小弟,还是在里感谢一下开发此控件的大侠。 |
sunslove |
2005/6/25 9:16:29 |
请赐教: 问题:为什么我先用CReport4.02画好了报表模版,然后给数据导入了,用下面的语句:ReportRunTime1.PrintPreview(True); , 可预览报表,但是一按预览界面中的打印按钮就出错,报错现场是有内存(00000000 地址内存)不能读写。 最后出现消息对话框:‘形成报表时参数出错,请检查、、、、’。不能打印。 如果我给ReportRunTime1.PrintPreview(True); 改为ReportRunTime1.Print(True); ,就可直接打印了。为什么?
有人解决了吗??? |
sunslove |
2005/6/25 11:14:37 |
已经解决预览打印出错的问题 原因是:在//ReportControl.pas 的6032 行 procedure TReportRunTime.Print(pYn: Boolean); // update 李泽伦 模块中第一句 DeleteTempStreams; //99.3.9 这一句把FTempStreams清除了。 但是直接打印在 if cp_prewYn <> True then begin //初始化 FREPmessForm.show; //李泽伦加2001.4.27 i := PreparePrintk(False, 0); PreparePrintk(True, i); end; 又对 DeleteTempStreams进行了初始化,所以直接打可以 把 6032改为 if cp_prewYn <> True then DeleteTempStreams; //99.3.9 就可以了,预览状态打印不删除DeleteTempStreams |
lzharbor |
2005/8/18 16:56:06 |
to recent:
2.点工具中环境选项,再选路径设置: (1)将控件所在目录增加到路径中 (2)将C:\Program Files\Borland\Delphi6(7)\Source\ToolsAPI(也有可能在其它目录,视自已DELPHI安装目录而定,找到ToolsAPI目录)路径加入. 是什么意思? 我在Tools/Evironment options/preferences/shared repository中添加ToolAPI路径、控件安装路径(Lib),可使问题依旧。如何解决?不吝赐教!谢谢! |
webdou |
2005/11/1 16:47:38 |
xp sp2 ,delphi7 为什么无法安装 1.运行DELPHI,打开Creport4.01.dpk文件,点编译,时 出现错误找不到dml.dcp,文件,怎么回事 |
我要发表评论 |
查看全部评论 |
![]() |
|
|
|