CSFrameworkV6旗舰版 - 业务单据复制功能,支持复制多级明细表
CSFrameworkV6旗舰版 - 业务单据复制功能,支持复制多级明细表添加一个复制按钮:
C# Code:
public override void InitButtons()
{
base.InitButtons();
//复制单据
if (this.ButtonAuthorized(ButtonAuthority.ADD))
{
IButtonInfo btnClone = this.ToolbarRegister.CreateButton(ButtonNameList.btnClone, "复制单据", ToolBarGroup.扩展功能1,
Globals.LoadBitmap("32_Copy.png"), new Size(57, 28), true, true, this.DoClone);
_buttons.AddButton(btnClone);
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
{
base.InitButtons();
//复制单据
if (this.ButtonAuthorized(ButtonAuthority.ADD))
{
IButtonInfo btnClone = this.ToolbarRegister.CreateButton(ButtonNameList.btnClone, "复制单据", ToolBarGroup.扩展功能1,
Globals.LoadBitmap("32_Copy.png"), new Size(57, 28), true, true, this.DoClone);
_buttons.AddButton(btnClone);
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
按钮的Click事件:
C# Code:
public virtual void DoClone(IButtonInfo sender)
{
this.AssertFocusedRow();
//获取当前单据
this.DoViewContent(this.Buttons.GetButtonByName(ButtonNameList.btnView));
Hashtable hash = new Hashtable();
if (this.IsViewMode)
{
//重置主表的数据
SetEditorBindingValue(txtSONO, "*自动生成*", true);
_BLL.DataBinder.isid = IdHelper.GetId();
_BLL.DataBinder.DocDate = DateTime.Today;
_BLL.DataBinder.FlagApp = "N";
_BLL.DataBinder.AppUser = "";
_BLL.DataBinder.AppDate = null;
_BLL.DataBinder.CreatedBy = Loginer.CurrentUser.Account;
_BLL.DataBinder.CreationDate = DateTime.Now;
//重置明细表的数据 - 订单明细表
foreach (var R in _BLL.CurrentBusiness.SOs)
{
//生成新的isid, 这里需要存起来,因为SOs表的isid作为主键,有多个明细表关联isid
hash[R.isid] = IdHelper.GetId();
R.isid = hash[R.isid] as String;
R.SONO = DBNull.Value.ToString();//清空外键
R.CreatedBy = Loginer.CurrentUser.Account;
R.CreationDate = DateTime.Now;
}
//用料表
foreach (var R in _BLL.CurrentBusiness.SOsMaterials)
{
R.isid = IdHelper.GetId();
R.Detail_isid = hash[R.Detail_isid] as String; //获取最新外键值
R.SONO = DBNull.Value.ToString();//清空外键
R.CreatedBy = Loginer.CurrentUser.Account;
R.CreationDate = DateTime.Now;
}
//工序表
foreach (var R in _BLL.CurrentBusiness.SOsProcess)
{
R.isid = IdHelper.GetId();
R.Detail_isid = hash[R.Detail_isid] as String; //获取最新外键值
R.SONO = DBNull.Value.ToString();//清空外键
R.CreatedBy = Loginer.CurrentUser.Account;
R.CreationDate = DateTime.Now;
}
//成本表
foreach (var R in _BLL.CurrentBusiness.SOsCost)
{
R.isid = IdHelper.GetId();
R.Detail_isid = hash[R.Detail_isid] as String; //获取最新外键值
R.SONO = DBNull.Value.ToString();//清空外键
R.CreatedBy = Loginer.CurrentUser.Account;
R.CreationDate = DateTime.Now;
}
//成本表
foreach (var R in _BLL.CurrentBusiness.SOsCostCompare)
{
R.isid = IdHelper.GetId();
R.Detail_isid = hash[R.Detail_isid] as String; //获取最新外键值
R.SONO = DBNull.Value.ToString();//清空外键
R.CreatedBy = Loginer.CurrentUser.Account;
R.CreationDate = DateTime.Now;
}
//唛头图片表
foreach (var R in _BLL.CurrentBusiness.SOsLogoFiles)
{
R.FileID = IdHelper.GetId();
R.DocID = DBNull.Value.ToString();//清空外键
R.RowISID= hash[R.RowISID] as String; //获取最新外键值
}
//以下处理多个明细表
_UpdateType = UpdateType.Add;
this.SetEditMode();
this.ButtonStateChanged(UpdateType.Add);
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
{
this.AssertFocusedRow();
//获取当前单据
this.DoViewContent(this.Buttons.GetButtonByName(ButtonNameList.btnView));
Hashtable hash = new Hashtable();
if (this.IsViewMode)
{
//重置主表的数据
SetEditorBindingValue(txtSONO, "*自动生成*", true);
_BLL.DataBinder.isid = IdHelper.GetId();
_BLL.DataBinder.DocDate = DateTime.Today;
_BLL.DataBinder.FlagApp = "N";
_BLL.DataBinder.AppUser = "";
_BLL.DataBinder.AppDate = null;
_BLL.DataBinder.CreatedBy = Loginer.CurrentUser.Account;
_BLL.DataBinder.CreationDate = DateTime.Now;
//重置明细表的数据 - 订单明细表
foreach (var R in _BLL.CurrentBusiness.SOs)
{
//生成新的isid, 这里需要存起来,因为SOs表的isid作为主键,有多个明细表关联isid
hash[R.isid] = IdHelper.GetId();
R.isid = hash[R.isid] as String;
R.SONO = DBNull.Value.ToString();//清空外键
R.CreatedBy = Loginer.CurrentUser.Account;
R.CreationDate = DateTime.Now;
}
//用料表
foreach (var R in _BLL.CurrentBusiness.SOsMaterials)
{
R.isid = IdHelper.GetId();
R.Detail_isid = hash[R.Detail_isid] as String; //获取最新外键值
R.SONO = DBNull.Value.ToString();//清空外键
R.CreatedBy = Loginer.CurrentUser.Account;
R.CreationDate = DateTime.Now;
}
//工序表
foreach (var R in _BLL.CurrentBusiness.SOsProcess)
{
R.isid = IdHelper.GetId();
R.Detail_isid = hash[R.Detail_isid] as String; //获取最新外键值
R.SONO = DBNull.Value.ToString();//清空外键
R.CreatedBy = Loginer.CurrentUser.Account;
R.CreationDate = DateTime.Now;
}
//成本表
foreach (var R in _BLL.CurrentBusiness.SOsCost)
{
R.isid = IdHelper.GetId();
R.Detail_isid = hash[R.Detail_isid] as String; //获取最新外键值
R.SONO = DBNull.Value.ToString();//清空外键
R.CreatedBy = Loginer.CurrentUser.Account;
R.CreationDate = DateTime.Now;
}
//成本表
foreach (var R in _BLL.CurrentBusiness.SOsCostCompare)
{
R.isid = IdHelper.GetId();
R.Detail_isid = hash[R.Detail_isid] as String; //获取最新外键值
R.SONO = DBNull.Value.ToString();//清空外键
R.CreatedBy = Loginer.CurrentUser.Account;
R.CreationDate = DateTime.Now;
}
//唛头图片表
foreach (var R in _BLL.CurrentBusiness.SOsLogoFiles)
{
R.FileID = IdHelper.GetId();
R.DocID = DBNull.Value.ToString();//清空外键
R.RowISID= hash[R.RowISID] as String; //获取最新外键值
}
//以下处理多个明细表
_UpdateType = UpdateType.Add;
this.SetEditMode();
this.ButtonStateChanged(UpdateType.Add);
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
二、复制标准主、从表业务单据
添加一个复制按钮:
C# Code:
public override void DoClone(IButtonInfo sender)
{
this.AssertFocusedRow();
//获取当前单据
this.DoViewContent(this.Buttons.GetButtonByName(ButtonNameList.btnView));
if (this.IsViewMode)
{
//重置主表的数据
SetEditorBindingValue(txtSONO, "*自动生成*", true);
_BLL.DataBinder.isid = IdHelper.GetId();
_BLL.DataBinder.ReceiveDay = DateTime.Today;
_BLL.DataBinder.FlagApp = "N";
_BLL.DataBinder.AppUser = "";
_BLL.DataBinder.AppDate = null;
_BLL.DataBinder.CreatedBy = Core.Loginer.CurrentUser.Account;
_BLL.DataBinder.CreationDate = DateTime.Now;
//重置明细表的数据
foreach (var R in _BLL.CurrentBusiness.Details)
{
R.isid = IdHelper.GetId();
R.SONO = DBNull.Value.ToString();//清空外键
R.CreatedBy = Core.Loginer.CurrentUser.Account;
R.CreationDate = DateTime.Now;
}
//以下处理多个明细表
_UpdateType = UpdateType.Add;
this.SetEditMode();
this.ButtonStateChanged(UpdateType.Add);
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
{
this.AssertFocusedRow();
//获取当前单据
this.DoViewContent(this.Buttons.GetButtonByName(ButtonNameList.btnView));
if (this.IsViewMode)
{
//重置主表的数据
SetEditorBindingValue(txtSONO, "*自动生成*", true);
_BLL.DataBinder.isid = IdHelper.GetId();
_BLL.DataBinder.ReceiveDay = DateTime.Today;
_BLL.DataBinder.FlagApp = "N";
_BLL.DataBinder.AppUser = "";
_BLL.DataBinder.AppDate = null;
_BLL.DataBinder.CreatedBy = Core.Loginer.CurrentUser.Account;
_BLL.DataBinder.CreationDate = DateTime.Now;
//重置明细表的数据
foreach (var R in _BLL.CurrentBusiness.Details)
{
R.isid = IdHelper.GetId();
R.SONO = DBNull.Value.ToString();//清空外键
R.CreatedBy = Core.Loginer.CurrentUser.Account;
R.CreationDate = DateTime.Now;
}
//以下处理多个明细表
_UpdateType = UpdateType.Add;
this.SetEditMode();
this.ButtonStateChanged(UpdateType.Add);
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761


参考文档:
CSFrameworkV6旗舰版开发框架 | 集成软件授权认证系统|C/S开发框架
CSFrameworkV6旗舰版|新功能|在线用户查询、设置用户下线|C/S开发框架
CSFrameworkV6旗舰版开发框架 | 集成软件授权认证系统|C/S开发框架
CSFrameworkV6旗舰版|新建业务模块 (VS Project项目)|C/S开发框架
CSFrameworkV6旗舰版 | 多语言及国际化|C/S开发框架
CSFrameworkV6旗舰版 | Oracle数据库笔记|C/S开发框架
CSFrameworkV6旗舰版:获取主菜单、模块菜单、用户有权限的菜单|C/S开发框架
CSFrameworkV6旗舰版 | MySql数据库笔记|C/S开发框架
CSFrameworkV6旗舰版|新增功能|打开模块默认窗体|C/S开发框架
C/S快速开发框架旗舰版CSFrameworkV6.0 | VS开发环境配置|C/S开发框架
CSFrameworkV6旗舰版 | 国际化 | 导入导出多语言资料|C/S开发框架
CSFrameworkV6旗舰版 | AutoUpgrader自动升级程序支持3种数据库|C/S开发框架
CSFrameworkV6旗舰版 | 迭代开发 | 当前导航菜单、模块按钮与活动窗体同步|C/S开发框架
CSFrameworkV6旗舰版新增功能菜单权限设置|C/S开发框架
CSFrameworkV6旗舰版 | 基础资料窗体改装主从子表(多级明细表)解决方案|C/S开发框架
CSFrameworkV6旗舰版 | 主从子表(多级明细表)设计方案|C/S开发框架
CSFrameworkV6旗舰版开发框架 | 集成软件授权认证系统|C/S开发框架
CSFrameworkV6旗舰版|新功能|在线用户查询、设置用户下线|C/S开发框架
CSFrameworkV6旗舰版开发框架 | 集成软件授权认证系统|C/S开发框架
CSFrameworkV6旗舰版|新建业务模块 (VS Project项目)|C/S开发框架
CSFrameworkV6旗舰版 | 多语言及国际化|C/S开发框架
CSFrameworkV6旗舰版 | Oracle数据库笔记|C/S开发框架
CSFrameworkV6旗舰版:获取主菜单、模块菜单、用户有权限的菜单|C/S开发框架
CSFrameworkV6旗舰版 | MySql数据库笔记|C/S开发框架
CSFrameworkV6旗舰版|新增功能|打开模块默认窗体|C/S开发框架
C/S快速开发框架旗舰版CSFrameworkV6.0 | VS开发环境配置|C/S开发框架
CSFrameworkV6旗舰版 | 国际化 | 导入导出多语言资料|C/S开发框架
CSFrameworkV6旗舰版 | AutoUpgrader自动升级程序支持3种数据库|C/S开发框架
CSFrameworkV6旗舰版 | 迭代开发 | 当前导航菜单、模块按钮与活动窗体同步|C/S开发框架
CSFrameworkV6旗舰版新增功能菜单权限设置|C/S开发框架
CSFrameworkV6旗舰版 | 基础资料窗体改装主从子表(多级明细表)解决方案|C/S开发框架
CSFrameworkV6旗舰版 | 主从子表(多级明细表)设计方案|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内容管理系统 |
什么是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内容管理系统 |
在线客服
