PowerBuilder應(yīng)用軟件基礎(chǔ)框架設(shè)計(jì)說明書_第1頁(yè)
PowerBuilder應(yīng)用軟件基礎(chǔ)框架設(shè)計(jì)說明書_第2頁(yè)
PowerBuilder應(yīng)用軟件基礎(chǔ)框架設(shè)計(jì)說明書_第3頁(yè)
PowerBuilder應(yīng)用軟件基礎(chǔ)框架設(shè)計(jì)說明書_第4頁(yè)
PowerBuilder應(yīng)用軟件基礎(chǔ)框架設(shè)計(jì)說明書_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、PowerBuilder應(yīng)用軟件基礎(chǔ)框架設(shè)計(jì)說明書PowerBuilder應(yīng)用軟件基礎(chǔ)框架設(shè)計(jì)說明書開發(fā)工具PowerBuilder 9.0.3 Build-8716數(shù)據(jù)庫(kù)Microsoft SQL Server 2000文檔制作Tony文檔版本1.0創(chuàng)建日期2004/10/05最后修訂日期2006/07/15目錄一、實(shí)現(xiàn)目標(biāo)4二、框架構(gòu)思及概念圖4三、數(shù)據(jù)類(DataClass)53.1、系統(tǒng)對(duì)象信息(D_SYSOBJECTS)53.2、系統(tǒng)字段信息(D_SYSCOLUMNS)63.3、主外鍵關(guān)系(D_SYSFOREIGNKEYS)6四、資源類(ResourceClass)74.1、框架參數(shù)

2、(FrameworkParameter)74.2、數(shù)據(jù)元素字典D_DATAELEMENT(DataElement)84.3、字段屬性表達(dá)式類(D_SYSCOLUMNS_ATTRIBUTES)94.4、系統(tǒng)參數(shù)字典(D_SYSPARMDICT)9五、信息類(InformationClass)10六、功能類(FunctionClass)10七、組織類(OrganizeClass)117.1、角色(Role)117.2、操作員(Operator)11八、框架設(shè)計(jì)結(jié)構(gòu)圖118.1、數(shù)據(jù)項(xiàng)屬性表達(dá)式部分11九、窗口基類設(shè)計(jì)129.1、帶有提示欄的窗口12十、數(shù)據(jù)窗口服務(wù)及相關(guān)對(duì)象1310.1、框架參數(shù)對(duì)

3、象(uo _FrameworkParameter)1310.2、表達(dá)式替換1410.3、操作員數(shù)據(jù)權(quán)限(my_n_cst_dwsrv_popedom_data)1510.4、修改屬性表達(dá)式(my_n_cst_dwsrv_ModifyDWExpression)1510.5、修改字段顯示標(biāo)題(my_n_cst_dwsrv_ModifyColumnTitle)1610.6、關(guān)聯(lián)查詢服務(wù)(my_n_cst_dwsrv_RelationSearch)1610.7、GRID風(fēng)格DW打印服務(wù)(my_n_cst_dwsrv_DWPrint)1810.8、DW顯示風(fēng)格設(shè)置(my_n_cst_dwsrv_View

4、Style)1910.9、系統(tǒng)字典維護(hù)工具2010.9.1、數(shù)據(jù)結(jié)構(gòu)字典定義2010.10、允許用戶進(jìn)行自定義的參數(shù)(D_SYSCONFIG)21十一、簡(jiǎn)單業(yè)務(wù)流程處理(Simple Business Flow)2211.1.簡(jiǎn)單業(yè)務(wù)流程的定義2211.1.1.業(yè)務(wù)流程中環(huán)節(jié)的定義2311.1.2.業(yè)務(wù)流程的實(shí)例化2411.1.3.任務(wù)數(shù)據(jù)的檢索2611.1.4.業(yè)務(wù)流程處理引擎(my_n_cst_workflowengine)2711.1.5.界面設(shè)計(jì)31一、 實(shí)現(xiàn)目標(biāo)為了快速實(shí)現(xiàn)小型桌面型或小型的C/S應(yīng)用軟件的開發(fā),考慮使用PowerBuilder實(shí)現(xiàn)一套應(yīng)用軟件的框架,主要包括:數(shù)據(jù)維

5、護(hù)、數(shù)據(jù)查詢、權(quán)限管理、功能組織。由于PowerBuilder在PFC已經(jīng)提供了一套較為完善的功能,所以考慮在PFC的基礎(chǔ)上進(jìn)行開發(fā)。注意:該應(yīng)用軟件框架并不是一種完整的開發(fā)平臺(tái),而是類似集成到PowerBuilder中的一組開發(fā)類庫(kù),進(jìn)行軟件開發(fā)時(shí),仍然使用PowerBuilder的IDE,只是不在從新建工作區(qū)開始,而是在應(yīng)用軟件框架現(xiàn)有的工作區(qū)中進(jìn)行。二、 框架構(gòu)思及概念圖框架結(jié)構(gòu)圖及如下:PbIDE&PFC框架管理工具L5:組織類(角色、人員)L4:功能類(維護(hù)、查詢、匯總/統(tǒng)計(jì))L3:信息類(對(duì)數(shù)據(jù)項(xiàng)的組織)L2:資源類(數(shù)據(jù)元素、數(shù)據(jù)參數(shù))L1:數(shù)據(jù)類(與物理DB的影射、數(shù)據(jù)特性)l

6、 數(shù)據(jù)類主要負(fù)責(zé)系統(tǒng)定義數(shù)據(jù)項(xiàng)到物理DB對(duì)象(包括:數(shù)據(jù)庫(kù)表、視圖、字段)的影射。比如:表或視圖與字段的關(guān)系,字段的相關(guān)屬性(顯示名稱,顯示格式,對(duì)齊方式,有效性、關(guān)聯(lián)性等)。該層的實(shí)現(xiàn)工作由框架管理工具完成,而且考慮到不同DBMS所支持的特性不禁相同,所以數(shù)據(jù)庫(kù)物理對(duì)象(表、視圖、索引、函數(shù)、存儲(chǔ)過程等)由第三方的建模工具處理(比如:PowerDesigner)。l 資源類主要負(fù)責(zé)系統(tǒng)公共部分的組織和準(zhǔn)備,包括:公共窗口、數(shù)據(jù)元素、數(shù)據(jù)參數(shù)等。該層的實(shí)現(xiàn)工作由PowerBuilderIDE和框架管理工具聯(lián)合完成,更高層直接使用即可,比如:在Pb中創(chuàng)建的窗口、函數(shù)等。l 信息類主要負(fù)責(zé)對(duì)數(shù)據(jù)類

