用QuickReport打印宽行打印纸幅面报表,打印不出完整幅面怎么办?(200分)

  • 主题发起人 主题发起人 JaneLin
  • 开始时间 开始时间
J

JaneLin

Unregistered / Unconfirmed
GUEST, unregistred user!

报表以Quickreport 画出,reportsetting中将其大小设为Customer Size,宽度为350mm高度为300mm,并于Windows NT系统的 打印机设置中打印机属性和文档默认设置的有关纸张部分都设为A2幅面,且在Quickreport的PRIVIEW窗口的打印机设置中的纸张亦设为A2幅面(因为我发现A2幅面很宽),但以LQ1600K 打印该报表,均只能打印原报表宽度的一半左右,高度亦不能完全打印出来,将纸张幅面改变为其它,情况依然。但报表的Preview显示完全正常,且该打印机确能打印宽幅纸,请问这是因何?怎样处理?
报表中有许多表格,每一格子数据不同,我的想法是在每一格子上放一QRlabel,并为每一QRlabel编流水号( 如A11,A12,A13等,希望在显示或打印前通过FOR i:=1 to n do
, 利用其流水号的特点组合不同的QRlabel名,并将具体数据赋给QRlabel.caption,而不是逐一的为每一个QRlabel.caption赋值。 以上想法可行吗?但如何组合不同的QRlabel名,如何找到具体的QRlabel,并为之赋值?或有否其他方法?

 
reportsetting中将其大小设为A2,于Windows NT系统的 打印机设置中打印机属性和文档默认设置的有关纸张部分都设为A2幅面,因Quickreport打印中此兩項 设置需相同.
我的想法是在每一格子上放一QRlabel,并为每一QRlabel编流水号( 如A11,A12,A13等,希望在显示或打印前通过FOR i:=1 to n do
, 利用其流水号的特点组合不同的QRlabel名,并将具体数据赋给QRlabel.caption,而不是逐一的为每一个QRlabel.caption赋值。 以上想法可行吗?但如何组合不同的QRlabel名,如何找到具体的QRlabel,并为之赋值?或否其他方法?
Quickreport中qrsys有detailcount應可代用.

 
1:打字时请注意换行
2:qreport和nt纸张都应该设成Cusotm Size
3:许多相同的控件,比如qrlabel可以只用Tag属性区分他们。具体怎么做,我忘了,可以查书.
哦,I forgot to wrap line too. :-))
BTW: JaneLin,are you MM?
 
Sorry,我没有别的意思。似乎你刚刚得到200分就拿来提问,论坛里的MM都这么
不会过日子?以前碰到过的.
 
我也遇到这个问题,
把打印机的页面设置设为自定义就可以了!
但每次执行程序时必须先在控制面板里面改一下,
有什么方法能够在程序里设置?
 
改打印机设置,那不是办法。
找到qreport的源码出来,把他的bug改了就能打custom纸了
 
我看到www.qusoft.com--quickreport的公司有qreort 3.0的update,
不知改掉这个虫虫没有
 
假设quickreport的dataset为table1并有一名为name的字段,所在
form为form1,如下方法可以实现通过qrlabel的名称分别赋值:
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
n:string;
begin
for i:=1 to 3do
begin
n:='qrlabel'+inttostr(i);
table1.Next;
(form1.FindComponent(n) as TQRLabel).Caption:=table1.fieldbyname('name').value;
end;
end;
 
反正3.0.4都没有,不过我改了他一下,好象就可以打了
 
我也从来没有成功的打印过宽行纸,试过各种方法,QuickReport的确有问题,
请到isAlex.yeah.net 去下载一个带源码的3.0.5试一下。
 
我有成功的打印过宽行纸,
 
可以声明一个TQRLabel的数组QRLabel : array[1..M] of TQRLabel;
之后可以通过for 循环动态创建他:
for I : = 1 to Mdo
begin
QRLabel := TQRLabel.Create(self);
QRLabel.Parent := someband{具体是哪个band看你的}
QRLabel.Left := ...
QRLabel.Top := ...
QRLabel.Caption := ...
end;
上述程序可以在OnBeforePrint里设定。
至于Caption可以先建立一个TString或一个数据库,临时读取
无法打印宽行纸好象是QuickReport的一个bug.
试试其他的控件吧。
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
2K
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部