CSFrameworkV6旗舰版 - 保存单表数据字典基础资料自动生成流水号、序号
1、前端界面需要返回流水号、序号
前端需要返回流水号,调用 DAL.UpdateEx方法,在DAL层需要重写 SetDataSN :
C# 全选
/// <summary>
/// 生成流水号
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
protected override string SetDataSN(MasterDataUpdate<sys_Reports> data)
{
//新增状态:生成流水号并返回给前端
if (data.listAdded.Count > 0)
{
var sn = DocNoHelper.GetDataSN(_Database, "RPT", true, 6, "", _Loginer.Account);
data.listAdded.First().ReportID = sn;//新增的记录设置序号
return sn;
}
else
{
return data.listModified.First()?.ReportID;
}
}
提示
开发框架默认给第一条新增的记录设置流水号。
dalBaseDataDic.UpdateEx方法
保存单表数据的扩展方法,该方法返回流水号或主键值。
C# 全选
/// <summary>
/// 提交数据扩展方法。
/// </summary>
/// <param name="data">更新的数据</param>
/// <returns>返回流水号或主键值</returns>
public virtual Models.SaveResult UpdateEx(MasterDataUpdate<T> data)
{
//调用模板方法设置自动序号
var sn = this.SetDataSN(data);
//调用默认保存方法
bool success = this.Update(data);
//返回操作结果
return new Models.SaveResult
{
Success = success,//true:成功, false:失败
DocNo = sn,//流水号或主键值
};
}
2、前端界面不返回流水号
DAL层重写 Update 方法:
C# 全选
/// <summary>
/// 保存数据,自动生成流水号、序号。
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public override bool Update(MasterDataUpdate<sys_Reports> data)
{
//新增状态:生成流水号并返回给前端
if (data.listAdded.Count > 0)
{
data.listAdded.ForEach(obj =>
{
if (obj.ReportID.IsEmpty())
{
var sn = DocNoHelper.GetDataSN(_Database, "RPT", true, 6, "", _Loginer.Account);
obj.ReportID = sn;//新增的记录设置序号
}
});
}
return base.Update(data);
}
dalBaseDataDict.Update方法
保存单表数据标准方法,该方法返回true/false值。
C# 全选
/// <summary>
/// 保存数据
/// </summary>
/// <param name="data">数据</param>
/// <returns></returns>
public virtual bool Update(MasterDataUpdate<T> data)
{
return this.Update<T>(data, _Database, true);
}
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
CSFrameworkV6 C/S框架网