7、中子元素的組織,以及需要和用戶交互的界面組織。該層的實(shí)現(xiàn)工作由PowerBuilder的IDE完成,比如:在Pb中創(chuàng)建的DataWindow、DataStore。l 功能類主要負(fù)責(zé)應(yīng)用軟件業(yè)務(wù)功能的開發(fā),還包括對(duì)功能類的定義,該層的實(shí)現(xiàn)工作由PowerBuilderIDE和框架管理工具聯(lián)合完成。l 組織類主要負(fù)責(zé)對(duì)功能類中業(yè)務(wù)功能的組織,以及對(duì)角色和操作員管理(維護(hù)、分配功能權(quán)限、分配數(shù)據(jù)權(quán)限)。該層的實(shí)現(xiàn)工作由框架管理工具完成,但是可以作為獨(dú)立的實(shí)體發(fā)布給用戶。三、 數(shù)據(jù)類(DataClass)在涉及到數(shù)據(jù)庫(kù)系統(tǒng)的應(yīng)用軟件中,某一項(xiàng)數(shù)據(jù)的業(yè)務(wù)邏輯應(yīng)當(dāng)在軟件的任何地方保持一致,所以凡是涉及到此

8、類的內(nèi)容,應(yīng)當(dāng)放到數(shù)據(jù)類中。首先將數(shù)據(jù)庫(kù)的物理對(duì)象在系統(tǒng)中進(jìn)行登記,而后在定義相應(yīng)的邏輯以后,在程序運(yùn)行時(shí)框架應(yīng)當(dāng)自動(dòng)進(jìn)行綁定,并且要能夠通過修改靈活的修改以往定義的邏輯。3.1、 系統(tǒng)對(duì)象信息(D_SYSOBJECTS)系統(tǒng)對(duì)象信息中存放與物理數(shù)據(jù)庫(kù)庫(kù)表和視圖的影射,為了保持和SQL Server或SYBASE數(shù)據(jù)庫(kù)一致所以名字也和它們的十分接近。數(shù)據(jù)庫(kù)表結(jié)構(gòu)如下:該表由“F_ID”和“F_PARENT_ID”兩個(gè)字段構(gòu)成一個(gè)樹型數(shù)據(jù)機(jī)構(gòu),如果“F_TYPE”是“DIR”,那么說明在下面可以添加子元素,反之則不可以。該表至少有一條數(shù)據(jù):“F_NAME”是“ROOT”,“F_DESCRIPTI

9、ON”是“”,“F_ORDER_NUM”是“5”。3.2、 系統(tǒng)字段信息(D_SYSCOLUMNS)系統(tǒng)字段信息中存放字段的關(guān)鍵屬性信息,目的是可以靈活的對(duì)相應(yīng)數(shù)據(jù)項(xiàng)進(jìn)行定義和修改。數(shù)據(jù)庫(kù)表結(jié)構(gòu)如下:注意:為了確保屬性信息檢索的準(zhǔn)確性和唯一性,DataWindow、DataStore中字段對(duì)象命名的規(guī)則是:數(shù)據(jù)庫(kù)表名稱+“_”+字段名稱(如:TABLE_NAME_COLUMN_NAME),而且數(shù)據(jù)庫(kù)表名稱不能使用別名。3.3、 主外鍵關(guān)系(D_SYSFOREIGNKEYS)該表存放D_SYSOBJECTS中各個(gè)對(duì)象字段之間的關(guān)聯(lián)關(guān)系,可以在自動(dòng)生成明細(xì)查詢時(shí)使用。數(shù)據(jù)庫(kù)表結(jié)構(gòu)如下:四、 資源類

10、(ResourceClass)資源類包括:框架提供的可供應(yīng)用其他層次使用的框架參數(shù)、數(shù)據(jù)元素。4.1、 框架參數(shù)(FrameworkParameter)l 基本參數(shù)(BaseParameter)#參數(shù)名稱說明類型NewGUID新的GUID字符DBServerName服務(wù)器計(jì)算機(jī)名稱字符LocalName本地計(jì)算機(jī)名稱字符l 日期時(shí)間類(DatetimeParameter)#參數(shù)名稱說明類型DBServerDate服務(wù)器今日日期時(shí)間DBServerTime服務(wù)器今時(shí)日期時(shí)間DBServerDateTime服務(wù)器今日今時(shí)日期時(shí)間DBServerYesteday服務(wù)器昨日日期時(shí)間DBServerTo

11、morrow服務(wù)器明日日期時(shí)間DBServerYear服務(wù)器年整數(shù)DBServerMonth服務(wù)器月整數(shù)DBServerDay服務(wù)器日整數(shù)DBServerHour服務(wù)器時(shí)整數(shù)DBServerMinute服務(wù)器分整數(shù)DBServerSecond服務(wù)器秒整數(shù)LocalDate本地今日日期時(shí)間LocalTime本地今時(shí)日期時(shí)間LocalDateTime本地今日今時(shí)日期時(shí)間LocalYesteday本地昨日日期時(shí)間LocalTomorrow本地明日日期時(shí)間LocalYear本地年整數(shù)LocalMonth本地月整數(shù)LocalDay本地日整數(shù)LocalHour本地時(shí)整數(shù)LocalMinute本地分整數(shù)Lo

