国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

管理信息系統(tǒng)數(shù)據(jù)查詢與修改模塊的設(shè)計(jì)與實(shí)現(xiàn)

2009-09-21 07:15秦鴻霞
中國(guó)管理信息化 2009年13期
關(guān)鍵詞:管理信息系統(tǒng)會(huì)計(jì)科目

秦鴻霞

[收稿日期]2008-12-20

[摘 要]本文以會(huì)計(jì)科目的查詢與修改操作為例,詳細(xì)分析與探討了利用Visual FoxPro設(shè)計(jì)與實(shí)施管理信息系統(tǒng)數(shù)據(jù)查詢與修改模塊的基本原理、方法和步驟,并提供了相應(yīng)的程序代碼。

[關(guān)鍵詞]管理信息系統(tǒng);會(huì)計(jì)科目;數(shù)據(jù)查詢;數(shù)據(jù)修改;Visual FoxPro程序設(shè)計(jì)

doi:10.3969/j.issn.1673-0194.2009.13.001

[中圖分類號(hào)]F232[文獻(xiàn)標(biāo)識(shí)碼]A[文章編號(hào)]1673-0194(2009)13-0004-04

數(shù)據(jù)查詢與修改操作是管理信息系統(tǒng)必不可少的基本操作,查詢與修改模塊則是管理信息系統(tǒng)中極其重要的功能模塊。數(shù)據(jù)查詢與修改處理的基本原理是:先提供查詢條件,然后在數(shù)據(jù)表中查詢符合條件的記錄,再以只讀方式顯示出查詢結(jié)果。如果只進(jìn)行查詢操作,則不允許對(duì)查詢結(jié)果進(jìn)行修改;如果要在所顯示的查詢結(jié)果中修改數(shù)據(jù),則需要先將顯示結(jié)果變?yōu)榉侵蛔x方式,然后進(jìn)行修改,待相關(guān)數(shù)據(jù)修改完畢后,仍需將顯示結(jié)果再變?yōu)橹蛔x方式。本文以Visual FoxPro為關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),以會(huì)計(jì)科目的查詢與修改為例,分析與探討管理信息系統(tǒng)數(shù)據(jù)查詢與修改模塊的實(shí)現(xiàn)方法。本文所提供的程序代碼已通過(guò)上機(jī)驗(yàn)證。

1 數(shù)據(jù)表的結(jié)構(gòu)

由于查詢與修改操作是對(duì)相應(yīng)數(shù)據(jù)表中的相關(guān)數(shù)據(jù)進(jìn)行查詢與修改處理,所以,必須首先弄清楚相應(yīng)數(shù)據(jù)表的結(jié)構(gòu)。假設(shè)會(huì)計(jì)科目相關(guān)信息保存在會(huì)計(jì)科目表中,會(huì)計(jì)科目表的數(shù)據(jù)結(jié)構(gòu)如表1所示,其文件名為kjkm.dbf,存儲(chǔ)在默認(rèn)目錄下??梢詫?huì)計(jì)科目表文件kjkm.dbf添加到相應(yīng)的賬務(wù)處理數(shù)據(jù)庫(kù)中加以管理。

2 查詢與修改表單界面的設(shè)計(jì)

根據(jù)表1所示的會(huì)計(jì)科目表的結(jié)構(gòu),在Visual FoxPro的表單設(shè)計(jì)器中設(shè)計(jì)如圖1所示的查詢與修改表單。其中,矩形對(duì)應(yīng)于一個(gè)容器控件,該容器控件之上放置有標(biāo)簽、組合框、文本框等對(duì)象,“查詢條件”、“待選項(xiàng)目:”、“比較符:”、“值:”是為各標(biāo)簽設(shè)置的Caption屬性,Combo 1、Combo 2是各組合框的默認(rèn)的Name屬性,Text 1、Text 2是各文本框的默認(rèn)的Name屬性。而“查詢”、“修改”、“退出”是為各命令按鈕控件設(shè)置的Caption屬性。另外,“查詢與修改項(xiàng)目”是為表單設(shè)置的Caption屬性。以上控件或?qū)ο蠖际墙柚氨韱慰丶惫ぞ邫诋嫵龅模骺丶腃aption屬性通過(guò)相應(yīng)的“屬性”對(duì)話框進(jìn)行設(shè)置。

