在VB中利用MSHFlexGrid控件顯示可收縮的子記錄
在窗口放置一個MSHFlexGrid1控件(注意:在標準工具箱沒有這個控件,需要你自己添加,方法是點擊【工程】菜單,在下拉菜單再點擊【部件】,在對話框中勾選Microsoft FlexGrid con
在窗口放置一個MSHFlexGrid1控件(注意:在標準工具箱沒有這個控件,需要你自己添加,方法是點擊【工程】菜單,在下拉菜單再點擊【部件】,在對話框中勾選Microsoft FlexGrid control 6.0 (SP6)選項即可。),如果你還需要其他控件,繼續(xù)添加,這里我們僅僅添加一個MSHFlexGrid1控件。
要顯示或隱藏子記錄,你必須有數據庫,這里我們采用Access數據庫,數據庫中包含兩個數據表,一個是父記錄表,一個是子記錄表,父記錄表可以包含很多字段,同樣子記錄表中也可以包含很多字段,但是必須強調的一點:父記錄表中的其中一個字段必須和子記錄表中的一個字段不論大小、數據類型、字段名稱、默認值都應該完全一樣,這是父記錄連接子記錄的依據,具體的數據表我這里就不給出,根據你自己的需要設置吧。
設置顯示、隱藏子記錄的方法
在VB界面的工程屬性窗口,右擊已經存在的窗口名稱,在彈出的菜單中選擇【添加】-【Data Environment】這樣在你的程序中就添加了一個數據環(huán)境設計器DataEnvironment1,點擊DataEnvironment1,在設計窗口有一個Connection1的項目,右擊Connection1項目,選擇lt;屬性gt;,在出現的對話框中選擇lt;連接gt;選項卡,點擊(使用連接字符串)選項,再點擊【編譯…】按鈕,安裝要求創(chuàng)建文件數據源,最后在編譯按鈕前的文本框中就可以顯示你選擇的文件數據源了(包括數據源、數據源的連接方式等等,這部分不是本文探討的重點,不再詳述)。好了創(chuàng)建了數據連接,我們基本上完成了一半工作,下面你必須雙擊Connection1項目,在Connection1項目下面增加了一個Command1項目,右擊Command1項目,選擇屬性,在對話框的通用選項卡中的數據庫對象選擇“表“,對象名稱中選擇“父記錄表”,然后點擊【確定】按鈕即可。
哈哈!父記錄表的所有字段全部顯示在Command1項目下了!再雙擊Command1項目,在Command1項目下面增加了一個Command2項目,右擊Command2項目,選擇屬性,在對話框的通用選項卡中的數據庫對象選擇“表“,對象名稱中選擇“子記錄表”,緊接著,你必須設置父記錄和子記錄的關聯,選擇關聯選項卡,在父字段選擇要和子記錄關聯字段名,在子字段選擇和父記錄關聯的字段名,選擇后點擊【添加】按鈕,這樣父記錄和子記錄就設置了相互關聯了,然后點擊【確定】按鈕即可。
哈哈!子記錄表的所有字段全部顯示在Command2項目下了!
好了到這里數據環(huán)境設計已經完成,接下來我們必須將我們剛剛設計的數據環(huán)境加載到MSHFlexGrid1控件,就界面轉換到窗體的設計窗口,點擊MSHFlexGrid1控件,在MSHFlexGrid1控件的屬性對話框找到DataSource屬性,就其屬性設置為DataEnvironment1,將DataMember屬性值設置為Command1,好了,我們已經將數據環(huán)境加載到MSHFlexGrid1控件了。
對MSHFlexGrid1控件進行連接設置
僅僅將數據環(huán)境加載到MSHFlexGrid1控件還不夠,接下來我們要對MSHFlexGrid1控件進行連接設置,因為我們需要建立父記錄和子記錄的關聯,這必須在MSHFlexGrid1控件的帶區(qū)進行設置,具體方法是:右擊MSHFlexGrid1控件,在出現的列表中,選擇屬性,在屬性對話框中選擇帶區(qū)選項卡,這時出現的帶區(qū)是帶區(qū)0,在下面的列表框中出現“父記錄表”中所有字段,如果你不想將有些字段顯示在MSHFlexGrid1控件中,你可以將不顯示字段前面的勾去掉即可,這樣父記錄就設置完成了。接下來設置子記錄,點擊帶區(qū)下拉框的小三角,選擇帶區(qū)為帶區(qū)1,在下面的列表框中出現“子記錄表”中所有字段,如果你不想將有些字段顯示在MSHFlexGrid1控件中,你可以將不顯示字段前面的勾去掉即可,另外,這樣子記錄就設置完成了。
整個設置已經完成,現在你點擊運行按鈕(即小三角),怎么樣?你的父記錄前面是不是出現了 、-號的展開收縮項?到這里就完成了。
注意:上面所說的“父記錄表”和“子記錄表”是為敘述方便而臨時命名的,根據你的數據庫不同,父記錄和子記錄數據表名稱不同,進行修改即可。如果你需要調整列寬,在代碼窗口使用(X) 數字進行調整,其中X是需要調整的列代號(0-整個列數)。