报表分页问题(100分)

  • 主题发起人 主题发起人 GBlueMan
  • 开始时间 开始时间
G

GBlueMan

Unregistered / Unconfirmed
GUEST, unregistred user!
我用QuickRep做了一个报表,是分成很多页单独做的,现在想把他们合起来打印,双面打印
,故要编上页码,分奇偶页打印。
考虑用 QRCompositeReport主件,但现在有一个问题,如果第一页内容较少,第二页的内容
就会跑到第一页,我如何才能让他们保持各自的位置不变,第二页是另起一页打印,最好
预览也能分开预览。另外,这样的分页能实现奇偶页分开打印吗?
 
在要分页的地方的 BeforePrint 事件强行使用 TQuickRep 的 NewPage 方法
 
但如果想在预览时也能看到效果应该怎么做呢?
这样能分奇偶页打印吗?
 
其实BeforePrint事件在预览时一样有效,所以应该可以做到。自己要多试验!!
我原来做过打印列表数据时,因为特殊要求每页打印的行数到某个位置时分页,
所以我相信能做到。至于奇偶页打印,也可通过写代码控制打印奇数页后,弹出
提示框要用户把刚打印的纸张再次反面放入即可。
 
好像在BeforePrint事件里用NewPage,在预览时无法实现看到结果!
如果组合成功,如何用代码分页打印??
 
如何控制只打奇数页或偶数页???
有人回答我给他加分!!!!
 
如果是report machine的话,打印前的对话框中有打印全部页、奇数页,偶数页的选择,向下兼容qr,可以转换成rm的报表。
 
关注:最好能有个例子
 
请问一下你的QuickRep使用了数据源吗?如果没有的话是可以组合的。
首先,在QuickRep中加一个TQRStringsBand控件QRStringsBand,
所有的其他控件必须在QRStringsBand中,定义一个变量FirstPage:Boolean
在QRStringsBand的BeforePrint的事件中加入
if FirstPage then
FirstPage:=False
else
QuickRep.NewPage;
在QuickRep的BeforePrint的事件中加入
FirstPage:=True;
for i:=0 to Cntdo
//Cnt为报表页数
QRStringsBand.Items.Add('Invoice'+IntToStr(i));//随便加什么都可以
在QuickRep的AfterPreview的事件中加入或在AfterPrint中加入
QRStringsBand.Items.Clear;
然后就可以根据QuickRep的PageNumber属性对QuickRep中的其他控件进行处理,
也可根据具体情况处理奇数页或偶数页的打印,不知这些对你有没有帮助!
 
试着将QuickRep上第一页的最后一个QRBand的ForceNewPage属性设为True看看。
 
我也遇到过此类问题,
不理想,
最后干脆用各个按钮实现不同页面的打印,
quickrep 的合并报表组件我感到使用不是很理想,
例如只有第一页的标题被显示,
其它页标题都被忽略

 
要控制奇偶页的打印可以调用报表的Printersetup方法来呼出打印机设置对话框,里面可以设置单双页打印。
或者是直接修改报表的PrinterSetting属性设置。
 
感谢各位参与
 
后退
顶部