需要說(shuō)明的是,Text 1和Text 2文本框?qū)嶋H是重疊在一起的,并與Combo 1及Combo 2組合框水平對(duì)齊,運(yùn)行時(shí)同一時(shí)刻只能顯示其中一個(gè)文本框,感覺(jué)上就像只有一個(gè)文本框一樣。這里只是為了方便描述和便于理解,才以圖1中所示的呈現(xiàn)形式進(jìn)行布局。

表單的下方是一個(gè)表格控件,設(shè)計(jì)該表格控件的步驟和方法是:①在“表單控件”工具欄選中“表格”控件,再在表單上適當(dāng)?shù)奈恢卯嬕粋€(gè)大小適中的表格,其Name屬性默認(rèn)為Grid 1;②用鼠標(biāo)右鍵單擊Grid 1表格,再在彈出的快捷菜單中選擇“生成器”,則出現(xiàn)表格生成器對(duì)話框,可在其“表格項(xiàng)”選項(xiàng)卡選擇或設(shè)置此表格關(guān)聯(lián)的數(shù)據(jù)表kjkm(或選擇文件kjkm.dbf),并選定該表格關(guān)聯(lián)的全部字段,再在“布局”選項(xiàng)卡將表格各欄對(duì)應(yīng)的標(biāo)題設(shè)定為圖1中表格的標(biāo)題,最后單擊表格生成器的“確定”按鈕即可。這樣設(shè)置后,就為表單建立了數(shù)據(jù)環(huán)境,且數(shù)據(jù)環(huán)境設(shè)計(jì)器中對(duì)應(yīng)的數(shù)據(jù)表就是kjkm,數(shù)據(jù)環(huán)境和kjkm數(shù)據(jù)表的Name屬性分別為Dataenvironment和Cursor1。

3 查詢與修改模塊的功能目標(biāo)

數(shù)據(jù)庫(kù)或數(shù)據(jù)表中的數(shù)據(jù)量一般都比較大,無(wú)論是進(jìn)行數(shù)據(jù)查詢還是進(jìn)行數(shù)據(jù)修改,都需要指定相應(yīng)的查詢或修改條件,再進(jìn)行相應(yīng)的操作。因此,要實(shí)現(xiàn)查詢與修改功能,應(yīng)能通過(guò)其表單界面指定查詢條件,并執(zhí)行相應(yīng)的查詢或修改操作,操作完畢后應(yīng)使表單能夠退出內(nèi)存。具體來(lái)說(shuō),查詢與與修改模塊就是要實(shí)現(xiàn)以下功能目標(biāo):

(1)指定查詢條件。圖1所示的表單運(yùn)行后,組合框Combo 1是一個(gè)下拉列表框,可以從其下拉列表項(xiàng)“科目編號(hào)”、“科目名稱”、“借貸方向”、“期初余額”中任意選擇其中一項(xiàng),默認(rèn)的選項(xiàng)為“科目名稱”。同樣,Combo 2也是一個(gè)下拉列表框,可以在其下拉列表中分別選擇以下比較運(yùn)算符:<、<=、=、==、>=、>、<>,默認(rèn)的比較符選項(xiàng)為=。當(dāng)從Combo 1下拉列表中選擇“科目編號(hào)”、“科目名稱”或“借貸方向”時(shí),Text 2文本框隱藏,而Text 1文本框顯示并獲得焦點(diǎn),對(duì)應(yīng)的字符型數(shù)據(jù)可在Text 1文本框內(nèi)輸入;否則,當(dāng)從Combo 1下拉列表中選擇“期初余額”時(shí),Text 1文本框隱藏,同時(shí)Text 2文本框顯示并獲得焦點(diǎn),可將對(duì)應(yīng)的數(shù)值型數(shù)據(jù)輸入到Text 2文本框。這樣,由Combo 1、Combo 2中選擇的內(nèi)容與Text 1或Text 2中指定的內(nèi)容就構(gòu)成了一個(gè)條件。

