P
progboy
Unregistered / Unconfirmed
GUEST, unregistred user!
近一段时间维护一个旧的程序,其中的报表是使用QuickReport控件制作的。在使用过程中发现用QuickReport制作报表有几个突出的问题,始终不得其解:
1.这个程序是用Delphi6开发的,用的是自带的QuickReport版本制作报表。这个版本的QuickReport似乎不能使用自定义纸张,也就是我要在一页穿孔纸上打印多张单据,没法做到打印完一张后就停下来,而是每打印一次就自动走一页纸。我曾试过将报表纸张大小设成自定义,系统打印机的纸张也设成自定义的大小,但是不起作用,好像每次都是走A4大小的一页纸。此时用的是Win2000系统,LQ300K打印机。
2.后来将QuickReport升级到4.04版,可以按照自定义的纸张走纸了。但是又出现另一种情况,如果要打印的内容不足以将定义好大小的一页纸打满,在要打的内容打完后,打印机就会立刻停下来,而不是将这一页走完。而且即使换页了,也会在打印完前一页后向下多走一小段,这就造成下一页纸的打印位置向下延了一小段。如果是连续打印多页,每一页结束后都会多走一小段,越窜越多。这样一来,如果打印的是单据,那么就会出现单据内容打完了,可是一页纸没走全就停下来的情况;如果打印的是报表,并且需要连续打印多页时,那么每打印一页就会向下蹿一小段,随着打印页数的增多,用不了几页就会出现某一页的内容部分打在该页,另一部分打在下一页的情况。
[red]关于QuickReport的这个问题似乎可以这样定义:QuickReport并没有严格按照用户选用的或自定义的纸张大小打印,而是当要打印的内容不足一页时,打印完不换页;当要打印的内容多于一页后会换页,但在打印下一页之前会莫名其妙的多走纸,从而造成无法连续打印多页纸的问题。[/red]
因为程序比较大,用户也比较多,换用其他的报表软件重做报表几乎是不可能的。我非常想知道造成这些问题的是打印机型号、操作系统还是QuickReport自身的问题?在不要求用户更换打印机,也不需要更换报表软件的情况下有没有解决方法?
1.这个程序是用Delphi6开发的,用的是自带的QuickReport版本制作报表。这个版本的QuickReport似乎不能使用自定义纸张,也就是我要在一页穿孔纸上打印多张单据,没法做到打印完一张后就停下来,而是每打印一次就自动走一页纸。我曾试过将报表纸张大小设成自定义,系统打印机的纸张也设成自定义的大小,但是不起作用,好像每次都是走A4大小的一页纸。此时用的是Win2000系统,LQ300K打印机。
2.后来将QuickReport升级到4.04版,可以按照自定义的纸张走纸了。但是又出现另一种情况,如果要打印的内容不足以将定义好大小的一页纸打满,在要打的内容打完后,打印机就会立刻停下来,而不是将这一页走完。而且即使换页了,也会在打印完前一页后向下多走一小段,这就造成下一页纸的打印位置向下延了一小段。如果是连续打印多页,每一页结束后都会多走一小段,越窜越多。这样一来,如果打印的是单据,那么就会出现单据内容打完了,可是一页纸没走全就停下来的情况;如果打印的是报表,并且需要连续打印多页时,那么每打印一页就会向下蹿一小段,随着打印页数的增多,用不了几页就会出现某一页的内容部分打在该页,另一部分打在下一页的情况。
[red]关于QuickReport的这个问题似乎可以这样定义:QuickReport并没有严格按照用户选用的或自定义的纸张大小打印,而是当要打印的内容不足一页时,打印完不换页;当要打印的内容多于一页后会换页,但在打印下一页之前会莫名其妙的多走纸,从而造成无法连续打印多页纸的问题。[/red]
因为程序比较大,用户也比较多,换用其他的报表软件重做报表几乎是不可能的。我非常想知道造成这些问题的是打印机型号、操作系统还是QuickReport自身的问题?在不要求用户更换打印机,也不需要更换报表软件的情况下有没有解决方法?