999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

記賬憑證輸入模塊的設計與實現(xiàn)

2007-12-31 00:00:00李國紅
中國管理信息化 2007年12期

[摘 要] 本文以Microsoft Visual FoxPro 6.0為關系數據庫管理系統(tǒng),分析探討了記賬憑證輸入模塊設計與實施的過程與方法,并提供了相應的程序代碼。

[關鍵詞] 管理信息系統(tǒng);記賬憑證;信息輸入;VFP程序設計

[中圖分類號]F232[文獻標識碼]A[文章編號]1673-0194(2007)12-0003-06

記賬憑證輸入是電算化會計信息系統(tǒng)的一種極為重要的操作,輸入數據的正確性將直接關系到登記明細賬、現(xiàn)金日記賬、銀行存款日記賬及總賬的正確性,是保證正確輸出會計報表、賬簿數據的關鍵。本文將以Microsoft Visual FoxPro 6.0(以下簡稱VFP)數據庫管理系統(tǒng)為系統(tǒng)開發(fā)環(huán)境,闡明記賬憑證輸入模塊的設計與實現(xiàn)方法,本文所述程序已在VFP中運行通過。本文的設計在功能上有如下特點:①程序運行后立即顯示數據庫中最后一張記賬憑證,以便確定下一張待輸入憑證的憑證號;②記賬憑證輸入界面與實際單據相似,符合用戶習慣;③輸入憑證號立即顯示數據庫中已存在的對應憑證,如顯示為空白則表示憑證號可作為新憑證的憑證號進行輸入;④可以在同一輸入界面輸入和顯示一借一貸、一借多貸、多借一貸、多借多貸等憑證;⑤未審核的憑證允許修改,但已審核憑證禁止修改;⑥同一憑證輸入時,憑證號只需輸入一次,日期自動取憑證輸入當天的系統(tǒng)日期,“科目”與“借貸”項目可通過下拉組合框中的列表項選取;⑦命令按鈕在必要時呈灰色(無效狀態(tài));⑧借貸不平衡的輸入信息不允許保存;⑨輸入不符合要求或操作失誤時會有必要的信息提示。

1 設計與建立數據表

記賬憑證中的數據包括憑證號、日期、摘要、科目、借貸、金額、附件張數、審核、制單等信息。為保證記賬憑證信息完整有效和降低數據冗余,使信息存儲結構更加合理,需在指定目錄或默認目錄下建立記賬憑證附表jzpzfb.dbf和記賬憑證主表jzpzzb.dbf。這兩個數據表的結構為jzpzfb.dbf{pzh(C4),rq(D8),fjzs(N2.0),sh(C8),zd(C8)}、jzpzzb.dbf{pzh(C4),zy(C20),km(C9),jd(C2),je(N12.2)}。其中,字段pzh、rq、fjzs、sh、zd分別對應于憑證號、日期、附件張數、審核、制單,字段zy、km、jd、je對應于摘要、科目、借貸、金額,C、D、N分別表示字符型、日期型、數值型,數字表示字段寬度,小數點右邊的數字表示小數位數。例如,je(N12.2)表示“金額”字段je,寬度為12位,小數位占2位。

另外,由于記賬憑證中的科目(字段km的值)必須是會計科目表中存在的科目,在輸入科目時必須以會計科目表為依據。假設會計科目表的文件名為kjkm.dbf,其表結構為kjkm.dbf{kmbh(C9),kmmc(C36),jdfx(C1),qcye(N12.2)},其中,字段kmbh、kmmc、jdfx、qcye分別表示科目編號、科目名稱、借貸方向、期初余額,表中已保存有全部科目的相關信息。應確保文件kjkm.dbf與jzpzfb.dbf、jzpzzb.dbf在同一文件夾內。

2 設計與建立用戶輸入界面

2. 1設計與創(chuàng)建表單

