编号格式如下 :  HF-WY-200403-0001     中间的数字是年份加月份  ,后面的数字为自动增加数
要求:  保存数据时,根据年份和月份来获得后面的累加序号

解决方案 »

  1.   

    保存时取第7~12位的数字,即200403等,如果存在,则取末四位最大的,然后加1,组成串后保存。如果不存在与当前月份一样的,则HF-WY再加当前月份+0001
      

  2.   

    谢谢,这我也想到了,就时做的时候碰到一点麻烦,不过现在解决了,不过还是谢谢你
    再问一个问题,要清空 DateTimePicker 里面的值怎么做啊,
      

  3.   

    在做查询时,不希望这个控件一开始的时候显示值,行不行啊 我的数据库字段是date 型的
    //不过库中是日期字段的能清空  
    什么意思啊??
      

  4.   

    function GetSerialNo(DBName,DBField,HeadChar:String; SerialNoLength: Integer = 8): String;
    var Sql,tmpStr,fmtStr: String;
        tmpInt,numLen: Integer;
    Begin
        SqL := ' Select max(' + DBField + ') mMax from ' + DBName;
        sql := sql + ' where ' + DBField + ' like ' + sep + Headchar + '%' + sep;
        if qryPublic.Active then qryPublic.Close;
        qryPublic.sql.clear;
        qryPublic.sql.add(SQL);
        qryPublic.Open;
        numLen := SerialNoLength - length(HeadChar);  //序列号中数字的长度
        if qryPublic.FieldByName('mMax').asstring <> '' then
        Begin
            tmpStr := qryPublic.fieldbyname('mMax').asstring;
            tmpInt := StrtoInt(copy(tmpStr,length(HeadChar) + 1,SerialNoLength)) + 1;
            fmtStr := '%' + inttostr(numlen) + 'd';
            tmpStr := Format(fmtStr,[tmpInt]);
            while pos(' ',tmpStr) > 0 do tmpStr[Pos(' ', tmpStr)] := '0';
            Result := HeadChar + tmpStr;
        End
        else
            Result := HeadChar + RepeatChar('0',numLen - 1) + '1';
        qryPublic.Close;
    End;
      

  5.   

    不能的吧!我不会!
    hmily1688(刘涛--公司里面打杂的) 的意思可能是你能将数据库里存date的字段处理一下,使其存为空的
      

  6.   

    To  highbury(海布里) ,就是这个意思,跟楼主的题是驴唇不对马嘴,
    To  lvgolden(妈的,程序又出错了!) 
    你又出错了吧。你是要楼主改造DBDateTimePicker啊。有一种控件可以搞定,如ehlib,你可以在DateTimePicker前加一个checkBox,如果打上勾了就上DateTimpicker的Enabled为true,否则不处理。
    嘻嘻,楼主我打杂去了。希望你早日搞定
      

  7.   

    set @day=(select  (convert(varchar(10), GETDATE())) )
            set @riqi=(substring(@day,7,10)+'-' +substring(@day,1,2)+'-'+substring(@day,4,5) )
     set @StateMainId=((select  isnull(max(StateMainid),'1000000000')  from TT_statemain) +1  )   @riqi+@StateMainID
    参考看一下,就知道了