在使用Powerbuilder进行应用开发过程中可使用Powerbuilder提供Pr对数据窗口进行打印但是在实际应用中Pr提供功能远不能满足用户需要本文将介绍如何在Powerbuilder中实现分段打印窍门技巧从而满足应用特定功能要求
有时我们需要把数据窗口显示数据按照定格式进行分页打印而每页显示
数据是随机每页又需要分别汇总所以每页总和也不相等我们可以用RowsDiscard和RowsCopy和Pr联合使用
例如对于某数据窗口我们需要按照每页打印5行不足5行补空行每页合计为当页总数这时我们首先把显示数据窗口命名为dw_1接着另建个隐含数据窗口格式和dw_1完全相同并命名为dw_2最后计算需要打印几页具体如下:
n,mm
//每页打印mm行
mm = long(em_1.text)
n = (dw_1.rowcount/mm) + 1
//如果不足mm行,直接打印
dw_1.rowcount < mm then
dw_1.pr
end
//用FOR循环语句循环n-1次:
m = 0
for m = 0 to n - 1
dw_2.re
dw_2.rowsdiscard(1,dw_2.rowcount,Primary!)
//删除dw_2中数据
//从数据窗口主缓冲区拷贝mm行到dw_2
dw_1.RowsCopy(mmm+1, (m+1)mm, Primary!, dw_2, 1, Primary!)
//不足mm行补空行
dw_2.rowcount > 0 and dw_2.rowcount < mm then
ii,jj
jj = dw_2.rowcount
for ii = 1 to mm - jj
dw_2.InsertRow(0)
dw_2.ScrollToRow(dw_2.RowCount)
next
end
//循环打印dw_2窗口
dw_2.pr
next
利用以上代码我们就可以实现按特定格式进行分段打印功能了
最新评论