| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
thaine Membro Junior

Registrado: Segunda-Feira, 4 de Junho de 2012 Mensagens: 352
|
Enviada: Sex Ago 16, 2013 1:29 pm Assunto: Valores não aparecem na Xml do Cte - Resolvido |
|
|
Tenho um sistema que emite conhecimento de transporte eletrônico, mas ele esta com um problema.
A parte de relação dos componentes da prestação de serviços
não aparece na XML.
estou alimentando ela desta forma :
Dm.tabela.Last;
j:=Dm.tabela.RecordCount;
if (j > 0) then begin
Dm.tabela.First;
for i:=1 to j do begin
if (Dm.tabela.AsFloat > 0) then begin
vPrest.comp.Add.xNome:=Dm.tabelaDESCRICAO.AsString;
vPrest.comp.Add.vComp:=StrToFloat(FormatFloat('##0.00', Dm.tabelaVALOR.AsFloat));
end;
Dm.tabela.Next;
end;
end;
Alguém por favor pode me ajudar ?
Editado pela última vez por thaine em Seg Ago 19, 2013 8:54 am, num total de 1 vez |
|
| Voltar ao Topo |
|
 |
tiago.prs Aprendiz


Registrado: Sábado, 9 de Mai de 2009 Mensagens: 193
|
Enviada: Sex Ago 16, 2013 9:04 pm Assunto: |
|
|
Você tentou debugar sua aplicação para ver se está entrando em seu loop?
Ou tentou apresentar os resultados em uma DBGrid para ver se sua Dm.tabela está carregando os valores?
Experimente um código mais objetivo.
Exemplo:
| Código: |
Dm.Tabela.First;
while not Dm.Tabela.Eof do
begin
if (Dm.tabela.AsFloat > 0) then
begin
vPrest.comp.Add.xNome:=Dm.tabelaDESCRICAO.AsString;
vPrest.comp.Add.vComp:=StrToFloat(FormatFloat('##0.00', Dm.tabelaVALOR.AsFloat));
end;
Dm.Tabela.Next;
end;
|
Verifique se o seu campo/field está com valores maiores que zero (0,00)
| Código: | | if (Dm.tabela.AsFloat > 0) then |
Esse seu componente também, vPrest.
Verifique no restante do código-fonte se existe, ou se você não está esquecendo, algum comando para mandar gravar no arquivo.
Espero que tenha ajudado!
Abraços |
|
| Voltar ao Topo |
|
 |
thaine Membro Junior

Registrado: Segunda-Feira, 4 de Junho de 2012 Mensagens: 352
|
Enviada: Seg Ago 19, 2013 8:33 am Assunto: |
|
|
Obrigada pela atenção tiago.prs
eu ja debuguei a aplicação sim, ele entra nesse while corretamente.
Bom é o seguinte:
quando vou emitir um cte essas informações aparecem espalhadas na área de composição de valores por exemplo
Nome valor Nome Valor Nome Valor
teste 0,00 20,00 teste2
45,00
deveriam aparecer dessa forma
Nome Valor Nome Valor Nome Valor
teste 45,00 teste2 20,00
e essas informações não aparecem na xml, e tbm não aparecem ao emitir uma 2ª via da DACTE.
Alguém por favor pode me ajudar ? |
|
| Voltar ao Topo |
|
 |
thaine Membro Junior

Registrado: Segunda-Feira, 4 de Junho de 2012 Mensagens: 352
|
Enviada: Seg Ago 19, 2013 8:53 am Assunto: |
|
|
Consegui resolver meu problema dessa forma:
if (tabelaVALOR.AsFloat > 0) then begin
with vPrest.comp.Add do
begin
xNome:=tabelaDESCRICAO.AsString;
vComp:=StrToFloat(FormatFloat('##0.00', tabelaVALOR.AsFloat));
end;
end;
Agora funciona perfeitamente
Até a Proxima |
|
| Voltar ao Topo |
|
 |
|