日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

可重用MIS用戶接口模塊的設(shè)計

出處:yunlong 發(fā)布于:2006-09-13 16:07:14

 :通過對MIS通用功能的分析,采用面向?qū)ο蟮睦^承機(jī)制構(gòu)造窗口和菜單的整體框架,其中,對數(shù)據(jù)提交時校驗(yàn)結(jié)果的中文提示方法、打印預(yù)覽、用戶定制查詢等進(jìn)行了比較詳細(xì)的研究。有效地解決了界面設(shè)計中統(tǒng)一性和特殊需要之間的矛盾。

  界面是系統(tǒng)提供給用戶的感覺,不同開發(fā)者制作的界面風(fēng)格有很大的差異,同一人在不同時間也具有隨意性。因此,無論個人獨(dú)自開發(fā)系統(tǒng)還是團(tuán)隊(duì)作業(yè),都要對界面進(jìn)行整體的規(guī)劃。
  制作統(tǒng)一界面的一般方法是具體而強(qiáng)行的規(guī)定,本文依據(jù)PB開發(fā)的經(jīng)驗(yàn),實(shí)現(xiàn)了MIS系統(tǒng)中窗口和菜單的整體繼承框架,并對其中數(shù)據(jù)校驗(yàn)結(jié)果的中文提示方法、打印預(yù)覽、用戶定制查詢和數(shù)據(jù)窗口的重復(fù)使用技術(shù)等進(jìn)行了比較詳細(xì)的研究,有效地解決了界面設(shè)計中統(tǒng)一性和特殊需要之間的矛盾。
  此框架定義的祖先窗口獨(dú)立于特定系統(tǒng),可以為不同系統(tǒng)所使用而不用做任何修改,極大地提高了系統(tǒng)的開發(fā)效率和健壯性。
1 統(tǒng)一功能的提取

  MIS系統(tǒng)需要實(shí)現(xiàn)大量的基本功能,如插入、提交、翻頁等,從權(quán)限控制的角度,有讀權(quán)限、寫權(quán)限和部分寫權(quán)限之分,體現(xiàn)在MIS系統(tǒng)設(shè)計中,就是查詢權(quán)限和錄入權(quán)限的區(qū)別。常用的操縱數(shù)據(jù)的命令如表1所示。
  從中不難看出,有些命令適用于查詢,而另一些則適用于錄入。為此,可將窗口分為2個類型:一種具有數(shù)據(jù)錄入的功能,而另外一種只是查詢而已。用于錄入的窗口中可以設(shè)置與錄入所需功能命令相對應(yīng)的菜單項(xiàng)和工具條,用于查詢的窗口可攜帶適合查詢操作的菜單項(xiàng)和工具條。
  工具條顯示在屏幕的上方,依據(jù)以上分析,完成編輯錄入功能的窗口所帶的菜單中可含15個工具按鈕,如圖1所示。
   其功能從左到右依次為:
  排序、通用查詢、打印、打印預(yù)覽、導(dǎo)入、導(dǎo)出、檢索、新增、刪除、首記錄、前移、后移、末記錄、提交、關(guān)閉。
  查詢所對應(yīng)的功能為:通用查詢、打印、打印預(yù)覽、導(dǎo)出、首記錄、前移、后移、末記錄、日期段輸入、日期輸入、關(guān)閉;其圖形外觀與上面的編輯工具條類似,此處略去。
2 實(shí)現(xiàn)

  在窗口上定義一個DataWindows控件dw_1,在窗口原有事件的基礎(chǔ)上定義表1所示的用戶自定義事件來操縱dw_1中的數(shù)據(jù)對象。具體的數(shù)據(jù)對象在窗口打開時指定。
  在窗口所掛的菜單中設(shè)置觸發(fā)窗口自定義事件所需的子菜單和腳本,并給這些子菜單設(shè)置相應(yīng)的工具條圖標(biāo)。
  下面的程序段是窗口所掛排序菜單的對應(yīng)腳本,當(dāng)圖1所示左邊的排序按鈕被觸發(fā)時運(yùn)行。
 

  工具條上的其他按鈕不需要設(shè)置彈起和按下狀態(tài),只需要一條觸發(fā)語句就夠了。系統(tǒng)運(yùn)行時,用戶通過點(diǎn)擊工具條上的按鈕完成對應(yīng)菜單項(xiàng)腳本的執(zhí)行,菜單項(xiàng)中的腳本進(jìn)一步觸發(fā)承載此菜單的窗口中的用戶子定義事件的執(zhí)行。
  對一些簡單的輸入、查詢操作,以上事件的定義和工具條的設(shè)置基本上滿足了應(yīng)用要求。大多數(shù)窗口中的數(shù)據(jù)操作圍繞一個DataWindows進(jìn)行,增加的DataWindows僅用于限制和過濾該中心DataWindows,因此,雖涉及多個DataWindows或其他相關(guān)控件,除操作更復(fù)雜些外,此基本功能設(shè)置也足于解決問題。當(dāng)窗口上有多個DataWindows的數(shù)據(jù)需要維護(hù)時,可覆蓋祖先事件的腳本,并擴(kuò)展祖先腳本使其符合新的功能要求。

