Possuo um sistema q dentre outras funções gera parcelas de pagamento, sendo permitido ao operador modificar essa data caso não seja uma data ideal para o cliente naquele mês (é feita uma ligação antes pra confirmar), a operadora escolhe a nova data em um DateTimePeacker, no closeup, tenho a seguinte rotina:
procedure TFrm_Recibos_Impressao.Cbo_DataCloseUp(Sender: TObject);
var Q_Qr:TSqlquery;
dt: TDate;
diautil,diadomes,diadasemana:boolean;
begin
diautil := False;
diadomes := False;
diadasemana := false;
dt:= cbo_data.Date;
diautil := Data_util(datetostr(dt)) = 'N';
diadomes := DayOfTheMonth(dt) = 1;
diadasemana := DayOfWeek(dt) = 1;
if (diautil) and (diadomes) then
dt := IncDay(dt,1)
else
if diautil then
dt := IncDay(dt,-1)
else
if (diadomes) and (diadasemana) then
dt := IncDay(dt,1)
else
If diadasemana then
dt := IncDay(dt,-1)
else
dt := Cbo_Data.Date;
if Q_Doacoes_Impressao.RecordCount > 0 then
begin
Q_Qr := TSQLQuery.Create(nil);
Q_Qr.SQLConnection := dm.Conexao;
Q_Qr.SQL.Add('UPDATE TAB_DOACOES SET DOC_DATA_OPERACAO = :data WHERE DOC_ID ='+Q_Doacoes_ImpressaoDOC_ID.AsString);
Q_Qr.Params.ParamByName('data').AsDate := dt;
Q_Qr.ExecSQL;
Q_Qr.Free;
end;
end;
e a função Data_util, q verifica se é uma data válida e faz uma consulta a uma tabela de feriados pra saber se é feriados ou não.
function TFrm_Recibos_Impressao.Data_util(data: string): string;
begin
If Not dm.F_Data_Valida(data) Then
Begin
Exit;
End;
Try
dm.dsQ_Query2.Close;
dm.dsQ_Query2.Params.ParamByName('DATA').AsDate := strtodate(data);
dm.dsQ_Query2.Open;
Except
MessageDlg('Aconteceu um erro no momento da obtenção dos dados! Contacte o administrador do sistema!',mtError,[mbOK],0);
Exit;
End;
if dm.dsQ_Query2.RecordCount = 0 then
Result := 'S'
else
Result := 'N';
end;
e o problema é o seguinte:
quando se entra no sistema, tudo funciona perfeitamente, escolhe uma data, se for feriado ele decrementa um dia, se for domingo, decrementa um dia, se for um dia normal, fica na data escolhida; só que no decorrer da operação do sistema a coisa começa a desandar, toda data q é escolhida, independente de ser válida ou não, o sistema decrementa um dia, ai tem q fechar o sistema e abrí-lo quando tudo funciona normal de novo e assim fica o dia todo, deu problema, fecha e abre.
Será q estou esquecendo de retirar algo da memória?
Pergunta
fajo
Possuo um sistema q dentre outras funções gera parcelas de pagamento, sendo permitido ao operador modificar essa data caso não seja uma data ideal para o cliente naquele mês (é feita uma ligação antes pra confirmar), a operadora escolhe a nova data em um DateTimePeacker, no closeup, tenho a seguinte rotina:
e a função Data_util, q verifica se é uma data válida e faz uma consulta a uma tabela de feriados pra saber se é feriados ou não.e o problema é o seguinte:
quando se entra no sistema, tudo funciona perfeitamente, escolhe uma data, se for feriado ele decrementa um dia, se for domingo, decrementa um dia, se for um dia normal, fica na data escolhida; só que no decorrer da operação do sistema a coisa começa a desandar, toda data q é escolhida, independente de ser válida ou não, o sistema decrementa um dia, ai tem q fechar o sistema e abrí-lo quando tudo funciona normal de novo e assim fica o dia todo, deu problema, fecha e abre.
Será q estou esquecendo de retirar algo da memória?
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.