12、calSecond本地秒整數(shù)l 組織參數(shù)類(OrganizeParameter)#參數(shù)名稱說明類型OperatorID操作者編號(hào)字符OperatorName操作者姓名字符RoleID操作者崗位編號(hào)字符RoleName操作者崗位名稱字符4.2、 數(shù)據(jù)元素字典D_DATAELEMENT(DataElement)數(shù)據(jù)元素是表示業(yè)務(wù)數(shù)據(jù)庫(kù)中字段的業(yè)務(wù)含義的業(yè)務(wù)字典項(xiàng)。一個(gè)數(shù)據(jù)元素可以代表具有相同業(yè)務(wù)含義的多個(gè)字段,但一個(gè)字段只能具備一種數(shù)據(jù)含義(即只可以與一個(gè)數(shù)據(jù)元素關(guān)聯(lián))。數(shù)據(jù)元素可以代表一些具有相同業(yè)務(wù)語(yǔ)義的字段,當(dāng)一個(gè)字段指定了數(shù)據(jù)元素后,則該字段就具有了數(shù)據(jù)元素所表示的業(yè)務(wù)含義,是一種廣義的數(shù)

13、據(jù)語(yǔ)義。例如,不同的數(shù)據(jù)集合中使用到了不同的表字段,而其中某些字段是具有相同的語(yǔ)義,就可以通過數(shù)據(jù)語(yǔ)義策略利用數(shù)據(jù)元素來對(duì)一些數(shù)據(jù)集施加語(yǔ)義過濾。數(shù)據(jù)庫(kù)結(jié)構(gòu)如下:l 數(shù)據(jù)元素字典l 數(shù)據(jù)元素到數(shù)據(jù)庫(kù)字段4.3、 字段屬性表達(dá)式類(D_SYSCOLUMNS_ATTRIBUTES)為了使字段屬性運(yùn)行時(shí)的靈活性,所以要提供相應(yīng)的屬性修改功能以保證在軟件投入運(yùn)行后的調(diào)整,數(shù)據(jù)庫(kù)表結(jié)構(gòu)如下:字段屬性表中存放需要的屬性表達(dá)式,主要包括:字體顏色、樣式;是否必須輸入;是否顯示;是否保護(hù);是否只讀等,具體的屬性表達(dá)式參看PowerBuilder開發(fā)手冊(cè),框架會(huì)提供一套常用的屬性表達(dá)式模板供參考使用?!皩傩员磉_(dá)

14、式”中可以引用前面列表中的參數(shù)和元素。設(shè)置屬性表達(dá)式使用的數(shù)據(jù)檢索條件如下:#體現(xiàn)層面獲取屬性表達(dá)式的條件(F_EXPRESSION LIKE %COLUMN_OBJECT_NAME%)1DATAAND F_OWNER=COLUMN_ID2DATAELEMENTAND F_OWNER=DATA_ELEMENT_NAME3INFORMATIONAND F_OWNER=DW_NAME4FUNCTIONAND F_OWNER=WIN_NAMEDW_CONTROL_NAME5ROLEAND F_OWNER=ROLE_NAMEWIN_NAMEDW_NAME6OPERATORAND F_OWNER=OPE

15、RATOR_NAMEWIN_NAMEDW_NAME當(dāng)獲取到屬性表達(dá)式數(shù)據(jù)集合時(shí),在修改前還要進(jìn)行元素和參數(shù)的替換,而后再使用MODIFY命令進(jìn)行修改。邏輯如下:以數(shù)據(jù)窗口中的字段數(shù)為外層循環(huán),按照上表順序逐層獲取、設(shè)置屬性表達(dá)式。4.4、 系統(tǒng)參數(shù)字典(D_SYSPARMDICT)為了統(tǒng)一在應(yīng)用系統(tǒng)中對(duì)某些數(shù)據(jù)的選擇和表現(xiàn)方式,基礎(chǔ)框架提供了系統(tǒng)參數(shù)字典,其中包括需要用到的參數(shù)名稱,其數(shù)據(jù)來源、表現(xiàn)形式,數(shù)據(jù)庫(kù)表結(jié)構(gòu)如下:五、 信息類(InformationClass)信息由數(shù)據(jù)項(xiàng)組合而成,其中的數(shù)據(jù)操作部分和業(yè)務(wù)邏輯部分由框架處理,數(shù)據(jù)表現(xiàn)和單項(xiàng)業(yè)務(wù)邏輯由DataWindow和DataSto

16、re處理,數(shù)據(jù)類為功能類服務(wù),既可以作為與用戶交互的可視化操作,又可以進(jìn)行后臺(tái)的純數(shù)據(jù)處理。在數(shù)據(jù)類中可以為各個(gè)數(shù)據(jù)項(xiàng)(字段)設(shè)置不同的屬性表達(dá)式,即:以后更高的組織層次如果沒有重復(fù)對(duì)同一個(gè)數(shù)據(jù)項(xiàng)設(shè)置屬性表達(dá)式的話,那么應(yīng)用軟件中任何地方均采用數(shù)據(jù)類中定義的屬性表達(dá)式。信息類是比數(shù)據(jù)類更高層次的數(shù)據(jù)項(xiàng)組織單位,為了提供更加靈活的處理方式,框架同樣支持在信息類對(duì)數(shù)據(jù)項(xiàng)設(shè)置屬性表達(dá)式,在此處設(shè)置的內(nèi)容將覆蓋在數(shù)據(jù)類中設(shè)置的內(nèi)容。六、 功能類(FunctionClass)功能在框架中具有承上啟下的橋梁和樞紐作用,它構(gòu)建于信息類之上,是信息的直接調(diào)度和控制者。功能又是組成業(yè)務(wù)流程的基礎(chǔ)(當(dāng)前版本暫不提

17、供工作流程的相關(guān)功能),同時(shí)通過組織機(jī)構(gòu)的組織單元分配業(yè)務(wù)功能,來解決“由誰(shuí)來做,由誰(shuí)來處理”的問題,是組織機(jī)構(gòu)中“業(yè)務(wù)分工”的基礎(chǔ)。功能可以是能夠與用戶交互的窗體或提示信息窗口,也可以是根據(jù)交互后或某時(shí)機(jī)觸發(fā)后自動(dòng)執(zhí)行的代碼。功能類是比數(shù)據(jù)類和信息類更高層次的數(shù)據(jù)項(xiàng)組織單位,為了提供更加靈活的處理方式,框架同樣支持在功能類對(duì)數(shù)據(jù)項(xiàng)設(shè)置屬性表達(dá)式,在此處設(shè)置的內(nèi)容將覆蓋在數(shù)據(jù)類或信息類中設(shè)置的內(nèi)容。七、 組織類(OrganizeClass)7.1、 角色(Role)角色是一種以職責(zé)或技能作為前提,具有相同的目標(biāo),能夠進(jìn)行某種決策或完成某項(xiàng)功能的操作員的總稱。為了提供更加靈活的處理方式,框架支持