3 利用繼承機(jī)制實(shí)現(xiàn)通用功能的一致性
  由于以上窗口實(shí)現(xiàn)的基本功能在系統(tǒng)中普遍存在,為了減少編程量,提高窗口界面的一致性,可用上面介紹的窗口為祖先,讓其他負(fù)責(zé)具體事務(wù)的窗口來繼承。這樣,所有通過繼承產(chǎn)生的子窗口將不再書寫類似的代碼。系統(tǒng)在初始階段集中精力編制這些通用功能,可以保證功能實(shí)現(xiàn)得更加完善。
  dw_1控件中數(shù)據(jù)對象的設(shè)置在每個子孫窗口的Open事件中完成,這樣就保重了各窗口所操作的數(shù)據(jù)是不同的,dw_1控件的大小可視具體的要求進(jìn)行調(diào)整。
   按PB中多文檔窗口的操作要求,每一個窗口都有自己的菜單和工具條,為了使菜單保持整體的穩(wěn)定,即窗口切換時基本菜單功能保持外觀不變,將完成基本功能的模塊結(jié)構(gòu)定義為祖先菜單,通過繼承生成查詢和編輯2個子孫菜單,子孫菜單中分別附加了觸發(fā)相關(guān)窗口事件所需的菜單項(xiàng)、工具條和腳本。
  根據(jù)窗口功能的不同,通過繼承產(chǎn)生的窗口可選擇掛2個子孫菜單之一,這樣,特定窗口需要做的只是添加工具條中沒有的功能和控件。只要統(tǒng)一定義了窗口和數(shù)據(jù)窗口的背景色以及字體的風(fēng)格、大小和顏色,即使各窗口由不同的人開發(fā)、窗口的復(fù)雜程度不同,窗口的風(fēng)格也基本一致。為保證祖先窗口的事件腳本能操縱每一個子孫窗口的數(shù)據(jù),只需在程序中將要應(yīng)用的窗口名改為代詞this即可。工具條的使用,不但簡化了窗口上控件的數(shù)目、為數(shù)據(jù)區(qū)留下了更大的顯示空間,而且保證了界面風(fēng)格的一致。
  在實(shí)際操作的過程中,當(dāng)工具條預(yù)定義的功能不適合一個特定的窗口應(yīng)用時,系統(tǒng)可視具體情況對祖先腳本進(jìn)行不同的覆蓋處理,例如,有些人只有修改權(quán)限而沒有插入權(quán),系統(tǒng)會給予必要的提示;有些窗口比較復(fù)雜,涉及多個DataWindows的提交,則系統(tǒng)首先覆蓋繼承來的祖先的提交事件腳本,再對提交事件進(jìn)行必要的、比祖先事件更復(fù)雜的處理。如果不允許工具條中的某個功能使用,只需在Open事件中設(shè)置他的屬性為Disable即可。
  為了使用戶對當(dāng)前DataWindows中的記錄總數(shù)有個總體的把握,系統(tǒng)在祖先窗口中特定義一個單行編輯器sle_1,用于提示總記錄數(shù)和當(dāng)前記錄數(shù)。此功能的設(shè)置對FREE界面格式的DataWindows用戶尤其有用。實(shí)現(xiàn)方法是,在DataWindows的
 

