<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      在PB中完成分段打印技巧

      [摘要]文/張瑜  在使用Powerbuilder進行應用程序的開發過程中,可使用Powerbuilder提供的函數Print()對數據窗口進行打印,但是在實際應用中,Print()函數提供的功能遠不能滿足...
      文/張瑜

        在使用Powerbuilder進行應用程序的開發過程中,可使用Powerbuilder提供的函數Print()對數據窗口進行打印,但是在實際應用中,Print()函數提供的功能遠不能滿足用戶的需要。本文將介紹如何在Powerbuilder中實現分段打印的技巧,從而滿足應用程序特定功能的要求。

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

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

        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循環語句,循環n-1次:

        int m = 0

        for m = 0 to n - 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行補空行

        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

        //循環打印dw_2窗口

        dw_2.print()

        next

        利用以上代碼,我們就可以實現按特定的格式進行分段打印的功能了。


      日韩精品一区二区三区高清