(2)進(jìn)行查詢或修改操作。表單運(yùn)行后,表格Grid 1中起初并不顯示任何數(shù)據(jù),只有單擊“查詢”按鈕時(shí),才將滿足查詢條件的全部記錄顯示在表格中,顯示結(jié)果不允許修改,只有單擊“修改”按鈕后才能修改表格中顯示的數(shù)據(jù)。焦點(diǎn)離開表格至再次單擊“修改”按鈕前,表格中的數(shù)據(jù)禁止被修改。

(3)退出。單擊“退出”按鈕,表單退出內(nèi)存。

4 查詢與修改模塊功能的實(shí)現(xiàn)

4.1 “指定查詢條件”功能的實(shí)現(xiàn)

4.1.1 定義表單的Load事件與Unload事件

表單的Load事件是表單對(duì)象建立之前引發(fā)的事件,而Unload事件則是表單對(duì)象釋放時(shí)最后一個(gè)要引發(fā)的事件??稍诒韱蔚腖oad事件中使用Public聲明含4個(gè)元素的數(shù)組xiangmu和含7個(gè)元素的數(shù)組bijiao,其中數(shù)組xiangmu各元素分別保存Combo 1下拉列表框中的待選項(xiàng)目,包括科目編號(hào)、科目名稱、借貸方向、期初余額;數(shù)組bijiao各元素分別保存比較運(yùn)算符,包括小于(<)、小于或等于(<=)、等于(=)、全等于(==)、大于或等于(>=)、大于(>)、不等于(<>)。另外,為使表單運(yùn)行后能采用精確匹配方式進(jìn)行字符串比較,還應(yīng)在Load事件的開始添加set exact on語(yǔ)句。表單的Load事件的程序代碼對(duì)應(yīng)如下:

set exact on

public xiangmu(4),bijiao(7)

xiangmu(1)="科目編號(hào)"

xiangmu(2)="科目名稱"

xiangmu(3)="借貸方向"

xiangmu(4)="期初余額"

bijiao(1)="<"

bijiao(2)="<="

bijiao(3)="="

bijiao(4)="=="

bijiao(5)=">="

bijiao(6)=">"

bijiao(7)="<>"

由于在Load事件中使用了set exact on語(yǔ)句,因而需要定義表單的Unload事件,并將其Unload事件的程序代碼設(shè)置為set exact off,以便退出表單時(shí)將Visual FoxPro設(shè)置為默認(rèn)的字符串比較方式。

如果在表單的Load事件中不包含set exact on語(yǔ)句,就表明程序中采用默認(rèn)的set exact off方式進(jìn)行字符串的比較,此時(shí)便不需要專門為表單的Unload事件設(shè)置相應(yīng)的程序代碼。但在采用set exact off方式進(jìn)行字符串的比較運(yùn)算時(shí),只要關(guān)系表達(dá)式中比較運(yùn)算符“=”、“<=”或“>=”右邊的字符串與其左邊字符串前面的部分內(nèi)容相匹配,即可得到邏輯真?T?的結(jié)果。

4.1.2 指定Combo 1和Combo 2關(guān)聯(lián)的數(shù)據(jù)源

由于Combo 1是一種下拉列表框形式的組合框,其下拉列表項(xiàng)分別為科目編號(hào)、科目名稱、借貸方向和期初余額,對(duì)應(yīng)于數(shù)組xiangmu中各元素的值,因此可依次將Combo 1組合框的RowSourceTye、RowSource和Style屬性分別設(shè)定為5-數(shù)組、xiangmu、2-下拉列表框,這樣就分別設(shè)定了該組合框控件中數(shù)據(jù)值的源的類型、數(shù)據(jù)值的源及組合框的類型。同樣,可將〤ombo 2的RowSourceTye、RowSource和Style屬性分別設(shè)定為5-數(shù)組、bijiao、2-下拉列表框。

這樣設(shè)置并運(yùn)行后,Combo 1下拉列表框中就會(huì)包含科目編號(hào)、科目名稱、借貸方向和期初余額等列表項(xiàng),而Combo 2下拉列表框中包含<、<=、=、==、>=、>、<>等列表項(xiàng),可供選擇。

4.1.3 定義表單的Init事件