按照輸入設計的原則和要求設計記賬憑證輸入界面,并用VFP建立與輸入界面對應的表單,如圖1所示。輸入界面的格式與實際的記賬憑證格式基本一致(或相似),Text1至Text6是各文本框的Name屬性,其中Text1至Text5文本框分別對應于jzpzfb中的各字段,Text6文本框用于接收從鍵盤輸入的憑證號數據,Text1中的憑證號在程序運行時自動取值為Text6中的數據;表格(默認Name屬性為Grid1)中各欄對應于jzpzzb中的各字段,表格中的憑證號在程序運行時自動取值為Text1中的數據;命令按鈕“新增憑證”、“輸入分錄”、“確定”、“取消”、“關閉”用于輸入過程中實現(xiàn)相應的操作。

2. 2建立關聯(lián)

2. 2. 1創(chuàng)建數據環(huán)境并建立表間聯(lián)系

建立數據環(huán)境(Name屬性默認為Dataenvironment),將數據表文件jzpzfb.dbf、jzpzzb.dbf、kjkm.dbf添加至數據環(huán)境,這時數據環(huán)境中這3個表的Alias屬性分別為jzpzfb、jzpzzb、kjkm,通過屬性窗口將它們的Name屬性分別設置為Cursor_JZPZFB、Cursor_JZPZZB、Cursor_KJKM(以便在后面的程序代碼中使用)。然后在數據環(huán)境窗口按住鼠標左鍵不放,將jzpzfb的pzh字段拖動到jzpzzb的pzh字段,可建立兩表之間的永久關系。

這樣,在表單啟動后,數據環(huán)境中的數據表jzpzfb、jzpzzb和kjkm將自動打開(表單關閉時這些數據表也會自動關閉),同時,數據表jzpzzb中的記錄指針將隨著jzpzfb中指針的移動而移動,jzpzzb中的指針指向與jzpzfb的pzh(憑證號)相匹配的記錄。

2. 2. 2表單各文本框與相應數據表的字段建立對應關系

為使表單上各文本框與jzpzfb中各字段建立關聯(lián),將文本框Text1、Text2、Text3、Text4、Text5的ControlSource屬性分別設置為:jzpzfb.pzh、jzpzfb.rq、jzpzfb.fjzs、jzpzfb.sh、jzpzfb.zd。這樣,表單運行后,這些文本框將分別顯示jzpzfb中當前指針所指的記錄信息。

2. 2. 3表格控件與相應數據表建立對應關系

為使表格與jzpzzb建立關聯(lián),應將表格控件(默認的Name屬性為Grid1)的RecordSourceType屬性設置為“1-別名”(不包括引號),同時將表格的RecordSource屬性設置為jzpzzb。用鼠標右鍵單擊Grid1表格,在彈出的快捷菜單中單擊“生成器”,再在彈出的“表格生成器”對話框中設置成如圖1所示的表格欄目及其標題。這樣,表格中各欄對應的ControlSource屬性自動設置成為jzpzzb中相應的字段,如表1所示。為便于后面的程序引用,將表格各欄對應的Name屬性也按表1進行設置。

表格中的“科目”及“借貸”欄的組合框控件是按下述方法添加上去的:①用鼠標右鍵單擊表格,在出現(xiàn)的快捷菜單中選擇執(zhí)行“編輯”項,則表格四周出現(xiàn)粗框,表明處于編輯狀態(tài)。②用鼠標左鍵單擊選中“表單控件”工具欄的組合框控件,然后再單擊表格中的“科目”欄,就在屬性窗口出現(xiàn)了一個Combo1組合框對象,其ControlSource屬性自動設置為jzpzzb.km。③為便于理解和使用,將Combo1的Name屬性改為ComboKM,這樣ComboKM的ControlSource屬性就自動成為jzpzzb.km。④在屬性窗口將科目欄column_KM的CurrentControl屬性設置為ComboKM,就可以看到在表格的“科目”欄添加了組合框ComboKM。用同樣方法在表格的“借貸”欄添加一個Name屬性為ComboJD的組合框控件,借貸欄column_JD的CurrentControl屬性為ComboJD,而ComboJD的

ControlSource屬性為jzpzzb.jd。表格中各欄的屬性設置如表1所示。

