GARANTIR DESCONTO

Fórum Campo codigo em um DBedit #265510

16/01/2005

0

como faço para que o campo código de cliente em um dbedit entre com numeração automatica
Ou seja, a cada novo cliente o campo codigo gere uma numeração automatica e não sobreponha uma a outra?


Ulisses R.l.c

Ulisses R.l.c

Responder

Posts

16/01/2005

Jcmsistemas

[quote:471b9f08dd=´Ulisses R.L.C´]como faço para que o campo código de cliente em um dbedit entre com numeração automatica
Ou seja, a cada novo cliente o campo codigo gere uma numeração automatica e não sobreponha uma a outra?[/quote:471b9f08dd]

Se fosse para um cadastro de clientes, veja exemplo:-

[b:471b9f08dd]procedure TFmCliente.BitBtn5Click(Sender: TObject);
var c: integer;
jam: string;
begin
dm.Cliente.Refresh;
dm.Cliente.Insert;
if dm.Cliente.RecordCount = 0 then
jam := ´00001´
else
begin
dm.Cliente.IndexName := ´Ind_Codigo´;
dm.Cliente.Last;
c := dm.ClienteCodigo.AsInteger + 1;
jam := formatcurr(´00000´,c);
end;
dm.ClienteCodigo.AsString := jam;
dm.Cliente.Refresh;
end;[/b:471b9f08dd]


Responder

Gostei + 0

16/01/2005

Isabelct

Que banco de dados você está utilizando? Dependendo do banco, há algumas alternativas mais elegantes. De forma genérica, o que pode-se fazer é o seguinte:

function NovoCodigo(NomeTabela: string; NomeCampo: string): Integer;
begin
  QueryConsulta.Clear;
  QueryConsulta.SQL.Add(´SELECT ´ + NomeCampo + ´ + 1 AS NOVOCODIGO´);
  QueryConsulta.SQL.Add(´FROM ´ + NomeTabela);
  QueryConsulta.Open;
  if QueryConsulta.FieldByName(´NOVOCODIGO´).AsInteger = 0 then
    Result := 1
  else
    Result := QueryConsulta.FieldByName(´NOVOCODIGO´).AsInteger;
end;


Acho que isso resolve seu problema. Caso tenha dúvidas, manda pra cá!


Responder

Gostei + 0

16/01/2005

Isabelct

Desculpe, me enganei no post anterior. O código correto é este.

function NovoCodigo(NomeTabela: string; NomeCampo: string): Integer;
begin
  QueryConsulta.Clear;
  QueryConsulta.SQL.Add(´SELECT MAX(´ + NomeCampo + ´) + 1 AS NOVOCODIGO´);
  QueryConsulta.SQL.Add(´FROM ´ + NomeTabela);
  QueryConsulta.Open;
  if QueryConsulta.FieldByName(´NOVOCODIGO´).AsInteger = 0 then
    Result := 1
  else
    Result := QueryConsulta.FieldByName(´NOVOCODIGO´).AsInteger;
end;



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar