起步软件技术论坛-X3

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: hero419

【搞定】自动生成编号的需求**

[复制链接]
 楼主| 发表于 2008-1-15 14:46:23 | 显示全部楼层
搞定了,谢谢李工~~

需求是按照“年-类别-流水号”的规则进行编码,其中流水号为数据库中该年该类别流水号中的最大值;
由于类别是数据库中记录的字段,所以编码只能在保存的时候生成;
生成编码时需要判断编码字段是否为空,这样如果修改记录的话,编码字段就不会更改。

代码如下:
procedure TJSJDXX.DataSetJSJDBeforePost(DataSet: TDataSet);
const
   cZeroLeng = '000';
var
   lDateStr, lLBStr, lTmpStr, lBHStr: string;
begin
   if DataSetJSJD.FieldByName('WTJS').IsNull then
   begin
     lDateStr := SysUtils.FormatDateTime('yyyy', Business.Data.SysSrv.SysService.Time);
     lLBStr := DataSetJSJD.FieldByName('JDXMLB').AsString;
     lTmpStr := TCommonUtils.GetAutoIncreaseID(Self.Context,lDateStr+'-'+lLBStr,'');
     lTmpStr := StringUtils.Copy(cZeroLeng, 1, Length(cZeroLeng) - Length(lTmpStr))+lTmpStr;
     lBHStr := lDateStr+'-'+lLBStr+'-'+lTmpStr;
     DataSetJSJD.FieldByName('WTJS').AsString := lBHStr;
   end;
end;

再次感谢李工~~
回复 支持 反对

使用道具 举报

发表于 2008-1-15 14:49:18 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-5 14:21 , Processed in 0.037254 second(s), 12 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表