Init事件是在對(duì)象建立時(shí)引發(fā)的事件。要使表單啟動(dòng)后,Combo 1默認(rèn)選擇為“科目名稱”,Combo 2默認(rèn)選擇為等號(hào)“=”,可在表單的Init事件中分別使Combo 1、Combo 2的listindex屬性設(shè)置為2和3,其中2對(duì)應(yīng)于4.1.1節(jié)中定義的數(shù)組xiangmu第二個(gè)元素xiangmu(2)的值,3對(duì)應(yīng)于數(shù)組bijiao的第三個(gè)元素bijiao(3)的值。為確保顯示在表格中的數(shù)據(jù)不能被隨意修改(除非單擊“修改”按鈕),可使表格Grid 1的ReadOnly屬性設(shè)置為?t?以使表格只讀。另外,當(dāng)Combo 1中選擇“期初余額”時(shí),應(yīng)將Text 1的visible屬性設(shè)置為?f?,以使Text 1隱藏;同時(shí)將Text 2的visible屬性設(shè)置為?t?,以使Text 2顯式顯示,應(yīng)利用setfocus方法使Text 2獲得焦點(diǎn),以便于數(shù)值型數(shù)據(jù)的輸入。否則,當(dāng)Combo 1中選擇了“科目編號(hào)”、“科目名稱”或“借貸方向”時(shí),應(yīng)使采用同樣的方法使Text 2隱藏,使Text 1可見(jiàn)并獲得焦點(diǎn),以便于字符型數(shù)據(jù)的輸入。表單的Init事件的程序代碼對(duì)應(yīng)如下:

thisform.Combo 1.listindex=2

thisform.Combo 2.listindex=3

thisform.grid1.readonly=?t?

if thisform.Combo 1.value="期初余額"

thisform.Text 1.visible=?f?

thisform.Text 2.visible=?t?

thisform.Text 2.setfocus

else

thisform.Text 2.visible=?f?

thisform.Text 1.visible=?t?

thisform.Text 1.setfocus

endif

4.1.4 定義Combo 1的InteractiveChange事件

表單運(yùn)行后,經(jīng)常在Combo 1和Combo 2中選擇下拉列表項(xiàng),根據(jù)Combo 1中選擇的內(nèi)容是否為“期初余額”,需要確定是在Text 2中還是在Text 1中輸入數(shù)據(jù)。當(dāng)Combo 1中選擇的內(nèi)容改變時(shí),如果變?yōu)椤捌诔跤囝~”,則應(yīng)使Text 1隱藏,Text 2可見(jiàn)并獲得焦點(diǎn),以便于輸入數(shù)值型數(shù)據(jù);否則,如果Combo 1中的內(nèi)容變?yōu)槠渌?xiàng)(科目編號(hào)、科目名稱、借貸方向),則Text 2不可見(jiàn),Text 1可見(jiàn)并獲得焦點(diǎn),以便于輸入字符型數(shù)據(jù)??稍贑ombo 1的InteractiveChange事件中設(shè)置相關(guān)代碼,當(dāng)用戶使用鍵盤或鼠標(biāo)更改此控件的值時(shí),其InteractiveChange事件中的代碼被立即執(zhí)行。Combo 1的InteractiveChange事件的程序代碼對(duì)應(yīng)如下:

if this.value="期初余額"

thisform.Text 1.visible=?f?

thisform.Text 2.visible=?t?

thisform.Text 2.setfocus

else

thisform.Text 2.visible=?f?

thisform.Text 1.visible=?t?

thisform.Text 1.setfocus

endif

同樣,Combo 2中選擇的比較符發(fā)生改變時(shí),如果Combo 1中選擇的是“期初余額”,則使Text 2獲得焦點(diǎn);否則,如果Combo 1中選擇的是“科目編號(hào)”、“科目名稱”或“借貸方向”,則使Text 1獲得焦點(diǎn),以便于在對(duì)應(yīng)的文本框內(nèi)輸入對(duì)應(yīng)待選項(xiàng)目的相關(guān)數(shù)據(jù)??稍贑ombo 2的InteractiveChange事件中設(shè)置相關(guān)代碼,Combo 2的InteractiveChange事件的程序代碼對(duì)應(yīng)如下:

