当前位置:首页 > Windows程序 > 正文

Winform开发框架之单据窗体生成(主从表,流水单号)

2021-03-25 Windows程序

源码地址:https://github.com/GarsonZhang/GZFramework.ShareDemo

前言

1.在开始本节前请先重置代码为 chapter-03-start

懒人地址:https://github.com/GarsonZhang/GZFramework.ShareDemo/tree/chapter-03-start

2.创建表(商品入库主表/明细)

创建脚本目录:数据库脚本/Chapter-03新建商品入库表(主从表).sql

3.新建生成单据流水号所需的表和存储过程

创建脚本目录:数据库脚本/Chapter-03新建商品入库表(主从表).sql

生成器生成界面

1.修改相关底层生成规则

修改文件:_GZFramework.Demo.Business.Base.dalBase.cs

修改流水单号生成函数:GetDataSN,调用创建的存储过程创建流水单号

//获取流水单号 public override string GetDataSN(IDatabase db, string sDocCode, int sLength) { return sDocCode + db.ExecuteScalarSP<string>("sys_GetDataSN", new { DataCode = sDocCode, Length = sLength }); }

View Code

修改下服务器时间获取函数:GetServerTime(不同数据库类型获取方式不一样)

//获取系统时间,建议从服务器获取 public override DateTime GetServerTime(IDatabase db) { string sql = "SELECT GETDATE()"; return db.ExecuteScalar<DateTime>(sql); }

View Code

2.使用生成器生成界面

1.先生成入库主表和明细表的Model

添加新项,选择 Model层生成

配置相关生成信息,并生成静态结构

生成的Model类如下,其中包含两个静态结构类,一个是主表tb_GoodsIn,一个是明细表tb_GoodsInDetail:

/************************************************************************** ====================GZFramwork【Winfrom快速开发框架】==================== -- 作者:Garson_Zhang QQ:382237285 QQ交流群:288706356 -- 博客地址: -- CLR版本: 4.0.30319.42000 -- 创建时间:2015-09-17 10:52:26 -- 创建年月:2015 **************************************************************************/ using System; using System.Collections.Generic; using System.Linq; using System.Text; using GZFramework.DB.ModelAttribute; namespace _GZFramework.Demo.Models { /// <summary> /// ORM模型, 数据表:tb_GoodsInDetail /// GZFrameworkCodeGenerate代码生成器自动生成 /// 时间:2015-09-17 10:52 /// </summary> [ModelStruct(tb_GoodsInDetail._TableName)] public sealed class tb_GoodsInDetail { public const string _TableName = "tb_GoodsInDetail"; /// <summary> /// 自增字段 /// </summary> [ModelPrimaryKey] public const string isid = "isid"; /// <summary> /// 单据号码 /// </summary> [ModelForeignKey] public const string DocNo = "DocNo"; /// <summary> /// 时间戳 /// </summary> [ModelRowversion] public const string rowversion = "rowversion"; /// <summary> /// 商品编号 /// </summary> [ModelEditField] public const string GoodsID = "GoodsID"; /// <summary> /// 商品名称 /// </summary> [ModelEditField] public const string GoodsName = "GoodsName"; /// <summary> /// 存放仓库 /// </summary> [ModelEditField] public const string SID = "SID"; /// <summary> /// 存放仓位 /// </summary> [ModelEditField] public const string AID = "AID"; /// <summary> /// 数量 /// </summary> [ModelEditField] public const string Qty = "Qty"; /// <summary> /// 备注 /// </summary> [ModelEditField] public const string Remark = "Remark"; /// <summary> /// 创建人 /// </summary> [ModelEditField] public const string CreateUser = "CreateUser"; /// <summary> /// 创建日期 /// </summary> [ModelEditField] public const string CreateDate = "CreateDate"; /// <summary> /// 修改人 /// </summary> [ModelEditField] public const string LastUpdateUser = "LastUpdateUser"; /// <summary> /// 修改日期 /// </summary> [ModelEditField] public const string LastUpdateDate = "LastUpdateDate"; } /// <summary> /// ORM模型, 数据表:tb_GoodsIn /// GZFrameworkCodeGenerate代码生成器自动生成 /// 时间:2015-09-17 10:52 /// </summary> [ModelStruct(tb_GoodsIn._TableName)] public sealed class tb_GoodsIn { public const string _TableName = "tb_GoodsIn"; /// <summary> /// 自增字段 /// </summary> public const string isid = "isid"; /// <summary> /// 时间戳 /// </summary> [ModelRowversion] public const string rowversion = "rowversion"; /// <summary> /// 单据号码 /// </summary> [ModelPrimaryKey] public const string DocNo = "DocNo"; /// <summary> /// 入库日期 /// </summary> [ModelEditField] public const string DocDate = "DocDate"; /// <summary> /// 入库人 /// </summary> [ModelEditField] public const string OperationUser = "OperationUser"; /// <summary> /// 供应商 /// </summary> [ModelEditField] public const string Supplier = "Supplier"; /// <summary> /// 种类 /// </summary> [ModelEditField] public const string GoodsType = "GoodsType"; /// <summary> /// 备注 /// </summary> [ModelEditField] public const string Remark = "Remark"; /// <summary> /// 创建人 /// </summary> [ModelEditField] public const string CreateUser = "CreateUser"; /// <summary> /// 创建日期 /// </summary> [ModelEditField] public const string CreateDate = "CreateDate"; /// <summary> /// 修改人 /// </summary> [ModelEditField] public const string LastUpdateUser = "LastUpdateUser"; /// <summary> /// 修改日期 /// </summary> [ModelEditField] public const string LastUpdateDate = "LastUpdateDate"; } }

View Code

2.生成界面:

添加新项选择功能窗体生成

配置主表生成信息:

配置明细表生成信息:注意先添加明细表

生成以后的窗体如下:

在frmGoodsIn.cs类中添加补充缺失的引用

生成的frmGoodsIn.cs代码

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/67278.html