4 錯誤俘獲及例外處理
  對于錯誤的命令和輸入要提供反饋信息,給出正確用法。這一功能雖然不體現(xiàn)在工具條中,但具有通用性,必須由祖先窗口來實(shí)現(xiàn)??梢苑@的例外很多,但MIS涉及的主要是數(shù)據(jù)庫錯誤,窗口上的其他控件的錯誤可在程序調(diào)試時糾正。
  在數(shù)據(jù)提交時,DBMS要進(jìn)行數(shù)據(jù)完整性的檢驗(yàn),常出現(xiàn)的錯誤有:非空字段沒有輸入值,這時,PB將提示一段出錯信息。遺憾的是,該信息以英文方式顯示,用戶出錯是難免的,怎么用中文實(shí)現(xiàn)出錯提示呢?
  假如我們在DataWindows中需錄入xqrq(需求日期),該字段由非null約束,若DataWindows控件的Dberror事件中無腳本,而用戶又忘記了錄入此項(xiàng)數(shù)據(jù),則提交數(shù)據(jù)時系統(tǒng)將以英文顯示出錯信息:
 

  句指出出錯的位置,一句為一般性說明。
  當(dāng)然,數(shù)據(jù)提交前可以用程序?qū)λ袃?nèi)容進(jìn)行驗(yàn)證,但這種解決辦法看似簡單,實(shí)現(xiàn)是很麻煩的,需要逐行對各字段可能的錯誤進(jìn)行分析。實(shí)際上,當(dāng)提交失敗時,DataWindows控件的Dberror事件首先被觸發(fā),并傳遞5個參數(shù),分別為:
  sqldbcode(錯誤代碼),sqlerrtext(錯誤提示),sqlsyntax(出錯的語句),buffer(),row(出錯行號)。
  因此,可采用以下解決途徑:
  在DataWindows控件的Dberror事件中寫腳本:
  gf_dbms_error(dw_1,sqldbcode,sqlerrtext,sqlsyntax,row)
  其中g(shù)f_dbms_error為自定義的專門處理數(shù)據(jù)庫出錯信息的全局函數(shù),其基本思路是:根據(jù)sqldbcode確定錯誤類型,然后從sqlerrtext提示信息中分解出字段名等信息段,根據(jù)不同的錯誤類型,重新組合并顯示在顯示器上。當(dāng)然,若字段名為英文字母,還需將字段名轉(zhuǎn)換為注釋(一般為中文)。
  例如:針對以上提交所碰到的問題,系統(tǒng)提示如圖2所示。
5 打印預(yù)覽的實(shí)現(xiàn)技術(shù)
  打印預(yù)覽是Windows應(yīng)用提供給用戶自主進(jìn)行打印界面設(shè)置的一個接口,實(shí)現(xiàn)的基本原理是系統(tǒng)根據(jù)用戶需求對需預(yù)覽的DataWindows的各項(xiàng)默認(rèn)參數(shù)進(jìn)行修改,由于打印預(yù)覽結(jié)束后系統(tǒng)還需返回到原狀態(tài),為此,系統(tǒng)不能對原DataWindows進(jìn)行直接操作,又由于此功能的普遍使用性,在實(shí)現(xiàn)上系統(tǒng)將此功能安排在祖先窗口上,由各菜單來觸發(fā)該功能的執(zhí)行,由工具條來具體實(shí)施。
  實(shí)現(xiàn)的關(guān)鍵是怎么將要打印預(yù)覽的數(shù)據(jù)傳遞給用于打印預(yù)覽的子程序,解決此問題的方法一般有兩種:
 ?。?)將需打印的DataWindows中的數(shù)據(jù)對象賦予打印預(yù)覽窗口中的DataWindows控件的數(shù)據(jù)對象,將需打印的DataWindows控件中的數(shù)據(jù)復(fù)制到Windows的剪貼板,再從剪貼板上將數(shù)據(jù)復(fù)制到打印預(yù)覽窗口中的DataWindows控件中,完成對窗口中各項(xiàng)參數(shù)的設(shè)定。
  許多論文中提供了這種方法的實(shí)現(xiàn),PB自帶的一個示例也是這個原理。但應(yīng)用中存在以下2個主要的缺陷:
  首先,若需預(yù)覽的DataWindows中帶有下拉子DataWindows,則下拉子DataWindows無法實(shí)現(xiàn)自動轉(zhuǎn)換,即顯示出來的是內(nèi)部存儲值而不是用戶應(yīng)該看到的顯示值,因?yàn)榭截愡^去的是內(nèi)部存儲值,從而讓用戶感到莫名其妙。為解決此問題,需重新構(gòu)造各帶下拉子DataWindows的DataWindows的表的關(guān)聯(lián)關(guān)系,涉及到DataWindows中的所有子DataWindows,實(shí)現(xiàn)起來工作量和難度均較大,也失去了這一下拉子46DataWindows工具帶來的設(shè)計便利;第二個問題是復(fù)合報表無法實(shí)現(xiàn)預(yù)覽,復(fù)合報表是一個將多個DataWindows合成為一個DataWindows的技術(shù)。因此,此方法并不是一個實(shí)用的實(shí)現(xiàn),只能用于簡單的場合。
  (2)設(shè)置一個全局的DataWindows控件變量,讓該DataWindows變量共享要進(jìn)行打印預(yù)覽的DataWindows控件,然后對該全局的DataWindows控件變量進(jìn)行用戶定制設(shè)置,則以上問題全部解決。圖3是此思路的具體實(shí)現(xiàn),數(shù)據(jù)窗口上面一行的控制命令分別為:大小縮放、頁碼、上邊距、左邊距、下邊距、右邊距的直接輸入和點(diǎn)擊按鈕式輸入,右邊提供的是標(biāo)尺的選擇。該窗口自帶菜單和工具條,不受繼承機(jī)制的限制,工具條中提供了打印等按鈕。
