WinFramework轻量级开发框架 | 界面扩展按钮|自定义按钮|C/S开发框架
作者:csframework|C/S框架网  发布日期:2022/01/21 10:27:31

WinFramework轻量级开发框架 | 界面扩展按钮|自定义按钮|C/S开发框架

一、账套维护界面介绍

WinFramework轻量级开发框架 集成了系统【账套维护】管理功能,功能路径:系统管理 → 账套维护。

【账套维护】窗体继承frmBaseChild窗体基类,窗体的按钮统一集成到ToolBar组件。

本文将介绍界面的功能按钮(如新增、删除、保存) 统一集成到ToolBar操作区域。

WinFramework轻量级开发框架 | 界面扩展按钮|自定义按钮|C/S开发框架

二、怎样实现自定义按钮(扩展按钮)

有两种实现方法:

  • 继承 frmBaseFunction 窗体基类
  • 继承 frmBaseChild窗体基类

WinFramework轻量级开发框架 | 界面扩展按钮|自定义按钮|C/S开发框架

frmBaseFunction 窗体 继承 frmBaseChild基类窗体,frmBaseFunction 多了一个InitButton 方法,用于初始化界面按钮,包括公共权限操作按钮配置。

若继承 frmBaseChild 我们需要重写(override) InitButton方法,并且一个一个的添加操作按钮。

2.1 继承frmBaseChild基类窗体

这里我们演示继承 frmBaseChild 基类窗体实现扩展功能按钮,参考代码:

C# 全选
public partial class frmDBList : WinFramework.UI.Dev.LibForm.frmBaseChild

2.2 重写FormAuthority属性,配置窗体的功能权限

/// <summary>
/// 窗体权限,新增账套,删除账套,保存配置
/// </summary>
protected override int FormAuthority
{
    get
    {
        return FunctionAuthorityCommon.ADD
            + FunctionAuthorityCommon.DELETE
            + FunctionAuthorityCommon.SaveEx;
    }
}

2.3 重写 InitButton 方法,创建按钮及Click事件

重写InitButton方法

C# 全选
/// <summary>
/// 初始化操作按钮
/// </summary>
public override void InitButton()
{
    //新增
    if (FormAuthorityExist(FunctionAuthorityCommon.ADD))
        AddButton(YESWin.UI.Core.RibbonButton.RibbonCommonButtons.CommonButtons.btnADD, FunctionAuthorityCommon.ADD, DoAdd);

    //保存
    AddButton(YESWin.UI.Core.RibbonButton.RibbonCommonButtons.CommonButtons.btnSave, FunctionAuthorityCommon._None, DoSave);

   //删除
    if (FormAuthorityExist(FunctionAuthorityCommon.DELETE))
        AddButton(YESWin.UI.Core.RibbonButton.RibbonCommonButtons.CommonButtons.btnDelete, FunctionAuthorityCommon.DELETE, DoDelete);
}

按钮事件,增加、删除、保存:

C# 全选
/// <summary>
/// 添加账套
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void DoAdd(object sender, ItemClickEventArgs e)
{
    DataTable data = frmDialog_DBEdit.ShowForm();
    if (data != null)
    {
        (gc_Summary.DataSource as DataTable).Rows.Add(data.Rows[0].ItemArray);
    }
}
/// <summary>
/// 删除账套
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void DoDelete(object sender, ItemClickEventArgs e)
{
    DataRow dr = gv_Summary.GetFocusedDataRow();
    if (dr == null) return;
    string DBCode = ConvertLib.ToString(dr[sys_DataBaseList.DBCode]);
    bll.Delete(DBCode);
    gv_Summary.DeleteSelectedRows();
    Msg.ShowInformation("删除成功!");
}
/// <summary>
/// 保存账套配置
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void DoSave(object sender, ItemClickEventArgs e)
{
    DataTable dt = gc_Summary.DataSource as DataTable;
    dt.AcceptChanges();
    DataRow dr = gv_Summary.GetFocusedDataRow();
    if (dr == null) return;
    string DBName = ConvertLib.ToString(dr[sys_DataBaseList.DBDisplayText]);
    string NewDBName = ConvertLib.ToString(txt_DBName.EditValue);

    DataSet ds = new DataSet();
    try
    {
        if (DBName != NewDBName)
        {
            dr[sys_DataBaseList.DBDisplayText] = NewDBName;
            ds.Tables.Add(dt);
        }
        if (ucModuleTreeList1.EditData.GetChanges() != null)
            ds.Tables.Add(ucModuleTreeList1.EditData);
        if (ds.Tables.Count > 0)
        {
            bll.Update(ds);
            ds.AcceptChanges();
            Msg.ShowInformation("保存成功!");
        }
    }
    catch (Exception ex)
    {
        throw ex;
    }
    finally
    {
        ds.Tables.Clear();
    }
}

三、开发完成

重新编译程序,完成效果如下:

WinFramework轻量级开发框架 | 界面扩展按钮|自定义按钮|C/S开发框架

WinFramework轻量级开发框架 | 界面扩展按钮|自定义按钮|C/S开发框架

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


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务
上一篇 下一篇