500分求解win2000中 QUICKREPORT的打印与走纸不正确,因为问题怕无人回答分又无法收回,所以先设50分,答对者500分双手承送.(50分)

阿朱

Unregistered / Unconfirmed
GUEST, unregistred user!
我用的是WIN2000,没有自定义格式,不过可以创建格式。
我在QUICKREPORT中设置为CUSTOM,预览没事,打印走纸却都老按A4。
但我在程序中弹出PrinterSetupDialog,设置打印首选项为我创建的那种格式也不行。
我有QUICKREPORT3.0的源码,在qrprntr.pas中有TPrinterSettings.ApplySettrings
if PaperSize = Custom then

begin

if Supported(dm_paperlength) then

begin

SetField(dm_paperlength);
DevMode^.dmPaperLength := PaperLength;
end;

if Supported(dm_PaperWidth) then

begin

SetField(dm_paperwidth);
DevMode^.dmPaperWidth := PaperWidth;
end
end;

function TPrinterSettings.Supported(Setting : integer) : boolean;
begin

Supported := (DevMode^.dmFields and Setting) = Setting
end;


我的Supported返回都是FALSE,即无法设置自定义宽高,当然打印走纸不正常,但为什么预览正常。
我不知道为什么,是不是我的打印机不支持自定义,我的打印机为Star ar 3200+
但我把报表设置为Default,打印首选项在开始/设置/打印机设置/star ar 3200+
的打印首选项中选好我的自定义格式,打印走纸却正常了。但纸张的横向竖向却不能控制了。
于是我又做了实验,报表设为DEFAULT,打印首选项我弹出PrinterSetupDialog更改,但还是不行,
必须在开始/设置/打印机设置/star ar 3200+中手工设置才可以。我又怀疑是PrinterSetupDialog
有问题,参考大富翁上30多个关于自定义纸张的帖子,用openprinter,getprinter,setprinter,
DocumentProperties,都不行,我是在预览前设定的,因为在预览后设定,我想即使打印走纸正确,
但预览与打印结果不是所见即所的,用户也是不答应的。所以大家不要在打印前设定这方面思考了。
另外我已与QuickReport绑定,请不要提议用别的.
 
换一台打印机试一下。我曾经在打印票据时碰到过类似情况。打印设置的完全正确,但打出
的效果却是错误的。换了一台epson1600k就好了。star打印机的毛病。
 
只在quickreport中自定义纸张是没有用的,必须与windows中的自定义纸张的设置一样才行!
 
NT 和 Win2000 必须把系统的打印机纸张页设置成 Custom 才行。
 
quickreport自身的问题,
1/升极quickreport至新版本.
2/采用Report build5
推荐下载Report build5
其快及运行不受限制.
如用ACCESS的报表.
我试用2, 一切OK.
 
To 小草:
我的QuickReport是3.08,应该是最新版本.
report Build我也有,但我用Qr做了,已来不及了,我也看了你过去对自定义纸张的回答,
但实验了很多,不奏效。
另外我枚举当前打印机的支持的纸张格式,EnumForms,得到的却是全部的打印机格式。怎么
回事,另外我想获得打印机的打印首选项,怎么取不到,用GetPrinter,DocumentProperties
都不行,请各位老大伸出援助之手,Help Me!
 
必须采用Report build5或者其他报表
此问题我也试了很多次, API函数都用上了
无效.
请动手修改用Report build5.
EMAIN RIKUTX@SINA.COM
祝走运.
 
阿朱:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
553
import
I
I
回复
0
查看
614
import
I
I
回复
0
查看
876
import
I
顶部