18、以角色為單位對(duì)數(shù)據(jù)項(xiàng)設(shè)置屬性表達(dá)式,在此處設(shè)置的內(nèi)容將覆蓋除操作員設(shè)置屬性表達(dá)式以外的所有對(duì)數(shù)據(jù)項(xiàng)設(shè)置的內(nèi)容。7.2、 操作員(Operator)操作員是指一個(gè)獨(dú)立的、具有一定行為能力和一定技術(shù)能力的人的實(shí)體,它對(duì)應(yīng)于企業(yè)中的每一個(gè)需要使用軟件的雇員。操作員具有一定的獨(dú)立性,但不能獨(dú)立存在,在企業(yè)的軟件人員管理中,盡管可以不把操作員指定到具體的角色,但最好歸屬到一個(gè)角色,便于進(jìn)行功能權(quán)限和數(shù)據(jù)權(quán)限的管理。為了提供更加靈活的處理方式,框架支持以操作員為單位對(duì)數(shù)據(jù)項(xiàng)設(shè)置屬性表達(dá)式,在此處設(shè)置的內(nèi)容將覆蓋所有對(duì)數(shù)據(jù)項(xiàng)設(shè)置的內(nèi)容。八、 框架設(shè)計(jì)結(jié)構(gòu)圖數(shù)據(jù)類屬性表達(dá)式信息類屬性表達(dá)式功能類屬性表達(dá)式角色

19、屬性表達(dá)式操作員屬性表達(dá)式逐級(jí)覆蓋8.1、 數(shù)據(jù)項(xiàng)屬性表達(dá)式部分九、 窗口基類設(shè)計(jì)9.1、 帶有提示欄的窗口根據(jù)窗口的不同類型,需要?jiǎng)?chuàng)建兩個(gè)窗口,分別從my_w_child、my_w_response繼承,命名為w_child_app、w_response_app,界面布局如下圖所示:標(biāo)題提示信息。P_TIPSST_TIPS該窗口負(fù)責(zé)根據(jù)窗口名稱從功能庫(kù)中獲?。簶?biāo)題欄、圖片和提示信息。#對(duì)象名稱事件名稱完成功能1w_app_sheetw_app_responsew_app_popupPfc_preopen1. 根據(jù)窗口名稱從系統(tǒng)功能字典中提取“標(biāo)題”和“提示信息”。2. 對(duì)于非w_app_re

20、sponse設(shè)置窗口控件自動(dòng)大小服務(wù)。3. 啟用更新窗體界面控件說明服務(wù)(為了多語(yǔ)言處理作準(zhǔn)備)。Pfc_postopen記錄窗口打開時(shí)間、當(dāng)前操作員、窗口標(biāo)題、使用的計(jì)算機(jī)及登錄OS的用戶。Close更新窗口的關(guān)閉時(shí)間。十、 數(shù)據(jù)窗口服務(wù)及相關(guān)對(duì)象10.1、 框架參數(shù)對(duì)象(uo _FrameworkParameter)本對(duì)象繼承自n_base向應(yīng)用軟件框架提供獲取各種參數(shù)的支持,主要是由一些函數(shù)組成,具體內(nèi)容如下:#參數(shù)名稱說明類型1of_GetNewGUID()新的GUID字符2of_GetDBServerName()數(shù)據(jù)庫(kù)服務(wù)器名稱字符3of_GetLocalName()本地計(jì)算機(jī)名稱字

21、符4of_GetDBServerDate()服務(wù)器今日日期時(shí)間5of_GetDBServerTime()服務(wù)器今時(shí)日期時(shí)間6of_GetDBServerDateTime()服務(wù)器今日今時(shí)日期時(shí)間7of_GetDBServerYesteday()服務(wù)器昨日日期時(shí)間8of_GetDBServerTomorrow()服務(wù)器明日日期時(shí)間9of_GetDBServerYear()服務(wù)器年整數(shù)10of_GetDBServerMonth()服務(wù)器月整數(shù)11of_GetDBServerDay()服務(wù)器日整數(shù)12of_GetDBServerHour()服務(wù)器時(shí)整數(shù)13of_GetDBServerMinute()

22、服務(wù)器分整數(shù)14of_GetDBServerSecond()服務(wù)器秒整數(shù)15of_GetLocalDate()本地今日日期時(shí)間16of_GetLocalTime()本地今時(shí)日期時(shí)間17of_GetLocalDateTime()本地今日今時(shí)日期時(shí)間18of_GetLocalYesteday()本地昨日日期時(shí)間19of_GetLocalTomorrow()本地明日日期時(shí)間20of_GetLocalYear()本地年整數(shù)21of_GetLocalMonth()本地月整數(shù)22of_GetLocalDay()本地日整數(shù)23of_GetLocalHour()本地時(shí)整數(shù)24of_GetLocalMinute

23、()本地分整數(shù)25of_GetLocalSecond()本地秒整數(shù)26of_GetOperatorID()操作者編號(hào)字符27of_GetOperatorName()操作者姓名字符28of_GetRoleID()操作者崗位編號(hào)字符29of_GetRoleName()操作者崗位名稱字符10.2、 表達(dá)式替換修改c_nst_myappmanager對(duì)象,增加一個(gè)框架參數(shù)實(shí)例對(duì)象(iuo_frameworkparameter),并且增加若干函數(shù),具體內(nèi)容如下:1、 of_ReplaceExpression參數(shù)標(biāo)志參數(shù)類型參數(shù)名稱說明傳入STRING(值)aExpression需要進(jìn)行字符串替換的表達(dá)式