表單啟動后,在輸入或修改憑證時,單擊“科目”欄的組合框,在下拉列表中應顯示kjkm表中的全部科目編號與對應的科目名稱,可以選擇輸入相應的科目編號(輸入的科目必須是在kjkm表中存在的科目);單擊“借貸”欄的組合框,可在下拉列表選擇輸入“借”或“貸”。為達此目的,在設計時,應在屬性對話框按表2進行相應屬性的設置。其中,Name屬性指定了在代碼中用于引用的組合框控件的名稱,RowSourceType屬性指定組合框控件中數據值的源的類型,RowSource屬性指定組合框控件中數據值的源,而ColumnCount屬性指定組合框的下拉列表中列的數目,它應與RowSource屬性所做的設置相對應。

為便于后面的程序引用,將表格“憑證號”欄、“摘要”欄及“金額”欄的文本框控件對應的Name屬性分別設置為TextPZH、TextZY、TextJE,如表3所示。

經過上述設置后,圖1所示的表單在運行時,表格內將顯示jzpzzb中與jzpzfb的當前記錄相匹配的所有記錄,表單其余部分將顯示jzpzfb中當前指針所指向的記錄,如果記錄指針指向文件尾,則表單中不顯示任何記錄。

2. 3日期型及數值型文本框的處理

Text2中的數據應為輸入憑證的當天日期,數據類型為日期型,需要在“屬性”對話框將其Value屬性設置為“=date()”(不含引號),這樣,Text2就被設置為日期型文本框,并且運行時自動顯示為系統(tǒng)當前日期。

Text3中的數據是憑證的附件張數,數據類型為數值型,且對應于數據表jzpzfb的fjzs字段,數據位數不超過兩位。可以使用鼠標右鍵單擊Text3控件,在出現(xiàn)的快捷菜單中選擇執(zhí)行“生成器”項,再利用彈出的“文本框生成器”對話框將數據類型設置成為“數值型”,并將輸入掩碼設置為“99”(不含引號)。這樣就將Text3的數據類型設置成“數值型”,并且只允許在其中輸入1位或2位的整數值。

3 輸入功能的實現(xiàn)

3. 1設置表單緩沖方式

在屬性窗口將表單的BufferMode屬性設置為:2-開放式,可將緩沖方式指定為開放式更新記錄方式。這種緩沖方式可使編輯時記錄不鎖定,而當使用tableupdate()將記錄寫向磁盤時,VFP試圖鎖定記錄。這樣設置,才能保證3.5.3節(jié)所述單擊“確定”按鈕以保存憑證、3.5.4節(jié)所述單擊“取消”按鈕以取消憑證輸入或更新的程序在運行時不會出錯。

3. 2建立命令按鈕狀態(tài)方法程序

為盡可能避免誤操作,應將運行過程中不必使用的命令按鈕設置為無效,命令按鈕只有需要使用時才設置為有效。根據對不同運行階段各按鈕有效與無效狀態(tài)的分析可知,本輸入模塊共有3種不同的命令按鈕組合狀態(tài),這3種組合狀態(tài)在程序中多處使用。為減少程序代碼,提高代碼的重用性,可新建3個方法程序,每個方法程序代表一種命令按鈕組合狀態(tài),可以作為方法在程序中被使用。通過執(zhí)行VFP“表單”菜單下的“新建方法程序”,分別建立buttonstatus1、buttonstatus2和buttonstatus3命令按鈕方法程序,再在屬性窗口分別雙擊buttonstatus1、buttonstatus2、buttonstatus3,在彈出的代碼編輯窗口輸入相應功能的過程代碼即可。為便于引用各命令按鈕,在輸入代碼前先將“新增憑證”、“輸入分錄”、“確定”、“取消”、“關閉”按鈕的Name屬性分別設置為xzpz、srfl、qd、qx、gb。命令按鈕狀態(tài)方法程序的3個過程代碼及效果如表4所示。

3. 3表單初始化

表單啟動時,完成初始化設置,包括關閉會話方式并設置為精確比較方式;表單釋放時,恢復其默認的設置。分別在表單的Load、Unload過程中輸入相應的代碼即可,如表5所示。

表單啟動后,應使“新增憑證”、“關閉”按鈕呈有效狀態(tài),使“輸入分錄”、“確定”、“取消”按鈕呈無效狀態(tài),可利用thisform.buttonstatus1實現(xiàn);同時,如數據表有記錄,則表單顯示最后一條記錄,以便輸入新記錄時確定一個新的不重復的憑證號(輸入記錄時,一般按憑證號由小到大的順序輸入),可選擇jzpzfb所在的工作區(qū),指針指向末記錄。為達此目標,可在表單的Init過程中輸入相應的VFP代碼。表單的Init過程代碼對應如下,其中表示行后注釋,注釋可以不出現(xiàn)在程序中。