if thisform.Combo 1.value="期初余額"

thisform.Text 2.setfocus

else

thisform.Text 1.setfocus

endif

4.1.5 設(shè)置Text 2的數(shù)據(jù)類型和輸入掩碼

由于Text 2文本框用于輸入期初余額,對(duì)應(yīng)于數(shù)值型數(shù)據(jù),所以應(yīng)將其數(shù)據(jù)類型設(shè)置為數(shù)值型,并且最好指定其輸入掩碼,使輸入的數(shù)值型數(shù)據(jù)符合表1中qcye字段(即期初余額字段)的寬度與小數(shù)位數(shù)。設(shè)置方法是:在表單設(shè)計(jì)器,用鼠標(biāo)右鍵單擊Text 2控件,在彈出的快捷菜單中選擇“生成器”選項(xiàng),則出現(xiàn)“文本框生成器”對(duì)話框,可在“格式”選項(xiàng)卡將數(shù)值類型設(shè)定為“數(shù)值型”,并將輸入掩碼設(shè)置為999999999.99,再單擊“文本框生成器”對(duì)話框中的“確定”按鈕即可。

另外,由于Text 1文本框用于輸入科目編號(hào)、科目名稱或借貸方向等字符型數(shù)據(jù),而Text 1默認(rèn)的數(shù)據(jù)類型正好為字符型,所以不需專門對(duì)Text 1控件的數(shù)據(jù)類型進(jìn)行設(shè)置。

4.1.6 定義Text 1和Text 2的Click事件

由于多次操作,Text 1及Text 2中可能保留有上次輸入的內(nèi)容。如果單擊Text 1時(shí),能使Text 1中的字符型數(shù)據(jù)自動(dòng)被清空,或者單擊Text 2時(shí),能使Text 2中的數(shù)值型數(shù)據(jù)自動(dòng)置零,則輸入操作將變得更加方便??梢苑謩e在Text 1和Text 2的Click事件中將其Value屬性值對(duì)應(yīng)設(shè)置為space(0)和0.00,其中space(0)表示由0個(gè)空格組成的空字符串。這樣,Text 1的Click事件的程序代碼為:this.value=space(0);而Text 2的Click事件的程序代碼為:this.value=0.00。

4.2 “查詢與修改”功能的實(shí)現(xiàn)

4.2.1 設(shè)置Cursor 1的Filter屬性與Combo 2的ControlSource屬性

Cursor 1是數(shù)據(jù)環(huán)境Dataenvironment中對(duì)應(yīng)于會(huì)計(jì)科目表kjkm的游標(biāo)的默認(rèn)Name屬性(參見(jiàn)第2節(jié)所做的設(shè)置),它與表單上的Grid 1表格控件相互關(guān)聯(lián)。為了使表單初始運(yùn)行后,表格Grid 1中不顯示任何初始數(shù)據(jù),可在屬性窗口將Cursor 1的Filter屬性設(shè)置為.F.,F(xiàn)ilter屬性的功能就是使對(duì)應(yīng)于Cursor 1的表格顯示Filter屬性值為真的記錄,當(dāng)設(shè)置為邏輯假值時(shí),所關(guān)聯(lián)的表格就不會(huì)顯示任何數(shù)據(jù)了。

Combo 2下拉列表框的可選項(xiàng)是比較運(yùn)算符對(duì)應(yīng)的字符串,如“<”、“<=”等,為了使在Combo 2中選擇的列表項(xiàng)對(duì)應(yīng)于真正意義的比較運(yùn)算符,而不是字符串,就需要首先設(shè)置其ControlSource屬性,以便與某個(gè)字符型變量綁定,然后再用宏替換函數(shù)表示該字符型變量對(duì)應(yīng)的比較運(yùn)算符。假設(shè)在表單設(shè)計(jì)器的屬性窗口將Combo 2的ControlSource屬性設(shè)置為bj,則可以用&bj.表示從Combo 2中選擇的列表項(xiàng)對(duì)應(yīng)的比較運(yùn)行符,其中&表示宏替換函數(shù)。例如,從Combo 2中選擇<,則bj的值為字符串“<”,而&bj.則表示小于號(hào)<,而不是字符串“<”。這樣設(shè)置,主要是為了縮短查詢程序代碼的長(zhǎng)度。

