SMT表面組裝技術(shù)SMT開發(fā)框架上手指南_第1頁
SMT表面組裝技術(shù)SMT開發(fā)框架上手指南_第2頁
SMT表面組裝技術(shù)SMT開發(fā)框架上手指南_第3頁
SMT表面組裝技術(shù)SMT開發(fā)框架上手指南_第4頁
SMT表面組裝技術(shù)SMT開發(fā)框架上手指南_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 SMT表面組裝技術(shù) SMT開發(fā)框架上手指 南 SMT 開發(fā)框架上手指南 SMTFrameworkHands-OnTraini ng 項目名稱: SMT 開發(fā)框架 項目編號: SMTO_SFV1.0 文檔編號: SMTO_PL_ODV1.0 產(chǎn)品版本號: V1.0 編制單位: 神州通在線科技有限公司 編制日期: 2012 年 4 月 6 日 編制 審核 批準(zhǔn) 生效日期 宋濤 版本修訂批準(zhǔn)記錄 【歷次版本修訂記錄,版本修訂描述重要說明】 提交日期 版本號 版本修訂描述 作者 批準(zhǔn)人 2012/4/10 1.0 初始版本 宋濤 目錄 1 概述 7 1.1 目的 7 1.2 預(yù)期讀者 7 1.3 術(shù)

2、語和縮寫 7 1.4 參考資料 7 2 總體設(shè)計概覽 8 2.1 總體結(jié)構(gòu) 8 2.1.1 總體示意圖 8 2.1.2 層次結(jié)構(gòu) 8 2.2 開發(fā)框架組件結(jié)構(gòu) 11 2.2.1 工程結(jié)構(gòu) 11 3 代碼結(jié)構(gòu)組織 12 3.1 前臺代碼結(jié)構(gòu) 12 3.1.1 示意圖 12 3.1.2 工程命名 12 3.2 后臺代碼結(jié)構(gòu) 13 3.2.1 示意圖 13 3.2.2 工程命名 13 4 前臺開發(fā)指南 15 4.1 前臺主工程 15 4.1.1 工程結(jié)構(gòu) 15 4.1.2 業(yè)務(wù)劃分 16 4.2 前臺業(yè)務(wù)工程 18 4.2.1 工程結(jié)構(gòu) 18 4.2.2 業(yè)務(wù)劃分 18 4.3UI 模式 19 4.

3、3.1AJAX 異步通訊 19 4.3.2Grid-Detail 模式 19 4.4 異步通訊編碼規(guī)范 22 4.4.1JSON 數(shù)據(jù)格式 22 4.4.2 標(biāo)準(zhǔn)通訊模式 23 4.4.3 傳遞簡單對象到服務(wù)端,并返回簡單對象 25 4.4.4 傳遞兩個簡單對象到服務(wù)端,并返回簡單對象 26 4.4.5 傳遞對象列表到服務(wù)端,并返回對象列表 27 29 4.4.6 傳遞一個對象及一個對象列表到服務(wù)端,并返回對象列表 4.5 公共控件 32 4.5.1 公司選擇對話框 32 4.5.2 部門選擇對話框 34 4.5.3 員工選擇對話框 36 4.5.4 日期控件 38 4.6 模式 /非模式對話

4、框編碼規(guī)范 39 4.6.1 函數(shù)定義 39 4.6.2 典型 UI40 4.6.3HTML 代碼 41 4.6.4JS 代碼 41 4.6.5C# 代碼 43 4.7G RID 編碼規(guī)范 44 4.7.1 函數(shù)定義 44 4.7.2 典型 UI46 4.7.3HTML 代碼 46 4.7.4JS 代碼 46 4.7.5C# 代碼 48 4.8 審核控件編碼規(guī)范 50 5 后臺開發(fā)指南 51 6 前后臺通訊開發(fā)指南 52 7 數(shù)據(jù)訪問開發(fā)指南 52 8 公共服務(wù)使用指南 52 9 部署指南 52 1概述 1.1目的 SMT開發(fā)框架上手指南,面前開發(fā)人員,提供詳細(xì)的按步驟使用框架各方面技術(shù)的指南

5、。 1.2預(yù)期讀者 開發(fā)(設(shè)計)人員,其他授權(quán)人員。 1.3術(shù)語和縮寫 術(shù)語、縮略語 解釋 SMT 深圳市神州通投資(集團(tuán))有限公司 WP 工作計劃項目(本文以此項目作為示范) 1.4參考資料 文檔名稱 版本號 日期 1 2前臺上手指南 2.1練習(xí)1 :建立前臺解決方案 該練習(xí)示范如何建立基于SMT開發(fā)框架的前臺解決方案,其中包括工程的引入、組件的引用 及Area的創(chuàng)建等等,在實際的開發(fā)過程中,本練習(xí)所進(jìn)行的動作應(yīng)該由項目管理人員統(tǒng)一進(jìn) 行創(chuàng)建。 1. 創(chuàng)建空的解決方案 在VisualStuidio中,點擊創(chuàng)建工程,打開新工程對話框: 選擇創(chuàng)建一個空的解決方案,以項目名稱作為解決方案名稱,本例

