Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa Tarde
Tenho um programa em Delphi 7, que já roda a mais de 5 anos a rotina abaixo sem problemas, depois atualizar faixas etárias(continua fazendo isso normalmente) ele gera um relatório informando ao cliente que devido ao seu aniversário por exemplo em 10/02/2011 ele terá reajuste na sua mensalidade de seguro, para montar essa data no relatorio eu pego da data de nascimento do cliente faço o decode, depois faço um encode com o dia e o mês da data de nascimento do cliente e acrescento o ano atual que vem de um decode de date(data corrente do micro).
Até dezembro funcionou, quando foi rodar hoje, deu a mensagem Erro ao gerar o relatório Invalid argument to date enconde (não mudei nada do código a tempos não mexo nele)segue abaixo, será que é pelo ano, alguém tem alguma ideia do que seja, não consegui descobri de forma alguma.
Desde já, grato.
procedure Tcartafaixa.Query1CalcFields(DataSet: TDataSet);
Var Data: TDateTime; dia, mes, ano,diac,mesc,anoc: Word;
var mataux,nomaux,mes1,ano1:string;
begin
if table1.Active=false then
table1.Active:=true;
if table2.Active=false then
table2.Active:=true;
mes1:=frmfaixa.Edit1.Text;
ano1:=frmfaixa.Edit2.Text;
if query1sexo.Value = 'M' then
query1sauda.Value:='Prezado Segurado:';
if query1sexo.Value = 'F' then
query1sauda.Value:='Prezada Segurada:';
// Data de Nascimento
Data:=query1dtnas.Value;
DecodeDate(Data,ano,mes,dia);
DecodeDate(Date,anoc,mesc,diac);
query1aniv.Value:=encodedate(anoc,mes,dia);
if query1faixa.Value='S' then
begin
if query1idade.Value=36 then
begin
query1novovg.Value:=(query1mnat.Value*0.04211)/100;
r36.Color:=clYellow;
r41.Color:=clwhite;
r46.Color:=clwhite;
r51.Color:=clwhite;
r56.Color:=clwhite;
r61.Color:=clwhite;
r66.Color:=clwhite;
r70.Color:=clwhite;
end;
if query1idade.Value=41 then
begin
query1novovg.Value:=(query1mnat.Value*0.05373)/100;
r41.Color:=clYellow;
r36.Color:=clwhite;
r46.Color:=clwhite;
r51.Color:=clwhite;
r56.Color:=clwhite;
r61.Color:=clwhite;
r66.Color:=clwhite;
r70.Color:=clwhite;
end;
if query1idade.Value=46 then
begin
query1novovg.Value:=(query1mnat.Value*0.07281)/100;
r46.Color:=clYellow;
r41.Color:=clwhite;
r36.Color:=clwhite;
r51.Color:=clwhite;
r56.Color:=clwhite;
r61.Color:=clwhite;
r66.Color:=clwhite;
r70.Color:=clwhite;
end;
if query1idade.Value=51 then
begin
query1novovg.Value:=(query1mnat.Value*0.12650)/100;
r51.Color:=clYellow;
r41.Color:=clwhite;
r46.Color:=clwhite;
r36.Color:=clwhite;
r56.Color:=clwhite;
r61.Color:=clwhite;
r66.Color:=clwhite;
r70.Color:=clwhite;
end;
if query1idade.Value=56 then
begin
query1novovg.Value:=(query1mnat.Value*0.19870)/100;
r56.Color:=clYellow;
r41.Color:=clwhite;
r46.Color:=clwhite;
r51.Color:=clwhite;
r36.Color:=clwhite;
r61.Color:=clwhite;
r66.Color:=clwhite;
r70.Color:=clwhite;
end;
if query1idade.Value=61 then
begin
query1novovg.Value:=(query1mnat.Value*0.34000)/100;
r61.Color:=clYellow;
r41.Color:=clwhite;
r46.Color:=clwhite;
r51.Color:=clwhite;
r56.Color:=clwhite;
r36.Color:=clwhite;
r66.Color:=clwhite;
r70.Color:=clwhite;
end;
if query1idade.Value=66 then
begin
query1novovg.Value:=(query1mnat.Value*0.55214)/100;
r66.Color:=clYellow;
r41.Color:=clwhite;
r46.Color:=clwhite;
r51.Color:=clwhite;
r56.Color:=clwhite;
r61.Color:=clwhite;
r36.Color:=clwhite;
r70.Color:=clwhite;
end;
if query1idade.Value=71 then
begin
query1novovg.Value:=(query1mnat.Value*0.6101)/100;
r70.Color:=clYellow;
r41.Color:=clwhite;
r46.Color:=clwhite;
r51.Color:=clwhite;
r56.Color:=clwhite;
r61.Color:=clwhite;
r66.Color:=clwhite;
r36.Color:=clwhite;
end;
if query1idade.Value=72 then
begin
query1novovg.Value:=(query1mnat.Value*0.6742)/100;
r70.Color:=clYellow;
r41.Color:=clwhite;
r46.Color:=clwhite;
r51.Color:=clwhite;
r56.Color:=clwhite;
r61.Color:=clwhite;
r66.Color:=clwhite;
r36.Color:=clwhite;
end;
if query1idade.Value=73 then
begin
query1novovg.Value:=(query1mnat.Value*0.7450)/100;
r70.Color:=clYellow;
r41.Color:=clwhite;
r46.Color:=clwhite;
r51.Color:=clwhite;
r56.Color:=clwhite;
r61.Color:=clwhite;
r66.Color:=clwhite;
r36.Color:=clwhite;
end;
if query1idade.Value=74 then
begin
query1novovg.Value:=(query1mnat.Value*0.8232)/100;
r70.Color:=clYellow;
r41.Color:=clwhite;
r46.Color:=clwhite;
r51.Color:=clwhite;
r56.Color:=clwhite;
r61.Color:=clwhite;
r66.Color:=clwhite;
r36.Color:=clwhite;
end;
if query1idade.Value=75 then
begin
query1novovg.Value:=(query1mnat.Value*0.9096)/100;
r70.Color:=clYellow;
r41.Color:=clwhite;
r46.Color:=clwhite;
r51.Color:=clwhite;
r56.Color:=clwhite;
r61.Color:=clwhite;
r66.Color:=clwhite;
r36.Color:=clwhite;
end;
if query1idade.Value=76 then
begin
query1novovg.Value:=(query1mnat.Value*1.0051)/100;
r70.Color:=clYellow;
r41.Color:=clwhite;
r46.Color:=clwhite;
r51.Color:=clwhite;
r56.Color:=clwhite;
r61.Color:=clwhite;
r66.Color:=clwhite;
r36.Color:=clwhite;
end;
if query1idade.Value=77 then
begin
query1novovg.Value:=(query1mnat.Value*1.1108)/100;
r70.Color:=clYellow;
r41.Color:=clwhite;
r46.Color:=clwhite;
r51.Color:=clwhite;
r56.Color:=clwhite;
r61.Color:=clwhite;
r66.Color:=clwhite;
r36.Color:=clwhite;
end;
if query1idade.Value=78 then
begin
query1novovg.Value:=(query1mnat.Value*1.2273)/100;
r70.Color:=clYellow;
r41.Color:=clwhite;
r46.Color:=clwhite;
r51.Color:=clwhite;
r56.Color:=clwhite;
r61.Color:=clwhite;
r66.Color:=clwhite;
r36.Color:=clwhite;
end;
if query1idade.Value=79 then
begin
query1novovg.Value:=(query1mnat.Value*1.3562)/100;
r70.Color:=clYellow;
r41.Color:=clwhite;
r46.Color:=clwhite;
r51.Color:=clwhite;
r56.Color:=clwhite;
r61.Color:=clwhite;
r66.Color:=clwhite;
r36.Color:=clwhite;
end;
if query1idade.Value=80 then
begin
query1novovg.Value:=(query1mnat.Value*1.4986)/100;
r70.Color:=clYellow;
r41.Color:=clwhite;
r46.Color:=clwhite;
r51.Color:=clwhite;
r56.Color:=clwhite;
r61.Color:=clwhite;
r66.Color:=clwhite;
r36.Color:=clwhite;
end;
if query1idade.Value=81 then
begin
query1novovg.Value:=(query1mnat.Value*1.6559)/100;
r70.Color:=clYellow;
r41.Color:=clwhite;
r46.Color:=clwhite;
r51.Color:=clwhite;
r56.Color:=clwhite;
r61.Color:=clwhite;
r66.Color:=clwhite;
r36.Color:=clwhite;
end;
if query1idade.Value=82 then
begin
query1novovg.Value:=(query1mnat.Value*1.8298)/100;
r70.Color:=clYellow;
r41.Color:=clwhite;
r46.Color:=clwhite;
r51.Color:=clwhite;
r56.Color:=clwhite;
r61.Color:=clwhite;
r66.Color:=clwhite;
r36.Color:=clwhite;
end;
if query1idade.Value=83 then
begin
query1novovg.Value:=(query1mnat.Value*2.0219)/100;
r70.Color:=clYellow;
r41.Color:=clwhite;
r46.Color:=clwhite;
r51.Color:=clwhite;
r56.Color:=clwhite;
r61.Color:=clwhite;
r66.Color:=clwhite;
r36.Color:=clwhite;
end;
if query1idade.Value=84 then
begin
query1novovg.Value:=(query1mnat.Value*2.2342)/100;
r70.Color:=clYellow;
r41.Color:=clwhite;
r46.Color:=clwhite;
r51.Color:=clwhite;
r56.Color:=clwhite;
r61.Color:=clwhite;
r66.Color:=clwhite;
r36.Color:=clwhite;
end;
if query1idade.Value=85 then
begin
query1novovg.Value:=(query1mnat.Value*2.4688)/100;
r70.Color:=clYellow;
r41.Color:=clwhite;
r46.Color:=clwhite;
r51.Color:=clwhite;
r56.Color:=clwhite;
r61.Color:=clwhite;
r66.Color:=clwhite;
r36.Color:=clwhite;
end;
if query1idade.Value=86 then
begin
query1novovg.Value:=(query1mnat.Value*2.7280)/100;
r70.Color:=clYellow;
r41.Color:=clwhite;
r46.Color:=clwhite;
r51.Color:=clwhite;
r56.Color:=clwhite;
r61.Color:=clwhite;
r66.Color:=clwhite;
r36.Color:=clwhite;
end;
if query1idade.Value=87 then
begin
query1novovg.Value:=(query1mnat.Value*3.01445)/100;
r70.Color:=clYellow;
r41.Color:=clwhite;
r46.Color:=clwhite;
r51.Color:=clwhite;
r56.Color:=clwhite;
r61.Color:=clwhite;
r66.Color:=clwhite;
r36.Color:=clwhite;
end;
if query1idade.Value=88 then
begin
query1novovg.Value:=(query1mnat.Value*3.3009)/100;
r70.Color:=clYellow;
r41.Color:=clwhite;
r46.Color:=clwhite;
r51.Color:=clwhite;
r56.Color:=clwhite;
r61.Color:=clwhite;
r66.Color:=clwhite;
r36.Color:=clwhite;
end;
if query1idade.Value=89 then
begin
query1novovg.Value:=(query1mnat.Value*3.6310)/100;
r70.Color:=clYellow;
r41.Color:=clwhite;
r46.Color:=clwhite;
r51.Color:=clwhite;
r56.Color:=clwhite;
r61.Color:=clwhite;
r66.Color:=clwhite;
r36.Color:=clwhite;
end;
if query1idade.Value=90 then
begin
query1novovg.Value:=(query1mnat.Value*3.9944)/100;
r70.Color:=clYellow;
r41.Color:=clwhite;
r46.Color:=clwhite;
r51.Color:=clwhite;
r56.Color:=clwhite;
r61.Color:=clwhite;
r66.Color:=clwhite;
r36.Color:=clwhite;
end;
mataux:=query1matricula.Value;
if table2.FindKey([mataux])then
begin
if query1condicao.Value='TITULAR' then
begin
query1premio_c.Value:=table2premio.Value;
query1novovg.Value:=query1novovg.value+(query1novovg.value/100)*0.38;
query1novodesconto.Value:=query1novovg.Value+query1premio_r.Value+query1previsul.Value+query1unibancoI.Value+query1premio_c.Value;
query1novodesconto.value:=round(query1novodesconto.value*100)/100;
rllabel16.Caption:=query1nome.Value;
rllabel5.Caption:='Informamos a V.Sa. que em razão de seu aniversário em '+datetostr(query1aniv.value)+' e consequente mudança de faixa etária,';
rllabel15.Caption:='o desconto mensal do seu seguro somado ao do seu cônjuge a partir de '+mes1+' de '+ano1+' será de R$ '+currtostr(query1novodesconto.value);
rllabel2.Caption:='';
end;
if query1condicao.Value<>'TITULAR' then
begin
nomaux:=query1nome.Value;
rllabel16.Caption:=table2nome.Value;
if query1sexo.Value = 'M' then
query1sauda.Value:='Prezada Segurada:';
if query1sexo.Value = 'F' then
query1sauda.Value:='Prezado Segurado:';
query1premio_c.Value:=table2premio.Value;
query1novovg.Value:=query1novovg.value+(query1novovg.value/100)*0.38;
query1novodesconto.Value:=query1novovg.Value+query1premio_r.Value+query1previsul.Value+query1unibancoI.Value+query1premio_c.Value;
query1novodesconto.value:=round(query1novodesconto.value*100)/100;
rllabel5.Caption:='Informamos a V.Sa. que em razão do aniversário do seu cônjuge/dependente '+nomaux;
rllabel15.Caption:='em '+datetostr(query1aniv.value)+' e consequente mudança de faixa etária do mesmo, o desconto mensal do seu seguro somado ';
rllabel2.Caption:='ao do seu cônjuge/dependente a partir de '+mes1+' de '+ano1+' será de R$ '+currtostr(query1novodesconto.value);
end;
end;
if not table2.FindKey([mataux])then
begin
rllabel16.Caption:=query1nome.Value;
query1premio_c.Value:=0;
query1novovg.Value:=query1novovg.value+(query1novovg.value/100)*0.38;
query1novodesconto.Value:=query1novovg.Value+query1premio_r.Value+query1previsul.Value+query1unibancoI.Value+query1premio_c.Value;
// query1novodesconto.Value:=query1novovg.Value+query1premio_r.Value+query1previsul.Value+query1unibancoI.Value;
query1novodesconto.value:=round(query1novodesconto.value*100)/100;
rllabel5.Caption:='Informamos a V.Sa. que em razão de seu aniversário em '+datetostr(query1aniv.value)+' e consequente mudança de faixa etária,';
rllabel15.Caption:='o desconto mensal do seu seguro a partir de '+mes1+' de '+ano1+ ' será de R$ '+currtostr(query1novodesconto.value);
rllabel2.Caption:='';
end;
end;
end;
procedure Tcartafaixa.RLReport1AfterPrint(Sender: TObject);
begin
table1.Close;
table2.Close;
end;
end.
Carregando comentários...