有人用QuickReport吗?紧急问题/(100分)

  • 主题发起人 主题发起人 maming
  • 开始时间 开始时间
M

maming

Unregistered / Unconfirmed
GUEST, unregistred user!
自定义报表的打印:用针式打印机就报'Printer selected is not valid.'错误,用
激光打印机不出错,如果在程序设计时指定为A4或是别的纸张也不出错了(就是不能用custom)
这是何故?
我有qr3有源码,可不全,还有很多的地方有错,请各位多多帮忙,如果你不知道就请帮
忙提前吧!
 
同志们啊!帮个忙吧!
 
在程序中重新选择针打重试
 
是本地打印,而且只有一台打印机。
只要是定制的就打不出报上面的那个错。
 
自定义的是不是定义的非法了,比如太宽了,上下左右。。。。。。
单独编个程序试试
我有一次在针式打印机上调试好了,到了激光打印机上就变了样,编打印程序比较麻烦
 
我设置的是100X100,而且在预览的时候很好。
 
我的STAR 3200+就如果把纸设得象发票那么大就不行了。。。。。。。。。。。
FASTREPORT就产生NNNNNN页,停都停不了,只能用ctrl+del+..........
针打好像不能打太小的纸
解决办法是把报表大小设计成两张纸那么大。。。
数据BAND是一张纸的大小,明白否?
 
to cch_b:不是很明白。
>>解决办法是把报表大小设计成两张纸那么大。。。
这可不好办啊!
我又收不到mail通知了。
 
多谢三位了,终于搞定了,请看以下代码来自qusoft.
如果你没有quickreport的源码,你将无法解决这个问题;
Printer setup, paper formats and bins
Amended : 3rd October 2001
The printer setup dialog provideddo
es not work as expected.
The following changes to QRPrntr.pas will make the standard
printer object the output device.
SEE ALSO : Adding extra bins and paper formats
====================== CHANGES =============================
1. TQRPrinterSettings.ApplySettings - disable most of this proc,
leaving only the Orientation setting to be made.
procedure TPrinterSettings.ApplySettings;
begin
FPrinter.GetPrinter(FDevice, FDriver, FPort, DeviceMode);
DevMode := GlobalLock(DeviceMode);
{$ifdef DISABLED}
// QBS Printer 1. Put in these condionals and
// all the code between them is ignored
{$endif}
SetField(dm_orientation);
if Orientation=poPortrait then
DevMode^.dmOrientation := dmorient_portrait
else
DevMode^.dmOrientation := dmorient_landscape;
FPrinter.SetPrinter(FDevice, FDriver, FPort, DeviceMode);
GlobalUnlock(DeviceMode);
end;

2. TQRPrinter.create - amend as shown here -
..
..
FPrinterOK := Printer.Printers.Count > 0;
// QBS PRINTER 2 point aPrinter to Printer.
//aPrinter := TPrinter.Create;
aPrinter := printer;
..
..
3. TQRPrinter.Destroy - amend as shown -
destructor TQRPrinter.Destroy;
begin
if Status <> mpReady then
Cleanup;
if FCloseControl <> nil then
FCloseControl.Free;
// QBS PRINTER 3. no need to free.
//aPrinter.Free;
aPrinterSettings.Free;
PageList.Free;
if FPage <> nil then
FPage.Free;
if Client <> nil then
if Client is TQRPreview then
TQRPreview(Client).QRPrinter:= nil;
inherited Destroy;
end;
4. TQRPrinter.SetPrinterIndex - amend as shown.
procedure TQRPrinter.SetPrinterIndex(Value : integer);
begin
if PrinterOK then
begin
aPrinter.PrinterIndex := Value;
// QBS PRINTER 4. two lines out
// If you have problems losing some settings
// try restoring the lines below.
//ResetDriver(aPrinter);
//aPrinterSettings.GetPrinterSettings;
end;
end;

 
to maming:
我发的 D6 的 Printers 单元收到了吗?大概也没有帮助了。另想问一下,上面 quSoft
的改动中
1、TPrinterSettings.ApplySettings 是把除了打印方向之外的其他参数设置的代码都注释
掉吗?
 
后退
顶部