Visual FoxPro 數(shù)據(jù)庫(kù)報(bào)表設(shè)計(jì)_第1頁(yè)
Visual FoxPro 數(shù)據(jù)庫(kù)報(bào)表設(shè)計(jì)_第2頁(yè)
Visual FoxPro 數(shù)據(jù)庫(kù)報(bào)表設(shè)計(jì)_第3頁(yè)
Visual FoxPro 數(shù)據(jù)庫(kù)報(bào)表設(shè)計(jì)_第4頁(yè)
Visual FoxPro 數(shù)據(jù)庫(kù)報(bào)表設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

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

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

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

5、鈕選擇報(bào)表名,或者單擊右側(cè)的報(bào)表向?qū)О粹o進(jìn)入報(bào)表向?qū)?,產(chǎn)生一個(gè)報(bào)表?!按渭?jí)輸出”同“屏幕”。如果選擇“頁(yè)面預(yù)覽”將在“頁(yè)面預(yù)覽”窗口中顯示輸出結(jié)果。如果選擇“活動(dòng)控件臺(tái)”將在活動(dòng)輸出窗口中顯示輸出結(jié)果。如果選擇“報(bào)告之前釋放頁(yè)”,將在報(bào)表開(kāi)始之前打印一空白頁(yè),以在打印機(jī)上隔開(kāi)文檔如果選擇“僅總結(jié)信息”,將不打印細(xì)節(jié)信息。所生成的報(bào)表包括標(biāo)頭、注腳、總計(jì)信息等等,但不包括細(xì)節(jié)信息。單擊“標(biāo)簽”按鈕,將會(huì)將查詢(xún)結(jié)果輸出到一個(gè)標(biāo)簽文件(.LBX)。使用此選項(xiàng)必須先設(shè)置標(biāo)簽文件,來(lái)容納查詢(xún)中的輸出字段。其選項(xiàng)前面幾個(gè)去向中已介紹。如下圖:其中的選項(xiàng)卡由于在“視圖設(shè)計(jì)器”中已介紹,這里不再贅述了。前面在

6、“向?qū)А币徽n中已提到,查詢(xún)保存在擴(kuò)展名為.QPR的文件中。以后使用此查詢(xún)?cè)诿畲翱谥休斎耄篋O 查詢(xún)名.QPR 即可。第二節(jié) 建立多表查詢(xún)2.1 為舉例作準(zhǔn)備-建立“圖書(shū)訂貨庫(kù)”為了以后舉例的方便,我們?cè)俳⒁粋€(gè)“圖書(shū)訂貨庫(kù)”,它包括圖書(shū)表、訂貨表、客戶(hù)表三個(gè)表。分別將圖書(shū)表.書(shū)名、客戶(hù)表.客戶(hù)名稱(chēng)設(shè)置為主索引,將訂貨表.書(shū)名和客戶(hù)名稱(chēng)設(shè)置為普通索引,并且在各表之間建立關(guān)聯(lián)。如下圖:在圖書(shū)表中輸入數(shù)據(jù)(所有數(shù)據(jù)為隨意設(shè)置,不做實(shí)際參考),如下圖:在訂貨表中輸入數(shù)據(jù),如下圖:在客戶(hù)表中輸入內(nèi)容,如下圖:2.2 建立多表查詢(xún)我們建立這個(gè)多表查詢(xún)的目的是查詢(xún)“客戶(hù)名稱(chēng)”為新華書(shū)店的訂貨信息。我們看到

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

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

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

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

11、文本框中輸入“l(fā)s”,則當(dāng)我們運(yùn)行查詢(xún)后,查詢(xún)結(jié)果就送到ls.dbf表中,用來(lái)進(jìn)行各種操作。從“打開(kāi)”窗口就可看到出現(xiàn)了 ls.dbf 的表名。如下圖:和選擇“表”類(lèi)似,如果選擇“報(bào)表”或“標(biāo)簽”,會(huì)將這次查詢(xún)的結(jié)果送到指定的報(bào)表和標(biāo)簽中去。選擇“圖形”的情況我們?cè)谙鹿?jié)中介紹。我們?cè)谶x擇查詢(xún)?nèi)ハ蚝髮⒉樵?xún)保存在“新華書(shū)店.QPR”中。第三節(jié) 建立交叉表查詢(xún)我們?cè)趯?shí)際工作中常用到下面的一類(lèi)表,系所教授副教授講師助教中文系86.0085.1276.2385.00歷史系85.0079.3678.2586.58材料學(xué)院95.0086.7880.3188.56教科所78.6990.1286.1379.98

12、這個(gè)表左邊第一列是不同系所,其右邊各列的第一行是不同技術(shù)職務(wù),其余是平均考核成績(jī)??梢?jiàn)這個(gè)表反映了各系所不同技術(shù)職務(wù)人員的平均考核成績(jī)。這樣由左邊、上邊兩個(gè)標(biāo)頭和右下角交叉數(shù)據(jù)構(gòu)成的表我們稱(chēng)之為“交叉表”。這一節(jié)我們分別用查詢(xún)?cè)O(shè)計(jì)器和查詢(xún)向?qū)Ы⒔徊姹聿樵?xún)。3.1 用查詢(xún)?cè)O(shè)計(jì)器建立交叉表查詢(xún)打開(kāi)“查詢(xún)?cè)O(shè)計(jì)器”,添加“職工表”。建立交叉表只能取三個(gè)字段,且其中一個(gè)是數(shù)值型字段作交叉數(shù)據(jù),另兩個(gè)是字符型字段,一個(gè)作為行標(biāo)頭,一個(gè)作為列標(biāo)頭。在“字段”選項(xiàng)卡中選取“所在部門(mén)”、“技術(shù)職務(wù)”二個(gè)字段添加到“選定字段”框中。從“表達(dá)式和函數(shù)”右側(cè)的“表達(dá)式生成器”中生成平均成績(jī)表達(dá)式:AVG(職工表.考

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

14、2 用查詢(xún)向?qū)Ы⒔徊姹聿樵?xún)下面我們用查詢(xún)向?qū)Ы⑸厦媾e例的查詢(xún),并建立一個(gè)統(tǒng)計(jì)技術(shù)職務(wù)人員在各部門(mén)的分布情況的查詢(xún)。打開(kāi)“文件”菜單,單擊“新建”。在“新建”窗口中選擇“查詢(xún)”并單擊“向?qū)А?。在向?qū)нx取中單擊“交叉表向?qū)А?。按“確定”進(jìn)入“步驟1-字段選取”。我們選取“所在部門(mén)”、“技術(shù)職務(wù)”“考核成績(jī)”。這一步無(wú)法建立平均成績(jī)的表達(dá)式。按“下一步”按鈕,進(jìn)入“步驟2-定義布局”,如下圖:在這一步里,我們想將“技術(shù)職務(wù)”字段的內(nèi)容作為每列的標(biāo)頭,將“所在部門(mén)”字段的內(nèi)容作為每行的標(biāo)頭。因此,我們單擊“所在部門(mén)”字段,并將它拖動(dòng)到“行”空白區(qū)放開(kāi),這時(shí)空白區(qū)被灰色填充且顯示“所在部門(mén)”。同樣,

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論