thisform.buttonstatus1“新增憑證”、“關閉”按鈕有效,其余按鈕無效

sele(thisform.dataenvironment.cursor_JZPZFB.alias)

選擇jzpzfb所在工作區(qū)

go bott指針指向末記錄

3. 4Text6文本框內容變化的處理

Text6文本框中的內容(憑證號)任何時候發(fā)生變化,都應在jzpzfb所在的工作區(qū)查找有無與Text6中的憑證號匹配的記錄,如有匹配,則立即在表單中顯示出匹配的記賬憑證;如無匹配的記錄則表單上相應的文本框及表格控件中將不顯示任何值,這時可將Text6中的內容作為憑證號進行新憑證的輸入。為實現(xiàn)這種功能,可在Text6的Interactive Change過程中輸入相應的代碼,Interactive

Change過程在用戶利用鍵盤或鼠標更改控件的值時發(fā)生。由于按2.2.1節(jié)進行設置后,jzpzzb中的記錄指針將隨著jzpzfb中指針的移動而指向相匹配的記錄,因此用refresh方法刷新表單即可顯示出匹配的憑證,而無匹配記錄時則顯示為空白。Text6文本框的InteractiveChange過程代碼如下:

sele( thisform.dataenvironment.cursor_JZPZFB.alias )選擇jzpzfb所在工作區(qū)

locate for allt(pzh)=allt(thisform.text6.value)定位到與Text6中匹配的記錄或文件尾

thisform.refresh刷新表單

3. 5輸入憑證處理

3. 5. 1單擊“新增憑證”按鈕以增加一個憑證

單擊“新增憑證”按鈕,如果Text6文本框中無輸入憑證號,則提示“請輸入新增憑證的憑證號!”;如果輸入Text6中的憑證號已存在于jzpzfb中,則提示“已存在此憑證號的憑證!”;如果輸入至Text6中的憑證號是一個新的憑證號(在jzpzfb中尚不存在該憑證號),則在jzpzfb中增加一條空白記錄,然后使Text1中的值自動變?yōu)門ext6中的值,再將Text6中的內容清空并將Text6的ReadOnly屬性設置為

.t.,使Text2中的日期自動成為當前系統(tǒng)的日期,刷新表單即可。應注意各命令按鈕的有效和無效狀態(tài)。“新增憑證”按鈕的Click事件對應的VFP程序代碼如下:

if len(allt(thisform.text6.value))<>0如果Text6中輸入了憑證號

sele ( thisform.dataenvironment.cursor_JZPZFB.alias ) 選擇jzpzfb所在工作區(qū)

locate for allt(pzh)=allt(thisform.text6.value) 查找jzpzfb中是否有匹配的憑證號

if .not.found() 如果輸入至Text6中的憑證號是一個新的憑證號

thisform.buttonstatus2“輸入分錄”、“取消”按鈕有效,其余按鈕無效

append blank在jzpzfb中追加一條空記錄

thisform.text1.value=thisform.text6.value Text1文本框自動取Text6中的值

thisform.text6.value=space(0) Text6中的內容清空

thisform.text6.readonly=.t. Text6的ReadOnly屬性設置為.t.

thisform.text2.value=date() Text2中自動取值為系統(tǒng)當前日期

thisform.refresh刷新表單

else如果輸入Text6中的憑證號已存在于jzpzfb中

thisform.buttonstatus1“新增憑證”、“關閉”按鈕有效,其余按鈕無效

