Visual FoxPro 數(shù)據(jù)庫報表設計_第1頁
Visual FoxPro 數(shù)據(jù)庫報表設計_第2頁
Visual FoxPro 數(shù)據(jù)庫報表設計_第3頁
Visual FoxPro 數(shù)據(jù)庫報表設計_第4頁
Visual FoxPro 數(shù)據(jù)庫報表設計_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、第一節(jié) 介紹查詢設計器啟動“查詢設計器”可以在“文件”菜單中單擊“新建”,選擇“查詢”并按“新建查詢”按鈕。如果當前沒有數(shù)據(jù)庫或表打開,則顯示“打開”窗口以打開查詢的表,再顯示“添加表或視圖”;如果當前已有數(shù)據(jù)庫打開,則顯示直接顯示“添加表或視圖”。在“數(shù)據(jù)庫中表”中顯示當前數(shù)據(jù)庫中的所有表以供添加。如果不是基于當前數(shù)據(jù)庫表查詢,則單擊“其他”按鈕,以選擇合適的表。如果添加表在“選定”單選框中選擇“表”,如果想添加視圖,則選擇“視圖”。這里我們單擊“職工表”并選擇“添加”按鈕,則可以看到職工表已添加到“查詢設計器”中了。重復這樣的操作,就可以將多個表添加到查詢設計器中。單擊“添加表和視圖”中的

2、“關閉”按鈕,將其關閉,查詢設計器窗口即成為當前窗口。這個窗口是不是很熟悉,它和我們上一課學習的視圖設計器很相似。但是我們仔細看一下就會發(fā)現(xiàn),查詢設計器比視圖設計器少了一個“更新條件”選項卡,(如上圖),而在工具欄中,查詢設計器則多了一項(查詢?nèi)ハ颍┌粹o(如下圖)。 (作為對照)查詢設計器工具欄的其他幾個按鈕的樣式和視圖設計器的一樣,其含義也大致相同,只是操作的對象不同(一個是查詢,一個是視圖)。這里只介紹“查詢?nèi)ハ颉卑粹o,其余不做介紹了。前面幾課中,我們看到了,實現(xiàn)一種操作,可以通過幾個不同的途徑,例如:從系統(tǒng)菜單、從快捷菜單、從相應工具欄、從項目管理器都可以實現(xiàn)。常用哪一種或哪幾種方式,則

3、根據(jù)個人的習慣。當我們單擊工具欄上的“查詢?nèi)ハ颉保?)按鈕,或從“查詢”菜單中選擇“查詢?nèi)ハ颉?,或單擊右鍵并在快捷菜單中選擇“輸出設置”都可以出現(xiàn)下面的“查詢?nèi)ハ颉睂υ捒颉K衅邆€不同的選項,允許將查詢結果傳送給七個不同的輸出設備。選擇不同的按鈕,其窗口中的選項也不一樣。上圖中是默認的“瀏覽”,即將查詢結果送到“瀏覽”窗口中顯示,以進行檢查和編輯。當單擊“臨時表”時,窗口如下:以指定的名稱把查詢結果存貯于臨時表中。此臨時表只讀,并在“數(shù)據(jù)工作期”窗口中出現(xiàn)。臨時表可用于瀏覽,生成報表或其他目的。當關閉這個表時,查詢結果隨之消失。當單擊“表”時,窗口如下:用指定的文件名,將查詢結果存為(.dbf

4、)表文件?!氨砻边x項用來指定表的名稱。既可以在文本框中鍵入名稱,也可以使用三點按鈕來選擇一個已有的、要覆蓋的表。單擊“圖形”按鈕,產(chǎn)生可由 Microsoft Graph處理的圖形。在設置GENGRAPH之后才可用。單擊“屏幕”按鈕,使查詢結果在活動輸出窗口中顯示。通過選擇“次級輸出”中的單選按鈕可以在把查詢結果輸出到屏幕的同時輸出到打印機或文本文件?!斑x項”復選框可以設置是否輸出列標頭和是否在屏幕之間暫停。如下圖:單擊“報表”按鈕,將查詢結果按某一報表布局顯示。使用此選項必須先設置報表文件 (.frx),來容納查詢中的輸出字段。如下圖:在“打開報表”文本框中輸入報表名,或單擊“打開報表”按

5、鈕選擇報表名,或者單擊右側的報表向導按鈕進入報表向導,產(chǎn)生一個報表?!按渭壿敵觥蓖捌聊弧?。如果選擇“頁面預覽”將在“頁面預覽”窗口中顯示輸出結果。如果選擇“活動控件臺”將在活動輸出窗口中顯示輸出結果。如果選擇“報告之前釋放頁”,將在報表開始之前打印一空白頁,以在打印機上隔開文檔如果選擇“僅總結信息”,將不打印細節(jié)信息。所生成的報表包括標頭、注腳、總計信息等等,但不包括細節(jié)信息。單擊“標簽”按鈕,將會將查詢結果輸出到一個標簽文件(.LBX)。使用此選項必須先設置標簽文件,來容納查詢中的輸出字段。其選項前面幾個去向中已介紹。如下圖:其中的選項卡由于在“視圖設計器”中已介紹,這里不再贅述了。前面在

