开发技巧-Winform窗体自动生成下一个业务流程的单据|C/S框架网
开发技巧-Winform窗体自动生成下一个业务流程的单据|C/S框架网
本文章详细讲解如何通过一个窗体的数据自动生成下一个业务流程窗体的数据,既A生成B。在B窗体定义一个方法转换数据,如本实例的GenerateFromEC方法(参考下面的代码),转换数据后,将窗体设置为【新增】模式,并提示用户修改并保存数据,若用户点【取消】按钮,则本次操作失效,系统不记录任何数据。 本示例的界面继承数据字典窗体frmBaseDataDictionary(单表资料窗体)。 本示例的界面截图: C# Code: private void btnToOrder_Click(object sender, EventArgs e) { if (!Msg.AskQuestion("确定要转化订单吗?")) return; //查找目标窗体是否已打开 frm_EC_Order form = (frm_EC_Order)MdiTools.FindForm(typeof(frm_EC_Order).FullName); if (form == null) { //第一次创建本窗体的实例 form = (frm_EC_Order)MdiTools.OpenChildForm(this.MdiParent as IMdiForm, typeof(frm_EC_Order), "menuEC_Order"); } else { //创建新的界面实例(第n+1个实例) if (form.IsAddOrEditMode) form = (frm_EC_Order)MdiTools.OpenChildForm(this.MdiParent as IMdiForm, typeof(frm_EC_Order), "menuEC_Order", false); } //调用目标窗体的【生成订单】方法。EC-->EO form.GenerateFromEC(_BLLInstance.DataBinder); //激活当前窗体,在主界面显示当前窗体 MdiTools.ActiveChildForm(MdiTools.MainForm, form); Msg.ShowInformation("转化订单成功,请补充资料并保存!"); } //来源:C/S框架网(www.csframework.com) QQ:23404761 C# Code: /// <summary> /// 从《询盘管理》生成《订单管理》 /// </summary> /// <param name="data"></param> public void GenerateFromEC(DataTable data) { _BLLInstance.CreateDataBinder(null); DataRow R = _BLLInstance.DataBinderRow; R[EC_tb_Order.Status] = "Pay"; R[EC_tb_Order.CompanyAddr] = data.Rows[0][EC_tb_Inquire.CompanyAddr]; R[EC_tb_Order.CompanyName] = data.Rows[0][EC_tb_Inquire.CompanyName]; R[EC_tb_Order.Contact] = data.Rows[0][EC_tb_Inquire.Contact]; R[EC_tb_Order.ContactTel] = data.Rows[0][EC_tb_Inquire.ContactTel]; R[EC_tb_Order.ContactType] = data.Rows[0][EC_tb_Inquire.ContactType]; R[EC_tb_Order.CreatedBy] = Loginer.CurrentUser.Account; R[EC_tb_Order.CreationDate] = DateTime.Now; R[EC_tb_Order.CustomerName] = data.Rows[0][EC_tb_Inquire.CustomerName]; R[EC_tb_Order.DocDate] = DateTime.Today; R[EC_tb_Order.ECOD] = "*自动生成*"; R[EC_tb_Order.LastUpdateDate] = DateTime.Now; R[EC_tb_Order.LastUpdatedBy] = Loginer.CurrentUser.Account; R[EC_tb_Order.Platform] = data.Rows[0][EC_tb_Inquire.Platform]; R[EC_tb_Order.ProductInfo] = data.Rows[0][EC_tb_Inquire.ProductInfo]; R[EC_tb_Order.Remark] = data.Rows[0][EC_tb_Inquire.Remark]; R[EC_tb_Order.RefIQNO] = data.Rows[0][EC_tb_Inquire.IQNO]; R.AcceptChanges(); R.SetAdded();//调用SetAdded方法之前必须行态是未修改状态 _UpdateType = UpdateType.Add; this.DoBindingSummaryEditor(_BLLInstance.DataBinder); this.ButtonStateChanged(_UpdateType); this.SetEditMode(); this.ShowDetailPage(true); } //来源:C/S框架网(www.csframework.com) QQ:23404761
参考文档:
基于C#.NET C/S快速开发框架 - 代码自动生成功能 客户要求开发框架能自动生成数据窗体及log日志表 C/S框架后台数据更新模型之ORM自动生成SQL基本原理 C/S框架网专注C# Winform 开发框架研发十年 C/S框架网提供基于C#.NET前端Winform开发框架及后端WebApi开发框架 Winform+SQL开发CS架构大型ERP系统源码|C/S框架网 VS2015 Winform窗体设置DevExpress预设的图标库(组件Image属性)|C/S框架网 原创文档-Winform开发框架提供通用导入Excel功能界面|C/S框架网 Winform开发框架测试程序之测试环境配置|C/S框架网 Winform开发框架测试程序之DALFactory类测试|C/S框架网 Winform界面开发框架之界面展示效果图|C/S框架网 Winform快速开发框架之存储图片资源解决方案|C/S框架网 C# Winform增删查改快速开发框架|C/S框架网 Winform查询数据对话窗体与选择资料窗体实现|C/S框架网 CSFramework代码生成器自动生成主从表界面-C/S框架网
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |