扩展按钮功能 - 扩展一个【复制单据】按钮操作详解

  扩展按钮功能 - 扩展一个【复制单据】按钮操作详解

扩展按钮功能 - 扩展一个【复制单据】按钮操作详解



本文学习内容:


1. 扩展功能按钮

2. 复制单据


操作步骤:

1. 在模块主窗体给菜单添加扩展权限,如: ButtonAuthority.EX_01

2. 给扩展权限定义名称:如:复制单据。

3. 当调试完成,在系统管理的《菜单管理》导入菜单。




参考下面的代码:


增加扩展按钮的权限:


C# Code:

menuSalesOrder.Tag = new MenuItemTag(MenuType.DataForm, (int)CSFrameworkV5.Interfaces.ModuleID.SalesModule, AuthorityCategory.BUSINESS_ACTION_VALUE + ButtonAuthority.EX_01);


//来源:C/S框架网(www.csframework.com) QQ:23404761



修改扩展按钮自定义名称:


C# Code:

(menuSalesOrder.Tag as MenuItemTag).SetActionName(ButtonAuthority.EX_01, "复制单据");


//来源:C/S框架网 | www.csframework.com | QQ:23404761



控制按钮状态:


C# Code:

//查看模式,复制单据按钮可用
protected override void SetViewMode()
{
  
base.SetViewMode();
  
this.Buttons.GetButtonByName("btnClone").Enable =_AllowDataOperate && this.ButtonAuthorized(ButtonAuthority.EX_01);

}

//修改模式,复制单据按钮灰掉,禁用
protected override void SetEditMode()
{
  
base.SetEditMode();
  
this.Buttons.GetButtonByName("btnClone").Enable = false;
}

//来源:C/S框架网 | www.csframework.com | QQ:23404761




重写InitButtons方法,初始化窗体的按钮:



C# Code:



public override void InitButtons()
{
   base.InitButtons();
   
   //复制单据
   if (this.ButtonAuthorized(ButtonAuthority.EX_01))
   {
      IButtonInfo btnClone = this.ToolbarRegister.CreateButton("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:1980854898



DoClone按钮事件:


C# Code:


public void DoClone(IButtonInfo sender)
{
  
this.AssertFocusedRow();
  
  
if (Msg.AskQuestion("确定要复制单据吗?"))
  {
    
//获取当前单据
    
this.DoViewContent(this.Buttons.GetButtonByName(ButtonNameList.btnView));
    
    
if (this.IsViewMode)
    {
      
//重置主表的数据
      
_BLLInstance.DataBindRow.SetAdded();//改为新增状态
      

      SetEditorBindingValue(txtSONO,
"*自动生成*", true);
      _BLLInstance.DataBindRow[tb_SO.CreatedBy]
= Loginer.CurrentUser.Account;
      _BLLInstance.DataBindRow[tb_SO.CreationDate]
= DateTime.Now;
      
      
//重置明细表的数据
      
foreach (DataRow R in _BLLInstance.CurrentBusiness.Tables[tb_SOs.__TableName].Rows)
      {
        R.SetAdded();
//改为新增状态
        

        R[tb_SOs.SONO]
= DBNull.Value;//清空外键
        
R[tb_SOs.CreatedBy] = Loginer.CurrentUser.Account;
        R[tb_SOs.CreationDate]
= DateTime.Now;
      }
      
      
//
      
//以下处理多个明细表
      
//
      
_UpdateType = UpdateType.Add;
      
this.SetEditMode();
      
this.ButtonStateChanged(UpdateType.Add);
    }
  }
}


//来源:C/S框架网 | www.csframework.com | QQ:23404761



效果图:


贴图图片



C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
发表评论

评论内容
昵称:
关联文章

扩展按钮功能 - 扩展一个复制单据按钮操作详解
关于扩展权限、扩展功能按钮及自定义功能点的命名|C/S框架网
Winform开发框架 - 特殊权限控制(扩展权限和自定义按钮功能)
C/S开发框架权限扩展与定制按钮功能详细设计
如何扩展窗体的自定义权限按钮
窗体的自定义按钮权限控制-扩展权限按钮详解
界面扩展按钮-自定义按钮
C/S系统开发框架权限系统 - 功能按钮权限值 - ButtonAuthority类详解
权限管理:给某个用户仅分配一个模块一个窗体一个按钮功能
基于开发框架ClientDemo演示版源码新增业务功能模块操作详解
Winform快速开发框架之权限系统设计(3) - 功能按钮权限控制基本原理
功能按钮事件详解
开发框架复制权限(复制角色、组)功能
在基类窗体扩展一个通用导出Excel文件的按钮(支持导出所有表格的数据到Xlsx文件)
C/S开发框架新功能:批量更新业务单据的业务员、制单人制表人
窗体自定义功能按钮(InitButton/AddButton方法)
CS开发框架 - 业务单据自动生成功能设计(原)
如何进行菜单管理、扩展权限、更改自定义按钮名称|C/S框架网
业务单据窗体开发步骤
解决方案:扩展按钮自定义权限没有出现在权限树给用户勾选