在使用Powerbuilder进行应用程序的开发过程中可使用Powerbuilder提供的函数Print()对数据窗口进行打印但是在实际应用中Print()函数提供的功能远不能满足用户的需要本文将介绍如何在Powerbuilder中实现分段打印的技巧从而满足应用程序特定功能的要求
有时我们需要把数据窗口显示的数据按照一定的格式进行分页打印而每页显示的数据是随机的每页又需要分别汇总所以每页的总和也不相等我们可以用RowsDiscard()和RowsCopy()函数与Print()函数联合使用
例如对于某一数据窗口我们需要按照每页打印行不足行补空行每页合计为当页总数这时我们首先把显示的数据窗口命名为dw_接着另建一个隐含的数据窗口格式和dw_完全相同并命名为dw_最后计算需要打印几页具体程序如下
int nmm
//每页打印mm行
mm = long(em_text)
n = int(dw_rowcount()/mm) +
//如果不足mm行直接打印
if dw_rowcount() < mm then
dw_print()
return
end if
//用FOR循环语句循环n次
int m =
for m = to n
dw_reset()
dw_rowsdiscard(dw_rowcount()Primary!)
//删除dw_中的数据
//从数据窗口的主缓沖区拷贝mm行到dw_
dw_RowsCopy(mmm+ (m+)mm Primary! dw_ Primary!)
//不足mm行补空行
if dw_rowcount() > and dw_rowcount() < mm then
int iijj
jj = dw_rowcount()
for ii = to mm jj
dw_InsertRow()
dw_ScrollToRow(dw_RowCount())
next
end if
//循环打印dw_窗口
dw_print()
next
利用以上代码我们就可以实现按特定的格式进行分段打印的功能了