国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

TreeView控件與數據窗結合控件原理

2024-07-21 02:09:14
字體:
來源:轉載
供稿:網友
國內最大的酷站演示中心!
在某系統的實現中,遇到了物料清單的編輯及顯示問題,要求能夠按照樹形結構顯示某產品的詳細構成情況。例如,產品分為幾個大總成,各總成下有若干裝置、部件,各部件下可能有小總成、部件、零件等等,這樣就可能形成一棵很復雜的樹結構。
  而且要求能夠進行復雜的查找,過濾等操作,因此與數據窗的查找(find)及過濾(filter)、排序(sort)等結合起來是非常理想的控件構建方式。在pb中,通過樹與數據窗一起運行,是可以滿足這樣要求的。甚至可以做成通用的控件用來滿足所有的樹結構類型的數據的編輯。

  以下講述主要實現原理:

  1、數據窗中,包含用來處理成樹節(jié)點treeviewitem的各個列,如 代碼、名稱、父代碼、層次、排序、其他等等;
 ?。病?chuàng)建數據窗時,在sql語法中建立一個計算列(偽列):item_handle,用來存放該行數據對應的樹句柄;
  3、從標準treeview繼承,建立userobject,取名:pfc_treeview,對該控件建立如下函數:
    ·uf_init_tree(as_data_store,as_id_col,as_name_col,as_parent_col,as_level_col,as_sort_string)  // datastore同步 
    ·uf_init_tree(as_data_window,as_id_col,as_name_col,as_parent_col,as_level_col,as_sort_string) // 數據窗同步
    ·uf_find_id(string as_id_value) return long //按照id進行查找(實際上在數據窗中查找并返回item_handle值);
    ·uf_find_name(string as_name_value) return long //按照 name_column 來查找;
    ·uf_get_all_handle(ref al_handles[]) return long//返回所有的句柄;
    ·uf_get_current_handle() return long //返回當前句柄;
    ·uf_get_current_item() return treeviewitem //返回當前節(jié)點;
    ·uf_get_current_id() // 返回當前 節(jié)點的id值
    ·uf_get_current_name() // 返回當前節(jié)點的 label 值
    ·uf_get_current_data() // 返回當前節(jié)點的 data 值,any類型,可以擴充為 structure以存放其它數據
    ·uf_get_child_handle(ref al_child_handle[]) //返回當前節(jié)點的所有子節(jié)點句柄
    ·uf_get_parent_handle(ref al_parent_handle[]) //返回當前節(jié)點的父節(jié)點句柄,一直到最頂層;
    ·……
    ·uf_update_item(al_handle) //更新節(jié)點;
    ·uf_insert_item(al_parent_handle,atvi_item) //增加節(jié)點

  4、在應用中,將這個控件直接放入窗口中,然后調用 uf_init_tree()函數來初始化;
 ?。?、如果是常用的樹,則將初始化函數在 pfc_treeview的construct事件中寫入,這樣就可以直接用了。
 ?。?、對數據窗的的修改,需要更新樹的變化
 ?。?、在樹的 endlabeledit事件中,更新數窗信息;
  8、如果支持拖放,則dragdrop,dragenter,dragwithing,dragleave等事件都需要處理;
  9、……

  關于這個控件,可以寫的函數非常多,甚至可以完成數據窗的所有功能,這樣,對于經常使用treeview的應用而言,就可以極大地簡化代碼復雜性,界面一致,高效。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 涞源县| 平山县| 祁东县| 樟树市| 谷城县| 远安县| 安顺市| 射洪县| 临汾市| 休宁县| 兴义市| 宝丰县| 呼图壁县| 平定县| 杭州市| 松滋市| 铜鼓县| 扎赉特旗| 饶阳县| 黄陵县| 石棉县| 乌审旗| 榆林市| 集贤县| 北碚区| 遵化市| 信丰县| 德昌县| 哈密市| 历史| 鄂托克前旗| 江西省| 虞城县| 宿松县| 丽水市| 昌平区| 石门县| 蒙自县| 伊金霍洛旗| 宝清县| 清河县|