GARANTIR DESCONTO

Fórum Problema com função de autonumeração? #351728

10/01/2008

0

Olá pessoal, estou com um pequeno problema num autonumeração que eu tenho aqui para controle anual.

Até o final de 2007 estava todo ok, mais agora em 2008 deu zebra, ou seja só enumera o primeiro que é 0001/2008, e continua o proximo 0001/2008 em vez de 0002/2008 ....

A função é esta aqui
function TFDear.NextDoc(Num, Calendar: string): string;
var
 S, D: integer;
 Ano, Mes, Dia: string;
begin
 Ano := ´/´ + IntToStr(YearOf(Date));
 if MonthOf(Date) < 10 then
    Mes := ´/0´ + IntToStr(MonthOf(Date))
 else
    Mes := ´/´ + IntToStr(MonthOf(Date));
 if DayOf(Date) < 10 then
    Dia := ´/0´ + IntToStr(DayOf(Date))
 else
    Dia := ´/´ + IntToStr(DayOf(Date));
 if Calendar = ´Ano´ then Calendar := Ano;
 if Calendar = ´Mes´ then Calendar := Mes;
 if Calendar = ´Dia´ then Calendar := Dia;
 if (Num <> ´´) and (Calendar = Copy(Num, Pos(´/´, Num), Length(Calendar))) then begin
     D := (Pos(´/´, Num) - 1);
     S := StrToInt(Copy(Num, 1, D)) + 1;
     FmtStr(Num, ´¬.´ + IntToStr(D) + ´d´, [S]);
     Result := Num + Calendar;
 end else
   Result := ´0001´ + Calendar;
end;

(Pega o ano do calendario)

E eu chamo num button (Novo) assim:
With DM.cdsDear do
  begin
    if State in [dsInactive] then
       Open;
       if CanModify then
       begin
         dm.zqdearcontrole.close;
         dm.zqdearcontrole.sql.clear;
         dm.zqdearcontrole.sql.text:=´select Max(gerarchave)as Controle From declara´;
         dm.zqdearcontrole.open;
         NextDoc(dm.zqdearcontrole.FieldByName(´controle´).AsString, ´Ano´);
         Append;
         Lb_AutoInc.Caption := NextDoc(dm.zqdearcontrole.FieldByName(´controle´).AsString, ´Ano´);
         DBEdit1.SetFocus;
       end else
         Application.MessageBox(´Não foi possível incluir o registro´,
                                ´Erro´, MB_ICONINFORMATION+MB_Ok);
      end;


Bom pessoal, qualquer ajuda é bem vinda
Obrigado
Adriano.


Adriano_servitec

Adriano_servitec

Responder

Posts

10/01/2008

Adriano_servitec

Pessoal, ja resolvi, fazendo uma condição de um where no select

valeu, obrigado a todos


Responder

Gostei + 0

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

Aceitar