运行效果:
使用代码生成器(GZCodeGenerate)生成tb_EmpLeave的Model
生成方式见上一节:
GZFramwork数据库层《一》普通表增删改查
新增一个自定义控件:ucTableUnitDocNo
后台代码同上一节ucTableUnit除了实例化bllBusiness不一样外其他都一样(红色背景标注)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using GZFramworkDB.BLL;
using GZFramworkDB.Model;
using GZFramworkDB.Main.MyControls; namespace GZFramworkDB.Main
{
public partial class ucTableUnitDocNo : UserControl,IData
{
bllBusiness bll;
public ucTableUnitDocNo()
{
InitializeComponent();
bll
= new bllBusiness(typeof(tb_EmpLeave), "AL",
);
} public void DoSearch()
{
gridControl1.DataSource = bll.GetSummaryData();
gridView1.BestFitColumns();//自动列宽
} DataTable dtSource
{
get
{
if (gridControl1.DataSource == null) return null;
return gridControl1.DataSource as DataTable;
}
}
//新增
public void DoAdd()
{
if (dtSource != null)
dtSource.Rows.Add();
}
//主键删除,立即删除,无需提交
public void DoDeleteKey()
{
DataRow dr = gridView1.GetFocusedDataRow();
if (dr != null)
{
string Keyvalue = dr[bll.SummaryKey].ToString();
if (bll.Delete(Keyvalue) == true)
{
dtSource.Rows.Remove(dr);
}
}
}
//缓存表删除,需要提交生效
public void DoDeleteTable()
{
gridView1.DeleteSelectedRows();
}
//提交
public void DoUpdate()
{
bll.Update(dtSource);
}
}
}
修改Main.cs:
添加事件:
//单据单表测试
private void menu_TableUnitDocNo_Click(object sender, EventArgs e)
{
foreach (Control col in pan_MyControls.Controls)
{
col.Visible = false;
} TableUnitDocNo.Visible = true; uc = TableUnitDocNo;
}
运行效果:
说明:
单号默认自动过滤包含4,7等数字,
可以修改存储过程:sys_GetDataSN
项目源码下载地址:https://github.com/GarsonZhang/GZFramework.Demo
系列文章
4. GZFramwork数据库层《二》单据表增删改查(自动生成单据号码)
6. GZFramwork数据库层《四》单据主从表增删改查(主键自动生成)
7. GZFramwork数据库层《五》高级主从表增删改查(主表明细表主键都自动生成)
8. GZFramwork数据库层《六》存储过程调用
9. GZFramwork数据库层《七》总结