Otomatik kod artırma

Başlatan comeng07, 02 Ocak 2019, 20:21:28

comeng07

merhaba arkadaşlar carikodunu otomatik olarak artırmak istiyorum.0001,0002 ve her yeni dediğimde 0003 gibi ilerlemesini istiyorum. sql veritabanı kullanıyorum carikodu alanım string yardımcı olursanız sevinirim. Bazı hazır kodlar var elimde ama

bir forumdan aldığım husonet adındaki arkadaşın kodu bu

function Numarator(no:string): string;

function TersCevir(nu: string): string;
var
  Cevrilen: string;
  i: integer;
begin
  Cevrilen := '';
  for i := Length(nu) downto 1 do
  begin
    Cevrilen:= Cevrilen + nu[i];
  end;
  Result := Cevrilen;
end;

var
Nmr, Temp :string;
i, Tmp : integer;
begin
  Nmr := TersCevir(no);
  Tmp := 0;
  i := 0;
  while i < length(no) do
  begin
    i:= i+1;
    if Nmr[i]= '9' then
    begin
      Nmr[i] := '0';
      continue;
      end
      else if (Nmr[i] < '9') and (Nmr[i] >= '0') then
            begin
            Temp := inttostr(Strtoint(Nmr[i])+1);
            Tmp:= i;
            Break;
            end;
            if Nmr[i]= 'Z' then
            begin
              Nmr[i]:= 'A';
              continue;
            end
            else if (Nmr[i] < 'Z' ) or (Nmr[i] >= 'A') then
                begin
                  Temp :=inttostr(ord(Nmr[i]));
                  Temp := inttoStr(Strtoint(Temp)+1);
                  Temp := Chr(Strtoint(Temp));
                  Tmp := i;
                  Break;
                end;
    end;
    i:=0;
    while i < length(no) do
    begin
      i := i + 1 ;
      if Tmp = i then
          if (Temp[1] <= '9') and (Temp[1] >= '0') then
            Nmr[i] := Temp[1]
            else
            begin
              Nmr[i] := Temp[1];
            end;
      Nmr[i] := Nmr[i];
  end;
  result := TersCevir(Nmr);
  end;


Bu kodu çalıştıramadım bir türlü şu şekilde bir yol izledim
datasetin afterinsert kısmına 

Dataset.last;
dbedit1.text := Numarator(Dataset.fieldbyname('CARİKODU').asstring);

ama bu şekilde datasetteki son kodu getirip cari kodunu bir artırıyor ve cari adı ve diğer alanlar bir önceki kayıt kalıyor değişiklik yapsamda artırdığı kayıt değil bir önceki cari koduna yazdırıyor.