6、我們以工作計劃(WP) 來作為示例: 2. 加入框架Shell工程 將框架提供的Shell工程加入到解決方案中(Shell工程請參考使用手冊 :前臺主 工程)。 在解決翻案管理器中右鍵,選擇添加存在的工程: 添加Shell工程(由框架人員提供): 弓I入后,可以根據(jù)本項目的需要進(jìn)行重命名,如命名為:SMT.WP.Clie nt.UI: Web.c onfig中的標(biāo)準(zhǔn)配置請咨詢框架人員。 3. 創(chuàng)建業(yè)務(wù)工程 新增一個類庫工程,作為前臺的業(yè)務(wù)層: 業(yè)務(wù)工程需要引用以下組件: 4. 創(chuàng)建工作區(qū)域 在UI工程中,找到 Areas文件夾: 在Areas文件夾上點擊右鍵,選擇增加Area

7、: 填入項目名稱: 所有的UI編碼都將在Areas/WP下完成,UI代碼不應(yīng)該寫在Areas的外面。 5. 運行程序 客戶端工程是一個 ASP.NetMVC的工程,直接點擊運行,應(yīng)該出現(xiàn)如下的起始界面: 2.2練習(xí)2 :建立基本的MVC 窗體 該練習(xí)示范建議一個最基礎(chǔ)的基于SMT開發(fā)框架的MVC窗體,窗體簡單的顯示一行字符串。 1. 新建 Controller 在 Areas/Wp/Controllers上點擊右鍵,新建 Controller : 我們使用默認(rèn)的 Defaultl 作為第一個Controller : 生成文件如下: 點擊,打開代碼編輯窗口,將繼承的父類由Controller 改

8、為BaseController ,并添加 HttpPost特性: publicclassDefault1C on troller:BaseC on troller HttpPost publicActi on ResultI ndex() retur nView(); 2. 新建View 在代碼編輯器中的”returnView(); ”上面點擊右鍵,選擇增加View : 之后會在 Areas/WP/Views下面生成一個 Defaultl 的目錄,并產(chǎn)生一個Index的文件: 點擊Index.cshtml文件,打開html編輯器,刪除全部內(nèi)容,任意輸入一段字符,如下: 3. 運行 點擊F5運行

9、程序,登錄后,點擊菜單,選擇 Default(菜單的配置請咨詢框架管理員) 將會展現(xiàn)如下界面: 所有的業(yè)務(wù)窗體均基于此模式,所不同的是在index頁面中編輯不同的html代碼和腳本 而已。 2.3練習(xí)3 :組織架構(gòu)對話框調(diào)用(1) 該練習(xí)演示如何調(diào)用 公司選擇對話框,并演示如何獲取選擇值、如何多選等等。 以下代碼均添加到需要調(diào)用對話框的chtml頁面上。 1. 添加html代碼 新增一個文本框,用來顯示選擇的公司; 新增一個按鈕,用于彈出公司選擇對話框, 如下: vp選擇公司: 2. 添加按鈕事件調(diào)用腳本 $(#bt n4_showpa ny).click(fu nctio n() /true

10、為多選,false為單選 $smt.showpa nyDialog(true,showpa nyCallback); ); showpa nyCallback為回調(diào),具體參數(shù)請參考使用手冊4.5.1 3. 添加回調(diào)腳本 /公司對話框的回調(diào) fun cti on showpa nyCallback(data) if(data=n ull) return; /單選時返回的data為單個對象 / 屬性為 id,name,pld (父 id),type(1pany,2department,3post,4employee) varstr=data.id+data .n ame+data.type+dat

