如题。

解决方案 »

  1.   

    var
      i,n:integer;
      s,date:string;
    begin
      date:=formatdatetime('yymmdd',now);
      n:=1;
      with ADOQuery2 do
      begin
        close;
        sql.Clear;
        sql.Add('select * from 表名字');
        open;
      end;
      i:=ADOQuery2.RecordCount+1;
      s:='B'+date+(format('%.3d',[i]));     //生成单据号
      while n=1 do                          //检索是否重复
      begin
        with ADOQuery2 do
        begin
          close;
          sql.Clear;
          sql.Add('select * from 表名字');
          sql.Add('where 单据编号='''+s+'''');
          open;
        end;
        if ADOQuery2.RecordCount>0 then
        begin
          i:=i+1;
          s:='B'+date+(format('%.3d',[i]));
          n:=1;
        end
        else n:=0;
      end;
    我也刚学