手动和自动生成业务单据号码UpdateKeyMode详解(1)
作者:C/S框架网  发布日期:2011/09/28 21:00:27
  手动和自动生成业务单据号码UpdateKeyMode详解(1)

手动和自动生成业务单据号码UpdateKeyMode详解(1)



更新业务单据号码有以下3种方式,UpdateKeyMode枚举定义如下:



C# Code:



/// <summary>
/// 更新主表关键方式
/// </summary>
public enum UpdateKeyMode
{
   /// <summary>
   /// 未指定.单据号码手工输入或指定
   /// </summary>
   None,
   
   /// <summary>
   /// 自动生成流水号
   /// </summary>
   OnlyDocumentNo,
   
   /// <summary>
   /// 自动生成32位GUID
   /// </summary>
   OnlyGuid

}

//来源:C/S框架网(www.csframework.com) QQ:1980854898



None: 未指更新类型,单据号码手工输入或在业务层手工赋值。

OnlyDocumentNo:系统自动生成单据号码,号码规则在sys_DocSN表定义。

OnlyGuid:有些单号直接使用32位的GUID,系统自动生成32位的GUID。


系统预设的更新方式是由用户手工输入,因此在提交数据时框架不自动生成单号。

dalBaseBusiness类定义成员变量为:

/// <summary>
/// 业务单据号码更新类型(如生成流水号,或GUID)
/// </summary>
protected UpdateKeyMode _UpdateSummaryKeyMode = UpdateKeyMode.None;



开发框架的DAL层样例预设为OnlyDocumentNo(自动生成单据号码),如dalSO:



        public dalSO(Loginer loginer)

            : base(loginer)

        {

            _SummaryTableName = tb_SO.__TableName;

            _SummaryKeyName = tb_SO.__KeyName;

            _UpdateSummaryKeyMode = UpdateKeyMode.OnlyDocumentNo;//自动生成单据号码(流水号)

            //_UpdateSummaryKeyMode = UpdateKeyMode.None; //手工生成单据号码

        }




若设为OnlyDocumentNo,即使手工指定单号,在提交数据时系统仍会生成一个单号。参考DAL层的GetNumber方法:


C# Code:

/// <summary>
/// 获取系统自动生成的流水号(入库单)
/// </summary>
protected override string GetNumber(DbTransaction tran)
{
   string docNo = DocNoTool.GetNumber(tran, "IN");
   return docNo;
}





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

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

上一篇 下一篇