Membros Pro Datacamp Postado 11 Fevereiro Membros Pro Postado 11 Fevereiro Boa tarde, tem uma validação no bloco K para a escrita que está com um comportamento estranho. No arquivo ACBrEFDBloco_K_Class (função WriteRegistroK200) há o seguinte código (joguei em variáveis para visualização), onde mesmo as datas sendo iguais é acusado diferenças, e consequentemente dá erro. Porém, só acontece quando a data final não é o fim do mês. Ao alterar o código para usar o CompareDateTime da DateUtils o código já funciona "normalmente". Acredito que seja por conta do armazenamento de Double que causa uma diferença pela precisão, algo muito insignificante, mas que dispara a validação. Provavelmente tem mais locais no código que fazem esse tipo de comparação e pode levar a esses problemas. t1 := RegK100.RegistroK200.Items[intFor].DT_EST; t2 := RegK100.DT_FIN; teste := CompareDateTime(t1,t2); if teste <> EqualsValue then //Não retorna true raise Exception.Create('A data do estoque deve ser igual à data final do período de apuração – campo DT_FIN do Registro K100'); if t1 <> t2 then //Retorna true, dispara a Exception raise Exception.Create('A data do estoque deve ser igual à data final do período de apuração – campo DT_FIN do Registro K100'); É passível de correção nos fontes oficiais ?
Moderadores Juliomar Marchetti Postado 11 Fevereiro Moderadores Postado 11 Fevereiro Boa tarde isso não seria facilmente tratado para quando alimentar os campos eles seja somente informado a data e não a hora? Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Membros Pro Datacamp Postado 11 Fevereiro Autor Membros Pro Postado 11 Fevereiro Realmente, é uma opção, mas como os registros estão tipados com TDateTime acho que ainda pode acontecer esse problema nas comparações, justamente pela tipagem. (Suposição apenas, já tive alguns problemas com Delphi por conta disso e no fim do dia a lógica estava correta mas as variáveis continham valores "default" às vezes não inicializadas corretamente e causavam esses comportamentos anormais) Ainda acho válida a alteração, talvez não com a urgência mas seria -1 ponto de falha para o futuro.
Moderadores Juliomar Marchetti Postado 11 Fevereiro Moderadores Postado 11 Fevereiro 4 minutos atrás, Datacamp disse: Realmente, é uma opção, mas como os registros estão tipados com TDateTime acho que ainda pode acontecer esse problema nas comparações, justamente pela tipagem. (Suposição apenas, já tive alguns problemas com Delphi por conta disso e no fim do dia a lógica estava correta mas as variáveis continham valores "default" às vezes não inicializadas corretamente e causavam esses comportamentos anormais) Ainda acho válida a alteração, talvez não com a urgência mas seria -1 ponto de falha para o futuro. pois como sei que é tipo DATA eu gravo somente a data, pois ele não trata hora nesse caso eu meu banco está como DATA e eu gravo já ele como data Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Consultores Renato Rubinho Postado 11 Fevereiro Consultores Postado 11 Fevereiro Tópico movido para a área do ACBr Pro, para que o SLA de respostas seja considerado 5 horas atrás, Datacamp disse: É passível de correção nos fontes oficiais ? Por favor anexe o fonte com a sugestão de correção para análise. 1
Consultores Renato Rubinho Postado Quarta as 19:36 Consultores Postado Quarta as 19:36 Tópico fechado por falta de retorno do usuário
Recommended Posts