在使用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
利用以上代碼我們就可以實現按特定的格式進行分段打印的功能了
From:http://tw.wingwit.com/Article/program/SQL/201311/16435.html