4.2.2 定義“查詢”按鈕的Click事件

當(dāng)在Combo 1、Combo 2下拉列表框中選擇待查詢項(xiàng)目和比較運(yùn)算符,且在Text 1或Text 2輸入對(duì)應(yīng)的數(shù)據(jù)后,如果單擊“查詢”按鈕,則查詢結(jié)果應(yīng)能夠以只讀方式顯示在表格Grid 1中。因此,“查詢”按鈕的Click事件的程序代碼應(yīng)依次執(zhí)行以下功能:①使表格〨rid 1只讀;②表示出從Combo 1下拉列表中選擇不同項(xiàng)時(shí)對(duì)應(yīng)的查詢條件;③將數(shù)據(jù)環(huán)境Dataenvironment中對(duì)應(yīng)于會(huì)計(jì)科目表kjkm的游標(biāo)Cursor1的Filter屬性設(shè)置為對(duì)應(yīng)的查詢條件;④根據(jù)Combo 1中選擇的項(xiàng)是否“期初余額”來(lái)決定是Text 2還是Text 1獲得焦點(diǎn);⑤刷新表單。這樣,“查詢”按鈕的Click事件的程序代碼對(duì)應(yīng)如下:

thisform.grid1.readonly=.t.

do case

case thisform.Combo 1.value="科目編號(hào)"

tj="allt(kmbh)&bj.'"+allt(thisform.Text 1.value) + "'"

case thisform.Combo 1.value="科目名稱"

tj="allt(kmmc)&bj.'"+allt(thisform.Text 1.value)+"'"

case thisform.Combo 1.value="借貸方向"

tj="allt(jdfx)&bj.'"+allt(thisform.Text 1.value)+"'"

case thisform.Combo 1.value="期初余額"

tj="qcye&bj.thisform.Text 2.value"

endcase

thisform.dataenvironment.cursor1.filter=tj

if thisform.Combo 1.value="期初余額"

thisform.Text 2.setfocus

else

thisform.Text 1.setfocus

endif

thisform.refresh

上述代碼的相關(guān)說(shuō)明對(duì)應(yīng)如下:

(1)thisform.grid1.readonly=?t?是將表格Grid 1的只讀屬性設(shè)置為邏輯真值,使表格中的數(shù)據(jù)不允許被修改。

(2)分支語(yǔ)句do case…… endcase用于定義從Combo 1選擇不同列表項(xiàng)時(shí)對(duì)應(yīng)的查詢條件,并用變量tj表示。例如:當(dāng)從Combo 1選擇“科目編號(hào)”時(shí),tj="allt(kmbh)&bj.' "+allt(thisform.Text 1.value) + "' ",其中&bj.表示與從Combo 2中選擇的項(xiàng)相對(duì)應(yīng)的比較運(yùn)算符,allt()的作用是將字符串的前導(dǎo)和末尾空格去掉;此時(shí),當(dāng)從Combo 2中選擇<=、在Text 1中輸入201時(shí),tj="allt(kmbh)<='201'"。同理,當(dāng)從Combo 1選擇“期初余額”、Combo 2中選擇<=、在Text 2中輸入1 000時(shí),tj="qcye<=1 000.00"。

(3)語(yǔ)句thisform.dataenvironment.cursor1.filter=tj就是將Cursor1的Filter屬性設(shè)置為tj對(duì)應(yīng)的查詢條件,例如:thisform.dataenvironment.cursor1.filter="allt(kmbh)<=' 201' "。

(4)選擇語(yǔ)句if…… else…… endif的作用是,如果Combo 1中選擇了“期初余額”,則使Text 2獲得焦點(diǎn)以便于輸入數(shù)值型數(shù)據(jù),否則(表示選擇了“科目編號(hào)”、“科目名稱”或“借貸方向”),則使Text 1獲得焦點(diǎn)以便于輸入字符型數(shù)據(jù)。由于表單的Init事件和Combo 1的InteractiveChange事件的程序代碼規(guī)定了,如果在Combo 1中選擇列表項(xiàng)“期初余額”,則使Text 1隱藏、Text 2可見(jiàn);否則,會(huì)使Text 2隱藏、Text 1可見(jiàn),因此,在任何時(shí)候,只要Combo 1中選擇了“期初余額”,就只可能在可見(jiàn)的Text 2中輸入數(shù)據(jù),而不能在隱藏的㏕ext 1中輸入數(shù)據(jù);同樣,只要Combo 1中選擇的不是“期初余額”,就不能在隱藏的Text 2中輸入數(shù)據(jù)。這樣,就不必?fù)?dān)心數(shù)據(jù)輸錯(cuò)文本框的問(wèn)題。

