国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

動態(tài)下拉式按鈕組菜單在VFP中的應(yīng)用

2014-10-21 20:07:31何文輝
新課程學(xué)習(xí)·下 2014年10期
關(guān)鍵詞:面向?qū)ο?/a>信息管理系統(tǒng)數(shù)據(jù)庫

何文輝

摘 要:采用面向?qū)ο蟮脑O(shè)計思想開發(fā)動態(tài)下拉式按鈕組菜單(以下簡稱動態(tài)菜單),規(guī)劃完善動態(tài)菜單的各項功能及其在信息管理系統(tǒng)中的應(yīng)用。

關(guān)鍵詞:VFP;面向?qū)ο?動態(tài)下拉式按鈕組菜單;數(shù)據(jù)庫;信息管理系統(tǒng)

使用傳統(tǒng)菜單必須要一層一層地點擊,才能執(zhí)行一個表單,有時容易點錯,為用戶帶來不便,并且界面也不美觀。而采用傳統(tǒng)菜單結(jié)合動態(tài)菜單的設(shè)計,不僅使用戶操作便捷,而且界面更加友好、更加專業(yè)化,并且動態(tài)菜單完全實現(xiàn)了用戶自定義菜單功能,大大降低了應(yīng)用程序的修改維護(hù),滿足各種用戶需求。

一、動態(tài)菜單的功能介紹

1.動態(tài)菜單布局:第一級菜單作為動態(tài)菜單的第一層,第二級菜單作為動態(tài)菜單的第二級,本例只用了兩級,可以根據(jù)需要拓展到多級,并且一般情況下,級數(shù)不要多于2層,否則影響使用效果。其用法是,當(dāng)點擊第一層菜單,如“查詢統(tǒng)計”,系統(tǒng)將下拉展開“查詢統(tǒng)計”的二級菜單。再次點擊其他的第一層菜單時,如“日常管理”時,只展開“日常管理”的二級菜單。其他一級菜單關(guān)閉。

2.動態(tài)菜單將根據(jù)用戶ID和用戶自定義的菜單項,自動生成動態(tài)菜單。不同的用戶可根據(jù)自己的實際需要,由系統(tǒng)管理員分配菜單項及規(guī)定各級菜單的文本和圖標(biāo)等。

二、設(shè)計思想

1.按照其功能,可以把每個一級菜單看作一個樹型節(jié)點,并且其行為也與樹型控件很相似,當(dāng)展開一級菜單中的一個時,其他一級菜單自動關(guān)閉,也可全部展開等。當(dāng)要實現(xiàn)其動態(tài)設(shè)定菜單項時,也需要將每個一級菜單作為一個節(jié)點類來處理

2.設(shè)計時,可以將動態(tài)菜單分為三個部分來進(jìn)行。第一部分是設(shè)計子節(jié)點,子節(jié)點的功能是實現(xiàn)執(zhí)行命令或過程等。第二部分是設(shè)計帶有子節(jié)點的父節(jié)點,父節(jié)點的功能是子節(jié)點的容器,實現(xiàn)二級菜單的動態(tài)填充及展開、關(guān)閉二級菜單。第三部分是設(shè)計動態(tài)菜單的主體,主體是父節(jié)點的容器,實現(xiàn)一級菜單的動態(tài)數(shù)據(jù)填充及管理一級菜單。

三、關(guān)鍵步驟、技術(shù)與核心代碼

1.設(shè)計子節(jié)點類。代碼如下:

DEFINE CLASS tb_cbnode as Commandbutton

Alignment=0

Height=25

Pictureposition =1

Width=124

runcmd=“”&&增加的新屬性

PROCEDURE Click

LOCAL ls_runcmd

ls_runcmd =This.runcmd

&ls_runcmd &&執(zhí)行增加的新屬性runcmd宏

ENDPROC

ENDDEFINE

2.設(shè)計父節(jié)點類。

(1)增加新屬性。

DEFINE CLASS tb_node as Container &&定義父節(jié)點

ENDDEFINE &&這條語句放在整個類定義之后

c_height =0 &&展開時容器的高度

