999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

在VFP中TreeView控件的應用

2016-04-29 00:00:00何文輝
現代職業教育·中職中專 2016年12期

[摘 要] 介紹TreeView(樹型)控件在信息管理系統開發中的使用方法及如何設計符合應用TreeView控件的數據表結構,并且結合遞歸算法實現TreeView控件在信息管理系統中的應用。

[關 鍵 詞] VFP;TreeView控件;遞歸算法;數據庫;信息管理系統

[中圖分類號] TP311 [文獻標志碼] A [文章編號] 2096-0603(2016)35-0105-01

一、前言

使用TreeView控件表達數據之間具有層次隸屬關系時非常形象直觀,因此TreeView控件在應用程序設計中具有非常重要的作用。可是在VFP開發平臺下,沒有TreeView控件,只能通過ActiveX控件使用TreeView控件,下面以本人為電視臺開發的電視收費管理系統軟件為例說明TreeView控件在VFP中的具體應用。

二、模塊功能介紹

電視收費管理系統的基礎數據表是房屋信息表,字段是編號(主鍵)、小區、樓棟、單元、樓層、門號、姓名等。為了直觀、方便地查找用戶基本信息,在此處采用了TreeView控件組織房屋信息數據檢索。TreeView控件包含三層數據檢索,分別是小區、樓棟、單元,可以根據用戶地址在TreeView控件中一層層地展開數據,相應在窗口的另一側檢索出符合條件的記錄信息。

三、關鍵步驟、技術與核心代碼

1.設計符合應用TreeView控件的數據表結構。(1)建立一個查詢視圖query_tv,內容包括房屋的地址信息及其他相關信息。建立此視圖的好處是可以從若干基礎信息表中提取相關數據,供查詢使用,這樣可以降低代碼復雜度。(2)在此表單的Load事件中加入如下代碼:

Select Distinct xq As dm,xqmc As mc From query_tv Group By xq,xqmcInto Cursor sql_dm_xq

Select Distinct xq,trim(lh)+′棟′ As mc,xq+′-′+lh As dm From query_tv Group By xq,lh,dm Into Cursor sql_dm_lh

Select Distinct xq,lh,trim(dy) +′單元′ As mc,xq+′-′+lh+′-′+dy As dm From query_tv Group By xq,lh,dy,dm Into Cursor sql_dm_dy

此三條SQL語句將生成三個臨時內存表供TreeView控件檢索數據使用。這里使用了一個技巧,就是三個臨時表中的DM字段的設計。最后一個臨時表中的DM字段是由小區、樓棟、單元三個字段復合而成的,當用戶在檢索最后一級節點時,系統實際是檢索復合而成的DM字段,這樣就不用再找它的父節點樓棟的數據及更高節點的數據。在查詢視圖query_tv中設計一個相應的字段DM,包括小區、樓棟、單元,這樣就可以在TreeView控件中點擊任何一層時,系統都能準確檢索出相應數據。

2.在此表單中通過ActiveX控件加入ImageList控件,將TreeView控件使用的圖標都保存在ImageList控件中,每個節點應該顯示的圖標由程序根據用戶的操作進行設置。

3.表單的布局。表單的布局可以借鑒WINDOWS系統中資源管理器的窗口布局,左邊放置一個TreeView控件,用于數據檢索。右邊放置一個Grid控件,用來顯示檢索數據的具體信息。然后可以利用VFP9提供的錨定功能,加入錨定值,以適應各種分辨率。

4.遞歸算法在TreeView控件初始化的應用。(1)在表單中新建字符型屬性組wa_tname[2,3],表示建立了表單級字符型3行2列的二維數組。這個數組用于保存上述三個臨時內存表的名字和特征字符。(2)在表單中新建一個方法wf_treeinitadd,這個方法將采用遞歸算法,把數據填充到TreeView控件中。wf_treeinitadd方法的代碼如下:

Lparameters ps_layer,ps_dm 兩個參數分別為層數和代碼(就是節點的KEY)

SELECT(Thisform.wa_tname(1,ps_layer))

Set Filter To dm =ps_dm

Go Top

Do While Not Eof()

ls_dm =dm

If ps_layer= 1

THISform.tv_1.NODES.ADD(,,Thisform.wa_tname(2,ps_layer) +dm,mc,1,2)

Else

THISform.tv_1.NODES.ADD(Thisform.wa_tname(2,ps_layer -1) +ps_dm,4,Thisform.wa_tname(2,ps_layer) +dm,mc,1,2)