=messagebox(\"已存在此憑證號的憑證!\",48)提示對話框

thisform.text6.setfocus Text6文本框獲得焦點

endif

else如果Text6中還未輸入憑證號

thisform.buttonstatus1“新增憑證”、“關閉”按鈕有效,其余按鈕無效

=messagebox(\"請輸入新增憑證的憑證號!\",48)提示對話框

thisform.text6.setfocus Text6文本框獲得焦點

endif

3. 5. 2單擊“輸入分錄”按鈕以進行憑證的輸入

如果Text6文本框中已輸入符合要求的憑證號,再單擊“新增憑證”按鈕,那么“輸入分錄”和“取消”按鈕呈有效狀態(tài),其他按鈕為無效按鈕。這時,如果單擊“輸入分錄”按鈕,程序應選擇jzpzzb所在的工作區(qū),并追加一條空白記錄,然后將pzh字段的值用表單上Text1控件中的值替換,刷新表格Grid1,以便通過鍵盤輸入此表格所示的其余字段的值,最后使各命令按鈕呈buttonstatus3所確定的狀態(tài)(“輸入分錄”、“確定”、“取消”有效;“新增憑證”、“關閉”無效)。“輸入分錄”按鈕的Click事件對應的VFP代碼如下:

sele (thisform.dataenvironment.cursor_JZPZZB.alias)

appe blank

replace pzh with thisform.text1.value

thisform.grid1.refresh

thisform.buttonstatus3

3. 5. 3單擊“確定”按鈕以保存憑證

輸入至表單上的數據,需要單擊“確定”按鈕保存至jzpzzb.dbf和jzpzfb.dbf文件,或者單擊“取消”按鈕放棄數據的輸入或更新操作。

單擊“確定”按鈕,應充分考慮數據輸入的容錯功能,即輸入至表單的數據不符合要求時,不能進行保存操作,并應當有相應的提示信息,只有符合要求的數據才真正保存在jzpzzb.dbf和jzpzfb.dbf文件。單擊“確定”按鈕執(zhí)行的操作過程如圖2所示。

“確定”按鈕的Click事件對應的VFP代碼如下:

sele (thisform.dataenvironment.cursor_JZPZZB.alias)

set filter to allt(pzh)=allt(thisform.text1.value)

locate for len(allt(km))=0

if .not. found()

locate for len(allt(jd))=0

if .not. found()

locate for je=0.00

if .not. found()

store 0.00 to je_jie,je_dai

sum je to je_jie for allt(jd)='借'

sum je to je_dai for allt(jd)='貸'

if je_jie=je_dai

if len(allt(thisform.text5.value))<>0

sele (thisform.dataenvironment.cursor_JZPZFB.alias)=tableupdate(.t.)

sele (thisform.dataenvironment.cursor_JZPZZB.alias)=tableupdate(.t.)

thisform.refresh

thisform.buttonstatus1

thisform.text6.setfocus

thisform.text6.readonly=.f.

else

=messagebox(“請輸入制單人!”,48)

thisform.text5.setfocus

thisform.buttonstatus3

thisform.text6.readonly=.t.

endif

else

=messagebox(“借貸不平衡!”,48)

thisform.grid1.column_JE.setfocus

endif

else

=messagebox(“金額不能為0!”,48)

thisform.grid1.column_JE.setfocus

endif

else

=messagebox(“指定借或貸!”,48)

thisform.grid1.column_JD.setfocus

endif

else

=messagebox(“請指定科目!”,48)

thisform.grid1.column_KM.setfocus

endif

3. 5. 4單擊“取消”按鈕以撤銷憑證的輸入或更新

單擊“取消”按鈕,將不允許以表單上顯示的輸入數據對jzpzfb.dbf和jzpzzb.dbf文件進行更新。應分別在jzpzfb和jzpzzb所在的工作區(qū)用tablerevert(.t.)來撤銷對當前記錄的更改,然后用refresh方法刷新表單,并使各按鈕呈buttonstatus1所確定的狀態(tài)(就是使“新增憑證”、“關閉”有效以便增加新的憑證或關閉表單,使其余按鈕無效),再將Text6的ReadOnly屬性設置為.f.,并使Text6獲得焦點,以便于輸入新的憑證號。這些操作的代碼應體現(xiàn)在“取消”按鈕的Click事件中,“取消”按鈕的Click事件對應的VFP代碼如下:

sele (thisform.dataenvironment.cursor_JZPZFB.alias)

=tablerevert(.t.)

sele (thisform.dataenvironment.cursor_JZPZZB.alias)

=tablerevert(.t.)

thisform.refresh

thisform.buttonstatus1

thisform.text6.readonly=.f.

thisform.text6.setfocus

3. 6關閉操作

全部輸入操作完成后,需單擊“關閉”按鈕以退出表單。退出前可用messagebox()函數提示“真的想退出嗎?”,在彈出的包含“是”和“否”按鈕的提示對話框中單擊“是”按鈕完成退出功能,退出用release方法實現(xiàn)。“關閉”按鈕的Click事件對應的VFP代碼如下:

if messagebox(“真的想退出嗎?”,4+48,“提示”)=6

thisform.release

endif

4 進一步討論

4. 1防止手工修改Text1、Text2、Column_PZH和Text4中的值

為降低輸入出錯率和提高輸入的容錯性,從鍵盤輸入的憑證號顯示在Text6文本框,當單擊“新增憑證”按鈕時,Text1文本框中自動變?yōu)門ext6中的值,Text2中自動顯示為系統(tǒng)的當前日期(即輸入憑證的日期),而單擊“輸入分錄”按鈕時,表格中憑證號欄(Column_PZH)的文本框(TextPZH)應自動變?yōu)門ext1文本框中的值,以保證同一輸入界面中輸入的是同一憑證的數據。為防止誤操作,需將Text1、Text2、Column_PZH的ReadOnly屬性設置為:.T.-真。同樣,Text4中為審核人姓名或代碼,由于輸入憑證時不允許輸入審核人(表示憑證未審核),修改憑證時也不能修改其中的內容,只有在審核模塊中才允許更改其中的值,所以在該輸入模塊中還應將Text4的ReadOnly屬性也設置為:.T.-真。