24、。傳入STRING(引用)aResult替換失敗的說明信息。返回INTEGERSUCCESS:成功;FAILURE:失?。籒O_ACTION:不需要替換。功能描述l 調(diào)用of_ReplaceExpressionFrameworkParameters把其中包含的參數(shù)替換成相應(yīng)的值。l 調(diào)用of_ReplaceExpressionDataElement把字符串中的數(shù)據(jù)元素ID替換成相應(yīng)的字段名稱(格式:表名.字段名)。2、 of_ReplaceExpressionFrameworkParameters參數(shù)標(biāo)志參數(shù)類型參數(shù)名稱說明傳入STRING(值)aExpression需要進(jìn)行字符串替換的表達(dá)式

25、。傳入STRING(引用)aResult替換失敗的說明信息。返回INTEGERSUCCESS:成功;FAILURE:失??;NO_ACTION:不需要替換。功能描述l 把其中包含的參數(shù)替換成相應(yīng)的值。3、 of_ReplaceExpressionDataElement參數(shù)標(biāo)志參數(shù)類型參數(shù)名稱說明傳入STRING(值)aExpression需要進(jìn)行字符串替換的表達(dá)式。傳入STRING(引用)aResult替換失敗的說明信息。返回INTEGERSUCCESS:成功;FAILURE:失敗;NO_ACTION:不需要替換。功能描述l 把字符串中的數(shù)據(jù)元素ID替換成相應(yīng)的字段名稱(格式:表名.字段名)。1

26、0.3、 操作員數(shù)據(jù)權(quán)限(my_n_cst_dwsrv_popedom_data)本對(duì)象繼承自n_cst_dwsrv根據(jù)當(dāng)前操作員及所在的崗位對(duì)允許其操作的數(shù)據(jù)范圍進(jìn)行動(dòng)態(tài)設(shè)定。1、 of_GetExpressionField參數(shù)標(biāo)志參數(shù)類型參數(shù)名稱說明傳入STRING(引用)aExpression需要替換和替換以后的SQL語(yǔ)句。返回STRING“成功”;相應(yīng)的錯(cuò)誤信息功能描述根據(jù)字段名稱從數(shù)據(jù)權(quán)限表中獲取條件。2、 of_GetExpressionDataElement參數(shù)標(biāo)志參數(shù)類型參數(shù)名稱說明傳入STRING(引用)aExpression需要替換和替換以后的SQL語(yǔ)句。返回STRING“

27、成功”;相應(yīng)的錯(cuò)誤信息功能描述根據(jù)字段綁定的數(shù)據(jù)元素從數(shù)據(jù)權(quán)限表中獲取條件。3、 of_MergeDWSQL參數(shù)標(biāo)志參數(shù)類型參數(shù)名稱說明傳入STRING(值)DWSQL數(shù)據(jù)窗口的SQL語(yǔ)句。傳入STRING(值)NewWhere獲取到需要綁定的條件。返回STRING“成功”;相應(yīng)的錯(cuò)誤信息功能描述把傳遞過來的條件合并到數(shù)據(jù)窗口的SQL語(yǔ)句中。4、 of_Init參數(shù)標(biāo)志參數(shù)類型參數(shù)名稱說明返回INTEGERSUCCESS:成功;FAILURE:失敗。功能描述根據(jù)當(dāng)前操作員及所在崗位修改數(shù)據(jù)權(quán)限。10.4、 修改屬性表達(dá)式(my_n_cst_dwsrv_ModifyDWExpression)本對(duì)

28、象繼承自n_cst_dwsrv把在不同層次設(shè)置的數(shù)據(jù)窗口對(duì)象表達(dá)式賦予數(shù)據(jù)窗口對(duì)象。1、 of_ModifyDWExpression參數(shù)標(biāo)志參數(shù)類型參數(shù)名稱說明返回INTEGERSUCCESS:成功;FAILURE:失敗。功能描述1、 以字段為外層循環(huán),獲取字段名LIKE,LEVEL=NULL的表達(dá)式集合,并且根據(jù)字段獲取對(duì)應(yīng)的數(shù)據(jù)元素,再獲取數(shù)據(jù)元素LIKE,LEVEL=DATA_ELEMENT_NAME;2、 而后忽略字段名,OWNER分別以DW_NAME、WIN_NAMEDW_CONTROL_NAME、ROLE_NAMEWIN_NAMEDW_NAME、OPERATOR_NAMEWIN_N

29、AMEDW_NAME檢索表達(dá)式集合。10.5、 修改字段顯示標(biāo)題(my_n_cst_dwsrv_ModifyColumnTitle)本對(duì)象繼承自n_cst_dwsrv使用數(shù)據(jù)庫(kù)中設(shè)置的字段說明替換數(shù)據(jù)窗口中的字段說明。1、 of_ModifyColumnTitle參數(shù)標(biāo)志參數(shù)類型參數(shù)名稱說明返回INTEGERSUCCESS:成功;FAILURE:失敗。功能描述使用數(shù)據(jù)庫(kù)中設(shè)置的字段說明替換數(shù)據(jù)窗口中的字段說明。10.6、 關(guān)聯(lián)查詢服務(wù)(my_n_cst_dwsrv_RelationSearch)本對(duì)象繼承自n_cst_dwsrv使用定義的主外鍵關(guān)系,根據(jù)當(dāng)前在DW中選擇的列對(duì)象,查詢其值對(duì)應(yīng)的

