打印预览调用的问题

rzy_yx 2001-04-25 04:04:00
我在我的系统里做了一个打印预览程序,运行都正常。
问题是我每个报表窗体上都要放预览界面的程序。系统才能按自定义的预览窗体进行预览
我的报表有三四十个。我就要放三四十个预览界面的程序,非常麻烦,并且我的预览界面的程序都有一幅图片,因此编译出来的程序非常之巨(6M多),我用delphi自带的
预览程序还不足1.5M.
我的问题是:在总个系统中就只做一个预览界面的程序,然后其他报表就调用自定义的预览程序.不知各位高手有何良策.小弟在这里先谢了。
...全文
184 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
hp1200 2001-07-29
  • 打赏
  • 举报
回复
up
sclxp 2001-05-11
  • 打赏
  • 举报
回复
我可以给你发一个我用QREPORT的打印程序!
联系我:sclxp@163.net

jelly 2001-04-29
  • 打赏
  • 举报
回复
我发表一下自己的看法,只是初学delphi,可能不正确。
我觉得在delphi自带的qb2demo中使用的方法大概可行。
该例中在mainform中定义一个报表变量report,然后在程序运行中动态设定
report:=midiform.quickRep;
最后在mainform里调用report.preview
如果你的预览程序接口是一样的,上述方法应该可行
rzy_yx 2001-04-29
  • 打赏
  • 举报
回复
????
benzz 2001-04-28
  • 打赏
  • 举报
回复
rzy_yx,already E 4.28
benzz 2001-04-26
  • 打赏
  • 举报
回复
我不想介绍我的东西,只想您看到这样的方法做控件了

一次偶然机会,公司几个产品都需使用报表,因而由我主持开发了这样一报表控件,它经过了2,3,4,5版本的升级,又有很多功能的扩充,它目前有十几万行代码,经历了七八个大型项目的使用,减轻了我们太多的工作 使用此控件主要的目的:
1, 主要目的减轻程序员的工作量;我相信通过此控件简单报表设计只须一分钟不到;
2, 增加整个系统的稳定性,界面统一;
3, 减小整个应用程序大小,不必再为一个报表建立一quickrep甚至form;
4, 动态报表设计,它将随着Dbgrid的变化而变化;
5, 其它一些优点如:加入图表功能,可设定文字自动居左、中、右;
6, 在多层架构应用中使用,如CICS,
7, 支持多表头
8, 支持EXCEL导入出
整个报表设计过程:
1, 统计数据并反应在DBGRID中;
2, 增加lbs_rep控件,必须指定其两个属性,
a,Ddbgrid (打印的数据源 如 dbgrid1)
b:filename(报表样式名,测试时请将rptcomm.prt 拷到c:\,并指定为’c:\rptcomm.rpt’)
3, 增加如下代码:
lbs_rep1.clearvar; //清空变量
lbs_rep1.add('BM1=1999年12月公司统计总表'); //增加表头,变量名可调整
lbs_rep1.add('TJ1=统计条件:12月');
lbs_rep1.add('W1=列表人:张大勇');
lbs_rep1.execute; //执行预览与打印;
就这样简单,如须减变报表样式,请下载rptx.exe来调整;
属性说明:
(请不要使用已取消属性,有些属性必须按提示使用)
(ZC开头为图表属性,新开发)
属性 例值 说明
Dbgrid Dbgrid1 需列印的数据源,Tdbgrid,与Mydbgrid互斥
Dgdposi 0 报表列印的左边位置
Double Flase 必须设置为False,因与以前版本有关
Filename C:\rptcomm.prt 报表样式文件位置,在最终应用版本中请将所有样式文件拷贝到应用执行程序当前目录;
Haspsum False 已取消
Mydbgrid Mydbgrid1 需列印的数据源,Tmydbgrid,与dbgrid互斥
Noprint 已取消
Orientation poPortrait 报表纵横向
Papesize A4 纸张大小
Preview True 是否预览
Psumtext 已取消
Zcdataset Table1 数据源 Tdataset
Zcfields partno;cost 图表字段
Zcfieldcount 2 图表字段数量(必须与Zcfields对应)
Zchave True 是否含图表
Zcheight 350 图表高度
Zcissum True 图表在报表右端还是在底部
Zcleft -1 图表与报表左端相应位置
Zctitle 统计总表 图表标题
Zctop 10 相对高度
Zctype 4 图表类型
Zcwidth 400 图表宽度
Email:cengrong@163.net
如果想看一下请与我联系,不过没源程序
rzy_yx 2001-04-26
  • 打赏
  • 举报
回复
上位朋友的做法,我原来就试过,根本行不通。但我还是谢谢你。
各位中间难道没有打印方面的高手吗?????
忠诚期待!!!!!!!!
神奇的肚肚 2001-04-25
  • 打赏
  • 举报
回复
在onpreview中写入
form2.preview1.qrprinter:=form1.quickrep1.qrprinter;


在button1 onclick
form1.quickrep1.preview
jelly 2001-04-25
  • 打赏
  • 举报
回复
关注
rzy_yx 2001-04-25
  • 打赏
  • 举报
回复
不知是在预览窗体激活时载入报表,还是在报表预览时调用预览窗体。我想可能是后者,但不知具体的实现过程。 或者是后者?????
我在报表窗体的uses单元声明了预览窗体,
在quickrep1.onpreview事件中加入如下代码。
preview1.qrprinter:=quickrep1.qrprinter;等,在具体运行总是报错。。或者只显示自带的预览窗体,或只显示quickrep1............
各位高手是否明确指小弟一条出路???????????????
上面那位bpc的朋友的做法,小弟相当想知道,如果能详细讲解,那求之不得,如果能指出大概思路,我也相当感谢。愿闻其祥。。。。。。












bpc 2001-04-25
  • 打赏
  • 举报
回复
两种方法:
1.用继承;
2.把报表作成dll;
Apollo47 2001-04-25
  • 打赏
  • 举报
回复
我不是到你的预览程序是怎么做的。
你可以在预览程序里提供一些公共接口,用一个预览界面预览所有报表。
还可以每张报表一个预览界面,但这些预览界面是在预览时才生成,预览完毕就释放。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