11、a.pld; /多選時返回的data為對象數(shù)組 varstr=; for(vari=0;idata.le ngth;i+) varode=n ewObject(); ode.id=datai.id; ode.pld=datai.pld; str+=ode .n ame+; $(#txt_showpa ny).val(str); 4. 運行程序 點擊按鈕,彈出公司選擇對話框: 選擇一家公司,點擊確定: 所選擇的公司名稱顯示在文本框中。 2.4練習(xí)4 :組織架構(gòu)對話框調(diào)用(2) 該練習(xí)演示如何調(diào)用 部門選擇對話框,并演示如何獲取選擇值、如何多選等等。 以下代碼均添加到需要調(diào)用對話框的chtml頁面

12、上。 1. 添加html代碼 如下: 新增一個文本框,用來顯示選擇的部門;新增一個按鈕,用于彈出部門選擇對話框, 選擇部門: v/p 2. 添加按鈕事件調(diào)用腳本 $(#bt n4_showdept).click(fu nctio n() /true為多選,false為單選 $smt.showDepartme ntDialog(false,showDepartme ntCallback); ); showDepartme ntCallback為回調(diào),具體參數(shù)請參考使用手冊4.5.2 3. 添加回調(diào)腳本 /部門對話框的回調(diào) fun ctio nshowDepartme ntCallback(dat

13、a) if(data=n ull) return; /單選時返回的data為單個對象 / 屬性為 id,name,pld (父 id),type(1pany,2department,3post,4employee) varstr=data.id+data .n ame+data.type+data.pld; /多選時返回的data為對象數(shù)組 varstr=; for(vari=0;idata.le ngth;i+) /varode=n ewObject(); ode.id=datai.id; $(fu nctio n() /彈出部門選擇對話框 ode.pld=datai.pld; str+=o

14、de .n ame+; $(#txt_showdept).val(str); 4. 運行程序 點擊按鈕,彈出部門選擇對話框: 選擇一個部門,點擊確定: 所選擇的部門名稱顯示在文本框中。 2.5練習(xí)4 :組織架構(gòu)對話框調(diào)用(3) 該練習(xí)演示如何調(diào)用員工選擇對話框,并演示如何獲取選擇值等等。 以下代碼均添加到需要調(diào)用對話框的chtml頁面上。 1. 添加html代碼 如下: 新增一個文本框,用來顯示選擇的員工;新增一個按鈕,用于彈出員工選擇對話框, 選擇員工: v/p 2. 添加按鈕事件調(diào)用腳本 $(#bt n4_showemp).click(fu nctio n() /true為多選,false

15、為單選 $smt.showEmployeeDialog(false,showEmployeeCallback); ); showEmployeeCallback為回調(diào),具體參數(shù)請參考使用手冊4.5.3 3. 添加回調(diào)腳本 /員工對話框的回調(diào) fun cti on showEmployeeCallback(data) if(data=n ull) return; /單選時返回的data為單個對象 / 屬性為 id,name,pld(父 id),type(1pany,2department,3post,4employee) varstr=data.id+data .n ame+data.type+

16、data.pld; /多選時返回的data為對象數(shù)組 varstr=; for(vari=0;idata.le ngth;i+) varode=n ewObject(); ode.id=datai.id; /ode .n ame=datai. name; ode.type=datai.type; ode.pld=datai.pld; str+=ode .n ame+; $(#txt_showemp).val(str); 4. 運行程序 點擊按鈕,彈出員工選擇對話框: 選擇一個員工,點擊確定: 所選擇的員工名稱顯示在文本框中。 2.6練習(xí)9 :審核控件調(diào)用(1)-顯示審核控件 該練習(xí)演示如何使用

17、公司審核控件,并演示如何控件審核控件顯示與隱藏等 以下代碼均添加到需要使用審核控件的Create.cshtml 頁面上 1. 添加Razor語句 在Create.cshtmlform結(jié)束結(jié)點增加代碼,在新增時主鍵ID默認(rèn)賦上Guid值 SmtHelper.AuditControl( 主鍵 ID ”) 2. 添加隱藏審核控件腳本(新增表單時,審核控件默認(rèn)隱藏) $(fu nctio n() /隱藏審核控件腳本 $smt.hideAudit( 主鍵 ID); 3. 顯示審核控件(ajax保存表單成功后,增加顯示腳本) success:fu ncti on(con text,textStatus)

18、if(co ntext.Result=OK) /顯示審核控件showAudit參數(shù)參照使用手冊4.821 $smt.showAudit(ControllerName,主鍵 ID,0, “主鍵 ID ”,” 模塊代號”); /顯示“提交”按鈕 $(#topbar-submit).show(); 2.7練習(xí)10 :審核控件調(diào)用(2)-提交審核 該練習(xí)演示如何使用公司審核控件,并演示如何提交審核等 后碼代碼需要使用審核控件的,調(diào)整Pla nDraftCo ntroller.es 1. Controller 實現(xiàn) lAudit 接口方法 SubmitFlow HttpPost publicJso nR

19、esultSubmitFlow(Auditl nfoauditl nfo) /SystemCode:系統(tǒng)代號 audit In fo.SystemCode=OA; /Curren tApprovalUser當(dāng)前審核人信息 audit In fo.Curre ntApprovalUser= newUserl nfo UserID=this.UserID, pany ID=this.pa ny ID, PostlD=this.PostlD, Departme ntID=this.DeptID, UserName=this.UserName ; /通過模塊ID獲取實體數(shù)據(jù)數(shù)據(jù) T_WP_PLANDR

20、AFTpla nDraft=newT_WP_PLANDRAFT(); try pla nDraft=Clie ntBLL.GetPla nDraftBylD(audit In fo.FormID); catch(Excepti one) returnJs on(n ewState=2,Userl nfo=e.Message); /EntityKey:主鍵名稱 auditI nfo.E ntityKey=FICTIONID; AuditResultresult=AuditFlow.SubmitFlow(pla nDraft,audit In fo); /判斷審核結(jié)果,變更審核狀態(tài)(0:未提交;1

21、:審核中;2:審核通過;3:審核未通過;4:待審核) if(result.State!=O|result.Userl nfo=null)/需要選擇一個角色下人員時,無需更新審核狀態(tài) pla nDraft.CHECKSTATE=result.CheckState; varvResult=Clie ntBLL.UpdatePla nDraft(pla nDraft); returnJs on(n ewState=result.State,Userl nfo=result.Userl nfo); #en dregi on 2. 添加“提交審核”按鈕事件 $(fu nctio n() $(#topba

22、r-submit).click(fu nctio n() submitData(); retur nfalse; ); fun cti on submitData() /定義object對象 varobj=n ewObject(); /屬性FormID賦值主鍵ID /屬性ModelCode 賦值主鍵ID obj.FormlD=Pla nDrafFormID; obj.ModelCode=Pla nDraftModelCode; $smt.submitAudit(Pla nDraft/SubmitFlow,Model.FICTIONID,0,obj,submitCallback); submit

23、Callback為回調(diào)函數(shù) fun cti on submitCallback(isSuccess) if(isSuccess=true) $(#topbar-submit).hide(); $(#topbar-zf).hide(); alert(審核成功); else alert(審核失敗); 2.8練習(xí)11 :審核控件調(diào)用(3)-審核表單 該練習(xí)演示如何使用公司審核控件,并演示如何審核表單等 以下代碼均添加到需要使用審核控件的Audit.cshtml 頁面上 1. 添加Razor語句 在Audit.cshtmlform結(jié)束結(jié)點增加代碼,在新增時主鍵 ID默認(rèn)賦上 Guid值 2. 添加顯示

24、審核控件腳本(新增表單時,審核控件默認(rèn)隱藏) $(fu nctio n() /showAudit 參數(shù)參照使用手冊4.821 $smt.showAudit(C on trollerName,主鍵 ID,1,Model.FICTIONID,T_WP_PLANDRAFT); 3. 當(dāng)前用戶是審核用戶時,顯示界面 3后臺上手指南 3.1練習(xí)1 :建立后臺解決方案 該練習(xí)示范如何建立基于 SMT開發(fā)框架的后臺解決方案,其中包括工程的引入、組件的引用 及WCF服務(wù)的創(chuàng)建等等,在實際的開發(fā)過程中,本練習(xí)所進(jìn)行的動作應(yīng)該由項目管理人員統(tǒng) 一進(jìn)行創(chuàng)建。 1. 創(chuàng)建空的解決方案 在VisualStuidio中,

25、點擊創(chuàng)建工程,打開新工程對話框: (WP) 選擇創(chuàng)建一個空的解決方案,以項目名稱作為解決方案名稱,本例我們以工作計劃 來作為示例: 2. 創(chuàng)建WCF工程 解決翻案管理器中右鍵,選擇添加新的工程: 選擇WCF服務(wù)工程: 此工程為后臺服務(wù)的主工程,我們可以命名位SMT.WP .Services,參考使用手冊 3.222 3. 創(chuàng)建業(yè)務(wù)工程 新增一個類庫工程,如下: 作為后臺的業(yè)務(wù)工程,我們可以命名為SMT.WP.BLL (參考使用手冊3.223 ): 4. 創(chuàng)建公共工程 根據(jù)需要,可以創(chuàng)建后臺的公共工程,參考使用手冊 新增類庫工程,可以命名為SMT.WP.mon : 5. 新增數(shù)據(jù)相

26、關(guān)工程 參考使用手冊,創(chuàng)建以下數(shù)據(jù)相關(guān)工程(均為類庫工程,參考3.225): 6. 添加數(shù)據(jù)實體工程 新增類庫工程,專門放置業(yè)務(wù)實體,可以命名為SMT.WP .Model (參考使用手冊): 7. 添加組件引用 Services主工程需要添加如下引用: 其他工程根據(jù)關(guān)聯(lián)性進(jìn)行添加。 4前后臺通訊上手指南 4.1練習(xí)1 :建立后臺通訊服務(wù)接口 該練習(xí)示范如何實現(xiàn)基于 SMT開發(fā)框架通訊組件的后臺通訊服務(wù)接口, 其中包括接口的實現(xiàn)、 組件的引用及 WCF服務(wù)的創(chuàng)建等等,在實際的開發(fā)過程中,本練習(xí)所進(jìn)行的動作應(yīng)該由項目 管理人員統(tǒng)一進(jìn)行創(chuàng)建。 1. 引入通訊組件 后臺服務(wù)主工程引入開發(fā)

27、框架通訊組件: 2. 定義通訊契約 6.4.1 ): 新增接口文件,根據(jù)項目名稱,我們命名為IWPServices (參考使用手冊 namespaceSMT.WP.Services ServiceCo ntract publici ntefacelWPServices Operatio nCon tract ResultObjectExecute(BaseObjectbaseObject); 3. 定義 mandKey 我們需要定義好命令標(biāo)識,通過標(biāo)識來確定某一個唯一的通訊協(xié)議接口。 新增一個文件,可以命名為:man dKeys namespaceSMT.WP.Services / /枚舉,命

28、令KEY列表,用于為客戶端和服務(wù)端接口調(diào)用提供統(tǒng)一標(biāo)識 / publice numma ndKeys:i nt #regi onpanyno rmdefi ne Method1=101,調(diào)用 Methodi 方法 Method2=102,調(diào)用 Method2 方法 #en dregi on 以上定義了 6個接口協(xié)議方法的標(biāo)識,如101代表調(diào)用后臺業(yè)務(wù)中的Methodi 方法。 此枚舉定義服務(wù)端、客戶端需要同時引用。 4. 實現(xiàn)通訊代理 服務(wù)端必須實現(xiàn)通訊代理接口Ima ndWrapper,根據(jù)預(yù)定義的命令值映射到具體的業(yè)務(wù) 接口: 以工作計劃為例: namespaceSMT.WP.Servic

29、es / /命令包裝接口 seecref=lmandWrapper/實現(xiàn),用于映射服務(wù)端接口的調(diào)用 / publicclassma ndWrapper:lma ndWrapper / /根據(jù)給定的參數(shù),請求匹配的命令 Ill用于將接收到客戶端命令轉(zhuǎn)換為具體的業(yè)務(wù)接口調(diào)用 /v/summary /vparamname=key命令標(biāo)識 lll數(shù)據(jù)對象 /vparamname=mandParams請求參數(shù)歹列表 ll/命令執(zhí)行后返回的結(jié)果v/returns publicobject In vokema nd(stri ngkey,objectC onten t,paramsstri ngma ndP

30、arams) man dKeysma ndkey=(ma ndKeys)i nt.Parse(key); retur nSearchma ndByKey(ma ndkey,C on te nt,ma ndParams); retur nfalse; privateobjectSearchma ndByKey(ma ndKeysma ndkey,objectC on te nt,paramsstri ngma ndPara ms) switch(ma ndkey) casema ndKeys.Method1: ll具體的轉(zhuǎn)換方法 retur nbll1.Method1(C onten t,ma

31、ndParams); casema ndKeys.Method2: /具體的轉(zhuǎn)換方法 retur nbll1.Method2(Co nten t,ma ndParams); 5. 實現(xiàn)通訊契約 以下以工作計劃的服務(wù)為例: namespaceSMT.WP.Services publicclassWPServices:IWPServices privatemu ncati onMan ager_mu ncati onMan ager=n ull; publicWPServices() if(_mu ncati onMan ager=n ull) _mu ncatio nMan ager= newm

32、u ncatio nMan ager (n ewma ndWrapper(); publicResultObjectExecute(BaseObjectbaseObject) ResultObjectresultObject; try resultObject=_mu ncatio nMan ager.I nvokema nd(baseObject); catch(Excepti on ex) /捕獲后臺拋岀的任何異常,封裝后給前臺,此處為后臺最后一步 resultobject=n ewResultObject(); resultObject.State=false; resultObject

33、.ErrorMessage=ex.Message; ServerLogger.WriteError(WPServices.Execute,ex); retur nresultObject; 通訊服務(wù)需要調(diào)用通訊組件的 municationManager來進(jìn)行通訊管理,并使用一個ImandWrapper的實 例。 6. 后臺通訊服務(wù)代碼結(jié)構(gòu) 4.2練習(xí)2 :建立前臺通訊服務(wù)代理 該練習(xí)示范如何實現(xiàn)基于 SMT開發(fā)框架通訊組件的前臺通訊服務(wù)接口, 其中包括接口的實現(xiàn)、 組件的引用及 WCF服務(wù)的創(chuàng)建等等,在實際的開發(fā)過程中,本練習(xí)所進(jìn)行的動作應(yīng)該由項目 管理人員統(tǒng)一進(jìn)行創(chuàng)建。 1. 引入通訊組件

34、前臺業(yè)務(wù)工程引入開發(fā)框架通訊組件: 2. 引入服務(wù)端元數(shù)據(jù) 在前臺業(yè)務(wù)工程中添加Services引用: 輸入后臺服務(wù)定義的地址,生成元數(shù)據(jù): 點擊確定,生成: 3. 添加客戶端通訊代理 在前臺業(yè)務(wù)工程中新增一個代碼文件,按照項目名稱,可以命名為 WPServicesProvider 通訊代理應(yīng)該實現(xiàn) IServicesProvider 接口: namespaceSMT.WP.Clie nt.BLL / /客戶端服務(wù)提供者,用于映射對 WPServices的調(diào)用。 / publicclassWPServicesProvider:IServicesProvider privateWPService

35、sWS.WPServicesClie nt_clie nt=null; publicWPServicesProvider() _clie nt=newWPServicesWS.WPServicesClie nt(); / Ill根據(jù)請求對象執(zhí)行一個請求,并返回結(jié)果對象 /v/summary /vpara mn ame=dataC on text請求對象 lll結(jié)果對象 publicResultObjectExecute(BaseObjectdataC on text) if(_clie nt=n ull) _clie nt=newWPServicesWS.WPServicesClie nt()

36、; retur n_clie nt.Execute(dataC on text); 代理服務(wù)內(nèi)部需要創(chuàng)建一個服務(wù)端通訊服務(wù)的Client端代理實例。 4. 引入 mandKey 前臺工程需要引入我們在后臺通訊服務(wù)中添加到mandKey文件,即前后臺引用一份命令 定義: 可以使用代碼共享的方式,避免復(fù)制代碼。 5. 創(chuàng)建客戶端業(yè)務(wù)調(diào)用 以具體的業(yè)務(wù)類來說明,內(nèi)部需要調(diào)用通訊組件的muni cati onMan ager來進(jìn)行通訊管 理,并傳入一個客戶端通訊代理實例: publicclassT_WP_PLANDRAFTCLIENT privatemu ncati onMan ager_mMa na

37、ger =n ull; publicT_WP_PLANDRAFTCLIENT() if(_mMa nager=n ull) _mMa nager=n ewmu ncati onMan ager( newWPServicesProvider (); /根據(jù)ID獲取公司計劃申請記錄 /v/summary / /vretur nsx/retur ns publicT_WP_PLANDRAFTGetPla nDraftBylD(stri ngstrlD) return_mMa nager.Execute(strlD,(i nt)ma ndKeys.PLANDRAFT_E).To Strin g();

38、mun cati onMan ager接口定義如下: / /根據(jù)給定的參數(shù)執(zhí)行請求,并返回處理結(jié)果 / /vtypepara mn ame=TResult結(jié)果類型,可以為實體、列表、布爾值等任意對象 /vparam name=obj請求的實體,比如,增、刪、改、查等對象 /vpara mn ame=ma ndKey請求的命令標(biāo)識, KEY /vparamname=mandParams請求參數(shù)歹列表 /請求結(jié)果 publicTResultExecute(objectobj,str in gma ndKey,paramsstri ngma ndParams) 6. UI調(diào)用業(yè)務(wù)接口 在需要調(diào)用業(yè)務(wù)

39、接口的ASP.NetMVC 工程的Controller中,直接定義業(yè)務(wù)實體: publicclassPla nDraftCo ntroller:BaseCo ntroller,IAudit privateT_WP_PLANDRAFTCLIENTClie ntBLL=newT_WP_PLANDRAFTCLIENT(); 調(diào)用時,直接使用: varpageResult=Clie ntBLL. ListPla nDraft(dataPage, 5前后臺數(shù)據(jù)操作上手指南 5.1.1查詢數(shù)據(jù) 1. 生成 nhibernate對應(yīng)實體映射后,“ T_WP_PNORMDEFINE.hbm.xml ”文件放置

40、在 SMT.WP.Model 層 Map pi ngs 文件下: 2. “T_WP_PNORMDEFINE.cs ”實體放在“ Entities ”文件夾下: 3. 在“T_WP_PNORMDEFINE ”類中增加 Serializable 序列化標(biāo)記,類繼承 EntityBase , 類中增加一下關(guān)鍵代碼,其中“ PNORMID ”為“ T_WP_PNORMDEFINE ”表主鍵名: publicoverridestr in gPrimaryKeyName getreturnPNORMID; 該類中部分參看代碼如下圖: 4. 在“ SMT.WPDAL ”層中增加“ IT_WP_PNORMDE

41、FINEDAL.cs”接口文件,并創(chuàng)建查 詢接口 / /獲取公司經(jīng)營指標(biāo)定義信息,分頁 / /vparamname=dataPage分頁實體 /vparamname=strNormCode公司計劃編號 /vparamname=strNormName指標(biāo)名稱 /經(jīng)營指標(biāo)定義分頁數(shù)據(jù) DataPageListpNormDefi ne(DataPagedat aPage,stri ngstrNormCode,str in gstrNormName); 5. 在“ SMT.WP.OracleDAL ”層中增加 “T_WP_PNORMDEFINEDAL.cs”數(shù)據(jù)庫訪問文件, 并創(chuàng)建查詢方法 6. 在抽

42、象工廠 “ SMT.WP.DALFactory ” 層中,“ DataAccess.cs ” 文件中增加 CreatepNormDefi neDAL方法: / /創(chuàng)建公司經(jīng)營指標(biāo)定義 / /集團(tuán)指標(biāo)定義數(shù)據(jù)訪問接口 publicstaticSMT.WP .1 DAL.IT_WP_PNORMDEFINEDALCreatepNormDefi neDAL() stri ngclassName=path+.T_WP_PNORMDEFINEDAL; return(SMT.WP .I DAL.IT_WP_PNORMDEFINEDAL)Assembly.Load(path).Create In sta nc

43、e(classN ame); 7. 8. 在“SMT.WP.BLL”層中,新增集團(tuán)指標(biāo)定義業(yè)務(wù)處理類“T_WP_PNORMDEFINEBLL.cs ”, 并在類中實例化抽象訪問接口,并創(chuàng)建查詢業(yè)務(wù)方法 實例化抽象訪問接口: 查詢業(yè)務(wù)方法: 在SMT.WP .Services ”層中,找到mandKeys.cs ”文件,增加一下命名Key列表 #regi onpanyn ormdefi ne PNORMDEFINE_C=101,/ 添加 PNORMDEFINE_R=102, 獲取單個實體數(shù)據(jù) PNORMDEFINE_U=103, 更新 PNORMDEFINE_D=104, 刪除 PNORMDEF

44、INE_F=105, 獲取實體,不分頁 PNORMDEFINE_H=106, 獲取實體分頁 #en dregi on 9. 在SMT.WP .Services ”層中,找到mandWrapper.es”文件,增加檢查集團(tuán)指標(biāo)定義 方法: 10. 在SMT.WP .Services ”層,“mandWrapper.es ”文件找到SearehmandByKey ”中, 增加以下代碼: 11. 在 “SMT.WP .Client.BLL ”層中,增加“ T_WP_PNORMDEFINECLIENT.es ”文件,實例 化通訊方法,并增加分頁方法,如下圖所示: 12. 在 “SMT.WP .Clie

45、nt.UI ”層中 Areas WP 下,創(chuàng)建模塊文件夾“ PlanltemConfig”,并 創(chuàng)建“ pNormDefine ”控制器 13. 在 “pNormDefineController.es”文件中,創(chuàng)建控制器“ Index.eshtml ”視圖文件 14. 在“ pNormDefineController.es”文件中,創(chuàng)建“ LoadData ”查詢列表方法,如下圖所 示: 15. 在視圖“ Index.ehtml ”文件,創(chuàng)建列表顯示 html文件 16. 在視圖“Index.ehtml ”文件中,定義事件相應(yīng)變量,無特使情況,可直接拷貝樣例demo 代碼即可,如下圖: 17.

46、 在視圖“ Index.ehtml ”文件中,配置工具欄 18. 初始化Grid顯示信息,并進(jìn)行頁面初始化 19. 根據(jù)UI條件進(jìn)行查詢 5.1.2新增數(shù)據(jù) 1. “ SMT.WP.Model ”層實體生成,如在“ SMT.WP.Model ”層中,不存在映射實體,需 創(chuàng)建映射實體,創(chuàng)建方法可參看查詢數(shù)據(jù)步驟1-3 ;存在映射實體,此步驟可以不用處 理。 2. 在“ SMT.WPDAL ”層中增加“ IT_WP_PNORMDEFINEDAL.cs ”接口文件,并創(chuàng)建新 增接口 / /添加公司經(jīng)營指標(biāo)定義 / /vparamname=pNormDefine經(jīng)營定義實體 /新增成功與失敗,成功 T

47、rue、失敗False boolAddpNormDefi ne(T_WP_PNORMDEFINEpNormDefi ne); 3. 在“ SMT.WP.OracleDAL ”層中增加 “T_WP_PNORMDEFINEDAL.cs ”數(shù)據(jù)庫訪問文件, 并創(chuàng)建新增方法 4. 在抽象工廠 “ SMT.WP.DALFactory ” 層中,“ DataAccess.cs ” 文件中增加 “ CreatepNormDefi neDAL” 方法: / /創(chuàng)建公司經(jīng)營指標(biāo)定義 / /集團(tuán)指標(biāo)定義數(shù)據(jù)訪問接口 publicstaticSMT.WP .I DAL.IT_WP_PNORMDEFINEDALCre

48、atepNormDefi neDAL() stri ngclassName=path+.T_WP_PNORMDEFINEDAL; return(SMT.WP .1 DAL.IT_WP_PNORMDEFINEDAL)Assembly.Load(path).Create In sta nce(classN ame); 如果此方法已經(jīng)存在,無需再創(chuàng)建。 5. 在“SMT.WP.BLL”層中,新增集團(tuán)指標(biāo)定義業(yè)務(wù)處理類“T_WP_PNORMDEFINEBLL.cs 并在類中實例化抽象訪問接口,并創(chuàng)建新增方法 6. 在SMT.WP .Services ”層中,找到mandWrapper.cs ”文件,在

49、檢查集團(tuán)指標(biāo)定義方 法中,增加以下代碼: 7. 在“ SMT.WP .Client.BLL ”層 “T_WP_PNORMDEFINECLIENT.cs ” 文件中,增加新增方 8. 法: 在 “ SMT.WP .Client.UI ” 層中 Areas WP PlanltemConfig文件下找到 pNormDefi neCo ntroller.es ”文件,創(chuàng)建控制器“ Create.cshtml ”視圖文件, 9. 在pNormDefineController ”文件的“ Create ” 方法中增加以下代碼: 10. 在“ pNormDefineController.cs ”文件中,創(chuàng)建

50、“ AddpNormDefi ne”新增集團(tuán)指標(biāo)定 義方法, 如下圖所示: 11.在視圖 Create.chtml 初始化新增集團(tuán)指標(biāo)定義 html頁面代碼,如下圖: 12.在視圖 Create.chtml 配置按鈕響應(yīng)事件 13.在視圖 Create.chtml 提交后臺時,配置數(shù)據(jù)合法性驗證,并進(jìn)行頁面初始化,如下 圖: 14.在視圖 Create.chtml 提交后臺時,增加保存數(shù)據(jù)方法,數(shù)據(jù)以Json格式傳輸?shù)胶蠖?方法: 5.1.3修改數(shù)據(jù) 1. “ SMT.WP.Model ”層實體生成,如在“ SMT.WP.Model ”層中,不存在映射實體,需 創(chuàng)建映射實體,創(chuàng)建方法可參看查詢

51、數(shù)據(jù)步驟1-3 ;存在映射實體,此步驟可以不用處 理。 2. 在“ SMT.WPDAL ”層中增加“ IT_WP_PNORMDEFINEDAL.cs”接口文件,并創(chuàng)建修 改接口 / /更新公司經(jīng)營指標(biāo)定義 / /vparamname=pNormDefine經(jīng)營定義實體 / 更新成功與失敗,成功 True、失敗False boolUpdatepNormDefi ne(T_WP_PNORMDEFINEpNormDefi ne); 3. 在“ SMT.WP.OracleDAL ”層中增加 “T_WP_PNORMDEFINEDAL.cs”數(shù)據(jù)庫訪問文件, 并創(chuàng)建修改方法 4. 在抽象工廠 “ SMT.

52、WP.DALFactory ” 層中,“ DataAccess.cs ” 文件中增加 “ CreatepNormDefi neDAL” 方法: / /創(chuàng)建公司經(jīng)營指標(biāo)定義 / / 集團(tuán)指標(biāo)定義數(shù)據(jù)訪問接口 publicstaticSMT.WP .I DAL.IT_WP_PNORMDEFINEDALCreatepNormDefi neDAL() stri ngclassName=path+.T_WP_PNORMDEFINEDAL; return(SMT.WP .I DAL.IT_WP_PNORMDEFINEDAL)Assembly.Load(path).Create In sta nce(cla

53、ssN ame); 如果此方法已經(jīng)存在,無需再創(chuàng)建。 5. 在“SMT.WP.BLL”層中,新增集團(tuán)指標(biāo)定義業(yè)務(wù)處理類“T_WP_PNORMDEFINEBLL.cs 并在類中實例化抽象訪問接口,并創(chuàng)建修改方法 6. 在SMT.WP .Services ”層中,找到mandWrapper.cs ”文件,在檢查集團(tuán)指標(biāo)定義方 法中,增加以下代碼: 7. 在“ SMT.WP .Client.BLL ”層“ T_WP_PNORMDEFINECLIENT.cs ” 文件中,增加新增方 法: 8.在 “ SMT.WP .Client.UI 層中 Areas WP PlanltemConfig 文件下找到

54、pNormDefi neCo ntroller.es 文件,創(chuàng)建控制器“ Edit.cshtml ”視圖文件, 9.在“ pNormDefineController 文件的“ Edit ”方法中增加以下代碼: 10.在“ pNormDefineController.es ”文件中,創(chuàng)建“ UpdatepNormDefi ne ”新增集團(tuán)指標(biāo) 定義方法,如下圖所示: 11.在視圖“ Edit.chtml ”初始化修改集團(tuán)指標(biāo)定義 html頁面代碼,如下圖: 12.在視圖“ Edit.chtml 配置按鈕響應(yīng)事件 13.在視圖“ Edit.chtml 提交后臺時,配置數(shù)據(jù)合法性驗證,并進(jìn)行頁面初始

55、化,如下圖: 14.在視圖“ Edit.chtml ”提交后臺時,增加保存數(shù)據(jù)方法,數(shù)據(jù)以Json格式傳輸?shù)胶蠖朔?publicstaticSMT.WP .1 DAL.IT_WP_PNORMDEFINEDALCreatepNormDefi neDAL() 法: 5.1.4刪除數(shù)據(jù) 1. “ SMT.WP.Model ”層實體生成,如在“ SMT.WP.Model ”層中,不存在映射實體,需 創(chuàng)建映射實體,創(chuàng)建方法可參看查詢數(shù)據(jù)步驟1-3 ;存在映射實體,此步驟可以不用處 理。 2. 在“ SMT.WPDAL ”層中增加“ IT_WP_PNORMDEFINEDAL.cs ”接口文件,并創(chuàng)建刪 除

56、接口 / /刪除公司經(jīng)營指標(biāo)定義 / /vparamname=pNormDefine經(jīng)營定義實體 / 刪除成功與失敗,成功 True、失敗False boolDeletepNormDefi ne(T_WP_PNORMDEFINEpNormDefi ne); 3. 在“ SMT.WP.OracleDAL ”層中增加 “T_WP_PNORMDEFINEDAL.cs ”數(shù)據(jù)庫訪問文件, 并創(chuàng)建刪除方法 4. 在抽象工廠 “ SMT.WP.DALFactory ” 層中,“ DataAccess.cs ” 文件中增加 “ CreatepNormDefi neDAL” 方法: / /創(chuàng)建公司經(jīng)營指標(biāo)定義

57、 / stri ngclassName=path+.T_WP_PNORMDEFINEDAL; return(SMT.WP .I DAL.IT_WP_PNORMDEFINEDAL)Assembly.Load(path).Create In sta nce(classN ame); 如果此方法已經(jīng)存在,無需再創(chuàng)建。 5. 在“SMT.WP.BLL”層中,新增集團(tuán)指標(biāo)定義業(yè)務(wù)處理類“T_WP_PNORMDEFINEBLL.cs ”, 并在類中實例化抽象訪問接口,并創(chuàng)建刪除方法 6. 在SMT.WP .Services ”層中,找到mandWrapper.cs ”文件,在檢查集團(tuán)指標(biāo)定義方 法中,增加

58、以下代碼: 7. 在“ SMT.WP .Client.BLL ”層“ T_WP_PNORMDEFINECLIENT.cs ” 文件中,增加刪除方 法: 8. 在 “ SMT.WP .Client.UI ” 層中 Areas WP PlanltemConfig文件下找到 “ pNormDefi neCo ntroller.cs”文件,在文件中增加DeletepNormDefi ne”方法,并 增加以下代碼: 9. 在視圖“ Index.chtml ”配置按鈕響應(yīng)事件 10. 在視圖“ Index.chtml ”增加”deletepNormDefine”前端刪除方法,并Jon格式提 交到后臺,如下

59、圖: 6工作流上手指南 6.1練習(xí)1 :工作計劃申請 6.1.1元數(shù)據(jù)模板配置 1. 根據(jù)元數(shù)據(jù)定義SMT開發(fā)框架使用手冊章節(jié)“元數(shù)據(jù)規(guī)范”,生成工作計劃元數(shù)據(jù)模 板T_WP_PLANDRAFT.xml 文件,文件名以數(shù)據(jù)庫表名命名: 2將生成的元數(shù)據(jù)文件模板拷貝到對應(yīng)的業(yè)務(wù)系統(tǒng)元數(shù)據(jù)模板文件夾下: 3. 如工作流程中分支條件判斷需與主表數(shù)據(jù)交互,需復(fù)制一份元數(shù)據(jù)到, 否則不用處理此步驟。 4. 找到BOList.xml文件 5. 在BOList.xml文件ObjectList屬性列表中增加“工作計劃申請”屬性節(jié)點 6.1.2觸發(fā)規(guī)則定義 打開公司外網(wǎng)平臺系統(tǒng)http:/smtdev.smt-

60、 on li ne. net,輸入相應(yīng)的用戶名及密碼登入系 統(tǒng),點擊” start ”功能圖標(biāo)引擎系統(tǒng) 觸發(fā)規(guī)則定義,進(jìn)行觸發(fā)規(guī)則設(shè)置。 1. 添加“審批通過”觸發(fā)條件 A. 輸入觸發(fā)條件基本信息 點擊新建按鈕后: 在系統(tǒng)名稱中選擇:“辦公自動化系統(tǒng)” 在模塊名稱中選擇:“工作計劃申請” 在條件選擇框中選擇:“工作計劃申請”后,如下圖所示: 按“保存”,或“保存并關(guān)閉”即可。 B. 添加執(zhí)行動作 在觸發(fā)規(guī)則定義列表界面中找到剛新增的觸發(fā)規(guī)則定義記錄,找到新增”按鈕界面: 按“新增”按鈕: 在消息內(nèi)容定義欄右側(cè)元數(shù)據(jù)選擇框中選擇“申請人”,消息內(nèi)容定義框中自動增加 “new:申請人”后增加”提交

溫馨提示

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

最新文檔

評論

0/150

提交評論