PB 7.0實現多資料視窗的連續列印

來源:互聯網
上載者:User

PowerBuilder最迷人的地方就是她那強大的資料視窗技術,它為展現資料的本質提供了豐富的手段,資料視窗能夠從多種資料來源提取資料,然後以多種風格展現在使用者面前,對於一個PB程式員能否用好用活資料視窗是那麼的重要,同時也反映出編程人員的一定技術水平。相信在看了本文之後一定會對你編寫程式有所協助,文中如有任何不妥之處還請同仁們多多指教。

在實際的應用中我們或許會碰到使用者有這樣的要求,在第一張報表上列印一個客戶的購買商品的統計資料,以後的每頁顯示的是他購買商品的明晰清單。也就是相當於列印兩份報表,一份是統計報表,另一份是明細表。單純就這兩份報表而言對於任何一個PB程式員來說都不是什麼難事,很容易就可以搞定,我們完全可以分兩張報表列印給使用者,但這還總是讓我們覺得似乎缺了點什麼,畢竟使用者是想讓這兩份報表作為一個整體出現,最起碼的要求是它們的頁號應該連續,並且同時也能告之使用者總共有多少頁。這就涉及到多個資料視窗連續列印的問題。

首先,統計和明細的結果是根據使用者輸入的條件來得到的,這是個不定的結果,我們無法預先得知會有多少條資料,更別說需要多少頁了。即便是我們能夠確定有多少條資料也會因為使用者印表機的紙張設定不同而會出現不同的顯示結果。其次,要在統計表和明細表裡顯示兩張報表的總頁數,這個有點難度,畢竟對於兩張報表來說都是個未知數,即對於統計表來說,它可以知道自己的總頁數,但不知道明細表的總頁數。同樣對於明細表也是這樣,只知道自己的總頁數,而不知道統計表的總頁數。這樣很難在兩張報表裡分別顯示它們的頁數之和。雖然如此可對於它們自己而言當前是第幾頁還是能夠確定的,這個只要調用資料視窗的內嵌函數Page()就可以很容易的得到。

下邊我們就通過一個簡單的例子來探討如何?多個資料視窗連續列印技術。程式首先讓使用者輸入客戶號,然後系統根據使用者輸入的客戶號統計出該客戶各類商品的購買總數以及訂購的每一種商品明細。整個程式的執行如下三副圖所示:

在開始之前先讓我們看一下例子中用到的三張表的結構以及它們之間的相互關係,見下圖:

其中,表Customer和表Sales_Order通過cust_id(客戶編碼)相關聯,表Sales_Order和表Sales_Order_Items通過id(銷售定單號)相關聯。這三張表取自於PB內建的示範資料庫。

首先我們要做的第一件事就是製作兩張帶檢索參數的資料視窗,這個很簡單我就不細說了。其中,統計表命名為dw_1,明細表命名為dw_2。同時,為了在列印的時候顯示給使用者“第幾頁”“總共多少頁”的資訊,因此在兩張報表每頁的底端分別加上一個計算域用來顯示當前頁數和總頁數資訊。以統計表dw_1為例,在dw_1中增加兩個計算域,取名為page_1 和computer_2。見下圖:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.