亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于元數(shù)據(jù)的通用表單動態(tài)生成技術(shù)

        2013-10-15 07:38:36張桂平
        計算機(jī)與現(xiàn)代化 2013年11期
        關(guān)鍵詞:表單數(shù)據(jù)表控件

        張桂平

        (連云港杰瑞深軟科技有限公司,江蘇 連云港 222006)

        0 引言

        隨著信息化建設(shè)的迅速發(fā)展,可利用的信息日益增多,在大型電子信息系統(tǒng)中,龐大的、各式各樣的數(shù)據(jù)需要在平臺中展示和維護(hù)。如果按照每個庫表結(jié)構(gòu)單獨進(jìn)行靜態(tài)設(shè)計表單界面,對于成百上千的表而言,界面的排版工作量之大,產(chǎn)生界面和代碼文件之多,必然導(dǎo)致出錯率隨之增高,而且還不便于維護(hù)。而一般經(jīng)常使用的數(shù)據(jù)類型是文本型、字符串型、時間型、數(shù)值型這4種類型的數(shù)據(jù),在界面的顯示方式主要使用一般編輯框、下拉框型編輯框、時間型編輯框和文本編輯框這幾種控件。如果遇到如OraclE中的BLOB、RAW等字段類型,則可以另行再作特殊處理,當(dāng)然,也可以按照本文所介紹的實現(xiàn)方法另外開發(fā)一類含有BLOB或RAW型數(shù)據(jù)的通用表單頁面。

        從數(shù)據(jù)類型著手,可以通過從元數(shù)據(jù)中直接取得數(shù)據(jù)的類型、長度及其他相關(guān)描述信息,編寫代碼執(zhí)行后,動態(tài)產(chǎn)生表單頁面,這樣不僅能提高軟件的開發(fā)效率,降低軟件運行的出錯率,提高軟件的復(fù)用率,而且還能使系統(tǒng)更加人性化,例如用戶可以自己通過調(diào)整元數(shù)據(jù)的有關(guān)信息,得到想要的表單設(shè)計頁面。而如何通過調(diào)用統(tǒng)一接口,利用元數(shù)據(jù)中對原始數(shù)據(jù)的描述信息,按照一定規(guī)則自動生成表單是本文討論所要介紹的重點內(nèi)容。

        1 解決方案

        一般認(rèn)為,元數(shù)據(jù)是關(guān)于數(shù)據(jù)的數(shù)據(jù),但這種定義還是過于簡單和籠統(tǒng)。實際上,在不同領(lǐng)域?qū)ν粋€數(shù)據(jù)會用不同的元數(shù)據(jù)來進(jìn)行描述。在數(shù)據(jù)倉庫領(lǐng)域中,元數(shù)據(jù)包括記錄數(shù)據(jù)項的業(yè)務(wù)描述信息,能支持系統(tǒng)對數(shù)據(jù)的管理和維護(hù);在軟件構(gòu)造領(lǐng)域中,元數(shù)據(jù)則被定義為通過其數(shù)據(jù)的修改來改變程序的行為的數(shù)據(jù)。本文所指的元數(shù)據(jù)類似于軟件構(gòu)造領(lǐng)域中的元數(shù)據(jù),比如通過修改元數(shù)據(jù)中是否隱藏、選擇控件類型、頁面數(shù)、列擺放數(shù)等內(nèi)容,在代碼執(zhí)行時,會調(diào)用這些信息來得到不同的結(jié)果。

        本文所介紹的通用表單動態(tài)生成技術(shù)建立在元數(shù)據(jù)基礎(chǔ)之上,主要步驟如下:

        (1)建立元數(shù)據(jù)庫表結(jié)構(gòu),記錄數(shù)據(jù)庫中各庫表的信息,包括數(shù)據(jù)庫類型、表名、字段名、字段標(biāo)題、字段類型、字段大小、是否為空、是否唯一、引用值、缺省值等庫表本身信息,這些信息只需從庫表字典中提取即可,無需手工輸入。在此基礎(chǔ)上再添加序號、是否只讀、控件類型、是否隱藏、列擺放數(shù)等屬性信息,這幾個信息根據(jù)需要可進(jìn)行手工設(shè)置。

        (2)設(shè)計公用表單界面,即用戶通過接口函數(shù)中的表名,提取元數(shù)據(jù)中庫表相應(yīng)的信息,按照一定的規(guī)則創(chuàng)建表單界面。表單界面如何設(shè)計是關(guān)鍵,即根據(jù)元數(shù)據(jù)所記錄的庫表信息結(jié)合一定的約束條件來進(jìn)行設(shè)計,例如根據(jù)元數(shù)據(jù)中的“數(shù)據(jù)庫類型”選擇相應(yīng)的數(shù)據(jù)源連接接口,計算所要顯示的字段個數(shù)和控件類型來設(shè)計界面的大小。其中,控件類型主要分編輯控件、下拉框控件、時間編輯控件及文本框控件4種類型,也是界面產(chǎn)生哪類控件的依據(jù)。另外,用戶可根據(jù)元數(shù)據(jù)中序號來設(shè)置界面中字段擺放的次序和位置,而列擺放數(shù)分為1、2、3種類型,表示表單界面編輯框一行所要放置的個數(shù)。

        (3)依據(jù)數(shù)據(jù)庫類型選取數(shù)據(jù)庫連接方式,如果使用的是Oracle數(shù)據(jù)庫,則可以用Oracle的第三方控件連接數(shù)據(jù)庫的方式;如果使用的是SQLServer數(shù)據(jù)庫,則可使用ODBC連接方式。利用元數(shù)據(jù)可以將幾種異構(gòu)數(shù)據(jù)庫有機(jī)地集成在一起,然后各自讀取相應(yīng)庫表中的數(shù)據(jù),并將數(shù)據(jù)暫存于DATASET中,再根據(jù)控件所關(guān)聯(lián)庫表中的字段名在界面中顯示相應(yīng)的數(shù)據(jù),也可以通過增加、修改功能進(jìn)行數(shù)據(jù)維護(hù)。通過統(tǒng)一接口函數(shù)中所提供的數(shù)據(jù)源類型、表名、唯一索引值和是否增加狀態(tài)來讀取庫表中的數(shù)據(jù),并對數(shù)據(jù)進(jìn)行維護(hù)和提交。

        具體流程如圖1所示。

        2 實現(xiàn)方法

        2.1 建立元數(shù)據(jù)

        通用表單是依據(jù)元數(shù)據(jù)中所提供的信息而產(chǎn)生的,因此,在生成表單之前,必須建全元數(shù)據(jù)中的信息。

        圖1 通用表單實現(xiàn)流程圖

        在Oracle數(shù)據(jù)庫中,建立元數(shù)據(jù)表結(jié)構(gòu)來存放各源數(shù)據(jù)表的信息和其它一些屬性信息,主要包括列名、列標(biāo)題、數(shù)據(jù)類型、不能為空、缺省值、隱藏、數(shù)據(jù)長度、是否主鍵、是否唯一、數(shù)據(jù)精度、唯一性索引名稱、只讀、引用id、列擺放數(shù)、控件類型、序號等內(nèi)容。為了便于用戶使用,需要對元數(shù)據(jù)的定義單獨開發(fā)一個模塊,供用戶從數(shù)據(jù)庫系統(tǒng)中提取源數(shù)據(jù)信息,并設(shè)置一些表單界面所需要的信息。具體的實現(xiàn)方法與普通維護(hù)庫表數(shù)據(jù)類似,其界面布局如圖2所示。

        圖2 元數(shù)據(jù)定義界面

        2.2 數(shù)據(jù)顯示

        首先靜態(tài)創(chuàng)建一個公用表單窗體,上面只需放置DATASET控件和DATASOURCE控件,而表單界面所擺放的控件及數(shù)據(jù)顯示功能都通過代碼執(zhí)行來動態(tài)生成。

        DATASET可當(dāng)成內(nèi)存中的數(shù)據(jù)庫,它是不依賴于數(shù)據(jù)庫的獨立數(shù)據(jù)集合,只需根據(jù)接口所傳的數(shù)據(jù)表名進(jìn)行動態(tài)綁定源數(shù)據(jù)表,即可提取庫表中的數(shù)據(jù)暫存于其中,作為數(shù)據(jù)源數(shù)據(jù)本地的一個副本。

        表單生成代碼設(shè)計時,表單界面設(shè)置的高度、寬度依據(jù)顯示字段的個數(shù)、類型和元數(shù)據(jù)中列擺放數(shù)來確定的。如設(shè)置一行編輯框控件(包括時間編輯框、下拉框)的高度是35像素,文本框的高度是200像素,界面的大小可根據(jù)列擺放數(shù)、顯示的編輯框數(shù)、文本框數(shù)來計算表單界面的高度,本文所使用的編輯框控件是復(fù)合控件,將label與平常所用的數(shù)據(jù)庫控件集成在一起的,使用時只需綁定數(shù)據(jù)源的列名,label的caption值就會自動獲取列標(biāo)題。主要算法如下:

        代碼執(zhí)行后生成表單界面效果如圖3所示。

        圖3 動態(tài)生成表單界面

        2.3 數(shù)據(jù)維護(hù)

        在生成通用表單界面時,通過上一個界面?zhèn)鬟^來的標(biāo)識參數(shù)來設(shè)置該表單處于增加或修改狀態(tài)。在表單生成后,對表單界面上的各欄目數(shù)據(jù)進(jìn)行維護(hù)時,只要數(shù)據(jù)沒有提交,這些數(shù)據(jù)都存放于DATASET中,系統(tǒng)會根據(jù)元數(shù)據(jù)中所提供字段的是否為空、是否唯一、數(shù)據(jù)精度等屬性對輸入的數(shù)據(jù)進(jìn)行合法性判斷,無需通過數(shù)據(jù)庫系統(tǒng)中返回的約束條件或錯誤信息進(jìn)行判斷,這樣更能提高程序的執(zhí)行效率。操作保存功能按鈕后,才由DATASET提交給數(shù)據(jù)庫系統(tǒng)。

        3 結(jié)束語

        在大型信息系統(tǒng)中,面對大量的各類數(shù)據(jù)在平臺中進(jìn)行展示、維護(hù)是一個必不可少的重要功能。如今元數(shù)據(jù)的運用在各個領(lǐng)域越來越深入,本文通過元數(shù)據(jù)提供的源數(shù)據(jù)信息和自設(shè)置屬性來實現(xiàn)源數(shù)據(jù)庫中的數(shù)據(jù)在通用表單中展示、維護(hù)的功能。通用表單動態(tài)生成技術(shù)的使用,不但能大大減少軟件設(shè)計的工作量,簡化了代碼的編寫,也大大地減少了軟件文件的大小,而且還能提高軟件的可靠性和可維護(hù)性。

        如果數(shù)據(jù)表的字段特別多,一個頁面排列不下時,可在元數(shù)據(jù)中再增加“頁面數(shù)”屬性,讓數(shù)據(jù)進(jìn)行分頁顯示,具體實現(xiàn)方法類似,在界面中增加PAGE控件,讓編輯框控件的父類指向PAGE頁即可。

        [1]Jack Melnick.Oracle Call Interface Programmer’s Guide,10g Release 2(10.2)[EB/OL].http://docs.oracle.com/cd/B19306_01/appdev.102/b14250/toc.htm,2005-11-01.

        [2][美]Scott Mitchell,Steve Walther.ASP.NET 權(quán)威指南[M].湯濤譯.北京:中國電力出版社,2011.

        [3]岳慶生.Delphi高級編程指南[M].北京:清華大學(xué)出版社,2010.

        [4]蔡昭權(quán),盧慶武,鄭宗暉,等.基于元數(shù)據(jù)的快速開發(fā)平臺設(shè)計與實現(xiàn)[J].計算機(jī)工程,2009,35(9):60-62.

        [5]站長之家用戶.Openbiz技術(shù)開發(fā)手冊之Metadata元數(shù)據(jù)[EB/OL].http://www.chinaz.com/web/2012/0412/245481.shtml,2012-04-12.

        [6]博客園.Oracle date類型字段處理的功能介紹[EB/OL].http://www.bitscn.com/pdb/oracle/201004/184032.html,2010-04-08.

        [7]路川,胡欣杰,閻文麗.Oracle 10g寶典(2版)[M].北京:電子工業(yè)出版社,2010.

        [8]黃正宏.數(shù)據(jù)庫查詢優(yōu)化的有效措施研究[J].信息與電腦:理論版,2011(11):15-20.

        [9]彭丹.分布式元數(shù)據(jù)管理[J].現(xiàn)代計算機(jī):下半月版,2007(8):58-59.

        [10]Ray Liscbner.Delphi技術(shù)手冊[M].北京:中國電力出版社,2009.

        [11]Eric Harmonr.Delphi COM深入編程[M].北京:機(jī)械工業(yè)出版社,2006.

        [12]Eric Harmonr.Delphi/Klyix數(shù)據(jù)庫開發(fā)[M].北京:機(jī)械工業(yè)出版社,2008.

        [13]賽迪網(wǎng)—軟件世界.元數(shù)據(jù)管理——企業(yè)信息化發(fā)展建設(shè)的潤滑劑[EB/OL].http://www.cnetnews.com.cn/2008/0915/1127082.shtml,2008-09-15.

        [14]Sno_hite.元數(shù)據(jù)的概念及作用[EB/OL].http://rsjy.org/3329.html,2012-09-02.

        猜你喜歡
        表單數(shù)據(jù)表控件
        電子表單系統(tǒng)應(yīng)用分析
        華東科技(2021年9期)2021-09-23 02:15:24
        湖北省新冠肺炎疫情數(shù)據(jù)表
        黨員生活(2020年2期)2020-04-17 09:56:30
        基于列控工程數(shù)據(jù)表建立線路拓?fù)潢P(guān)系的研究
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        淺談網(wǎng)頁制作中表單的教學(xué)
        圖表
        基于VSL的動態(tài)數(shù)據(jù)表應(yīng)用研究
        河南科技(2014年24期)2014-02-27 14:19:25
        基于Infopath實現(xiàn)WEB動態(tài)表單的研究
        電子世界(2012年24期)2012-12-17 10:49:06
        動態(tài)表單技術(shù)在教學(xué)管理中的應(yīng)用*
        就這樣玩會VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        少妇精品偷拍高潮少妇在线观看| 又爽又黄无遮挡高潮视频网站 | 青春草在线观看免费视频| 中文字幕亚洲精品在线| 亚洲色大成网站www永久网站| 亚洲av不卡一区二区三区| 全免费a级毛片免费看视频| 精品999无码在线观看| 国产精品亚洲一区二区三区在线 | 国产色婷亚洲99精品av网站| 青春草免费在线观看视频| 中文字幕人妻熟女人妻| 欧美人妻精品一区二区三区| 免费一级欧美大片久久网| 国产精品麻豆一区二区三区| 无套内谢老熟女| 国产精品污www一区二区三区 | 国产美女精品AⅤ在线老女人| 国产精品国产传播国产三级| 国产av夜夜欢一区二区三区| 俺来也俺去啦久久综合网| 国产一区二区精品网站看黄| 国产一区二区黄色的网站| 国色天香精品一卡2卡3卡4| 美女在线国产| 久久er这里都是精品23| av在线播放亚洲天堂| 亚洲婷婷五月综合狠狠爱| 一本大道香蕉最新在线视频| 国产女主播在线免费观看| 麻豆91蜜桃传媒在线观看| 无码精品人妻一区二区三区人妻斩| 加勒比黑人在线| 午夜精品男人天堂av| 精品无码国产自产拍在线观看| 97色伦图片97综合影院久久| 国产精品久久国产精品久久 | 婷婷成人丁香五月综合激情| 超薄肉色丝袜一区二区| 亚洲国产精品久久久性色av| 日本国产一区在线观看|