Sistema Ordem de Serviço

08/08/2004

preciso de uma idéia pra fazer o seguinte, tenho q fazer um cadastro de O.S. só q vai funcionar da seguinte maneira,

O código da O.S. ( chave primária) vai ter 13 dígitos, só q os quatro primeiros dígitos vão ser fixos, por exemplo

0200000000001
0200123625362


e o resto dos 9 dígitos vai ser auto incremente, de 1 em 1, como posso fazer isso, sendo q os 4 números fixos vão ter 2 sequências, sendo uma:

0200

e a outra

0500


Preciso de uma luz pra resolver.


Grato pela atenção.


Piassa

Respostas

09/08/2004

Piassa

sobe


Responder Citar

09/08/2004

Ronaldo.cutu

qual o banco de dados que vc usar


Responder Citar

09/08/2004

Piassa

qual o banco de dados que vc usar



interbase6


Responder Citar

09/08/2004

Titanius

Olá,

Podes criar um GENERATOR, chamado GEN_OS.. ele vai guardar os increnmentos da numeracao... já que voce vai usar os primeiros numeros fixos, podemos fazer o seguinte:

var
  Generator: integer;
   NovoCodigo: string;
begin 
 cQuery := TMDOQuery.Create(Application);
 cQuery.Database := MDODatabase1;

 with cQuery do
 begin
  // pega o valor incrementado no banco e incrementa mais 1
  SQL.Add(´select gen_id(GEN_OS, 1) from rdb$database´);
  Open;
 
  // joga o valor em uma variavel
  Generator := cQuery.Fields[0&93;.AsInteger;

  // formata a variavel com os 4 primeiros numeros fixos e o
 // resto com o numero gerado e caso nao seja de 9 posicoes,
 // preenche o resto com 0
  NovoCodigo := 0500 + FormatFloat(´000000000´, Generator);
  cQuery.Free;
 end;


Amigo neste código usei o Query do componente MDO, mude a linha de criacao do Query para o componente que você está usando, ou apenas adicione um componente da paleta no Form e pronto... aih nao precisa cria-lo..

Espero ter ajudado,
abracos.


Responder Citar

09/08/2004

Piassa

vlw titanius, vou tentar desse jeito


Responder Citar