Ir para conteúdo
  • Cadastre-se

dev botao

Problema com RLDBResult Fortesreport-ce


  • Este tópico foi criado há 1744 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Estou criando um relatório em tempo de execução que irá verificar o DataType de um column de um grid e, caso seja um equivalente a ponto flutuante (ftFloat, ftExtended, ftBCD, ftCurrency, ftFMTBcd e ftSingle) irá gerar um RLDBResult com este campo.
O problema é que campos no tipo (ftFMTBcd e ftSingle) o RLDBResult não calcula os valores, permanece valor 0, vide print: http://prntscr.com/o3vkjr.

Alguém por ventura teria enfrentado este problema e conseguiu uma solução?

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Encontrei uma maneira de contornar o problema.
Criei um ClientDataSet e alimentei com todos os campos e valores que eu tinha, depois só apontei ao relatório o DataSource.
Segue o código caso alguém quiser seguir meus passos:
 

   cdsTeste.Close;
   cdsTeste.FieldDefs.Clear;
   for I := 0 to Pred(ADQGeradorRelatorio.FieldCount) do
   begin
      case ADQGeradorRelatorio.Fields[I].DataType of
         ftBCD, ftFloat, ftCurrency, ftSingle, ftFMTBcd, ftExtended:
         begin
            cdsTeste.FieldDefs.Add(ADQGeradorRelatorio.Fields[I].FieldName, ftBCD, 0, false);
         end;
         else
         begin
            cdsTeste.FieldDefs.Add(ADQGeradorRelatorio.Fields[I].FieldName,
                                   ADQGeradorRelatorio.Fields[I].DataType,
                                   ADQGeradorRelatorio.Fields[I].Size, false);
         end;
      end;
   end;
   cdsTeste.CreateDataSet;

Basicamente, o que ele vai fazer é tornar ftBCD todos os campos do tipo decimal. Como trabalho com apenas 4 casas decimais não tive problemas com perda de dados.

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1744 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.