曹瑞燕
(1.長治職業技術學院 信息系,山西 長治 0460112.中北大學,山西 太原 030051)
數據庫下自由表的表格輸出是管理信息系統中的一個主要模塊,也是把自由表中處理好的數據通過表格進行傳閱和紙質保存的手段。在面向過程的程序設計模式下,報表的輸出是通過復雜的編程來實現,而程序調試是靠不斷查看打印輸出結果來實現的,既浪費時間,又浪費紙張。在面向對象的程序設計模式下,報表程序的設計和輸出,可通過系統提供的報表向導、報表設計器、報表預覽來完成和實現,既方便快捷又節省紙張。面向對象的數據庫系統VFP就具有這些功能,在VFP下進行報表設計和輸出,就可用報表向導、報表設計器、報表預覽來完成和實現。下面就對在VFP下如何進行報表設計和輸出作詳細介紹。
VFP系統下提供了報表向導和報表設計器兩種形式來設計報表,通過報表向導設計和輸出的報表,由于沒有表格的橫線和豎線,不符合我們的習慣。通過報表設計器設計和輸出報表,經過對細節區的特殊設計,輸出報表時不僅可以輸出表格的橫線和豎線,還可設計和輸出多種形式的報表。
當自由表中的記錄輸出報表時,如果表格的一行能容納下一條記錄,設計和輸出報表相對簡單,只需要掌握報表控件菜單的使用,掌握報表設計器中[1]252-253各個區在報表輸出時表示的輸出內容和形式。
在啟動報表設計器后,VFP系統自動彈出報表控件菜單,如圖1所示。

圖1
從左到右,每個按鈕的功能分別是:選定報表設計器中的對象;標簽,在報表設計器中插入該控件,在報表輸出時輸出文字;域控件,在報表設計器中插入該控件,在報表輸出時輸出自由表中的字段、程序中的變量、系統變量、系統函數的值;線條,在報表設計器中插入該控件,在報表輸出時輸出表格的框橫線和豎線;矩形,在報表設計器中插入該控件,在報表輸出時輸出矩形;圓角矩形,在報表設計器中插入該控件,在報表輸出時輸出圓角矩形;圖片/ActiveX控件綁定,在報表設計器中插入該控件,在報表輸出時輸出自由表中通用字段的值;按鈕鎖定,在報表設計器中設計報表時,選中報表控件菜單中前面的按鈕,再單擊該按鈕,可重復在報表設計器中插入以前選中的控件,加速控件的插入。
報表設計器是報表設計和輸出的主要工具,啟動報表設計器以后,如圖2所示:

圖2
從上到下每個報表設計區的內容在整個報表輸出時出現的位置及次數介紹如下:
(1)標題區的內容:該區的內容,只輸出在報表的第一頁的最頂端。
(2)頁標頭區的內容:該區的內容,輸出在報表每一頁的頂端,只輸出一次。
(3)細節區的內容:該區的內容,自由表中的每一條記錄輸出一次,出現在每一頁的中間,是報表輸出的主要內容。
(4)頁注腳區內容:該區的內容,輸出在報表每一頁的下端,只輸出一次。
(5)總結區內容:該區的內容,只輸出在報表的最后一頁的最下端。
從上面的介紹可知,頁標頭和細節是報表設計器中設計的主要內容,對報表的輸出形式起著決定性的作用。
在啟動報表設計器后,在數據環境中添加需要報表輸出的自由表,根據自由表中字段代表的數據項含義,設計頁標頭,包括的內容有:矩形控件,豎線,標簽。接著設計細節,包括的內容有一個由橫線和豎線組成的一行表格,沒有上框線,單元格中有輸出自由表中字段的域控件。然后設置頁腳注,輸出頁碼等內容。圖3所示為學生成績管理系統,設計和輸出學生成績表時報表設計器中顯示的內容[2]238-239,僅供參考。

圖3
在設計過程中,可以經常調用報表預覽功能,查看設計的報表是否符合輸出的要求,最終設計出符合輸出要求的報表。
在報表設計器中設計好報表文件后,通過系統提供的命令[3]446-447report form來輸出報表,該命令的使用方法有兩種形式,分別是:
report form分學期報表preview
這種形式的命令執行后,顯示報表具體輸出形式的預覽窗口和如圖4所示的打印預覽菜單,按照菜單功能,可從第一頁到最后一頁進行報表打印。

圖4
report form分學其報表to print prompt
這種形式的命令執行后,顯示如圖5所示的打印機提示窗口,按照提示,可選擇頁碼范圍和份數進行報表打印。

圖5
用以上介紹的方法輸出的報表可輸出一般形式的報表,以下介紹的方法可進行其它形式報表的設計和輸出。
如果報表輸出的數據項一行容納不下、或數據項少,一行可放多個,設計報表的方法就需要改進。針對后者要在原來自由的基礎上新建一個自由表,表中的字段包含每一個數據項的內容。然后利用數據庫系統下多工作區操作方法,把原來自由表的內容添加到新建的自由表中,這需要用程序設計方法來實現。自由表中的數據組織好后,調用報表設計器,就可以設計出相應的報表了。
在輸出報表時,有時輸出的數據項需要根據輸出數據滿足的條件、系統變量的值、用戶自定變量的值來決定是否輸出報表設計器中的內容。還有數據輸出時需每頁匯總、整個報表輸出完成后還有匯總等的輸出。此時設計和輸出報表時,就要用條件加以控制。
在報表設計器中雙擊報表輸出的內容,就可彈出打印條件設置窗口,然后輸入控制條件,在報表輸出時系統便可根據輸出的內容是否滿足條件進行輸出控制。
報表設計和輸出的方法,是學習VFP時必需熟練掌握的主要內容。文章雖然介紹了其它形式報表輸出的方法,但由于篇幅有限,介紹的不是太詳細,特別是在涉及程序設計內容時更是如此。
[1]柳青等.Visual FoxPro程序設計教程[M].北京:高等教育出版社,2002.252-253.
[2]史德芬.Visual FoxPro編程[M].南京:南京大學出版社,2001.238-239.
[3]岳明等.中文Visual FoxPro5.0命令和函數參考手冊[M].北京:機械工業出版社,1998.446-447.