已阅读5页,还剩93页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SMT 开发框架使用手册 在线科技机密,未经许可不得扩散 第 1 页, 共 98 页 SMT 开发框架上手指南开发框架上手指南 SMT Framework Hands-On Training 项目名称:项目名称: SMT 开发框架 项目编号:项目编号: SMTO_SFV1.0 文档编号:文档编号: SMTO_PL_ODV1.0 产品版本号:产品版本号: V1.0 编制单位:编制单位: 神州通在线科技有限公司 编制日期:编制日期: 2012 年 4 月 6 日 编制审核批准生效日期 宋涛 SMT 开发框架使用手册 在线科技机密,未经许可不得扩散 第 2 页, 共 98 页 SMT 开发框架使用手册 在线科技机密,未经许可不得扩散 第 3 页, 共 98 页 版本修订批准记录版本修订批准记录 【 历次版本修订记录,版本修订描述重要说明】 提交日期提交日期版本号版本号版本修订描述版本修订描述作者作者批准人批准人 2012/4/101.0初始版本宋涛 SMT 开发框架使用手册 在线科技机密,未经许可不得扩散 第 4 页, 共 98 页 目 录 1 概述 7 1.1目的 7 1.2预期读者.7 1.3术语和缩写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.1 AJAX 异步通讯19 4.3.2 Grid-Detail 模式.19 SMT 开发框架使用手册 在线科技机密,未经许可不得扩散 第 5 页, 共 98 页 4.4异步通讯编码规范.22 4.4.1 JSON 数据格式22 4.4.2 标准通讯模式.23 4.4.3 传递简单对象到服务端,并返回简单对象25 4.4.4 传递两个简单对象到服务端,并返回简单对象 26 4.4.5 传递对象列表到服务端,并返回对象列表27 4.4.6 传递一个对象及一个对象列表到服务端,并返回对象列表 29 4.5公共控件.32 4.5.1 公司选择对话框 .32 4.5.2 部门选择对话框 .34 4.5.3 员工选择对话框 .36 4.5.4 日期控件38 4.6模式/非模式对话框编码规范 .39 4.6.1 函数定义39 4.6.2 典型 UI.40 4.6.3 HTML 代码.41 4.6.4 JS 代码41 4.6.5 C#代码.43 4.7GRID编码规范.44 4.7.1 函数定义44 4.7.2 典型 UI.46 4.7.3 HTML 代码.46 4.7.4 JS 代码46 4.7.5 C#代码.48 4.8审核控件编码规范.50 5 后台开发指南51 6 前后台通讯开发指南 .52 7 数据访问开发指南.52 8 公共服务使用指南.52 SMT 开发框架使用手册 在线科技机密,未经许可不得扩散 第 6 页, 共 98 页 9 部署指南 .52 在线科技机密,未经许可不得扩散 第 7 页, 共 98 页 1 概述 1.1 目的 SMT 开发框架上手指南,面前开发人员,提供详细的按步骤使用框架各方面技术的指南。 1.2 预期读者 开发(设计)人员,其他授权人员。 1.3 术语和缩写 术语、缩略语术语、缩略语解释解释 SMT 深圳市神州通投资(集团)有限公司 WPWP 工作计划项目(本文以此项目作为示范)工作计划项目(本文以此项目作为示范) 1.4 参考资料 文档名称文档名称版本号版本号日期日期 1 在线科技机密,未经许可不得扩散 第 8 页, 共 98 页 2 前台上手指南 2.1 练习练习 1:建立前台解决方案:建立前台解决方案 该练习示范如何建立基于 SMT 开发框架的前台解决方案,其中包括工程的引入、组件的引用及 Area 的创建等等,在实际的开发过程中,本练习所进行的动作应该由项目管理人员统一进行创建。 1.创建空的解决方案 在 VisualStuidio 中,点击创建工程,打开新工程对话框: 选择创建一个空的解决方案,以项目名称作为解决方案名称,本例我们以工作计划(WP)来作 为示例: 在线科技机密,未经许可不得扩散 第 9 页, 共 98 页 2.加入框架 Shell 工程 将框架提供的 Shell 工程加入到解决方案中(Shell 工程请参考使用手册 :前台主工程) 。 在解决翻案管理器中右键,选择添加存在的工程: 添加 Shell 工程(由框架人员提供): 在线科技机密,未经许可不得扩散 第 10 页, 共 98 页 引入后,可以根据本项目的需要进行重命名,如命名为:SMT.WP.Client.UI: Web.config 中的标准配置请咨询框架人员。 3.创建业务工程 在线科技机密,未经许可不得扩散 第 11 页, 共 98 页 新增一个类库工程,作为前台的业务层: 业务工程需要引用以下组件: 4.创建工作区域 在 UI 工程中,找到 Areas 文件夹: 在线科技机密,未经许可不得扩散 第 12 页, 共 98 页 在 Areas 文件夹上点击右键,选择增加 Area: 填入项目名称: 在线科技机密,未经许可不得扩散 第 13 页, 共 98 页 所有的 UI 编码都将在 Areas/WP 下完成,UI 代码不应该写在 Areas 的外面。 5.运行程序 客户端工程是一个 ASP.Net MVC 的工程,直接点击运行,应该出现如下的起始界面: 在线科技机密,未经许可不得扩散 第 14 页, 共 98 页 在线科技机密,未经许可不得扩散 第 15 页, 共 98 页 2.2 练习练习 2:建立基本的:建立基本的 MVC 窗体窗体 该练习示范建议一个最基础的基于 SMT 开发框架的 MVC 窗体,窗体简单的显示一行字符串。 1.新建 Controller 在 Areas/Wp/Controllers 上点击右键,新建 Controller: 我们使用默认的 Default1 作为第一个 Controller: 生成文件如下: 在线科技机密,未经许可不得扩散 第 16 页, 共 98 页 点击,打开代码编辑窗口,将继承的父类由 Controller 改为 BaseController,并添加HttpPost特 性: public class Default1Controller : BaseControllerBaseController HttpPostHttpPost public ActionResult Index() return View(); 2.新建 View 在代码编辑器中的”return View();”上面点击右键,选择增加 View: 之后会在 Areas/WP/Views 下面生成一个 Default1 的目录,并产生一个 Index 的文件: 点击 Index.cshtml 文件,打开 html 编辑器,删除全部内容,任意输入一段字符,如下: 在线科技机密,未经许可不得扩散 第 17 页, 共 98 页 3.运行 点击 F5 运行程序,登录后,点击菜单,选择 Default1(菜单的配置请咨询框架管理员) ,将会展 现如下界面: 在线科技机密,未经许可不得扩散 第 18 页, 共 98 页 所有的业务窗体均基于此模式,所不同的是在 index 页面中编辑不同的 html 代码和脚本而已。 在线科技机密,未经许可不得扩散 第 19 页, 共 98 页 2.3 练习练习 3:组织架构对话框调用(:组织架构对话框调用(1) 该练习演示如何调用公司选择对话框公司选择对话框,并演示如何获取选择值、如何多选等等。 以下代码均添加到需要调用对话框的 chtml 页面上。 1.添加 html 代码 新增一个文本框,用来显示选择的公司;新增一个按钮,用于弹出公司选择对话框,如下: 选择公司: 2.添加按钮事件调用脚本 $(function() /弹出公司选择对话框 $(“#btn4_showcompany“).click(function() /true为多选,false为单选 $smt.showCompanyDialog(true, showCompanyCallback); ); showCompanyCallback 为回调,具体参数请参考使用手册 4.5.1 3.添加回调脚本 /公司对话框的回调 function showCompanyCallback(data) if (data = null) return; /单选时返回的data为单个对象 /属性为id,name,pId(父id),type(1company,2department,3post,4employee) /var str = data.id + “ “ + + “ “ + data.type + “ “ + data.pId; /多选时返回的data为对象数组 var str = “; for (var i = 0; i 选择部门: 2.添加按钮事件调用脚本 $(function() /弹出部门选择对话框 $(“#btn4_showdept“).click(function() /true为多选,false为单选 $smt.showDepartmentDialog(false, showDepartmentCallback); ); showDepartmentCallback 为回调,具体参数请参考使用手册 4.5.2 3.添加回调脚本 /部门对话框的回调 function showDepartmentCallback(data) if (data = null) return; /单选时返回的data为单个对象 /属性为id,name,pId(父id),type(1company,2department,3post,4employee) var str = data.id + “ “ + + “ “ + data.type + “ “ + data.pId; /多选时返回的data为对象数组 / var str = “; / for (var i = 0; i 选择员工: 2.添加按钮事件调用脚本 $(function() /弹出员工选择对话框 $(“#btn4_showemp“).click(function() /true为多选,false为单选 $smt.showEmployeeDialog(false, showEmployeeCallback); ); showEmployeeCallback 为回调,具体参数请参考使用手册 4.5.3 3.添加回调脚本 /员工对话框的回调 function showEmployeeCallback(data) if (data = null) return; /单选时返回的data为单个对象 /属性为id,name,pId(父id),type(1company,2department,3post,4employee) /var str = data.id + “ “ + + “ “ + data.type + “ “ + data.pId; /多选时返回的data为对象数组 var str = “; for (var i = 0; i .SubmitFlow(planDraft, auditInfo); /判断审核结果,变更审核状态(0:未提交;1:审核中;2:审核通过;3:审核未通过;4: 待审核“) if (result.State != 0 | result.UserInfo = null)/需要选择一个角 色下人员时,无需更新审核状态 planDraft.CHECKSTATE = result.CheckState; var vResult = ClientBLL.UpdatePlanDraft(planDraft); return Json(new State = result.State, UserInfo = result.UserInfo ); #endregion 2.添加“提交审核”按钮事件 $(function() $(“#topbar-submit“).click(function () submitData(); return false; ); function submitData() /定义object对象 var obj = new Object(); / 属性FormID赋值主键ID obj.FormID = PlanDrafFormID; /属性ModelCode赋值主键ID obj.ModelCode = PlanDraftModelCode; $smt.submitAudit(“PlanDraft/SubmitFlow“, “Model.FICTIONID“, “0“, obj, submitCallback); submitCallback 为回调函数 在线科技机密,未经许可不得扩散 第 28 页, 共 98 页 function submitCallback(isSuccess) if (isSuccess = true) $(“#topbar-submit“).hide(); $(“#topbar-zf“).hide(); alert(“审核成功“); else alert(“审核失败“); 2.8 练习练习 11:审核控件调用(:审核控件调用(3)-审核表单审核表单 该练习演示如何使用公司审核控件公司审核控件,并演示如何审核表单审核表单等 以下代码均添加到需要使用审核控件的 Audit.cshtml 页面上 1.添加 Razor 语句 在 Audit.cshtml form 结束结点增加代码,在新增时主键 ID 默认赋上 Guid 值 SmtHelper.AuditControl(“主键ID”) 2.添加显示审核控件脚本(新增表单时,审核控件默认隐藏) $(function() / showAudit参数参照使用手册 $smt.showAudit(“ControllerName“, “主键ID“, “1“, “Model.FICTIONID“, “T_WP_PLANDRAFT“); 3.当前用户是审核用户时,显示界面 在线科技机密,未经许可不得扩散 第 29 页, 共 98 页 3 后台上手指南 3.1 练习练习 1:建立后台解决方案:建立后台解决方案 该练习示范如何建立基于 SMT 开发框架的后台解决方案,其中包括工程的引入、组件的引用及 WCF 服务的创建等等,在实际的开发过程中,本练习所进行的动作应该由项目管理人员统一进行创建。 1.创建空的解决方案 在 VisualStuidio 中,点击创建工程,打开新工程对话框: 在线科技机密,未经许可不得扩散 第 30 页, 共 98 页 选择创建一个空的解决方案,以项目名称作为解决方案名称,本例我们以工作计划(WP)来作 为示例: 在线科技机密,未经许可不得扩散 第 31 页, 共 98 页 2.创建 WCF 工程 解决翻案管理器中右键,选择添加新的工程: 选择 WCF 服务工程: 此工程为后台服务的主工程,我们可以命名位 SMT.WP.Services,参考使用手册 在线科技机密,未经许可不得扩散 第 32 页, 共 98 页 3.创建业务工程 新增一个类库工程,如下: 作为后台的业务工程,我们可以命名为 SMT.WP.BLL(参考使用手册 ): 4.创建公共工程 根据需要,可以创建后台的公共工程,参考使用手册 新增类库工程,可以命名为 SMT.WP.Common: 5.新增数据相关工程 参考使用手册,创建以下数据相关工程(均为类库工程,参考 ): 6.添加数据实体工程 新增类库工程,专门放置业务实体,可以命名为 SMT.WP.Model(参考使用手册 ): 7.添加组件引用 Services 主工程需要添加如下引用: 在线科技机密,未经许可不得扩散 第 33 页, 共 98 页 其他工程根据关联性进行添加。 4 前后台通讯上手指南前后台通讯上手指南 4.1 练习练习 1:建立后台通讯服务接口:建立后台通讯服务接口 该练习示范如何实现基于 SMT 开发框架通讯组件的后台通讯服务接口,其中包括接口的实现、组件 的引用及 WCF 服务的创建等等,在实际的开发过程中,本练习所进行的动作应该由项目管理人员统 一进行创建。 1.引入通讯组件 后台服务主工程引入开发框架通讯组件: 2.定义通讯契约 新增接口文件,根据项目名称,我们命名为 IWPServices(参考使用手册 6.4.1): namespace SMT.WP.Services ServiceContract public interface IWPServices OperationContract ResultObject Execute(BaseObject baseObject); 在线科技机密,未经许可不得扩散 第 34 页, 共 98 页 3.定义 CommandKey 我们需要定义好命令标识,通过标识来确定某一个唯一的通讯协议接口。 新增一个文件,可以命名为:CommandKeys namespace SMT.WP.Services / / 枚举,命令KEY列表,用于为客户端和服务端接口调用提供统一标识 / public enum CommandKeys : int #region company norm define Method1 = 101, /调用Method1方法 Method2 = 102, /调用Method2方法 #endregion 以上定义了 6 个接口协议方法的标识,如 101 代表调用后台业务中的 Method1 方法。 此枚举定义服务端、客户端需要同时引用。 4.实现通讯代理 服务端必须实现通讯代理接口 ICommandWrapper,根据预定义的命令值映射到具体的业务接口: 以工作计划为例: namespace SMT.WP.Services / / 命令包装接口实现,用于映射服务端接口的调用 / public class CommandWrapper : ICommandWrapper / / 根据给定的参数,请求匹配的命令 / 用于将接收到客户端命令转换为具体的业务接口调用 / / 命令标识 / 数据对象 / 请求参数列表 / 命令执行后返回的结果 public object InvokeCommand(string key, object Content, params string commandParams) 在线科技机密,未经许可不得扩散 第 35 页, 共 98 页 CommandKeysCommandKeys commandkeycommandkey = = ( (CommandKeysCommandKeys) )intint.Parse(key);.Parse(key); return SearchCommandByKey(commandkey, Content, commandParams); return false; private object SearchCommandByKey(CommandKeys commandkey, object Content, params string commandParams) switch (commandkey) case CommandKeys.Method1: /具体的转换方法 return bll1.Method1(Content, commandParams); case CommandKeys.Method2: /具体的转换方法 return bll1.Method2(Content, commandParams); 5.实现通讯契约 以下以工作计划的服务为例: namespace SMT.WP.Services public class WPServices : IWPServices privateprivate CommuncationManagerCommuncationManager _CommuncationManager_CommuncationManager = = nullnull; ; public WPServices() if (_CommuncationManager = null) _CommuncationManager_CommuncationManager = = newnew CommuncationManager(newCommuncationManager(new CommandWrapper();CommandWrapper(); public ResultObject Execute(BaseObject baseObject) ResultObject resultObject; try resultObjectresultObject = = _CommuncationManager.InvokeCommand(baseObject);_CommuncationManager.InvokeCommand(baseObject); 在线科技机密,未经许可不得扩散 第 36 页, 共 98 页 catch (Exception ex) /捕获后台抛出的任何异常,封装后给前台,此处为后台最后一步 resultObject = new ResultObject(); resultObject.State = false; resultObject.ErrorMessage = ex.Message; ServerLogger.WriteError(“WPServices.Execute“, ex); return resultObject; 通讯服务需要调用通讯组件的CommunicationManager来进行通讯管理,并使用一个ICommandWrapper的 实例。 6.后台通讯服务代码结构 4.2 练习练习 2:建立前台通讯服务代理:建立前台通讯服务代理 该练习示范如何实现基于 SMT 开发框架通讯组件的前台通讯服务接口,其中包括接口的实现、组件 的引用及 WCF 服务的创建等等,在实际的开发过程中,本练习所进行的动作应该由项目管理人员统 一进行创建。 1.引入通讯组件 前台业务工程引入开发框架通讯组件: 在线科技机密,未经许可不得扩散 第 37 页, 共 98 页 2.引入服务端元数据 在前台业务工程中添加 Services 引用: 输入后台服务定义的地址,生成元数据: 在线科技机密,未经许可不得扩散 第 38 页, 共 98 页 点击确定,生成: 在线科技机密,未经许可不得扩散 第 39 页, 共 98 页 3.添加客户端通讯代理 在前台业务工程中新增一个代码文件,按照项目名称 ,可以命名为 WPServicesProvider: 通讯代理应该实现IServicesProvider 接口: namespace SMT.WP.Client.BLL / 在线科技机密,未经许可不得扩散 第 40 页, 共 98 页 / 客户端服务提供者,用于映射对WPServices的调用。 / public class WPServicesProvider : IServicesProvider private WPServicesWS.WPServicesClient _client = null; public WPServicesProvider() _client = new WPServicesWS.WPServicesClient(); / / 根据请求对象执行一个请求,并返回结果对象 / / 请求对象 / 结果对象 public ResultObject Execute(BaseObject dataContext) if (_client = null) _client = new WPServicesWS.WPServicesClient(); return _client.Execute(dataContext); 代理服务内部需要创建一个服务端通讯服务的 Client 端代理实例。 4.引入 CommandKey 前台工程需要引入我们在后台通讯服务中添加到 CommandKey 文件,即前后台引用一份命令定 义: 可以使用代码共享的方式,避免复制代码。 5.创建客户端业务调用 以具体的业务类来说明,内部需要调用通讯组件的 CommunicationManager 来进行通讯管理, 并传入一个客户端通讯代理实例: 在线科技机密,未经许可不得扩散 第 41 页, 共 98 页 public class T_WP_PLANDRAFTCLIENT private CommuncationManager _commManager = null; public T_WP_PLANDRAFTCLIENT() if (_commManager = null) _commManager = new CommuncationManager(new WPServicesProviderWPServicesProvider(); / / 根据ID获取公司计划申请记录 / / / public T_WP_PLANDRAFT GetPlanDraftByID(string strID) returnreturn _commManager.Execute(strID,_commManager.Execute(strID, (int)CommandKeys.PLANDRAFT_E).ToString();(int)CommandKeys.PLANDRAFT_E).ToString(); 在线科技机密,未经许可不得扩散 第 42 页, 共 98 页 CommuncationManager 接口定义如下: / / 根据给定的参数执行请求,并返回处理结果 / / 结果类型,可以为实体、列表、布尔值等任意对象 / 请求的实体,比如,增、删、改、查等对象 / 请求的命令标识,KEY / 请求参数列表 / 请求结果 public TResult Execute(object obj, string commandKey, params string commandParams) 6.UI 调用业务接口 在需要调用业务接口的 ASP.Net MVC 工程的 Controller 中,直接定义业务实体: public class PlanDraftController : BaseController, IAudit private T_WP_PLANDRAFTCLIENT ClientBLL = new T_WP_PLANDRAFTCLIENT(); 调用时,直接使用: var pageResult = ClientBLL.ListPlanDraft(dataPage, 在线科技机密,未经许可不得扩散 第 43 页, 共 98 页 5 前后台数据操作上手指南前后台数据操作上手指南 5.1.1查询数据查询数据 1. 生成 nhibernate 对应实体映射后, “T_WP_COMPNORMDEFINE.hbm.xml”文件放置在 SMT.WP.Model 层 Mappings 文件下: 2. “T_WP_COMPNORMDEFINE.cs”实体放在“Entities”文件夹下: 3. 在“T_WP_COMPNORMDEFINE”类中增加 Serializable 序列化标记,类继承 EntityBase,类中增 加一下关键代码,其中“COMPNORMID”为“T_WP_COMPNORMDEFINE”表主键名: public override string PrimaryKeyName get return “COMPNORMID“; 该类中部分参看代码如下图: 在线科技机密,未经许可不得扩散 第 44 页, 共 98 页 4. 在“SMT.WP.IDAL”层中增加“IT_WP_COMPNORMDEFINEDAL.cs”接口文件,并创建查询接口 / /获取公司经营指标定义信息,分页 / / 分页实体 / 公司计划编号 / 指标名称 / 经营指标定义分页数据 DataPage ListCompNormDefine(DataPage dataPage, string strNormCode, string strNormName); 5. 在“SMT.WP.OracleDAL”层中增加“T_WP_COMPNORMDEFINEDAL.cs”数据库访问文件,并创建查 询方法 6. 在抽象工厂“SMT.WP.DALFactory”层中, “DataAccess.cs”文件中增加 “CreateCompNormDefineDAL”方法: / / 创建公司经营指标定义 / / 集团指标定义数据访问接口 public static SMT.WP.IDAL.IT_WP_COMPNORMDEFINEDAL CreateCompNormDefineDAL() 在线科技机密,未经许可不得扩散 第 45 页, 共 98 页 string className = path + “.T_WP_COMPNORMDEFINEDAL“; return (SMT.WP.IDAL.IT_WP_COMPNORMDEFINEDAL)Assembly.Load(path).CreateInstance(className); 7. 在“SMT.WP.BLL”层中,新增集团指标定义业务处理类“T_WP_COMPNORMDEFINEBLL.cs” ,并 在类中实例化抽象访问接口,并创建查询业务方法 实例化抽象访问接口: 查询业务方法: 8. 在“SMT.WP.Services”层中,找到“CommandKeys.cs”文件,增加一下命名 Key 列表 #region company norm define COMPNORMDEFINE_C = 101, /添加 COMPNORMDEFINE_R = 102, /获取单个实体数据 COMPNORMDEFINE_U = 103, /更新 COMPNORMDEFINE_D = 104, /删除 COMPNORMDEFINE_F = 105, /获取实体,不分页 COMPNORMDEFINE_H = 106, /获取实体分页 #endregion 9. 在“SMT.WP.Services”层中,找到“CommandWrapper.cs”文件,增加检查集团指标定义方法: 10.在“SMT.WP.Services”层, “CommandWrapper.cs”文件找到“SearchCommandByKey”中,增加以 下代码: 在线科技机密,未经许可不得扩散 第 46 页, 共 98 页 11. 在“SMT.WP.Client.BLL”层中,增加“T_WP_COMPNORMDEFINECLIENT.cs”文件,实例化通讯方 法,并增加分页方法,如下图所示: 12. 在“SMT.WP.Client.UI”层中 AreasWP 下,创建模块文件夹“PlanItemConfig” ,并创建 “CompNormDefine”控制器 13. 在“CompNormDefineController.cs”文件中,创建控制器“Index.cshtml”视图文件 14.在“CompNormDefineController.cs”文件中,创建“LoadData”查询列表方法,如下图所示: 在线科技机密,未经许可不得扩散 第 47 页, 共 98 页 15.在视图“Index.chtml”文件,创建列表显示 html 文件 16. 在视图“Index.chtml”文件中,定义事件相应变量,无特使情况,可直接拷贝样例 demo 代码 即可,如下图: 17. 在视图“Index.chtml”文件中,配置工具栏 在线科技机密,未经许可不得扩散 第 48 页, 共 98 页 18. 初始化 Grid 显示信息,并进行页面初始化 在线科技机密,未经许可不得扩散 第 49 页, 共 98 页 19. 根据 UI 条件进行查询 5.1.2新增数据新增数据 1. “SMT.WP.Model”层实体生成,如在“SMT.WP.Model”层中,不存在映射实体,需创建映射实 体,创建方法可参看查询数据步骤 1-3;存在映射实体,此步骤可以不用处理。 在线科技机密,未经许可不得扩散 第 50 页, 共 98 页 2. 在“SMT.WP.IDAL”层中增加“IT_WP_COMPNORMDEFINEDAL.cs”接口文件,并创建新增接口 / / 添加公司经营指标定义 / / 经营定义实体 / 新增成功与失败,成功True、失败False bool AddCompNormDefine(T_WP_COMPNORMDEFINE compNormDefine); 3. 在“SMT.WP.OracleDAL”层中增加“T_WP_COMPNORMDEFINEDAL.cs”数据库访问文件,并创建新 增方法 4. 在抽象工厂“SMT.WP.DALFactory”层中, “DataAccess.cs”文件中增加 “CreateCompNormDefineDAL”方法: / / 创建公司经营指标定义 / / 集团指标定义数据访问接口 public static SMT.WP.IDAL.IT_WP_COMPNORMDEFINEDAL CreateCompNormDefineDAL() string className = path + “.T_WP_COMPNORMDEFINEDAL“; return (SMT.WP.IDAL.IT_WP_COMPNORMDEFINEDAL)Assembly.Load(path).CreateInstance(className); 如果此方法已经存在,无需再创建。 5. 在“SMT.WP.BLL”层中,新增集团指标定义业务处理类“T_WP_COMPNORMDEFINEBLL.cs” ,并 在类中实例化抽象访问接口,并创建新增方法 6. 在“SMT.WP.Services”层中,找到“CommandWrapper.cs”文件,在检查集团指标定义方法中, 增加以下代码: 在线科技机密,未经许可不得扩散 第 51 页, 共 98 页 7. 在“SMT.WP.Client.BLL”层 “T_WP_COMPNORMDEFINECLIENT.cs”文件中,增加新增方法: 8. 在“SMT.WP.Client.UI”层中 AreasWP PlanItemConfig 文件下找到 “CompNormDefineController.cs”文件, ,创建控制器“Create.cshtml”视图文件, 9. 在“CompNormDefineController”文件的“Create”方法中增加以下代码: 10.在“CompNormDefineController.cs”文件中,创建“AddCompNormDefine”新增集团指标定义方法, 如下图所示: 在线科技机密,未经许可不得扩散 第 52 页, 共 98 页 11. 在视图“Create.chtml”初始化新增集团指标定义 html 页面代码,如下图: 12. 在视图“Create.chtml”配置按钮响应事件 在线科技机密,未经许可不得扩散 第 53 页, 共 98 页 13. 在视图“Create.chtml”提交后台时,配置数据合法性验证,并进行页面初始化,如下图: 在线科技机密,未经许可不得扩散 第 54 页, 共 98 页 14. 在视图“Create.chtml”提交后台时,增加保存数据方法, 数据以 Json 格式传输到后端方法: 5.1.3修改数据修改数据 1. “SMT.WP.Model”层实体生成,如在“SMT.WP.Model”层中,不存在映射实体,需创建映射实 体,创建方法可参看查询数据步骤 1-3;存在映射实体,此步骤可以不用处理。 2. 在“SMT.WP.IDAL”层中增加“IT_WP_COMPNORMDEFINEDAL.cs”接口文件,并创建修改接口 / / 更新公司经营指标定义 / / 经营定义实体 在线科技机密,未经许可不得扩散 第 55 页, 共 98 页 / 更新成功与失败,成功True、失败False bool UpdateCompNormDefine(T_WP_COMPNORMDEFINE compNormDefine); 3. 在“SMT.WP.OracleDAL”层中增加“T_WP_COMPNORMDEFINEDAL.cs”数据库访问文件,并创建修 改方法 4. 在抽象工厂“SMT.WP.DALFactory”层中, “DataAccess.cs”文件中增加 “CreateCompNormDefineDAL”方法: / / 创建公司经营指标定义 / / 集团指标定义数据访问接口 public static SMT.WP.IDAL.IT_WP_COMPNORMDEFINEDAL CreateCompNormDefineDAL() string className = path + “.T_WP_COMPNORMDEFINEDAL“; return (SMT.WP.IDAL.IT_WP_COMPNORMDEFINEDAL)Assembly.Load(path).CreateInstance(className); 如果此方法已经存在,无需再创建。 5. 在“SMT.WP.BLL”层中,新增集团指标定义业务处理类“T_WP_COMPNORMDEFINEBLL.cs” ,并 在类中实例化抽象访问接口,并创建修改方法 6. 在“SMT.WP.Services”层中,找到“CommandWrapper.cs”文件,在检查集团指标定义方法中, 增加以下代码: 在线科技机密,未经许可不得扩散 第 56 页, 共 98 页 7. 在“SMT.WP.Client.BLL”层 “T_WP_COMPNORMDEFINECLIENT.cs”文件中,增加新增方法: 8. 在“SMT.WP.Client.UI”层中 AreasWP PlanItemConfig 文件下找到 “CompNormDefineController.cs”文件,创建控制器“Editcshtml”视图文件, 9. 在“CompNormDefineController”文件的“Edit”方法中增加以下代码: 10.在“CompNormDefineController.cs”文件中,创建“UpdateCompNormDefine”新增集团指标定义方 法,如下图所示: 在线科技机密,未经许可不得扩散 第 57 页, 共 98 页 11. 在视图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省泰州市兴化一中2026届高一生物第一学期期末综合测试模拟试题含解析
- 河北省衡水中学滁州分校2025-2026学年化学高一第一学期期中质量检测模拟试题含解析
- 河南省商开二市2026届化学高二第一学期期末学业水平测试试题含解析
- 硬聚氯乙烯PVC-U管材外观、颜色试验记录
- 防水卷材拉力、延伸率试验记录
- 课程标准 电气控制技术及应用
- 目标责任书-采购经理
- 秋季道德与法治六年级上册《公民的基本权利和义务》简案
- 建筑工程材料管理制度的优化与控制方法
- 职工培训论文六
- 水工建筑物(单选)习题含答案
- 全国基础教育英语综合能力竞赛
- 中国法律史-第一次平时作业-国开-参考资料
- WPS办公应用职业技能等级(初级)考试复习题库(含答案)
- GB/T 14048.11-2024低压开关设备和控制设备第6-1部分:多功能电器转换开关电器
- 米-伊林《十万个为什么》阅读练习+答案
- 服装流行与设计-知到答案、智慧树答案
- 教师校园网络安全培训
- 2024年全国社会保障基金理事会招聘18人历年高频考题难、易错点模拟试题(共500题)附带答案详解
- 数形结合思想在小学数学高段教学中的融合 论文
- 弘扬宪法精神建设法制校园课件
评论
0/150
提交评论