开发技巧-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
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
/// <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

参考文档:
使用DevExpress的SplitContainerControl组件显示和隐藏界面区域|开发技巧
DevExpress开发技巧高级篇:双击RepositoryItemPictureEdit组件自动弹出菜单
开发技巧:删除资料保存日志并检查数据是否能删除
开发技巧:您不能删除别人的数据!
达梦数据库入门基础|C/S框架网|C/S开发框架
达梦数据库 | 使用DM数据迁移工具迁移CSFrameworkV6数据库|C/S框架网|C/S开发框架
达梦数据库 | DM管理工具使用指南|C/S框架网|C/S开发框架
使用.NET8/EFCore访问达梦数据库|C/S框架网|C/S开发框架
达梦数据库安装指南|C/S框架网|C/S开发框架
C/S框架网2022春节放假通知
C/S框架网软件介绍|WinFramework|C/S开发框架
C/S框架网正式上线FAQ问答频道,欢迎大家积极讨论~|C/S开发框架
原创Winform布局开源框架,Winform控件框架,插件化框架|C/S框架网
开源ERP软件平台ERP系统快速开发框架 - C/S框架网原创作品
NET开发框架,基于ADO.NET数据持久化快速开发框架平台-C/S框架网原创产品
C/S框架网提供原创开源.NET开发架构.NET管理系统框架
使用DevExpress的SplitContainerControl组件显示和隐藏界面区域|开发技巧
DevExpress开发技巧高级篇:双击RepositoryItemPictureEdit组件自动弹出菜单
开发技巧:删除资料保存日志并检查数据是否能删除
开发技巧:您不能删除别人的数据!
达梦数据库入门基础|C/S框架网|C/S开发框架
达梦数据库 | 使用DM数据迁移工具迁移CSFrameworkV6数据库|C/S框架网|C/S开发框架
达梦数据库 | DM管理工具使用指南|C/S框架网|C/S开发框架
使用.NET8/EFCore访问达梦数据库|C/S框架网|C/S开发框架
达梦数据库安装指南|C/S框架网|C/S开发框架
C/S框架网2022春节放假通知
C/S框架网软件介绍|WinFramework|C/S开发框架
C/S框架网正式上线FAQ问答频道,欢迎大家积极讨论~|C/S开发框架
原创Winform布局开源框架,Winform控件框架,插件化框架|C/S框架网
开源ERP软件平台ERP系统快速开发框架 - C/S框架网原创作品
NET开发框架,基于ADO.NET数据持久化快速开发框架平台-C/S框架网原创产品
C/S框架网提供原创开源.NET开发架构.NET管理系统框架
其它资料:
什么是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内容管理系统 |
什么是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内容管理系统 |
在线客服