4. 2防止對已審核憑證進行更改

4. 2. 1定義Text3、Text5、Grid1的When過程

在Text6中輸入憑證號時,如果輸入的憑證號在數據庫中已存在,則對應的記賬憑證會在表單中顯示出來。如果顯示出的是已審核憑證(即Text4中的值為非空),則不能對其進行有意或無意的修改,可通過設置相關控件的ReadOnly屬性實現(xiàn)。如果text4中的內容不為空(表明為已審核憑證),則Text3、Text5收到焦點前將其ReadOnly屬性設置為.t.,表格Grid1控件收到焦點前將其Enabled屬性設置為.f.,并提示“已審核憑證不能修改”;否則,Text3、Text5收到焦點前將其ReadOnly屬性設置為.f.,Grid1收到焦點前將其Enabled屬性設置為.t.。為實現(xiàn)此功能,可分別在Text3、Text5、Grid1的When過程中輸入如表6所示的代碼,When過程代碼在控件對象收到焦點前發(fā)生。(注:Text1、Text2、Text4的ReadOnly屬性已按4.1節(jié)設置為:.T.-真。如未進行此設置,則應在Text1、Text2、Text4的When過程中輸入與Text3、Text5相同的When過程代碼)。

4. 2. 2允許正常的輸入與修改操作

通過用戶操作或以代碼方式使Text6文本框獲得焦點時,表示可能要輸入憑證號,并允許輸入新的憑證。但為了減少誤操作,在4.2.1節(jié)所述程序代碼中出現(xiàn)了將Text3和Text5的Readonly屬性設置成.t.、將Grid1的Enabled屬性設置成.f.的情況,從而限制了對Grid1及Text3、Text5中數據的后續(xù)輸入和修改操作。因此,為便于后續(xù)輸入及修改操作的執(zhí)行,還需要在Text6文本框的GotFocus過程中將Grid1的Enabled屬性設置為.t.、將Text3(附件張數)和Text5(制單)的Readonly屬性設置為.f.,同時有必要將Text6中的內容清空(如果已有內容的話),GotFocus過程在一個對象通過用戶操作或以代碼方式獲得焦點時發(fā)生。Text6的GotFocus過程對應的VFP代碼如下:

thisform.grid1.enabled=.t.

thisform.text3.readonly=.f.

thisform.text5.readonly=.f.

this.value=space(0)

4. 3防止修改狀態(tài)下執(zhí)行“新增憑證”和“關閉”操作

