quinta-feira, 14 de novembro de 2013

Exibir Quantidade de Dias em uma Subtração de Datas em Delphi 7

Uma dica para os desenvolvedores, que assim como eu, também já tiveram essa dificuldade pela frente. Num módulo do sistema da minha empresa, necessitava exibir para um dono de concessionária quantos dias determinada Ordem de Serviço de um cliente estava aberta no sistema.

A solução para isto é a seguinte:


  • criar uma variável do tipo Extended:
 var  
  diasAtraso : Extended;  

  • alimentar esta variável com a subtração de datas que interessa ao negócio:
  diasAtraso := Date - QryPadraoDATA.AsDateTIME;  

  • finalmente exibe-se a quantidade de dias entre as 2 datas:
  ShowMessage(FloatToStr(Abs(diasAtraso)) + ' dias');


Conclusões

Notamos neste artigo a facilidade em calcular a quantidade de dias
entre 2 datas e exibir o resultado, utilizando a ferramente Delphi 7.
Forte abraço e até o próximo tutorial.

--

sexta-feira, 1 de fevereiro de 2013

Firebird: Comparando campos DateTime sem ignorar as Horas através de SQLTimeStamp no Delphi 7


Uma dica para os desenvolvedores, que assim como eu, também já tiveram essa grande dificuldade pela frente.

Eu possuo uma coluna do tipo Date no banco de dados e a aplicação alimenta-a com Data e Hora. O problema surge quando preciso num relatório filtrar os lançamentos num determinado período, e ao gerar no relatório vários lançamentos são ignorados, visto que a data deles tem horas diversas.


A solução para isso, utilizando componentes DBExpress, para comparar um intervalo entre duas datas foi a seguinte:

  • 2 componentes TDateTimePicker da paleta Win32 (DTPckInicial e DTPckFinal);
  • adicionar na propriedade Time do DTPckInicial: 00:00:01
  • adicionar na propriedade Time do DTPckFinal23:59:59
  • na bloco USES adicione SqltimSt;
  • utilizar as 3 linhas do código abaixo ao filtrar os lançamentos compreendidos nas datas selecionadas nos dois componentes TDateTimePicker:

Query.SQL.Add(' AND ( CAMPO_TIPO_DATA BETWEEN :DATA_INI AND :DATA_FIM )');
Query.ParamByName('DATA_INI').AsSQLTimeStamp := DateTimeToSQLTimeStamp(DTPckInicial.DateTime);
Query.ParamByName('DATA_FIM').AsSQLTimeStamp := DateTimeToSQLTimeStamp(DTPckFinal.DateTime);

Conclusões

Notamos neste artigo a facilidade em se manipular campos DateTime,
inclusive os utilizando como parâmetros sem ignorar as horas,
utilizando a ferramente Delphi 7. Forte abraço e até o próximo tutorial.


--