日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

VFP組合框動(dòng)態(tài)數(shù)據(jù)綁定實(shí)例之查找定位控件設(shè)計(jì)

 悟靜 2009-05-16

對(duì)于經(jīng)常用VFP編程和操作數(shù)據(jù)表的用戶來說,做一個(gè)對(duì)任意VFP支持的數(shù)據(jù)表都能進(jìn)行瀏覽和編輯的表單是非常必要的,在這個(gè)表單里,首先要有一個(gè)用來顯示數(shù)據(jù)表的表格Grid控件,其次要有許多的命令按鈕、組合框、文本框等控件,來執(zhí)行對(duì)數(shù)據(jù)表進(jìn)行篩選、定位、統(tǒng)計(jì)、修改等各種日常的操作。經(jīng)過長(zhǎng)期摸索與實(shí)踐,本人已經(jīng)初步完成了這樣一個(gè)表單,而且給日常管理工作帶來了很大的便利。本文就其查找定位功能一項(xiàng),寫出來與同行們交流。
二、基本思路
有很多VFP應(yīng)用系統(tǒng)的查找定位功能,大多都只局限于對(duì)具體某個(gè)數(shù)據(jù)表的某一個(gè)或某幾個(gè)字段進(jìn)行操作,不能滿足實(shí)際工作的各種需要。如果要對(duì)任何一個(gè)數(shù)據(jù)表的任何一個(gè)字段進(jìn)行查找定位,就需要有一個(gè)能動(dòng)態(tài)綁定源數(shù)據(jù)的組合框來實(shí)現(xiàn)。這個(gè)組合框的數(shù)據(jù)源必須隨光標(biāo)在表格Grid1控件中的不同列的變化而動(dòng)態(tài)綁定。方法是當(dāng)鼠標(biāo)點(diǎn)擊表格中不同列時(shí),表格控件必須返回當(dāng)前列的字段名和當(dāng)前數(shù)據(jù)表名稱給兩個(gè)公共變量,組合框在得到焦點(diǎn)時(shí)首先根據(jù)表格通過公共變量反饋的數(shù)據(jù)表名和字段名,用Select語句生成臨時(shí)數(shù)據(jù)表,且該表名稱按照上述的表名和字段名動(dòng)態(tài)構(gòu)造。該臨時(shí)數(shù)據(jù)表只有一個(gè)字段,就是表格中對(duì)應(yīng)的那個(gè)字段,但要去掉重復(fù)值。這一點(diǎn)在Select語句中用關(guān)鍵字Distinct實(shí)現(xiàn)。另外它需要進(jìn)行排序以便用戶快速查找,該臨時(shí)表生成后與組合框動(dòng)態(tài)綁定,當(dāng)點(diǎn)擊組合框時(shí)就會(huì)在下拉列表框中列出相應(yīng)字段值供用戶選擇。若被操作的數(shù)據(jù)表中該字段值相等或相近的記錄有多條時(shí),還可以在表單中另設(shè)一個(gè)命令按鈕來查找定位其下一條記錄。查找定位后應(yīng)能及時(shí)顯示在表格中,這需要在點(diǎn)擊組合框后把焦點(diǎn)交給表格控件,以便表格控件能及時(shí)將所定位的記錄高亮度顯示給用戶。
三、界面的設(shè)計(jì)與實(shí)現(xiàn)
設(shè)表單Form1中有一個(gè)組合框Combo1和一個(gè)表格Grid1,現(xiàn)在要通過點(diǎn)擊Combo1來定位Grid1中的記錄(另設(shè)一個(gè)命令按鈕作為Combo1的輔助來定位相同字段值的下一條記錄),并且要求被定位的記錄被選中為Grid1中的當(dāng)前記錄。具體代碼如下:
屬性設(shè)置:
Thisform.Combo1.RowSourceType = 6 (字段)
其余屬性設(shè)為默認(rèn)值。
方法設(shè)置:
Combo1.Init:
public fvalue          &&為字段值變量
fvalue=''
Combo1.refresh:
this.enabled=iif(empt(fieldname).or.type(fieldname)='M',.f.,.t.)  &&對(duì)備注型字段不可用
Combo1.gotfocus:
cursor_table = tabname+'_'+fieldname+'_cmb1'  
&&cursor_table 是為組合框提供數(shù)據(jù)源的臨時(shí)表名稱,tabname為當(dāng)前數(shù)據(jù)表名稱,fieldname為當(dāng)前字段名,這一語句的功能是按當(dāng)前操作的數(shù)據(jù)表名稱和當(dāng)前選中的數(shù)據(jù)列名稱為組合框動(dòng)態(tài)構(gòu)造數(shù)據(jù)源表名稱,tabname和fieldname兩變量的值由Grid1提供。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多