配色: 字号:
在PB中实现分段打印功能
2014-03-04 | 阅:  转:  |  分享 
  
在PB中实现分段打印功能

在使用Powerbuilder进行应用程序的开发过程中,可使用Powerbuilder提供的函数Print()对数据窗口进行打印,但是在实际应用中,Print()函数提供的功能远不能满足用户的需要。本文将介绍如何在Powerbuilder中实现分段打印的技巧,从而满足应用程序特定功能的要求。



有时,我们需要把数据窗口显示的数据按照一定的格式进行分页打印,而每页显示的数据是随机的,每页又需要分别汇总,所以每页的总和也不相等,我们可以用RowsDiscard()和RowsCopy()函数与Print()函数联合使用。



例如对于某一数据窗口,我们需要按照每页打印5行,不足5行补空行,每页合计为当页总数。这时我们首先把显示的数据窗口命名为dw_1,接着另建一个隐含的数据窗口,格式和dw_1完全相同,并命名为dw_2,最后计算需要打印几页,具体程序如下:



intn,mm



//每页打印mm行



mm=long(em_1.text)



n=int(dw_1.rowcount()/mm)+1



//如果不足mm行,直接打印



ifdw_1.rowcount()


dw_1.print()



return



endif



//用FOR循环语句,循环n-1次:



intm=0



form=0ton-1



dw_2.reset()



dw_2.rowsdiscard(1,dw_2.rowcount(),Primary!)



//删除dw_2中的数据



//从数据窗口的主缓冲区拷贝mm行到dw_2



dw_1.RowsCopy(mmm+1,(m+1)mm,Primary!,dw_2,1,Primary!)



//不足mm行补空行



ifdw_2.rowcount()>0anddw_2.rowcount()


intii,jj



jj=dw_2.rowcount()



forii=1tomm-jj



dw_2.InsertRow(0)



dw_2.ScrollToRow(dw_2.RowCount())



next



endif



//循环打印dw_2窗口



dw_2.print()



next



利用以上代码,我们就可以实现按特定的格式进行分段打印的功能了。

献花(0)
+1
(本文系天哥的资料首藏)