Vfp中Grid的使用技巧 1.如何在GRID里控制回車事件 在VFP里,,GRID的默認控件都是TEXTBOX,,形成了一個表格,,但是在這個二維表里進行操作時,,每次按回車都是往后一個單元格跳轉(zhuǎn),,當(dāng)?shù)阶詈笠涣袝r,,則繼續(xù)跳到第一列,,進而循環(huán),操作很不方便,。 2.如何實現(xiàn)輸完數(shù)據(jù)后按回車鍵,,使表格中的焦點自動跳到下一行 在你要判斷轉(zhuǎn)換的GRID的最后一列的TEXT1的keypress: 以上代碼未經(jīng)過試驗,,等待ing Thisform.grid1.recordsuore=Null是什么意思,? Thisform.grid1.recordsuore=Null 與Thisform.grid1.recordsuore=''是不是一樣的? null是不等于'',但在上面例子中的結(jié)果是一樣的,。 NULL值不是空值,,也不是零值,而是未知的,、不可預(yù)測的值,。在數(shù)據(jù)庫中,一旦將某字段設(shè)為Not Null 則用戶必須錄入數(shù)據(jù),否則不允許數(shù)據(jù)庫更新,。 3.我怎樣才能把網(wǎng)格中的文本控件替換為其它控件?(可參照收費管理系統(tǒng)) 首先,,先把原來的文本框控件刪除。 1)在您要修改的網(wǎng)格上按下鼠標右鍵,,選擇彈出菜單中的“屬性....” 2)在彈出的屬性對話框頂端的列舉框中選擇要替換文本框的column下的text1,。 3)在網(wǎng)格上按一下鼠標左鍵。 4)按下鍵盤上的DELETE按鍵,,刪除Text1控件(網(wǎng)格上的ab1將會消失),。 其次,在網(wǎng)格上添置控件,。 1)在您要修改的網(wǎng)格上按下鼠標右鍵,,選擇彈出菜單中的“編輯....” 2)按一下表單控件工具欄上您要加到網(wǎng)格上的控件。 3)在您要添置控件的column上按下鼠標左鍵,,并放置控件,。 用Grid模擬Browse窗口 可以將Grid結(jié)合在Form對象中,模擬成一個Browse命令窗口,,當(dāng)自由調(diào)整Form大小時,,Grid對象也會自動調(diào)整大小。實現(xiàn)方法如下: 1.首先設(shè)定一個Form對象,,該對象必須保留其BorderStyle屬性為“3-可調(diào)邊框”,,即設(shè)為可自由調(diào)整大小的邊線屬性;同時設(shè)定Resize事件如下: Thisform.Grid1.Width=this.Width Thisform.Grid1.Height=this.Height 2.設(shè)計一個Grid對象于Form對象中,,并設(shè)定其屬性如下: RecordSource為目前“數(shù)據(jù)環(huán)境”中所設(shè)定的工作區(qū)別名,; Top與Left均設(shè)為0,表示該對象左上端坐標為(0,,0),; Width的值設(shè)為Thisform.Width; Height的值設(shè)為Thisform.Height,。 這樣,,已經(jīng)設(shè)定好的Grid對象便可以和Browse窗口相關(guān)聯(lián),當(dāng)對Form對象進行大小調(diào)整時,,Grid對象的高度與寬度就可以隨之調(diào)整了,。 4.表格GIRD的數(shù)據(jù)源表刪除數(shù)據(jù)或變動后,表格會顯示空白? thisform.grid1.RecordSource = null 先hsiform.grid1.recordsource = null 經(jīng)過表操作(刪除,、變動等) 后hisform.grid1.recordsource ='dbfname' 5.關(guān)于Grid的綁定數(shù)據(jù)源問題(用臨時表綁定) thisform.grid1.recordsource="" 具體解釋如下: thisform.grid1.recordsource="" 6.grid控件的使用技巧(應(yīng)用setall()方法統(tǒng)一設(shè)置) (1)禁止用戶用鼠標去調(diào)整各個column的位置順序 thisform.dataenvironmnet.cursor1.order="姓名" Grid對象中當(dāng)數(shù)據(jù)記錄移動時,用顏色動態(tài)變化顯示相對光標所在記錄的位置,,可以在Grid對象的afterRowColChange事件過程中加入如下內(nèi)容: (7)在網(wǎng)格中交替顯示顏色 記錄號有序排列時,可以在網(wǎng)格的列中交替顯示白色和灰色的記錄,,代碼如下: thisform.Grid1.SetAll("DynamicBackColor","IIF(MOD(RECNO(),2)=0,,RGB(255,255,255),RGB(192,192,192))","Column")&&交替顯示白色和綠色的記錄 (8) 符合條件的記錄顯示顏色 進行查詢時,想在網(wǎng)格中動態(tài)地顯示符合條件的記錄的顏色,,可以充分利用DynamicBackColor和DynamicForeColor特性,。下例將符合條件的記錄的字體變?yōu)榧t色Thisform.Grid1.Column1.DynamicForeColor="IIf(Database.Category_ID='A02',RGB(225,0,0),RGB(0,0,124))" 例如:在《宅基地管理系統(tǒng)》中,使被注,、撤銷的記錄呈現(xiàn)紅色,,可在grid1的init事件和afterrowcolchange中添加下列代碼:(注意:經(jīng)過實驗,加不加"column"都可以) thisform.Grid1.SetAll("DynamicforeColor","IIF(是否被注(撤)銷='是',rgb(255,0,0),rgb(0,0,0))") &&使被注撤銷的記錄顯紅色 (9)設(shè)置多種顏色(無規(guī)律性) 主要是針對一個表GRID里,,當(dāng)記錄很多時,,而且某些記錄具有特定的屬性時,我們需要設(shè)置顏色來區(qū)分這些數(shù)據(jù),,如下代碼可以在刷新或初始化表單時,,設(shè)置其屬性。(注意:經(jīng)過實驗,,加不加,"column"都可以) thisform.Grid1.SetAll("DynamicBackColor","IIF(type>=1,iif(type>=2,iif(type>=3,rgb(0,128,0),rgb(192,192,192)),rgb(255,0,0)),rgb(255,255,255))") 如上代碼可以說明,,如果某記錄中有一個字段type,那么根據(jù)這個字段的數(shù)據(jù)值,,可以顯示不同顏色,,可以轉(zhuǎn)換成如下公式: iif(條件1,iif(條件2,iif(條件3,iif(條件4,iif(條件5,[...iif(條件N,顏色N,顏色n-1)...,]顏色5,顏色4),顏色3),顏色2),顏色1),其他顏色) (10)用SetAll方法。例如,,你決定為全部網(wǎng)格中的標題設(shè)置9號宋體,。將以下代碼放入網(wǎng)格的Init事件: THIS.SETALL("FontName","Arial","Header") 7..怎么才能讓grid的光標自動移動到要編輯記錄上? 如grid顯示的表為aa aa記錄有: 學(xué)號 001 002 003 ,。,。,。。,。,。 240 。,。,。。,。,。 在表單textbox中輸入"240"后,讓光標自動到學(xué)號為“240”的記錄(且grid能夠自動滾動到此記錄顯示-------) 在cmdGo的click事件中,,用以下代碼: sele aa loca 學(xué)號=thisform.textbox.value thisform.grid.setfocus 8,、我怎樣才能把網(wǎng)格中的文本控件替換為其它控件? 答:首先,先把原來的文本框控件刪除,。 1:在您要修改的網(wǎng)格上按下鼠標右鍵,,選擇彈出菜單中的“屬性....” 2:在彈出的屬性對話框頂端的列舉框中選擇要替換文本框的column下的text1。 3:在網(wǎng)格上按一下鼠標左鍵,。 4:按下鍵盤上的DELETE按鍵,,刪除Text1控件(網(wǎng)格上的ab1將會消失)。 其次,,在網(wǎng)格上添置控件,。 1:在您要修改的網(wǎng)格上按下鼠標右鍵,選擇彈出菜單中的“編輯....” 2:按一下表單控件工具欄上您要加到網(wǎng)格上的控件,。 3:在您要添置控件的column上按下鼠標左鍵,,并放置控件。 |
|