在PB中巧用下拉數(shù)據(jù)窗口_第1頁(yè)
在PB中巧用下拉數(shù)據(jù)窗口_第2頁(yè)
在PB中巧用下拉數(shù)據(jù)窗口_第3頁(yè)
在PB中巧用下拉數(shù)據(jù)窗口_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——在PB中巧用下拉數(shù)據(jù)窗口在PB中巧用下拉數(shù)據(jù)窗口

PowerPB提供了下拉數(shù)據(jù)窗口(DropDownDataWindow),使數(shù)據(jù)窗口更靈活、更便利。在用數(shù)據(jù)窗口進(jìn)行數(shù)據(jù)錄入時(shí),經(jīng)常要用到代碼錄入,即對(duì)經(jīng)常輸入的某些值設(shè)置代碼,錄入時(shí)直接錄入代碼即可。例如,有兩個(gè)表,主表main_table和代碼表code_table,錄入時(shí)主表中需要代碼表中的數(shù)據(jù),但不允許錄入不在代碼表中的數(shù)據(jù)。下面介紹如何使用下拉數(shù)據(jù)窗口實(shí)現(xiàn)上述功能。

靜態(tài)設(shè)計(jì)下拉數(shù)據(jù)窗口

首先對(duì)主表和代碼表設(shè)計(jì)兩個(gè)數(shù)據(jù)窗口dw_main和dw_code,其中dw_main包括字段id、name、sex、city和unit;dw_code包括字段code和data。假設(shè)unit字段有幾個(gè)常用值可使用代碼錄入,則在設(shè)計(jì)dw_main時(shí),用鼠標(biāo)右鍵點(diǎn)擊字段unit,在下拉菜單中選擇Properties...(屬性),則系統(tǒng)會(huì)彈出unit列的屬性對(duì)話框;在其中選擇Edit(編輯)項(xiàng),并在Style(風(fēng)格)下拉列表框中選擇DropDownDW項(xiàng);然后在下面的Options(選項(xiàng))框中作具體的選項(xiàng)配置:在DataWindow下拉框中選擇已設(shè)計(jì)好的代碼數(shù)據(jù)窗口dw_code作為下拉數(shù)據(jù)窗口;在DisplayColumn(顯示列)下拉框中選擇code字段;在DataColumn(數(shù)據(jù)列)下拉框中選擇data字段,這表示顯示的是code字段的內(nèi)容,而實(shí)際存于表main_table中的是data字段的內(nèi)容。至此,數(shù)據(jù)窗口設(shè)計(jì)完畢。設(shè)計(jì)完數(shù)據(jù)窗口后,需要建立一個(gè)數(shù)據(jù)錄入的窗口(window),名字為w_input;在窗口w_input上建立一個(gè)數(shù)據(jù)窗口的控件dw_1,其屬性DataWindowObjectName設(shè)為dw_main,并在w_input的open事件中寫入以下語(yǔ)句:dw_1.SetTransObject(SQLCA)dw_1.Retrieve()

這樣,在執(zhí)行此窗口時(shí),在unit字段上就會(huì)出現(xiàn)一個(gè)下拉列表框,列出了表code_table中所有的內(nèi)容,用戶可以用鼠標(biāo)選擇錄入。

動(dòng)態(tài)改變SQL語(yǔ)句在上面的例子中,假使表main_table中的字段city也需要代碼錄入,則還需為city字段新建一個(gè)表,這樣很麻煩,由于有幾個(gè)字段需要代碼,就需有幾個(gè)表與之對(duì)應(yīng)。我們可利用下拉數(shù)據(jù)窗口的一些特點(diǎn)來(lái)解決這一問(wèn)題??梢韵鄳?yīng)地修改表code_table的結(jié)構(gòu),加一個(gè)字段field(char(30)),以存儲(chǔ)需要代碼的字段名,這樣,就可利用SQL語(yǔ)句對(duì)之進(jìn)行檢索,以得到某字段的所有代碼。具體實(shí)現(xiàn)如下:重新設(shè)計(jì)數(shù)據(jù)窗口dw_code,把field字段加上并使它不可見(jiàn)(由于用戶不需要見(jiàn)到該字段的內(nèi)容),數(shù)據(jù)窗口dw_main和窗口w_input的設(shè)置同上,只是在數(shù)據(jù)窗口dw_1中需要進(jìn)行一些編程。在ItemFocusChanged事件中,參與如下代碼:Stringls_sqlIntegerrtncode

DataWindowChildfield_child

//dwo為該事件的參數(shù),其name屬性的值表示獲得焦點(diǎn)的字段名ChooseCaselower()Case‘city'//city字段獲得焦點(diǎn)

//獲得city字段下拉數(shù)據(jù)窗口的句柄

rtncode=dw_1.GetChild(\

Ifrtncode=-1ThenMessageBox(\//設(shè)置事務(wù)對(duì)象

field_child.SetTransObject(SQLCA)//獲得下拉數(shù)據(jù)窗口的SQL語(yǔ)句ls_sql=field_child.GetSQLSelect()//重新設(shè)置SQL語(yǔ)句,加上Where條件

ls_sql=ls_sql+\field_child.SetSQLSelect(ls_sql)//取得滿足條件的數(shù)據(jù)field_child.Retrieve()Case‘unit'unit字段獲得焦點(diǎn)

//獲得unit字段下拉數(shù)據(jù)窗口的句柄

rtncode=dw_1.GetChild(\……(此處編程同上)EndChoose

動(dòng)態(tài)設(shè)置取值參數(shù)上例中采用動(dòng)態(tài)改變SQL語(yǔ)句,其實(shí),下拉數(shù)據(jù)窗口有一種更簡(jiǎn)單的方法就是設(shè)置取值參數(shù)(RetrievalArguments),但這種方法適合從固定表中取數(shù)據(jù),假使是從動(dòng)態(tài)表(即表名不固定)中取數(shù)據(jù),則只能通過(guò)改變SQL語(yǔ)句來(lái)實(shí)現(xiàn)。

修改數(shù)據(jù)窗口dw_code,在圖形方式下,選擇Design菜單下的RetrievalArguments…,設(shè)置取值參數(shù)的類型為String,名字可任取,假設(shè)為field_data。然后在窗口下面的Where標(biāo)簽中選擇Column為\為\為取值參數(shù)的值:field_data(變量名前加冒號(hào)表示該變量的值),至此,取值參數(shù)設(shè)置完畢。同上例,也需要在窗口w_input中的數(shù)據(jù)窗口控件dw_1中的ItemFocusChanged事件中進(jìn)行如下編程:Integerrtncode

DataWindowChildfield_child

//dwo為該事件的參數(shù),其name屬性的值表示獲得焦點(diǎn)的字段名ChooseCaselower()Case‘city'//city字段獲得焦點(diǎn)//獲得city字段下拉數(shù)據(jù)窗口的句柄

rtncode=dw_1.GetChild(\

Ifrtncode=-1ThenMessageBox(\//設(shè)置事務(wù)對(duì)象

field

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論