Incremento.
Tenho um campo Cliente (char(9)). Os seis primeiros dígitos, o usuário entra com um código, que varia dependendo da região do cliente e os três últimos tenho que gerar um sequencial.
Por exemplo: YARCO1001
YARCO1002
YARCO1003
BIUJNM001
BIUJNM002
Alguém pode me ajudar?
Por exemplo: YARCO1001
YARCO1002
YARCO1003
BIUJNM001
BIUJNM002
Alguém pode me ajudar?
Jussara
Curtidas 0
Respostas
Anonymous
17/02/2003
Uma sugestão:
function retornaCodigo(CODIGO):String;
var
incremento:String;
qry:TQuery;
begin
qry := TQuery.Create(self);
qry.Databasename := (seu database);
qry.sql.Text :=´SELECT MAX(CODCLI) AS CD_CLI FROM TB_CLIENTES WHERE CODCLI LIKE ´CODIGO¬´´;
try
qry.open;
if qry.FieldByName(´CD_CLI´).IsNull then //Não existe
begin
incremento := ´001´;
result := CODIGO+Incremento;
end
else
begin
incremento := Format(´000´,StrToInt(copy(qry.FieldByName(´CD_CLI´).AsString,7,3))+1);
result := CODIGO+Incremento;
end;
finally
qry.close;
end;
end;
function retornaCodigo(CODIGO):String;
var
incremento:String;
qry:TQuery;
begin
qry := TQuery.Create(self);
qry.Databasename := (seu database);
qry.sql.Text :=´SELECT MAX(CODCLI) AS CD_CLI FROM TB_CLIENTES WHERE CODCLI LIKE ´CODIGO¬´´;
try
qry.open;
if qry.FieldByName(´CD_CLI´).IsNull then //Não existe
begin
incremento := ´001´;
result := CODIGO+Incremento;
end
else
begin
incremento := Format(´000´,StrToInt(copy(qry.FieldByName(´CD_CLI´).AsString,7,3))+1);
result := CODIGO+Incremento;
end;
finally
qry.close;
end;
end;
GOSTEI 0