30、外鍵表數(shù)據(jù)。1、 of_RelationSearchBy參數(shù)標(biāo)志參數(shù)類型參數(shù)名稱說明傳入STRINGaDBNameDW中Column的DBName。返回INTEGERSUCCESS:成功;FAILURE:失敗。功能描述1、 把a(bǔ)DBName傳給w_relationsearch窗體(界面如下)。2、 該窗體內(nèi)在根據(jù)事先定義的主外鍵關(guān)系,進(jìn)行查詢。外鍵表N外鍵表2外鍵表1該窗口根據(jù)傳遞過來的aDBName檢索相對(duì)應(yīng)的子表,而后在Tab中插入用戶自定義對(duì)象(u_tabpg_relationsearch)顯示數(shù)據(jù)。l 窗體#類型名稱功能TABtab_data組合需要顯示的關(guān)系查詢對(duì)象。EventOpe

31、n1、 根據(jù)aDBName檢索相關(guān)的子表數(shù)據(jù),并且根據(jù)主要字段組合成SQL語(yǔ)句。2、 循環(huán)在TAB中創(chuàng)建uo_relationsearch對(duì)象(tab_1.opentab(UO, 0))、修改TabPage標(biāo)題(tab_1.Controltab_1.selectedtab.text=),傳遞SQL語(yǔ)句、表/視圖名稱。Buttoncb_filtertab_1.controltab_1.selectedtab.triggerevent (ue_filter)Buttoncb_sorttab_1.controltab_1.selectedtab.triggerevent (ue_sort)Butto

32、nCb_findtab_1.controltab_1.selectedtab.triggerevent (ue_find)l u_tabpg_relationsearch#類型名稱功能DWdw_data顯示子表相關(guān)的數(shù)據(jù);打開過濾和排序服務(wù)。FunctionOf_init1、 接收傳遞過來的SQL語(yǔ)句生成數(shù)據(jù)窗口并檢索數(shù)據(jù);2、 設(shè)置數(shù)據(jù)窗口字段為DisplayOnly;3、 修改所有對(duì)象背景為透明;4、 設(shè)置Header和Detail的底色。EventResize自動(dòng)調(diào)整數(shù)據(jù)窗口大小。Eventue_filter調(diào)用過濾功能。Eventue_sort調(diào)用排序功能。EventUe_find調(diào)用

33、查找功能。10.7、 GRID風(fēng)格DW打印服務(wù)(my_n_cst_dwsrv_DWPrint)本對(duì)象繼承自n_cst_dwsrv使用數(shù)據(jù)庫(kù)中定義的打印參數(shù)對(duì)GRID風(fēng)格數(shù)據(jù)窗口進(jìn)行打印預(yù)覽和打印操作。該服務(wù)的目的是動(dòng)態(tài)生成標(biāo)題、說明、頁(yè)碼腳(左、中、右),而后進(jìn)行預(yù)覽或者打印,主要想使用GRID列序調(diào)整及列寬調(diào)整的靈活功能。頁(yè)面布局如下所示:數(shù)據(jù)窗口的打印標(biāo)題備注:右頁(yè)腳本服務(wù)可以從兩個(gè)方面考慮:數(shù)據(jù)、格式,數(shù)據(jù)從需要打印的DataWindow中使用GetFullState獲得,而后調(diào)用“DW顯示風(fēng)格設(shè)置”服務(wù)創(chuàng)建需要的格式即可。10.8、 DW顯示風(fēng)格設(shè)置(my_n_cst_dwsrv_Vi

34、ewStyle)本對(duì)象繼承自n_cst_dwsrv使用數(shù)據(jù)庫(kù)中定義的風(fēng)格,動(dòng)態(tài)應(yīng)用到程序的數(shù)據(jù)窗口中。需要?jiǎng)?chuàng)建庫(kù)表存放預(yù)置的風(fēng)格、用戶可能自定義的風(fēng)格,以及設(shè)置格式需要的DW腳本,數(shù)據(jù)庫(kù)結(jié)構(gòu)如下:1、 數(shù)據(jù)窗口風(fēng)格字典主(D_DWSTYLE_MAIN)2、 GRID數(shù)據(jù)窗口風(fēng)格字典從(D_DWSTYLE_SUB)服務(wù)啟用以后根據(jù)不同的“類型”將對(duì)象腳本應(yīng)用到對(duì)象上。預(yù)置的風(fēng)格見下表:風(fēng)格名稱類型數(shù)據(jù)窗口對(duì)象腳本普通BANDDataWindow.Header.Color=Rgb(255,255,255)DataWindow.Detail.Color=Rgb(255,255,255)TEXTTEX

