WinFramework轻量级开发框架 - 界面扩展按钮-自定义按钮
目录
一、账套维护界面介绍
WinFramework轻量级开发框架 集成了系统【账套维护】管理功能,功能路径:系统管理 → 账套维护。
【账套维护】窗体继承frmBaseChild窗体基类,窗体的按钮统一集成到ToolBar组件。
本文将介绍界面的功能按钮(如新增、删除、保存) 统一集成到ToolBar操作区域。
二、怎样实现自定义按钮(扩展按钮)
有两种实现方法:
- 继承 frmBaseFunction 窗体基类
- 继承 frmBaseChild 窗体基类
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框架网