请教关于QReport的打印的问题?!!

vigrous_chen 2002-03-11 05:46:48
在实际过程中要求隐藏的列,在打印的时候不显示出来(类似于Excel中不打印隐藏的列)。打印是在QReport中进行,我在操作中可以控制隐藏的字段不显示出来,但是,被隐藏的Column中留下了
一段空白的空间。请问在QReport中能否控制使该空白的空间不出现或出现在最后
(这样在打印的时候看不出来)?
我想能否根据界面上显示的字段数(除去隐藏的字段) 在QReport中动态的创建
Bands 和QRLable,QRDBText,QRShape,从而满足条件,但是我确实苦于缺少对动态生成的了解太少,也不知如何处理,能否提供一些原代码参考?!!!!!!!!
在打印的过程中,有些字段的内容是很长的,在QReport的狭小空间里是远不能满足条件的,请问能否更改某些设置或写代码来实现自动换行的目的?
第三方控件我也用过,有的是乱吗?(如SReport,fReport等),有的下载了根本就不能用,
我实在是没办法。
请给一些源代码好吗?
...全文
29 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
vigrous_chen 2002-03-11
  • 打赏
  • 举报
回复
up
qiubolecn 2002-03-11
  • 打赏
  • 举报
回复
1, 我觉得你的思路好像不是很对,隐藏的列不显示出来? 你设计的时候是否已经控制好了其是否隐藏,如果是在运行期动态进行调整,它们的位置信息你必须通过手动进行设置,形如 NightCloud() 的代码;
2。进行自动换行一般来讲也不是完全自动的,因为中文字和英文字不同,一般的报表进行自动换行是根据中间的‘空格’进行的,所以,要么你自己给字段值加一个空格,或者加一个回车;
一般如下,设autosize为false, 高度要拖成两倍高,或者动态设置,在onprint里对字段长度进行分解;
3。现在国人喜欢用的报表中用得最多的我看应该是fastreport,reportbuild也很好,但生成文件特大,这些以前在gxg.3322.net见过,你去看看吧
redleafwj 2002-03-11
  • 打赏
  • 举报
回复
其实用QRExprMemo就可以解决你的问题。
例如:
需要竖着显示三个字段A,B,C
A
B
C
你可以QRExprMemo.lines在中写
{A}
{B}
{C}
这样就不用放上3个QREditText了。
当A没数据的时候,不会留下空当的。
NightCloud 2002-03-11
  • 打赏
  • 举报
回复
一个动态生成QRDBText的例子
procedure CreateQRText(ParentBand: TQRBand);
var
i:integer;
begin
SetLength(QRText,ParamNumber);
for i:=0 to ParamNumber-1 do
begin
QRText[i]:=TQRDBText.Create(self);
QRText[i].Parent:=ParentBand; //关键
QRText[i].ParentFont :=true;
QRText[i].Alignment :=taCenter;
QRText[i].DataSet :=ClientDataSet1; //关键

QRText[i].Top :=2+i;
QRText[i].Left :=DetailShape[i+1].Left+ iPerwidth div 2- QRText[i].Width div 2;
end;
其中注释关键的地方是一定要设的

5,388

社区成员

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

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