35、T_NAME.Background.Mode=1COLUMNCOLUMN _NAME.Background.Mode=1示例簡(jiǎn)單BANDDataWindow.Header.Color=Rgb(58,110,165)DataWindow.Detail.Color=Rgb(255,255,255)TEXTTEXT_NAME.Background.Mode=1COLUMNCOLUMN _NAME.Background.Mode=1示例專業(yè)BANDDataWindow.Header.Color= Rgb(58,110,165)DataWindow.Detail.Color= 0tif(mod(getr

36、ow(),2)=0,Rgb(230,230,230),Rgb(245,245,245)TEXTTEXT_NAME.Background.Mode=1COLUMNCOLUMN _NAME.Background.Mode=1示例10.9、 系統(tǒng)字典維護(hù)工具10.9.1、 數(shù)據(jù)結(jié)構(gòu)字典定義該功能的作用是對(duì)D_SYSOBJECTS、D_SYSCOLUMNS、D_FOREIGNKEYS三個(gè)數(shù)據(jù)結(jié)構(gòu)字典進(jìn)行定義。主操作界面如下:在菜單中選擇新增,如果當(dāng)前節(jié)點(diǎn)是“DIR”,則把當(dāng)前節(jié)點(diǎn)的“ID”和“增加標(biāo)志”傳遞給新增/修改窗口,窗口自動(dòng)插入一條空記錄,如下圖所示:如果節(jié)點(diǎn)是“TABLE”或“VIEW”,則

37、把當(dāng)前節(jié)點(diǎn)的“ID”和“增加標(biāo)志”傳遞給字段新增/修改窗口,如下圖所示:如果節(jié)點(diǎn)是“FIELD”,則把當(dāng)前節(jié)點(diǎn)的“ID”和“增加標(biāo)志”傳遞給字段表達(dá)式增加/修改窗口,如下圖所示:在菜單中選擇修改,則把當(dāng)前節(jié)點(diǎn)的“ID”和“修改標(biāo)志”傳遞給新增/修改窗口,窗口根據(jù)ID檢索數(shù)據(jù)。10.10、 允許用戶進(jìn)行自定義的參數(shù)(D_SYSCONFIG)#參數(shù)名說明備注UnitCode單位編碼默認(rèn)為:0000。UnitName單位名稱SN軟件序列號(hào)由單位名稱生成,運(yùn)行程序時(shí)比較。InstallDate安裝日期系統(tǒng)自動(dòng)設(shè)置。FilterWindowStyle系統(tǒng)使用過濾窗口風(fēng)格SortWindowStyle系統(tǒng)

38、使用排序窗口風(fēng)格DateFormat系統(tǒng)使用日期格式TimeFormat系統(tǒng)使用時(shí)間日期格式CurrencyFormat系統(tǒng)使用貨幣日期格式十一、 簡(jiǎn)單業(yè)務(wù)流程處理(Simple Business Flow)業(yè)務(wù)流程處理的實(shí)現(xiàn)目標(biāo)是:相對(duì)靈活的定義業(yè)務(wù)流程,包括:基本信息、選擇業(yè)務(wù)環(huán)節(jié)、業(yè)務(wù)環(huán)節(jié)之間的先后關(guān)系、業(yè)務(wù)環(huán)節(jié)執(zhí)行的數(shù)據(jù)條件;對(duì)當(dāng)前啟動(dòng)的業(yè)務(wù)流程進(jìn)行監(jiān)控,包括:截止到目前經(jīng)歷了那些業(yè)務(wù)環(huán)節(jié)、目前在哪個(gè)業(yè)務(wù)環(huán)節(jié);查看以往歸檔的業(yè)務(wù)流程記錄,及業(yè)務(wù)流程涉及到的業(yè)務(wù)數(shù)據(jù)。11.1. 簡(jiǎn)單業(yè)務(wù)流程的定義簡(jiǎn)單業(yè)務(wù)流程的業(yè)務(wù)環(huán)節(jié)包括:一個(gè)開始環(huán)節(jié)、若干個(gè)業(yè)務(wù)環(huán)節(jié)、若干個(gè)條件分支環(huán)節(jié)和1至N個(gè)結(jié)束環(huán)

39、節(jié)。簡(jiǎn)單業(yè)務(wù)流程的流程數(shù)據(jù)和業(yè)務(wù)數(shù)據(jù),通過流程數(shù)據(jù)進(jìn)行串聯(lián)。簡(jiǎn)單業(yè)務(wù)流程的基本信息包括:業(yè)務(wù)流程ID、名稱、說明、完成后自動(dòng)歸檔(YES/NO)、業(yè)務(wù)流程串聯(lián)對(duì)象類型(FIELD、DATA_ELEMENT)、串聯(lián)字段/數(shù)據(jù)元素ID、啟用標(biāo)志(YES/NO)。庫(kù)表結(jié)構(gòu)如下(D_FLOW):#字段名稱說明類型PK備注F_ID關(guān)鍵字Varchar(64)是F_PARENT_ID上級(jí)關(guān)鍵字varchar(64)F_LEVEL層號(hào)IntF_TYPE類型varchar(16)DIR;FLOWF_ORDER序號(hào)IntF_NAME名稱varchar(64)F_DESCRIPTION說明varchar(255)

40、F_AUTOARCHIVE完成后自動(dòng)歸檔varchar(16)YES;NOF_ASSOCIATE_TYPE關(guān)聯(lián)對(duì)象類型varchar(16)FIELD;DATA_ELEMENTF_ASSOCIATE_ID關(guān)聯(lián)對(duì)象IDvarchar(64)F_VALID有效varchar(16)YES;NO11.1.1. 業(yè)務(wù)流程中環(huán)節(jié)的定義1. 開始環(huán)節(jié)是業(yè)務(wù)流程的開始,一個(gè)業(yè)務(wù)流程中只能有一個(gè)開始環(huán)節(jié),而且順序必須是第一個(gè),其中包含:環(huán)節(jié)ID、名稱、說明、功能ID、啟動(dòng)條件。開始環(huán)節(jié)引用的功能ID只能在業(yè)務(wù)流程中出現(xiàn)一次,而且只有開始環(huán)節(jié)引用的功能ID能夠在框架的功能樹中出現(xiàn)。2. 業(yè)務(wù)環(huán)節(jié)是業(yè)務(wù)流程中不同

41、業(yè)務(wù)處理的功能單元,一個(gè)業(yè)務(wù)流程中可以有0至N個(gè)業(yè)務(wù)環(huán)節(jié),其中包含:環(huán)節(jié)ID、名稱、說明、功能ID、執(zhí)行條件、流轉(zhuǎn)條件、回退條件。被業(yè)務(wù)環(huán)節(jié)引用的功能ID,不能再出現(xiàn)在框架的功能樹中。3. 條件分支環(huán)節(jié)是業(yè)務(wù)流程中需要根據(jù)業(yè)務(wù)數(shù)據(jù)進(jìn)行分別處理的邏輯判斷單元,該單元支持兩個(gè)功能ID,因?yàn)闂l件的結(jié)果只能在是、否之間選擇,其中包含:環(huán)節(jié)ID、名稱、說明、邏輯表達(dá)式、是_業(yè)務(wù)環(huán)節(jié)ID、否_業(yè)務(wù)環(huán)節(jié)ID。4. 結(jié)束環(huán)節(jié)是業(yè)務(wù)流程中最后一個(gè)環(huán)節(jié),可以有多個(gè)。結(jié)束環(huán)節(jié)只能是上述三類環(huán)節(jié)的后繼環(huán)節(jié),而不能是前驅(qū)環(huán)節(jié)。庫(kù)表結(jié)構(gòu)如下(D_FLOW_SECTION):#字段名稱說明類型PK備注F_ID關(guān)鍵字varc