6 通用查詢技術(shù)
  對常用的查詢,我們可逐一定制,但定制的查詢?nèi)狈`活性,考慮到定制的查詢并不能完全滿足用戶的實(shí)際需要,為此系統(tǒng)可定義通用查詢,并將他列入工具條中,以便隨時訪問,以適應(yīng)特殊的需求。
  實(shí)現(xiàn)技術(shù):從數(shù)據(jù)庫的系統(tǒng)表中提取表名、顯示所需的字段名,以及用于構(gòu)造邏輯關(guān)系的字段名;構(gòu)造查詢所需的邏輯表達(dá)式,并按此邏輯關(guān)系檢索數(shù)據(jù),確認(rèn)后可調(diào)用打印預(yù)覽來顯示。由于有些數(shù)據(jù)庫不支持漢字表名和字段名,使得表名和字段名需用英文字符書寫,為此真正使用的應(yīng)該是表和字段的注釋。實(shí)現(xiàn)的另一個關(guān)鍵問題是動態(tài)SQL的構(gòu)造,比較復(fù)雜,在此不一一敘述,具體結(jié)果如圖4所示,圖3中顯示的預(yù)覽結(jié)果就是由此方法構(gòu)造。
  通用查詢雖然提高了系統(tǒng)的靈活性,但操作起來比較復(fù)雜,尤其是構(gòu)造復(fù)雜邏輯表達(dá)式需要專門知識,且用戶必須非常熟悉數(shù)據(jù)庫的結(jié)構(gòu)。以上實(shí)現(xiàn)只能進(jìn)行單表查詢,因此,僅做輔助性使用。
7 結(jié) 

  本文提供的窗口和菜單繼承機(jī)制保證了用戶界面的整體風(fēng)格,通過仔細(xì)地設(shè)計工具條和用戶自定義事件,使窗口功能進(jìn)一步完善,所需控件數(shù)目進(jìn)一步變少。當(dāng)然,要實(shí)現(xiàn)一致的用戶界面,開發(fā)者還必須進(jìn)行相應(yīng)的統(tǒng)一規(guī)定,如字體風(fēng)格和顏色的統(tǒng)一設(shè)定、顯示分辨率設(shè)定等等。在項(xiàng)目開發(fā)的早期還需定義編輯格式以規(guī)范共用的數(shù)據(jù)字典、定義顯示格式以控制用戶數(shù)據(jù)的顯示方式,從每一個細(xì)節(jié)上來保證系統(tǒng)風(fēng)格的一致。
  另外,以上實(shí)現(xiàn)的通用界面的祖先窗口可以被所有MIS所使用。

  
關(guān)鍵詞:可重用MIS用戶接口模塊的設(shè)計ERROROPENWINDOWS

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

對比單片機(jī)開發(fā)和opencpu的開發(fā)方式的兩大區(qū)別,嵌入式伙伴一定要了解一下
廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!