6、“向導”一課中已提到,查詢保存在擴展名為.QPR的文件中。以后使用此查詢在命令窗口中輸入:DO 查詢名.QPR 即可。第二節(jié) 建立多表查詢2.1 為舉例作準備-建立“圖書訂貨庫”為了以后舉例的方便,我們再建立一個“圖書訂貨庫”,它包括圖書表、訂貨表、客戶表三個表。分別將圖書表.書名、客戶表.客戶名稱設置為主索引,將訂貨表.書名和客戶名稱設置為普通索引,并且在各表之間建立關聯(lián)。如下圖:在圖書表中輸入數(shù)據(jù)(所有數(shù)據(jù)為隨意設置,不做實際參考),如下圖:在訂貨表中輸入數(shù)據(jù),如下圖:在客戶表中輸入內(nèi)容,如下圖:2.2 建立多表查詢我們建立這個多表查詢的目的是查詢“客戶名稱”為新華書店的訂貨信息。我們看到

7、,圖書訂貨數(shù)據(jù)庫中圖書表和客戶表是多對多關系,即一種書可由多個客戶訂購,一個客戶可訂購多種書。而圖書表和訂貨表、客戶表和訂貨表都是一對多關系。我們打開“文件”菜單,單擊“新建”,選擇“查詢”并單擊“新件文件”按鈕,進入查詢設計器。在“添加表或視圖”窗口中依次將“圖書訂貨庫”的圖書表、訂貨表和客戶表加入到表設計器。如下圖:由于我們在“圖書訂貨庫”中建立了表間永久關系,因此在添加的表之間自動產(chǎn)生關聯(lián)。注意:如果我們添加了圖書表后接著添加客戶表,由于我們在數(shù)據(jù)庫中未建立兩表的直接關聯(lián),便會彈出一個“聯(lián)接條件”對話框,要求加入聯(lián)接條件,我們不需要這兩表建立直接關聯(lián),按“取消”按鈕即可。如下圖:我們需要

8、了解的項目有客戶名稱、訂購的書名、每本書的定價、訂貨數(shù)量、每種書的預付款總額、客戶聯(lián)系電話,聯(lián)系人等。因此我們在“字段”選項卡中選擇加入相應的字段。其中的每種書預付款總額沒有與之相應的字段,需要在“函數(shù)和表達式”文本框中建立。單擊文本框右側的三點按鈕,進入“表達式設計器”,通過選擇或輸入,在“表達式”框中建立表達式“圖書表.定價*訂貨表.訂貨數(shù)量*0.75,其中的0.75指當一次性交清款,將按75折給予優(yōu)惠。如下圖:按“確定”按鈕關閉表達式生成器。這時在查詢設計器中的“表達式和函數(shù)”文本框中出現(xiàn)剛才建立的表達式,按“添加”按鈕,將表達式加入“選定字段”,并用垂直雙向箭頭調(diào)整字段輸出的順序。如下

9、圖:在“聯(lián)接”選項卡中我們?nèi)∧J的內(nèi)部聯(lián)接。由于要查詢的是各表之間的匹配記錄,因此在為各表間的聯(lián)接都要為內(nèi)部聯(lián)接。如下圖: 在“篩選”選項卡中設置篩選條件。一種條件可以有幾種表示方法,如何設置根據(jù)個人習慣。篩選條件和上面的聯(lián)接條件類似,兩者都是先比較值,然后輸出滿足條件的記錄。不同的是兩者比較的對象,聯(lián)接條件是將一個表的字段值與另一個表的字段值相比較,而篩選條件則是字段值與篩選值(實例文本)相比較。這里我們選擇、輸入:訂貨表.客戶名稱=新華書店我們希望按照預付款數(shù)額由小到大排列,因此我們從“選定字段”中將表達式添加到“排序條件”框中。如下圖:我們不需要分組,“分組依據(jù)”選項卡不設置?!半s項”取

10、默認值。這樣,基于“圖書訂貨庫”的一個查詢就完成了。單擊鼠標右鍵,在快捷菜單中選取“運行查詢”,就會在默認的“瀏覽”窗口中看到我們查詢的結果,如下圖:和輸出到“瀏覽”窗口類似,如果我們選擇“屏幕”則會將查詢結果顯示在屏幕上,下圖為屏幕的一部分:如果我們在“查詢?nèi)ハ颉敝羞x擇“臨時表”,并在其文本框中輸入“xhsd”作為表名,則在快捷菜單中“運行查詢”時,就會將查詢結果送到名為 xhsd 的臨時表中。從“窗口”菜單中單擊“數(shù)據(jù)工作期”,則會看到,在“數(shù)據(jù)工作期”窗口中,出現(xiàn)了 xhsd 的表名,雙擊它可以從瀏覽窗口中打開該表,同上圖。數(shù)據(jù)工作期窗口如下圖:如果我們在“查詢?nèi)ハ颉敝羞x擇“表”,并在其

