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

動態下拉式按鈕組菜單在VFP中的應用

2014-10-21 20:07:31何文輝
新課程學習·下 2014年10期
關鍵詞:數據庫

何文輝

摘 要:采用面向對象的設計思想開發動態下拉式按鈕組菜單(以下簡稱動態菜單),規劃完善動態菜單的各項功能及其在信息管理系統中的應用。

關鍵詞:VFP;面向對象;動態下拉式按鈕組菜單;數據庫;信息管理系統

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

一、動態菜單的功能介紹

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

2.動態菜單將根據用戶ID和用戶自定義的菜單項,自動生成動態菜單。不同的用戶可根據自己的實際需要,由系統管理員分配菜單項及規定各級菜單的文本和圖標等。

二、設計思想

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

2.設計時,可以將動態菜單分為三個部分來進行。第一部分是設計子節點,子節點的功能是實現執行命令或過程等。第二部分是設計帶有子節點的父節點,父節點的功能是子節點的容器,實現二級菜單的動態填充及展開、關閉二級菜單。第三部分是設計動態菜單的主體,主體是父節點的容器,實現一級菜單的動態數據填充及管理一級菜單。

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

1.設計子節點類。代碼如下:

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 &&執行增加的新屬性runcmd宏

ENDPROC

ENDDEFINE

2.設計父節點類。

(1)增加新屬性。

DEFINE CLASS tb_node as Container &&定義父節點

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

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

c_maxheight =200 &&容器的最大高度,即容器顯示的子節點最多數量,當c_height

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

itemcnt =0 &&包含的子節點數

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

caption =0

(2)增加兩個對象。

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

ADD OBJECT node_cb AS CommandButton

PROCEDURE node_cb.Click

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

This.Parent.Parent.collapseall&&調用父節點所在容器的collapseall方法

This.Parent.expand &&調用父節點展開方法

This.Parent .Parent.LockScreen =.f.

ENDPROC

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

(3)增加幾個方法。

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

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.設計動態菜單的主體。

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

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

參考文獻:

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

編輯 溫雪蓮

猜你喜歡
數據庫
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
兩種新的非確定數據庫上的Top-K查詢
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
數據庫
財經(2015年3期)2015-06-09 17:41:31
數據庫
財經(2014年21期)2014-08-18 01:50:18
數據庫
財經(2014年6期)2014-03-12 08:28:19
數據庫
財經(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 99er精品视频| 国产成a人片在线播放| 欧美精品色视频| 亚洲精品国产综合99久久夜夜嗨| 九色在线视频导航91| 欧美成在线视频| 日本五区在线不卡精品| 国内毛片视频| 高清乱码精品福利在线视频| 九九视频免费在线观看| 青青草原国产av福利网站| 9966国产精品视频| 国内视频精品| 亚洲一区精品视频在线| 成人在线观看一区| 国产视频自拍一区| 日韩东京热无码人妻| 国产自视频| 久久免费看片| av一区二区三区在线观看| 日韩无码视频播放| 一区二区理伦视频| 一级毛片a女人刺激视频免费| 国产伦片中文免费观看| 在线国产综合一区二区三区| 国产精品专区第一页在线观看| 在线播放国产一区| 91久久国产综合精品女同我| 亚洲无码视频图片| 欧美国产另类| 久久无码av三级| 亚洲综合中文字幕国产精品欧美| 亚洲最大综合网| 欧美精品亚洲精品日韩专区va| 欧美成一级| 99re热精品视频国产免费| 亚洲国产天堂久久综合| 日韩成人在线网站| 精品国产成人高清在线| 日本高清有码人妻| 在线中文字幕网| 国产精品成人不卡在线观看| 国产成人精品一区二区免费看京| 狠狠久久综合伊人不卡| 免费看美女毛片| 人妻91无码色偷偷色噜噜噜| 国产精品粉嫩| 97无码免费人妻超级碰碰碰| 国产日本一线在线观看免费| 国产又大又粗又猛又爽的视频| 日本午夜三级| 99热这里只有成人精品国产| 国产精品久久久久久影院| 五月婷婷导航| 成人在线第一页| 无码aaa视频| 亚洲欧洲日韩综合色天使| 国产91丝袜在线播放动漫| 精品91视频| 国产超碰一区二区三区| 精品在线免费播放| 欧美日韩另类国产| 午夜无码一区二区三区| 无码区日韩专区免费系列| 亚洲精品国产综合99久久夜夜嗨| 亚洲一区免费看| 蜜芽国产尤物av尤物在线看| 免费不卡视频| 亚洲国模精品一区| 最新亚洲人成网站在线观看| 欧美人在线一区二区三区| 国产99视频精品免费视频7| 成人福利视频网| 国产不卡在线看| 国产一区成人| 国产丰满大乳无码免费播放| 中文字幕 日韩 欧美| 午夜国产大片免费观看| 久久精品亚洲专区| 国产Av无码精品色午夜| 99re免费视频| 欧美中文字幕一区二区三区|