當使用鍵盤或鼠標更改文本框Text3、Text5及表格Grid1的TextZY、ComboKM、ComboJD、TextJE中的值時,表明可能要對相應的數據進行修改,程序進入修改狀態(tài),必須單擊“確定”或“取消”按鈕以便決定是否真正執(zhí)行數據修改操作。單擊“確定”或“取消”按鈕前,也允許根據需要輸入新的分錄,所以應使“確定”、“取消”、“輸入分錄”按鈕同時有效,而這種情況下的“新增憑證”和“關閉”按鈕應呈無效狀態(tài),可用thisform.buttonstatus3實現(xiàn)。另外,在數據修改狀態(tài)下,Text6文本框中不可輸入新值,需將其ReadOnly屬性設置為.t.。實現(xiàn)這種功能的程序代碼應包含在相應控件的InteractiveChange過程中,Text3、Text5、TextZY、ComboKM、ComboJD、TextJE的InteractiveChange過程代碼對應如下。

thisform.buttonstatus3

thisform.text6.readonly=.t.

4. 4使輸入憑證號更方便

有時,Text6中輸入了一些字符,希望利用鼠標單擊能夠立即清空,以便重新輸入,可以在Text6文本框的Click過程中輸入以下代碼:this.value=space(0)。

主要參考文獻

[1] 李國紅.管理信息系統(tǒng)數據輸入模塊的設計與實現(xiàn)——兼論會計科目的輸入設計[J]. 中國管理信息化,2006,(11):19-22.

[2] 朱順泉,姜靈敏.管理信息系統(tǒng)理論與實務[M]. 北京:人民郵電出版社,2004.

主站蜘蛛池模板: 国产美女久久久久不卡| 亚洲综合狠狠| 亚洲色图另类| 精品视频在线观看你懂的一区| 久久综合婷婷| 精品视频福利| 亚洲精品波多野结衣| AV不卡在线永久免费观看| 精品国产成人三级在线观看| 国产精品视频猛进猛出| 国产亚洲一区二区三区在线| 极品av一区二区| 波多野结衣中文字幕一区二区| 国产人前露出系列视频| 香港一级毛片免费看| 欧美日韩中文字幕二区三区| 亚洲国产亚洲综合在线尤物| 大香伊人久久| 国产欧美综合在线观看第七页| 91视频首页| 亚洲福利网址| 91精品网站| 特级欧美视频aaaaaa| 老司机精品久久| 亚洲精品手机在线| 波多野结衣一区二区三视频 | 精品剧情v国产在线观看| 国产一二三区在线| 免费一看一级毛片| 成人另类稀缺在线观看| 亚洲人网站| 国产成人精品高清不卡在线 | 亚洲精品波多野结衣| 成人国产精品一级毛片天堂 | 亚洲国产欧美国产综合久久| 国产精品男人的天堂| 一本大道东京热无码av| 久热中文字幕在线观看| 依依成人精品无v国产| 日本午夜视频在线观看| 成人在线视频一区| 欧美中文字幕一区| 国产亚洲高清在线精品99| 88av在线| 欧美黄网站免费观看| 成年人视频一区二区| 99热这里只有精品在线观看| 欧美日本视频在线观看| 2022精品国偷自产免费观看| 国产精品成人第一区| 黄色不卡视频| 国产aaaaa一级毛片| 不卡网亚洲无码| 无码中文字幕加勒比高清| 国产欧美日韩另类| 国产日韩欧美精品区性色| 久久99国产精品成人欧美| 99视频精品在线观看| 91偷拍一区| 精品亚洲麻豆1区2区3区| 丰满的少妇人妻无码区| 国产欧美视频在线观看| 一本久道久综合久久鬼色| 福利一区三区| 亚洲精选无码久久久| 四虎精品国产永久在线观看| 91年精品国产福利线观看久久| 美女被操91视频| 9cao视频精品| 久久狠狠色噜噜狠狠狠狠97视色 | 亚洲激情99| 国产精品99久久久久久董美香| 欧美成人a∨视频免费观看 | 国产视频 第一页| 精品少妇人妻一区二区| 青青草国产一区二区三区| 国产成人高清精品免费软件 | 女人18毛片一级毛片在线 | 伊人精品视频免费在线| 久久免费看片| 亚洲福利一区二区三区| 午夜精品一区二区蜜桃|