11、文本框中輸入“l(fā)s”,則當我們運行查詢后,查詢結果就送到ls.dbf表中,用來進行各種操作。從“打開”窗口就可看到出現(xiàn)了 ls.dbf 的表名。如下圖:和選擇“表”類似,如果選擇“報表”或“標簽”,會將這次查詢的結果送到指定的報表和標簽中去。選擇“圖形”的情況我們在下節(jié)中介紹。我們在選擇查詢?nèi)ハ蚝髮⒉樵儽4嬖凇靶氯A書店.QPR”中。第三節(jié) 建立交叉表查詢我們在實際工作中常用到下面的一類表,系所教授副教授講師助教中文系86.0085.1276.2385.00歷史系85.0079.3678.2586.58材料學院95.0086.7880.3188.56教科所78.6990.1286.1379.98

12、這個表左邊第一列是不同系所,其右邊各列的第一行是不同技術職務,其余是平均考核成績??梢娺@個表反映了各系所不同技術職務人員的平均考核成績。這樣由左邊、上邊兩個標頭和右下角交叉數(shù)據(jù)構成的表我們稱之為“交叉表”。這一節(jié)我們分別用查詢設計器和查詢向導建立交叉表查詢。3.1 用查詢設計器建立交叉表查詢打開“查詢設計器”,添加“職工表”。建立交叉表只能取三個字段,且其中一個是數(shù)值型字段作交叉數(shù)據(jù),另兩個是字符型字段,一個作為行標頭,一個作為列標頭。在“字段”選項卡中選取“所在部門”、“技術職務”二個字段添加到“選定字段”框中。從“表達式和函數(shù)”右側的“表達式生成器”中生成平均成績表達式:AVG(職工表.考

13、核成績),并將它也添加到選定字段中。如下圖:在“雜項”選項卡中只有在前面選定的字段為三個時,“交叉數(shù)據(jù)表”才有效,我們選擇此復選框。如下圖:這時我們發(fā)現(xiàn),“分組依據(jù)”選項卡中的“分組字段”和“排序”選項卡中的“排序條件”都已自行設置好,為“職工表.所在部門”和“職工表.技術職務”。如下圖:而且,我們看到其中的設置項都為暗灰色,表明不可設置。這是因為在“雜項”中選擇了交叉表查詢,前面的幾個選項卡中的必需信息都自動設置好,不能再行設置。如果想修改,則須去掉“雜項”中的“交叉表數(shù)據(jù)”復選框。一個簡單的交叉表就這樣完成了。在快捷菜單中單擊“運行查詢”,我們可以在“瀏覽”窗口中看到查詢結果,如下圖:3.

14、2 用查詢向導建立交叉表查詢下面我們用查詢向導建立上面舉例的查詢,并建立一個統(tǒng)計技術職務人員在各部門的分布情況的查詢。打開“文件”菜單,單擊“新建”。在“新建”窗口中選擇“查詢”并單擊“向導”。在向導選取中單擊“交叉表向導”。按“確定”進入“步驟1-字段選取”。我們選取“所在部門”、“技術職務”“考核成績”。這一步無法建立平均成績的表達式。按“下一步”按鈕,進入“步驟2-定義布局”,如下圖:在這一步里,我們想將“技術職務”字段的內(nèi)容作為每列的標頭,將“所在部門”字段的內(nèi)容作為每行的標頭。因此,我們單擊“所在部門”字段,并將它拖動到“行”空白區(qū)放開,這時空白區(qū)被灰色填充且顯示“所在部門”。同樣,

15、我們將“技術職務”字段拖動到“列”空白區(qū),將“考核成績”字段拖動到“數(shù)據(jù)”空白區(qū)。做完這些操作后,“下一步”按鈕將成為可選按鈕,單擊它進入“步驟3-加入總結信息”。通過從“總結”和“分類匯總”區(qū)域選擇合適的單選按鈕,可以添加一個包含總結信息和小計的列??偤蛯⒊霈F(xiàn)在交叉表查詢結果中的最右列內(nèi)。我們在“總結”框內(nèi)選擇“平均值”,它相當于“AVG(職工表.考核成績)”,在“分類匯總”框內(nèi)選擇“無”。單擊“下一步”按鈕進入“步驟4-完成”。 “顯示NULL值”指在無數(shù)據(jù)處顯示NULL。使用NULL 值是為了說明這樣一種情況:在字段或記錄里的信息目前還無法得到。例如,如果一名雇員的保健津貼或稅收狀況在填寫記錄時還不清楚,那么,與其存儲一個可能產(chǎn)生歧義的零或空格,則不如在字段中存儲NULL值,直到存入有實際意義的信息為止。這里,我們?nèi)サ暨x擇,即不顯示NULL值。我們按“預覽”按鈕可以看到和上面用查詢設計器建立的查詢完全一樣。如果我們在“步驟3-加入總結信息”里選擇“計數(shù)”和“數(shù)據(jù)求

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論