




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 SMT表面组装技术 SMT开发框架上手指 南 SMT 开发框架上手指南 SMTFrameworkHands-OnTraini ng 项目名称: SMT 开发框架 项目编号: SMTO_SFV1.0 文档编号: SMTO_PL_ODV1.0 产品版本号: V1.0 编制单位: 神州通在线科技有限公司 编制日期: 2012 年 4 月 6 日 编制 审核 批准 生效日期 宋涛 版本修订批准记录 【历次版本修订记录,版本修订描述重要说明】 提交日期 版本号 版本修订描述 作者 批准人 2012/4/10 1.0 初始版本 宋涛 目录 1 概述 7 1.1 目的 7 1.2 预期读者 7 1.3 术
2、语和缩写 7 1.4 参考资料 7 2 总体设计概览 8 2.1 总体结构 8 2.1.1 总体示意图 8 2.1.2 层次结构 8 2.2 开发框架组件结构 11 2.2.1 工程结构 11 3 代码结构组织 12 3.1 前台代码结构 12 3.1.1 示意图 12 3.1.2 工程命名 12 3.2 后台代码结构 13 3.2.1 示意图 13 3.2.2 工程命名 13 4 前台开发指南 15 4.1 前台主工程 15 4.1.1 工程结构 15 4.1.2 业务划分 16 4.2 前台业务工程 18 4.2.1 工程结构 18 4.2.2 业务划分 18 4.3UI 模式 19 4.
3、3.1AJAX 异步通讯 19 4.3.2Grid-Detail 模式 19 4.4 异步通讯编码规范 22 4.4.1JSON 数据格式 22 4.4.2 标准通讯模式 23 4.4.3 传递简单对象到服务端,并返回简单对象 25 4.4.4 传递两个简单对象到服务端,并返回简单对象 26 4.4.5 传递对象列表到服务端,并返回对象列表 27 29 4.4.6 传递一个对象及一个对象列表到服务端,并返回对象列表 4.5 公共控件 32 4.5.1 公司选择对话框 32 4.5.2 部门选择对话框 34 4.5.3 员工选择对话框 36 4.5.4 日期控件 38 4.6 模式 /非模式对话
4、框编码规范 39 4.6.1 函数定义 39 4.6.2 典型 UI40 4.6.3HTML 代码 41 4.6.4JS 代码 41 4.6.5C# 代码 43 4.7G RID 编码规范 44 4.7.1 函数定义 44 4.7.2 典型 UI46 4.7.3HTML 代码 46 4.7.4JS 代码 46 4.7.5C# 代码 48 4.8 审核控件编码规范 50 5 后台开发指南 51 6 前后台通讯开发指南 52 7 数据访问开发指南 52 8 公共服务使用指南 52 9 部署指南 52 1概述 1.1目的 SMT开发框架上手指南,面前开发人员,提供详细的按步骤使用框架各方面技术的指南
5、。 1.2预期读者 开发(设计)人员,其他授权人员。 1.3术语和缩写 术语、缩略语 解释 SMT 深圳市神州通投资(集团)有限公司 WP 工作计划项目(本文以此项目作为示范) 1.4参考资料 文档名称 版本号 日期 1 2前台上手指南 2.1练习1 :建立前台解决方案 该练习示范如何建立基于SMT开发框架的前台解决方案,其中包括工程的引入、组件的引用 及Area的创建等等,在实际的开发过程中,本练习所进行的动作应该由项目管理人员统一进 行创建。 1. 创建空的解决方案 在VisualStuidio中,点击创建工程,打开新工程对话框: 选择创建一个空的解决方案,以项目名称作为解决方案名称,本例
6、我们以工作计划(WP) 来作为示例: 2. 加入框架Shell工程 将框架提供的Shell工程加入到解决方案中(Shell工程请参考使用手册 :前台主 工程)。 在解决翻案管理器中右键,选择添加存在的工程: 添加Shell工程(由框架人员提供): 弓I入后,可以根据本项目的需要进行重命名,如命名为:SMT.WP.Clie nt.UI: Web.c onfig中的标准配置请咨询框架人员。 3. 创建业务工程 新增一个类库工程,作为前台的业务层: 业务工程需要引用以下组件: 4. 创建工作区域 在UI工程中,找到 Areas文件夹: 在Areas文件夹上点击右键,选择增加Area
7、: 填入项目名称: 所有的UI编码都将在Areas/WP下完成,UI代码不应该写在Areas的外面。 5. 运行程序 客户端工程是一个 ASP.NetMVC的工程,直接点击运行,应该出现如下的起始界面: 2.2练习2 :建立基本的MVC 窗体 该练习示范建议一个最基础的基于SMT开发框架的MVC窗体,窗体简单的显示一行字符串。 1. 新建 Controller 在 Areas/Wp/Controllers上点击右键,新建 Controller : 我们使用默认的 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 的目录,并产生一个Index的文件: 点击Index.cshtml文件,打开html编辑器,删除全部内容,任意输入一段字符,如下: 3. 运行 点击F5运行
9、程序,登录后,点击菜单,选择 Default(菜单的配置请咨询框架管理员) 将会展现如下界面: 所有的业务窗体均基于此模式,所不同的是在index页面中编辑不同的html代码和脚本 而已。 2.3练习3 :组织架构对话框调用(1) 该练习演示如何调用 公司选择对话框,并演示如何获取选择值、如何多选等等。 以下代码均添加到需要调用对话框的chtml页面上。 1. 添加html代码 新增一个文本框,用来显示选择的公司; 新增一个按钮,用于弹出公司选择对话框, 如下: vp选择公司: 2. 添加按钮事件调用脚本 $(#bt n4_showpa ny).click(fu nctio n() /true
10、为多选,false为单选 $smt.showpa nyDialog(true,showpa nyCallback); ); showpa nyCallback为回调,具体参数请参考使用手册4.5.1 3. 添加回调脚本 /公司对话框的回调 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为对象数组 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练习4 :组织架构对话框调用(2) 该练习演示如何调用 部门选择对话框,并演示如何获取选择值、如何多选等等。 以下代码均添加到需要调用对话框的chtml页面
12、上。 1. 添加html代码 如下: 新增一个文本框,用来显示选择的部门;新增一个按钮,用于弹出部门选择对话框, 选择部门: v/p 2. 添加按钮事件调用脚本 $(#bt n4_showdept).click(fu nctio n() /true为多选,false为单选 $smt.showDepartme ntDialog(false,showDepartme ntCallback); ); showDepartme ntCallback为回调,具体参数请参考使用手册4.5.2 3. 添加回调脚本 /部门对话框的回调 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为对象数组 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练习4 :组织架构对话框调用(3) 该练习演示如何调用员工选择对话框,并演示如何获取选择值等等。 以下代码均添加到需要调用对话框的chtml页面上。 1. 添加html代码 如下: 新增一个文本框,用来显示选择的员工;新增一个按钮,用于弹出员工选择对话框, 选择员工: v/p 2. 添加按钮事件调用脚本 $(#bt n4_showemp).click(fu nctio n() /true为多选,false
15、为单选 $smt.showEmployeeDialog(false,showEmployeeCallback); ); showEmployeeCallback为回调,具体参数请参考使用手册4.5.3 3. 添加回调脚本 /员工对话框的回调 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为对象数组 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练习9 :审核控件调用(1)-显示审核控件 该练习演示如何使用
17、公司审核控件,并演示如何控件审核控件显示与隐藏等 以下代码均添加到需要使用审核控件的Create.cshtml 页面上 1. 添加Razor语句 在Create.cshtmlform结束结点增加代码,在新增时主键ID默认赋上Guid值 SmtHelper.AuditControl( 主键 ID ”) 2. 添加隐藏审核控件脚本(新增表单时,审核控件默认隐藏) $(fu nctio n() /隐藏审核控件脚本 $smt.hideAudit( 主键 ID); 3. 显示审核控件(ajax保存表单成功后,增加显示脚本) success:fu ncti on(con text,textStatus)
18、if(co ntext.Result=OK) /显示审核控件showAudit参数参照使用手册4.821 $smt.showAudit(ControllerName,主键 ID,0, “主键 ID ”,” 模块代号”); /显示“提交”按钮 $(#topbar-submit).show(); 2.7练习10 :审核控件调用(2)-提交审核 该练习演示如何使用公司审核控件,并演示如何提交审核等 后码代码需要使用审核控件的,调整Pla nDraftCo ntroller.es 1. Controller 实现 lAudit 接口方法 SubmitFlow HttpPost publicJso nR
19、esultSubmitFlow(Auditl nfoauditl nfo) /SystemCode:系统代号 audit In fo.SystemCode=OA; /Curren tApprovalUser当前审核人信息 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获取实体数据数据 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); /判断审核结果,变更审核状态(0:未提交;1
21、:审核中;2:审核通过;3:审核未通过;4:待审核) if(result.State!=O|result.Userl nfo=null)/需要选择一个角色下人员时,无需更新审核状态 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为回调函数 fun cti on submitCallback(isSuccess) if(isSuccess=true) $(#topbar-submit).hide(); $(#topbar-zf).hide(); alert(审核成功); else alert(审核失败); 2.8练习11 :审核控件调用(3)-审核表单 该练习演示如何使用公司审核控件,并演示如何审核表单等 以下代码均添加到需要使用审核控件的Audit.cshtml 页面上 1. 添加Razor语句 在Audit.cshtmlform结束结点增加代码,在新增时主键 ID默认赋上 Guid值 2. 添加显示
24、审核控件脚本(新增表单时,审核控件默认隐藏) $(fu nctio n() /showAudit 参数参照使用手册4.821 $smt.showAudit(C on trollerName,主键 ID,1,Model.FICTIONID,T_WP_PLANDRAFT); 3. 当前用户是审核用户时,显示界面 3后台上手指南 3.1练习1 :建立后台解决方案 该练习示范如何建立基于 SMT开发框架的后台解决方案,其中包括工程的引入、组件的引用 及WCF服务的创建等等,在实际的开发过程中,本练习所进行的动作应该由项目管理人员统 一进行创建。 1. 创建空的解决方案 在VisualStuidio中,
25、点击创建工程,打开新工程对话框: (WP) 选择创建一个空的解决方案,以项目名称作为解决方案名称,本例我们以工作计划 来作为示例: 2. 创建WCF工程 解决翻案管理器中右键,选择添加新的工程: 选择WCF服务工程: 此工程为后台服务的主工程,我们可以命名位SMT.WP .Services,参考使用手册 3.222 3. 创建业务工程 新增一个类库工程,如下: 作为后台的业务工程,我们可以命名为SMT.WP.BLL (参考使用手册3.223 ): 4. 创建公共工程 根据需要,可以创建后台的公共工程,参考使用手册 新增类库工程,可以命名为SMT.WP.mon : 5. 新增数据相
26、关工程 参考使用手册,创建以下数据相关工程(均为类库工程,参考3.225): 6. 添加数据实体工程 新增类库工程,专门放置业务实体,可以命名为SMT.WP .Model (参考使用手册): 7. 添加组件引用 Services主工程需要添加如下引用: 其他工程根据关联性进行添加。 4前后台通讯上手指南 4.1练习1 :建立后台通讯服务接口 该练习示范如何实现基于 SMT开发框架通讯组件的后台通讯服务接口, 其中包括接口的实现、 组件的引用及 WCF服务的创建等等,在实际的开发过程中,本练习所进行的动作应该由项目 管理人员统一进行创建。 1. 引入通讯组件 后台服务主工程引入开发
27、框架通讯组件: 2. 定义通讯契约 6.4.1 ): 新增接口文件,根据项目名称,我们命名为IWPServices (参考使用手册 namespaceSMT.WP.Services ServiceCo ntract publici ntefacelWPServices Operatio nCon tract ResultObjectExecute(BaseObjectbaseObject); 3. 定义 mandKey 我们需要定义好命令标识,通过标识来确定某一个唯一的通讯协议接口。 新增一个文件,可以命名为:man dKeys namespaceSMT.WP.Services / /枚举,命
28、令KEY列表,用于为客户端和服务端接口调用提供统一标识 / publice numma ndKeys:i nt #regi onpanyno rmdefi ne Method1=101,调用 Methodi 方法 Method2=102,调用 Method2 方法 #en dregi on 以上定义了 6个接口协议方法的标识,如101代表调用后台业务中的Methodi 方法。 此枚举定义服务端、客户端需要同时引用。 4. 实现通讯代理 服务端必须实现通讯代理接口Ima ndWrapper,根据预定义的命令值映射到具体的业务 接口: 以工作计划为例: namespaceSMT.WP.Servic
29、es / /命令包装接口 seecref=lmandWrapper/实现,用于映射服务端接口的调用 / publicclassma ndWrapper:lma ndWrapper / /根据给定的参数,请求匹配的命令 Ill用于将接收到客户端命令转换为具体的业务接口调用 /v/summary /vparamname=key命令标识 lll数据对象 /vparamname=mandParams请求参数歹列表 ll/命令执行后返回的结果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具体的转换方法 retur nbll1.Method1(C onten t,ma
31、ndParams); casema ndKeys.Method2: /具体的转换方法 retur nbll1.Method2(Co nten t,ma ndParams); 5. 实现通讯契约 以下以工作计划的服务为例: 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; 通讯服务需要调用通讯组件的 municationManager来进行通讯管理,并使用一个ImandWrapper的实 例。 6. 后台通讯服务代码结构 4.2练习2 :建立前台通讯服务代理 该练习示范如何实现基于 SMT开发框架通讯组件的前台通讯服务接口, 其中包括接口的实现、 组件的引用及 WCF服务的创建等等,在实际的开发过程中,本练习所进行的动作应该由项目 管理人员统一进行创建。 1. 引入通讯组件
34、前台业务工程引入开发框架通讯组件: 2. 引入服务端元数据 在前台业务工程中添加Services引用: 输入后台服务定义的地址,生成元数据: 点击确定,生成: 3. 添加客户端通讯代理 在前台业务工程中新增一个代码文件,按照项目名称,可以命名为 WPServicesProvider 通讯代理应该实现 IServicesProvider 接口: namespaceSMT.WP.Clie nt.BLL / /客户端服务提供者,用于映射对 WPServices的调用。 / publicclassWPServicesProvider:IServicesProvider privateWPService
35、sWS.WPServicesClie nt_clie nt=null; publicWPServicesProvider() _clie nt=newWPServicesWS.WPServicesClie nt(); / Ill根据请求对象执行一个请求,并返回结果对象 /v/summary /vpara mn ame=dataC on text请求对象 lll结果对象 publicResultObjectExecute(BaseObjectdataC on text) if(_clie nt=n ull) _clie nt=newWPServicesWS.WPServicesClie nt()
36、; retur n_clie nt.Execute(dataC on text); 代理服务内部需要创建一个服务端通讯服务的Client端代理实例。 4. 引入 mandKey 前台工程需要引入我们在后台通讯服务中添加到mandKey文件,即前后台引用一份命令 定义: 可以使用代码共享的方式,避免复制代码。 5. 创建客户端业务调用 以具体的业务类来说明,内部需要调用通讯组件的muni cati onMan ager来进行通讯管 理,并传入一个客户端通讯代理实例: 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 (); /根据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接口定义如下: / /根据给定的参数执行请求,并返回处理结果 / /vtypepara mn ame=TResult结果类型,可以为实体、列表、布尔值等任意对象 /vparam name=obj请求的实体,比如,增、删、改、查等对象 /vpara mn ame=ma ndKey请求的命令标识, KEY /vparamname=mandParams请求参数歹列表 /请求结果 publicTResultExecute(objectobj,str in gma ndKey,paramsstri ngma ndParams) 6. UI调用业务接口 在需要调用业务
39、接口的ASP.NetMVC 工程的Controller中,直接定义业务实体: publicclassPla nDraftCo ntroller:BaseCo ntroller,IAudit privateT_WP_PLANDRAFTCLIENTClie ntBLL=newT_WP_PLANDRAFTCLIENT(); 调用时,直接使用: varpageResult=Clie ntBLL. ListPla nDraft(dataPage, 5前后台数据操作上手指南 5.1.1查询数据 1. 生成 nhibernate对应实体映射后,“ T_WP_PNORMDEFINE.hbm.xml ”文件放置
40、在 SMT.WP.Model 层 Map pi ngs 文件下: 2. “T_WP_PNORMDEFINE.cs ”实体放在“ Entities ”文件夹下: 3. 在“T_WP_PNORMDEFINE ”类中增加 Serializable 序列化标记,类继承 EntityBase , 类中增加一下关键代码,其中“ PNORMID ”为“ T_WP_PNORMDEFINE ”表主键名: publicoverridestr in gPrimaryKeyName getreturnPNORMID; 该类中部分参看代码如下图: 4. 在“ SMT.WPDAL ”层中增加“ IT_WP_PNORMDE
41、FINEDAL.cs”接口文件,并创建查 询接口 / /获取公司经营指标定义信息,分页 / /vparamname=dataPage分页实体 /vparamname=strNormCode公司计划编号 /vparamname=strNormName指标名称 /经营指标定义分页数据 DataPageListpNormDefi ne(DataPagedat aPage,stri ngstrNormCode,str in gstrNormName); 5. 在“ SMT.WP.OracleDAL ”层中增加 “T_WP_PNORMDEFINEDAL.cs”数据库访问文件, 并创建查询方法 6. 在抽
42、象工厂 “ SMT.WP.DALFactory ” 层中,“ DataAccess.cs ” 文件中增加 CreatepNormDefi neDAL方法: / /创建公司经营指标定义 / /集团指标定义数据访问接口 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”层中,新增集团指标定义业务处理类“T_WP_PNORMDEFINEBLL.cs ”, 并在类中实例化抽象访问接口,并创建查询业务方法 实例化抽象访问接口: 查询业务方法: 在SMT.WP .Services ”层中,找到mandKeys.cs ”文件,增加一下命名Key列表 #regi onpanyn ormdefi ne PNORMDEFINE_C=101,/ 添加 PNORMDEFINE_R=102, 获取单个实体数据 PNORMDEFINE_U=103, 更新 PNORMDEFINE_D=104, 删除 PNORMDEF
44、INE_F=105, 获取实体,不分页 PNORMDEFINE_H=106, 获取实体分页 #en dregi on 9. 在SMT.WP .Services ”层中,找到mandWrapper.es”文件,增加检查集团指标定义 方法: 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 下,创建模块文件夹“ PlanltemConfig”,并 创建“ pNormDefine ”控制器 13. 在 “pNormDefineController.es”文件中,创建控制器“ Index.eshtml ”视图文件 14. 在“ pNormDefineController.es”文件中,创建“ LoadData ”查询列表方法,如下图所 示: 15. 在视图“ Index.ehtml ”文件,创建列表显示 html文件 16. 在视图“Index.ehtml ”文件中,定义事件相应变量,无特使情况,可直接拷贝样例demo 代码即可,如下图: 17.
46、 在视图“ Index.ehtml ”文件中,配置工具栏 18. 初始化Grid显示信息,并进行页面初始化 19. 根据UI条件进行查询 5.1.2新增数据 1. “ SMT.WP.Model ”层实体生成,如在“ SMT.WP.Model ”层中,不存在映射实体,需 创建映射实体,创建方法可参看查询数据步骤1-3 ;存在映射实体,此步骤可以不用处 理。 2. 在“ SMT.WPDAL ”层中增加“ IT_WP_PNORMDEFINEDAL.cs ”接口文件,并创建新 增接口 / /添加公司经营指标定义 / /vparamname=pNormDefine经营定义实体 /新增成功与失败,成功 T
47、rue、失败False boolAddpNormDefi ne(T_WP_PNORMDEFINEpNormDefi ne); 3. 在“ SMT.WP.OracleDAL ”层中增加 “T_WP_PNORMDEFINEDAL.cs ”数据库访问文件, 并创建新增方法 4. 在抽象工厂 “ SMT.WP.DALFactory ” 层中,“ DataAccess.cs ” 文件中增加 “ CreatepNormDefi neDAL” 方法: / /创建公司经营指标定义 / /集团指标定义数据访问接口 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); 如果此方法已经存在,无需再创建。 5. 在“SMT.WP.BLL”层中,新增集团指标定义业务处理类“T_WP_PNORMDEFINEBLL.cs 并在类中实例化抽象访问接口,并创建新增方法 6. 在SMT.WP .Services ”层中,找到mandWrapper.cs ”文件,在
49、检查集团指标定义方 法中,增加以下代码: 7. 在“ SMT.WP .Client.BLL ”层 “T_WP_PNORMDEFINECLIENT.cs ” 文件中,增加新增方 8. 法: 在 “ SMT.WP .Client.UI ” 层中 Areas WP PlanltemConfig文件下找到 pNormDefi neCo ntroller.es ”文件,创建控制器“ Create.cshtml ”视图文件, 9. 在pNormDefineController ”文件的“ Create ” 方法中增加以下代码: 10. 在“ pNormDefineController.cs ”文件中,创建
50、“ AddpNormDefi ne”新增集团指标定 义方法, 如下图所示: 11.在视图 Create.chtml 初始化新增集团指标定义 html页面代码,如下图: 12.在视图 Create.chtml 配置按钮响应事件 13.在视图 Create.chtml 提交后台时,配置数据合法性验证,并进行页面初始化,如下 图: 14.在视图 Create.chtml 提交后台时,增加保存数据方法,数据以Json格式传输到后端 方法: 5.1.3修改数据 1. “ SMT.WP.Model ”层实体生成,如在“ SMT.WP.Model ”层中,不存在映射实体,需 创建映射实体,创建方法可参看查询
51、数据步骤1-3 ;存在映射实体,此步骤可以不用处 理。 2. 在“ SMT.WPDAL ”层中增加“ IT_WP_PNORMDEFINEDAL.cs”接口文件,并创建修 改接口 / /更新公司经营指标定义 / /vparamname=pNormDefine经营定义实体 / 更新成功与失败,成功 True、失败False boolUpdatepNormDefi ne(T_WP_PNORMDEFINEpNormDefi ne); 3. 在“ SMT.WP.OracleDAL ”层中增加 “T_WP_PNORMDEFINEDAL.cs”数据库访问文件, 并创建修改方法 4. 在抽象工厂 “ SMT.
52、WP.DALFactory ” 层中,“ DataAccess.cs ” 文件中增加 “ CreatepNormDefi neDAL” 方法: / /创建公司经营指标定义 / / 集团指标定义数据访问接口 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); 如果此方法已经存在,无需再创建。 5. 在“SMT.WP.BLL”层中,新增集团指标定义业务处理类“T_WP_PNORMDEFINEBLL.cs 并在类中实例化抽象访问接口,并创建修改方法 6. 在SMT.WP .Services ”层中,找到mandWrapper.cs ”文件,在检查集团指标定义方 法中,增加以下代码: 7. 在“ SMT.WP .Client.BLL ”层“ T_WP_PNORMDEFINECLIENT.cs ” 文件中,增加新增方 法: 8.在 “ SMT.WP .Client.UI 层中 Areas WP PlanltemConfig 文件下找到
54、pNormDefi neCo ntroller.es 文件,创建控制器“ Edit.cshtml ”视图文件, 9.在“ pNormDefineController 文件的“ Edit ”方法中增加以下代码: 10.在“ pNormDefineController.es ”文件中,创建“ UpdatepNormDefi ne ”新增集团指标 定义方法,如下图所示: 11.在视图“ Edit.chtml ”初始化修改集团指标定义 html页面代码,如下图: 12.在视图“ Edit.chtml 配置按钮响应事件 13.在视图“ Edit.chtml 提交后台时,配置数据合法性验证,并进行页面初始
55、化,如下图: 14.在视图“ Edit.chtml ”提交后台时,增加保存数据方法,数据以Json格式传输到后端方 publicstaticSMT.WP .1 DAL.IT_WP_PNORMDEFINEDALCreatepNormDefi neDAL() 法: 5.1.4删除数据 1. “ SMT.WP.Model ”层实体生成,如在“ SMT.WP.Model ”层中,不存在映射实体,需 创建映射实体,创建方法可参看查询数据步骤1-3 ;存在映射实体,此步骤可以不用处 理。 2. 在“ SMT.WPDAL ”层中增加“ IT_WP_PNORMDEFINEDAL.cs ”接口文件,并创建删 除
56、接口 / /删除公司经营指标定义 / /vparamname=pNormDefine经营定义实体 / 删除成功与失败,成功 True、失败False boolDeletepNormDefi ne(T_WP_PNORMDEFINEpNormDefi ne); 3. 在“ SMT.WP.OracleDAL ”层中增加 “T_WP_PNORMDEFINEDAL.cs ”数据库访问文件, 并创建删除方法 4. 在抽象工厂 “ SMT.WP.DALFactory ” 层中,“ DataAccess.cs ” 文件中增加 “ CreatepNormDefi neDAL” 方法: / /创建公司经营指标定义
57、 / stri ngclassName=path+.T_WP_PNORMDEFINEDAL; return(SMT.WP .I DAL.IT_WP_PNORMDEFINEDAL)Assembly.Load(path).Create In sta nce(classN ame); 如果此方法已经存在,无需再创建。 5. 在“SMT.WP.BLL”层中,新增集团指标定义业务处理类“T_WP_PNORMDEFINEBLL.cs ”, 并在类中实例化抽象访问接口,并创建删除方法 6. 在SMT.WP .Services ”层中,找到mandWrapper.cs ”文件,在检查集团指标定义方 法中,增加
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 ”配置按钮响应事件 10. 在视图“ Index.chtml ”增加”deletepNormDefine”前端删除方法,并Jon格式提 交到后台,如下
59、图: 6工作流上手指南 6.1练习1 :工作计划申请 6.1.1元数据模板配置 1. 根据元数据定义SMT开发框架使用手册章节“元数据规范”,生成工作计划元数据模 板T_WP_PLANDRAFT.xml 文件,文件名以数据库表名命名: 2将生成的元数据文件模板拷贝到对应的业务系统元数据模板文件夹下: 3. 如工作流程中分支条件判断需与主表数据交互,需复制一份元数据到, 否则不用处理此步骤。 4. 找到BOList.xml文件 5. 在BOList.xml文件ObjectList属性列表中增加“工作计划申请”属性节点 6.1.2触发规则定义 打开公司外网平台系统http:/smtdev.smt-
60、 on li ne. net,输入相应的用户名及密码登入系 统,点击” start ”功能图标引擎系统 触发规则定义,进行触发规则设置。 1. 添加“审批通过”触发条件 A. 输入触发条件基本信息 点击新建按钮后: 在系统名称中选择:“办公自动化系统” 在模块名称中选择:“工作计划申请” 在条件选择框中选择:“工作计划申请”后,如下图所示: 按“保存”,或“保存并关闭”即可。 B. 添加执行动作 在触发规则定义列表界面中找到刚新增的触发规则定义记录,找到新增”按钮界面: 按“新增”按钮: 在消息内容定义栏右侧元数据选择框中选择“申请人”,消息内容定义框中自动增加 “new:申请人”后增加”提交
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 支撑安装施工规范
- 汽车维修工的职业道德与法律责任试题及答案
- 情绪管理学课程介绍
- 防外破宣传课件
- 生物药剂学试题及答案
- 自古至今的文学名句赏析试题及答案
- 2024年CPBA考试的自我评估试题及答案
- 停电检修培训
- 2024美容师考试笔试与面试的应对策略及答案
- 小众智商测试题及答案
- deepseek的使用技巧与实际应用培训课件
- 2024年研学旅行联盟合作协议3篇
- 《醉花阴李清照》课件
- 临床急救技术
- 2025年浙江杭州市属事业单位统一招聘工作人员371人高频重点提升(共500题)附带答案详解
- 酒店住宿租赁合同模板
- 2024年官方兽医牧运通考试题库(含答案)
- 2024年六西格玛绿带认证考试练习题库(含答案)
- 2024浙江宁波科学探索中心管理限公司招聘14人管理单位遴选500模拟题附带答案详解
- 四大名著文学常识单选题100道及答案解析
- 高血压健康教育知识讲座课件
评论
0/150
提交评论