c_maxheight =200 &&容器的最大高度,即容器顯示的子節(jié)點最多數(shù)量,當(dāng)c_height

&&大于c_maxheight時,容器將顯示上、下滾動箭頭。

itemcnt =0 &&包含的子節(jié)點數(shù)

preheight =25 &&單位高度,即點擊上、下滾動箭頭時子節(jié)點移動的單位

caption =0

(2)增加兩個對象。

增加一個命令按鈕,用來顯示父節(jié)點的標(biāo)題及展開、關(guān)閉父節(jié)點等功能,然后增加一個容器,用以放置子節(jié)點。代碼如下:

ADD OBJECT node_cb AS CommandButton

PROCEDURE node_cb.Click

This.Parent .Parent.LockScreen =.t. &&防止刷屏

This.Parent.Parent.collapseall&&調(diào)用父節(jié)點所在容器的collapseall方法

This.Parent.expand &&調(diào)用父節(jié)點展開方法

This.Parent .Parent.LockScreen =.f.

ENDPROC

ADD OBJECT node_c AS Container &&用來包含子節(jié)點的容器

(3)增加幾個方法。

增加collapse、expand、downclick、upclick、setp及ynhidecb方法,其含義分別是節(jié)點收縮、節(jié)點展開、點擊向下滾動箭頭、點擊向上滾動箭頭、運行宏及隱藏顯示命令按鈕。下面僅介紹關(guān)鍵代碼

PROCEDURE expand

LOCAL li_height

IF This.c_maxheight>=This.c_height

li_height=This.c_height

ELSE

li_height=This.c_maxheight

ENDIF

This.node_c .Height =li_height

This.Height=This.node_cb.Height ?+This.node_c.Height

ENDPROC

3.設(shè)計動態(tài)菜單的主體。

設(shè)計用戶自定義菜單錄入表。根據(jù)需要,分別設(shè)計了兩個表,一個menu_sub用于保存一級菜單項目,另一個menu_item用于保存二級菜單項目,兩個表為一對多關(guān)系,menu_sub為主表,menu_item為從表。

總之,這個動態(tài)菜單是由三部分組成,分別為子節(jié)點、父節(jié)點和動態(tài)菜單本身,它們的關(guān)系均為前一個對象是后一個類的子對象。并且動態(tài)菜單的行為方式與樹型控件的行為方式很相似,因此在設(shè)計此類時自然會產(chǎn)生分別設(shè)計三個類的想法。并且為了使其子節(jié)點能動態(tài)關(guān)聯(lián)執(zhí)行命令或過程,這里采用了宏,使得在類內(nèi)的子對象可以執(zhí)行外部函數(shù)。

參考文獻(xiàn):

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

編輯 溫雪蓮

猜你喜歡
面向?qū)ο?/a>信息管理系統(tǒng)數(shù)據(jù)庫
三維可視化信息管理系統(tǒng)在選煤生產(chǎn)中的應(yīng)用
信息管理系統(tǒng)在工程項目管理的應(yīng)用
基于三維TGIS的高速公路綜合信息管理系統(tǒng)
面向?qū)ο蟮挠嬎銠C(jī)網(wǎng)絡(luò)設(shè)計軟件系統(tǒng)的開發(fā)
電子測試(2018年15期)2018-09-26 06:01:34
面向?qū)ο蟮臄?shù)據(jù)交換協(xié)議研究與應(yīng)用
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
面向?qū)ο骔eb開發(fā)編程語言的的評估方法
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
凤山市| 富阳市| 江陵县| 老河口市| 肇州县| 张掖市| 东源县| 呼伦贝尔市| 潼关县| 灵璧县| 和政县| 崇义县| 泾川县| 伊宁县| 道真| 沽源县| 周口市| 栾川县| 长乐市| 石狮市| 乌拉特后旗| 徐州市| 阿勒泰市| 波密县| 宜黄县| 城市| 崇左市| 老河口市| 罗源县| 勐海县| 正镶白旗| 巫山县| 孟连| 铁岭市| 金乡县| 宁乡县| 独山县| 班玛县| 渑池县| 江陵县| 西乌珠穆沁旗|