明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

在PB中完成分段打印技巧

[摘要]文/張瑜  在使用Powerbuilder進(jìn)行應(yīng)用程序的開發(fā)過程中,可使用Powerbuilder提供的函數(shù)Print()對(duì)數(shù)據(jù)窗口進(jìn)行打印,但是在實(shí)際應(yīng)用中,Print()函數(shù)提供的功能遠(yuǎn)不能滿足...
文/張瑜

  在使用Powerbuilder進(jìn)行應(yīng)用程序的開發(fā)過程中,可使用Powerbuilder提供的函數(shù)Print()對(duì)數(shù)據(jù)窗口進(jìn)行打印,但是在實(shí)際應(yīng)用中,Print()函數(shù)提供的功能遠(yuǎn)不能滿足用戶的需要。本文將介紹如何在Powerbuilder中實(shí)現(xiàn)分段打印的技巧,從而滿足應(yīng)用程序特定功能的要求。

  有時(shí),我們需要把數(shù)據(jù)窗口顯示的數(shù)據(jù)按照一定的格式進(jìn)行分頁打印,而每頁顯示的  
數(shù)據(jù)是隨機(jī)的,每頁又需要分別匯總,所以每頁的總和也不相等,我們可以用RowsDiscard()和RowsCopy()函數(shù)與Print()函數(shù)聯(lián)合使用。

  例如對(duì)于某一數(shù)據(jù)窗口,我們需要按照每頁打印5行,不足5行補(bǔ)空行,每頁合計(jì)為當(dāng)頁總數(shù)。這時(shí)我們首先把顯示的數(shù)據(jù)窗口命名為dw_1,接著另建一個(gè)隱含的數(shù)據(jù)窗口,格式和dw_1完全相同,并命名為dw_2,最后計(jì)算需要打印幾頁,具體程序如下:

  int n,mm

  //每頁打印mm行

  mm = long(em_1.text)

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

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

  if dw_1.rowcount() < mm then

   dw_1.print()

   return

  end if

  //用FOR循環(huán)語句,循環(huán)n-1次:

  int m = 0

  for m = 0 to n - 1

   dw_2.reset()

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

   //刪除dw_2中的數(shù)據(jù)

   //從數(shù)據(jù)窗口的主緩沖區(qū)拷貝mm行到dw_2

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

  //不足mm行補(bǔ)空行

  if dw_2.rowcount() > 0 and dw_2.rowcount() < mm then

  int ii,jj

  jj = dw_2.rowcount()

  for ii = 1 to mm - jj

  dw_2.InsertRow(0)

  dw_2.ScrollToRow(dw_2.RowCount())

   next

   end if

  //循環(huán)打印dw_2窗口

  dw_2.print()

  next

  利用以上代碼,我們就可以實(shí)現(xiàn)按特定的格式進(jìn)行分段打印的功能了。