曹瑞燕
(1.長(zhǎng)治職業(yè)技術(shù)學(xué)院 信息系,山西 長(zhǎng)治 0460112.中北大學(xué),山西 太原 030051)
數(shù)據(jù)庫(kù)下自由表的表格輸出是管理信息系統(tǒng)中的一個(gè)主要模塊,也是把自由表中處理好的數(shù)據(jù)通過(guò)表格進(jìn)行傳閱和紙質(zhì)保存的手段。在面向過(guò)程的程序設(shè)計(jì)模式下,報(bào)表的輸出是通過(guò)復(fù)雜的編程來(lái)實(shí)現(xiàn),而程序調(diào)試是靠不斷查看打印輸出結(jié)果來(lái)實(shí)現(xiàn)的,既浪費(fèi)時(shí)間,又浪費(fèi)紙張。在面向?qū)ο蟮某绦蛟O(shè)計(jì)模式下,報(bào)表程序的設(shè)計(jì)和輸出,可通過(guò)系統(tǒng)提供的報(bào)表向?qū)?、?bào)表設(shè)計(jì)器、報(bào)表預(yù)覽來(lái)完成和實(shí)現(xiàn),既方便快捷又節(jié)省紙張。面向?qū)ο蟮臄?shù)據(jù)庫(kù)系統(tǒng)VFP就具有這些功能,在VFP下進(jìn)行報(bào)表設(shè)計(jì)和輸出,就可用報(bào)表向?qū)А?bào)表設(shè)計(jì)器、報(bào)表預(yù)覽來(lái)完成和實(shí)現(xiàn)。下面就對(duì)在VFP下如何進(jìn)行報(bào)表設(shè)計(jì)和輸出作詳細(xì)介紹。
VFP系統(tǒng)下提供了報(bào)表向?qū)Ш蛨?bào)表設(shè)計(jì)器兩種形式來(lái)設(shè)計(jì)報(bào)表,通過(guò)報(bào)表向?qū)гO(shè)計(jì)和輸出的報(bào)表,由于沒(méi)有表格的橫線和豎線,不符合我們的習(xí)慣。通過(guò)報(bào)表設(shè)計(jì)器設(shè)計(jì)和輸出報(bào)表,經(jīng)過(guò)對(duì)細(xì)節(jié)區(qū)的特殊設(shè)計(jì),輸出報(bào)表時(shí)不僅可以輸出表格的橫線和豎線,還可設(shè)計(jì)和輸出多種形式的報(bào)表。
當(dāng)自由表中的記錄輸出報(bào)表時(shí),如果表格的一行能容納下一條記錄,設(shè)計(jì)和輸出報(bào)表相對(duì)簡(jiǎn)單,只需要掌握?qǐng)?bào)表控件菜單的使用,掌握?qǐng)?bào)表設(shè)計(jì)器中[1]252-253各個(gè)區(qū)在報(bào)表輸出時(shí)表示的輸出內(nèi)容和形式。
在啟動(dòng)報(bào)表設(shè)計(jì)器后,VFP系統(tǒng)自動(dòng)彈出報(bào)表控件菜單,如圖1所示。
圖1
從左到右,每個(gè)按鈕的功能分別是:選定報(bào)表設(shè)計(jì)器中的對(duì)象;標(biāo)簽,在報(bào)表設(shè)計(jì)器中插入該控件,在報(bào)表輸出時(shí)輸出文字;域控件,在報(bào)表設(shè)計(jì)器中插入該控件,在報(bào)表輸出時(shí)輸出自由表中的字段、程序中的變量、系統(tǒng)變量、系統(tǒng)函數(shù)的值;線條,在報(bào)表設(shè)計(jì)器中插入該控件,在報(bào)表輸出時(shí)輸出表格的框橫線和豎線;矩形,在報(bào)表設(shè)計(jì)器中插入該控件,在報(bào)表輸出時(shí)輸出矩形;圓角矩形,在報(bào)表設(shè)計(jì)器中插入該控件,在報(bào)表輸出時(shí)輸出圓角矩形;圖片/ActiveX控件綁定,在報(bào)表設(shè)計(jì)器中插入該控件,在報(bào)表輸出時(shí)輸出自由表中通用字段的值;按鈕鎖定,在報(bào)表設(shè)計(jì)器中設(shè)計(jì)報(bào)表時(shí),選中報(bào)表控件菜單中前面的按鈕,再單擊該按鈕,可重復(fù)在報(bào)表設(shè)計(jì)器中插入以前選中的控件,加速控件的插入。
報(bào)表設(shè)計(jì)器是報(bào)表設(shè)計(jì)和輸出的主要工具,啟動(dòng)報(bào)表設(shè)計(jì)器以后,如圖2所示:
圖2
從上到下每個(gè)報(bào)表設(shè)計(jì)區(qū)的內(nèi)容在整個(gè)報(bào)表輸出時(shí)出現(xiàn)的位置及次數(shù)介紹如下:
(1)標(biāo)題區(qū)的內(nèi)容:該區(qū)的內(nèi)容,只輸出在報(bào)表的第一頁(yè)的最頂端。
(2)頁(yè)標(biāo)頭區(qū)的內(nèi)容:該區(qū)的內(nèi)容,輸出在報(bào)表每一頁(yè)的頂端,只輸出一次。
(3)細(xì)節(jié)區(qū)的內(nèi)容:該區(qū)的內(nèi)容,自由表中的每一條記錄輸出一次,出現(xiàn)在每一頁(yè)的中間,是報(bào)表輸出的主要內(nèi)容。
(4)頁(yè)注腳區(qū)內(nèi)容:該區(qū)的內(nèi)容,輸出在報(bào)表每一頁(yè)的下端,只輸出一次。
(5)總結(jié)區(qū)內(nèi)容:該區(qū)的內(nèi)容,只輸出在報(bào)表的最后一頁(yè)的最下端。
從上面的介紹可知,頁(yè)標(biāo)頭和細(xì)節(jié)是報(bào)表設(shè)計(jì)器中設(shè)計(jì)的主要內(nèi)容,對(duì)報(bào)表的輸出形式起著決定性的作用。
在啟動(dòng)報(bào)表設(shè)計(jì)器后,在數(shù)據(jù)環(huán)境中添加需要報(bào)表輸出的自由表,根據(jù)自由表中字段代表的數(shù)據(jù)項(xiàng)含義,設(shè)計(jì)頁(yè)標(biāo)頭,包括的內(nèi)容有:矩形控件,豎線,標(biāo)簽。接著設(shè)計(jì)細(xì)節(jié),包括的內(nèi)容有一個(gè)由橫線和豎線組成的一行表格,沒(méi)有上框線,單元格中有輸出自由表中字段的域控件。然后設(shè)置頁(yè)腳注,輸出頁(yè)碼等內(nèi)容。圖3所示為學(xué)生成績(jī)管理系統(tǒng),設(shè)計(jì)和輸出學(xué)生成績(jī)表時(shí)報(bào)表設(shè)計(jì)器中顯示的內(nèi)容[2]238-239,僅供參考。
圖3
在設(shè)計(jì)過(guò)程中,可以經(jīng)常調(diào)用報(bào)表預(yù)覽功能,查看設(shè)計(jì)的報(bào)表是否符合輸出的要求,最終設(shè)計(jì)出符合輸出要求的報(bào)表。
在報(bào)表設(shè)計(jì)器中設(shè)計(jì)好報(bào)表文件后,通過(guò)系統(tǒng)提供的命令[3]446-447report form來(lái)輸出報(bào)表,該命令的使用方法有兩種形式,分別是:
report form分學(xué)期報(bào)表preview
這種形式的命令執(zhí)行后,顯示報(bào)表具體輸出形式的預(yù)覽窗口和如圖4所示的打印預(yù)覽菜單,按照菜單功能,可從第一頁(yè)到最后一頁(yè)進(jìn)行報(bào)表打印。
圖4
report form分學(xué)其報(bào)表to print prompt
這種形式的命令執(zhí)行后,顯示如圖5所示的打印機(jī)提示窗口,按照提示,可選擇頁(yè)碼范圍和份數(shù)進(jìn)行報(bào)表打印。
圖5
用以上介紹的方法輸出的報(bào)表可輸出一般形式的報(bào)表,以下介紹的方法可進(jìn)行其它形式報(bào)表的設(shè)計(jì)和輸出。
如果報(bào)表輸出的數(shù)據(jù)項(xiàng)一行容納不下、或數(shù)據(jù)項(xiàng)少,一行可放多個(gè),設(shè)計(jì)報(bào)表的方法就需要改進(jìn)。針對(duì)后者要在原來(lái)自由的基礎(chǔ)上新建一個(gè)自由表,表中的字段包含每一個(gè)數(shù)據(jù)項(xiàng)的內(nèi)容。然后利用數(shù)據(jù)庫(kù)系統(tǒng)下多工作區(qū)操作方法,把原來(lái)自由表的內(nèi)容添加到新建的自由表中,這需要用程序設(shè)計(jì)方法來(lái)實(shí)現(xiàn)。自由表中的數(shù)據(jù)組織好后,調(diào)用報(bào)表設(shè)計(jì)器,就可以設(shè)計(jì)出相應(yīng)的報(bào)表了。
在輸出報(bào)表時(shí),有時(shí)輸出的數(shù)據(jù)項(xiàng)需要根據(jù)輸出數(shù)據(jù)滿足的條件、系統(tǒng)變量的值、用戶自定變量的值來(lái)決定是否輸出報(bào)表設(shè)計(jì)器中的內(nèi)容。還有數(shù)據(jù)輸出時(shí)需每頁(yè)匯總、整個(gè)報(bào)表輸出完成后還有匯總等的輸出。此時(shí)設(shè)計(jì)和輸出報(bào)表時(shí),就要用條件加以控制。
在報(bào)表設(shè)計(jì)器中雙擊報(bào)表輸出的內(nèi)容,就可彈出打印條件設(shè)置窗口,然后輸入控制條件,在報(bào)表輸出時(shí)系統(tǒng)便可根據(jù)輸出的內(nèi)容是否滿足條件進(jìn)行輸出控制。
報(bào)表設(shè)計(jì)和輸出的方法,是學(xué)習(xí)VFP時(shí)必需熟練掌握的主要內(nèi)容。文章雖然介紹了其它形式報(bào)表輸出的方法,但由于篇幅有限,介紹的不是太詳細(xì),特別是在涉及程序設(shè)計(jì)內(nèi)容時(shí)更是如此。
[1]柳青等.Visual FoxPro程序設(shè)計(jì)教程[M].北京:高等教育出版社,2002.252-253.
[2]史德芬.Visual FoxPro編程[M].南京:南京大學(xué)出版社,2001.238-239.
[3]岳明等.中文Visual FoxPro5.0命令和函數(shù)參考手冊(cè)[M].北京:機(jī)械工業(yè)出版社,1998.446-447.
長(zhǎng)治學(xué)院學(xué)報(bào)2014年5期