(5)thisform.refresh的功能是刷新表單,以便在表格Grid 1中顯示出滿足查詢條件的記錄。

4.2.3 修改功能的實(shí)現(xiàn)

單擊“修改”按鈕時(shí),表格Grid 1控件中顯示的數(shù)據(jù)應(yīng)能夠被修改。因此,可在“修改”按鈕的Click事件中將Grid 1的ReadOnly屬性設(shè)置為?f?,并使Grid 1獲得焦點(diǎn),就允許對(duì)表格中顯示的數(shù)據(jù)進(jìn)行修改了。“修改”按鈕的Click事件的程序代碼對(duì)應(yīng)如下:

thisform.grid1.readonly=?f?

thisform.grid1.setfocus

當(dāng)使用鼠標(biāo)或鍵盤使焦點(diǎn)移出表格時(shí),表明本次修改操作結(jié)束。以后即使由于單擊“查詢”按鈕或直接單擊表格,而使表格再次獲得焦點(diǎn),表格中的數(shù)據(jù)也不允許進(jìn)行修改,除非再次單擊了“修改”按鈕。因此,焦點(diǎn)在移出表格Grid 1前,還應(yīng)將其ReadOnly屬性設(shè)置為?t?,使得只有再次單擊“修改”按鈕時(shí),才能去修改表格中的數(shù)據(jù)。可以利用Grid 1的Valid事件達(dá)到此目的,控件的Valid事件中的代碼在控件將要失去焦點(diǎn)前被執(zhí)行。表格Grid 1的Valid事件的程序代碼對(duì)應(yīng)為:this.readonly=?t?。

4.3 “退出”功能的實(shí)現(xiàn)

退出功能最簡(jiǎn)單的實(shí)現(xiàn)方法就是單擊“退出”按鈕時(shí)立即使表單從內(nèi)存中釋放。因此,可以在“退出”按鈕的Click事件中利用表單的release方法實(shí)現(xiàn)退出操作?!巴顺觥卑粹o的Click事件對(duì)應(yīng)的程序代碼為:thisform.release。

主要參考文獻(xiàn)

[1] 李國(guó)紅.管理信息系統(tǒng)數(shù)據(jù)輸入模塊的設(shè)計(jì)與實(shí)現(xiàn)——兼論會(huì)計(jì)科目的輸入設(shè)計(jì)[J].中國(guó)管理信息化,2006(11).

[2] 王利.全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)教程——Visual FoxPro程序設(shè)計(jì)[M].北京:高等教育出版社,2005.

[3] 陳洛資,陳昭平.數(shù)據(jù)庫(kù)系統(tǒng)及應(yīng)用基礎(chǔ)[M].北京:清華大學(xué)出版社,北京交通大學(xué)出版社,2005.

猜你喜歡
管理信息系統(tǒng)會(huì)計(jì)科目
用友U8軟件預(yù)置會(huì)計(jì)科目的維護(hù)
基于會(huì)計(jì)科目演變的銀行同業(yè)業(yè)務(wù)發(fā)展模式與風(fēng)險(xiǎn)分析
基于B/S結(jié)構(gòu)的學(xué)生公寓管理信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于“互聯(lián)網(wǎng)+”的企業(yè)管理信息系統(tǒng)優(yōu)化分析
基于工作流的水運(yùn)應(yīng)急信息管理平臺(tái)設(shè)計(jì) 
淺談會(huì)計(jì)科目撲克在高職會(huì)計(jì)專業(yè)教學(xué)中的應(yīng)用
職稱考試會(huì)計(jì)科目知識(shí)點(diǎn)歸集(一)