42、har(64)是F_FLOW_ID業(yè)務(wù)流程IDvarchar(64)F_TYPE環(huán)節(jié)類型Int1:tpStart;2:tpFunction;3:tpCondition;99:tpFinishF_PREVIOUS_ID前驅(qū)環(huán)節(jié)IDvarchar(64)對(duì)于tpStart來說是NONEF_NEXT_ID后繼環(huán)節(jié)IDvarchar(64)對(duì)于tpFinish來說是NONEF_NEXT_ID_NO后繼環(huán)節(jié)ID_NOvarchar(64)對(duì)于tpStart、tpFunction和tpFinish來說是NONEF_FUNC_ID功能IDvarchar(64)執(zhí)行本環(huán)節(jié)的功能ID,既:d_sysfunc.f

43、uncidF_NAME名稱varchar(64)環(huán)節(jié)名稱F_DESCRIPTION說明varchar(255)說明F_RUN_CONDITION運(yùn)行條件varchar(255)對(duì)于tpStart、tpFinish來說是NONEF_GOON_CONDITION流轉(zhuǎn)條件varchar(255)對(duì)于tpFinish來說是NONEF_GOBACK_CONDITION回退條件varchar(255)對(duì)于tpStart來說是NONEF_EXPRESSION邏輯表達(dá)式varchar(255)tpCondition用,對(duì)于tpStart、tpFunction和tpFinish來說是NONE11.1.2. 業(yè)務(wù)

44、流程的實(shí)例化上面所述業(yè)務(wù)流程包括環(huán)節(jié)的相關(guān)內(nèi)容,只有在實(shí)際運(yùn)行過程中被業(yè)務(wù)流程引擎實(shí)例化以后,才能夠被操作人員所用。1. 啟動(dòng)業(yè)務(wù)流程/流轉(zhuǎn)到下一環(huán)節(jié)讓用戶輸入“流轉(zhuǎn)人”、“流轉(zhuǎn)時(shí)間”、“流轉(zhuǎn)主題”、“優(yōu)先級(jí)”、“最遲完成時(shí)間”,選擇“接收人”,而后根據(jù)業(yè)務(wù)流程定義的關(guān)聯(lián)字段/數(shù)據(jù)元素,獲取并保存相應(yīng)字段的值。最后根據(jù)定義的“執(zhí)行條件”判斷無誤后,對(duì)業(yè)務(wù)流程進(jìn)行實(shí)例化。2. 暫停修改當(dāng)前任務(wù)的狀態(tài),并且輸入“操作人”、“暫停時(shí)間”、“暫停原因”。3. 恢復(fù)修改當(dāng)前任務(wù)的狀態(tài),并且輸入“操作人”、“恢復(fù)時(shí)間”。4. 終止修改當(dāng)前任務(wù)的狀態(tài),并且輸入“操作人”、“終止時(shí)間”、“終止原因”。庫(kù)表結(jié)構(gòu)

45、如下(D_TASK):#字段名稱說明類型PK備注F_ID關(guān)鍵字varchar(64)是F_FLOW_ID業(yè)務(wù)流程IDvarchar(64)F_PAUSE_OPERATOR暫停人varchar(32)F_PAUSE_DATETIME暫停時(shí)間DatetimeF_PAUSE_REASON暫停原因varchar(255)F_RESUME_OPERATOR恢復(fù)人varchar(32)F_RESUME_DATETIME恢復(fù)時(shí)間DatetimeF_ABORT_OPERATOR終止人varchar(32)F_ABORT_DATETIME終止時(shí)間DatetimeF_ABORT_REASON終止原因varchar

46、(255)F_ARCHIVE_OPERATOR歸檔人varchar(32)F_ARCHIVE_DATETIME歸檔時(shí)間DatetimeF_STATE狀態(tài)Int1:stStart;2:stProcess;3:stGoBack4:stPause;5:stResume;6:stAbort;7:stFinish;99:stArchiveF_PRIORITY優(yōu)先級(jí)IntF_SENDER發(fā)送人varchar(32)F_SEND_DATETIME發(fā)送時(shí)間DatetimeF_LAST_DATETIME最遲完成時(shí)間DatetimeF_TOPIC主題Varchar(255)F_NOTE備注varchar(4000

47、)F_PREVIOUS_ID上一環(huán)節(jié)IDvarchar(64)開始環(huán)節(jié)填寫:NONEF_CURRENT_ID當(dāng)前環(huán)節(jié)IDvarchar(64)F_NEXT_ID下一環(huán)節(jié)IDvarchar(64)結(jié)束環(huán)節(jié)填寫:NONEF_RECEIVER接收人varchar(255)用“,”分隔的登錄編號(hào)F_ASSOCIATE_VALUE關(guān)聯(lián)字段的值varchar(255)只能是字符或整數(shù)庫(kù)表結(jié)構(gòu)如下(D_TASK_HISTORY):#字段名稱說明類型PK備注F_IDENTITY順序流水號(hào)IntF_ID關(guān)鍵字varchar(64)是F_TASK_ID任務(wù)關(guān)鍵字varchar(64)F_SECTION_ID功能環(huán)

48、節(jié)IDvarchar(64)F_OPERATOR操作者varchar(32)F_DATETIME操作日期DatetimeF_PRIORITY優(yōu)先級(jí)IntF_TOPIC主題varchar(255)F_LAST_DATETIME最遲完成日期DatetimeF_TYPE操作類型Int1:stStart;2:stProcess;3:stGoBack4:stPause;5:stResume;6:stAbort;7:stFinish;99:stArchiveF_RECEIVER接收人varchar(255)用“,”分隔的登錄編號(hào)F_NOTE備注varchar(255)11.1.3. 任務(wù)數(shù)據(jù)的檢索1. 需處理的任務(wù)D_TASK中f_state=stProcess AND f_receiver LIKE %OPERATOR_ID%2. 已處理的任務(wù)D_TASK_HISTORY中f_operator = OPERATOR_ID AND f_task_id IN (SELECT f_id FROM d_task WHERE f_state = stProcess)3. 已完成的任務(wù)D_TASK_HISTORY中f_operator = OPERATOR_ID AND f_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論