EndIf

If ps_layer

Thisform.wf_treeinitadd(ps_layer+1,ls_dm)

此處為遞歸調用,即為此節點下面還有子節點

EndIf

SELECT(Thisform.wa_tname(1,ps_layer))

Skip

EndDo

If ps_layer=Thisform.wi_layer 遞歸返回條件

Return

EndIf

對此段代碼中幾個重要的地方做一下說明。wa_tname這個二維數組,第一維保存臨時內存表的名字,第二維保存特征字符。這里為什么需要特征字符呢?因為在TreeView控件中NODE節點的KEY屬性值必須是唯一的,加入特征字符是預防數據表中有重復數據引起系統報錯。

5.現在運行此表單,在TreeView控件將能夠按層顯示房屋檢索信息數據。

四、總結

TreeView控件填充數據的過程就是不停地循環調用直到填充到TreeView控件的末梢節點數據,這個過程正好體現了遞歸算法的精髓,因此實現起來方便,代碼簡潔。并且應用程序使用TreeView控件,可以使人機界面更加友好,更加直觀形象。使應用程序操作簡單,易學易用??傊?,在開發信息管理系統中,TreeView控件具有非常重要的作用,它能使數據之間具有的層次隸屬關系非常形象地表達出來,方便用戶的理解和操作。

參考文獻:

[1]張洪舉.Visual FoxPro 6.0~9.0解決方案與范例大全[M].人民郵電出版社,2006.

[2]陳宗興Visual FoxPro 6.x 中文版程序設計Internet應用篇[M].中國鐵道出版社,1999.

主站蜘蛛池模板: 欧美日韩一区二区三区在线视频| 性做久久久久久久免费看| 国产麻豆精品手机在线观看| 亚洲日韩精品欧美中文字幕| 伊人色综合久久天天| 国产区免费精品视频| 成人国产精品网站在线看| 国产AV毛片| 欧美一级黄片一区2区| 97se亚洲综合不卡 | 欧美日本在线| 亚洲欧美一级一级a| 天天综合网色中文字幕| 中日无码在线观看| 无码免费视频| 午夜福利在线观看入口| 亚洲国产成熟视频在线多多| 亚洲色欲色欲www网| 情侣午夜国产在线一区无码| 国产91小视频| 欧美日韩北条麻妃一区二区| 亚洲综合九九| 国产一区二区三区视频| 国产精品毛片一区视频播| 欧美无专区| 国产女人在线视频| 日本在线欧美在线| 国产自产视频一区二区三区| 青青草一区二区免费精品| 日韩激情成人| 国产69精品久久久久孕妇大杂乱 | 色老头综合网| 亚洲无码视频喷水| 亚洲精品爱草草视频在线| 亚洲国产成人久久77| 亚洲综合色吧| 欧美亚洲日韩中文| 日本三级欧美三级| 欧美成人a∨视频免费观看| 欧美三级不卡在线观看视频| a毛片在线免费观看| 综合天天色| 成人在线视频一区| 成人亚洲天堂| 最新日本中文字幕| 亚洲香蕉在线| 精品一区二区三区自慰喷水| 九九热精品免费视频| 日韩乱码免费一区二区三区| 日本不卡在线播放| 免费在线a视频| 伊伊人成亚洲综合人网7777| 91色在线视频| 免费大黄网站在线观看| 亚洲国模精品一区| 国产精品欧美日本韩免费一区二区三区不卡| 国产成+人+综合+亚洲欧美| 国产麻豆aⅴ精品无码| 国产农村1级毛片| 久久成人国产精品免费软件| 国产精品污视频| 精品国产黑色丝袜高跟鞋| 欧美激情视频二区| 亚洲无码日韩一区| 91久久大香线蕉| 午夜电影在线观看国产1区| 久久亚洲中文字幕精品一区| av尤物免费在线观看| 亚洲综合色区在线播放2019| 九九久久99精品| 青青青国产免费线在| 国产爽妇精品| 精品国产免费第一区二区三区日韩| 99久久精品国产麻豆婷婷| 热久久综合这里只有精品电影| 无码电影在线观看| 亚洲国产精品成人久久综合影院| a毛片基地免费大全| 成年网址网站在线观看| 四虎影视8848永久精品| 成人永久免费A∨一级在线播放| 国产欧美高清|