 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
andreluis78 Aprendiz

Registrado: Domingo, 29 de Agosto de 2010 Mensagens: 135
|
Enviada: Qua Jan 26, 2011 8:20 pm Assunto: laço não acumula itens de venda [RESOLVIDO] |
|
|
Ola galera , boa noite !
Estou com um problema :
estou gerando um xml document pelo delphi para nota fical eletronica.
Gera toda estrutura de tags corretamente , porém na tag 'det' não estou conseguindo gerar todos itens de venda . Esta pegando somente um item .
Alguém pode me ajudar ?
Segue abaixo o código :
//*NodeDetalhe - (TAG det)
nItem := 0;
frmVenda.qryVendaDetalhe.First;
While not frmVenda.qryVendaDetalhe.Eof Do
begin
nItem := nItem + 1;
NodeDetalhe := NodeInfNFe.AddChild('det');
NodeDetalhe.ChildNodes['det'].Attributes['nItem'] := IntToStr(nItem);
//* NodeProd (TAG prod)
NodeProd := NodeDetalhe.ChildNodes['prod'];
qryVendaDetalhe.Locate('VED_PRODUTO',qryProdutoPRO_CODIGO.Value,[]);
NodeProd.AddChild('cProd').Nodevalue := inttostr(frmVenda.qryVendaDetalheVED_PRODUTO.Value);
NodeProd.AddChild('xProd').Nodevalue := frmVenda.qryVendaDetalheProduto.AsString;
frmVenda.qryVendaDetalhe.Next;
//* Salva o TXMLDocument em arquivo XML
xmlDoc.SaveToFile(NodeInfNFe.ChildNodes['infNFe'].Attributes['Id'] + '.xml');
end;
OBS : A TAG DET SEMPRE FICA ASSIM NO ARQUIVO XML GERADO :
- <det>
<det_nitem_1>
- <prod>
<cProd>3</cProd>
<xProd>MONITOR LCD 15</xProd>
</prod>
</det>
</infNFe>
ele nunca gera a tag <det_nitem_2> mesmo que tenha mais que um produto cadastrado nos itens de venda .
Sera que é problema no laço ???
Editado pela última vez por andreluis78 em Qui Fev 10, 2011 11:00 am, num total de 1 vez |
|
Voltar ao Topo |
|
 |
elovegun Novato

Registrado: Sexta-Feira, 30 de Janeiro de 2009 Mensagens: 1
|
Enviada: Sex Jan 28, 2011 10:48 pm Assunto: |
|
|
Olá André, experimenta usar a propriedade afterscroll da Query, pq se tiver mais de um item ela vai passar automaticamente enquanto tiver itens na query, mas antes do afterscroll da um open na query em um botão ou qualquer coisa mas antes do afterscroll tem que dar o open na query +- assim:
procedure DataModule1.QueryItensAfterScroll(DataSet: TDataSet);
begin
NodeDetalhe := NodeInfNFe.AddChild('det');
NodeDetalhe.ChildNodes['det'].Attributes['nItem'] := IntToStr(nItem);
//* NodeProd (TAG prod)
NodeProd := NodeDetalhe.ChildNodes['prod'];
qryVendaDetalhe.Locate('VED_PRODUTO',qryProdutoPRO_CODIGO.Value,[]);
NodeProd.AddChild('cProd').Nodevalue := inttostr(frmVenda.qryVendaDetalheVED_PRODUTO.Value);
NodeProd.AddChild('xProd').Nodevalue := frmVenda.qryVendaDetalheProduto.AsString;
end;
Depois de passar pelo afterscroll ai vc salva o seu xml. |
|
Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|