ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

laço não acumula itens de venda [RESOLVIDO]

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> NFe
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
andreluis78
Aprendiz
Aprendiz


Registrado: Domingo, 29 de Agosto de 2010
Mensagens: 135

MensagemEnviada: Qua Jan 26, 2011 8:20 pm    Assunto: laço não acumula itens de venda [RESOLVIDO] Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
elovegun
Novato
Novato


Registrado: Sexta-Feira, 30 de Janeiro de 2009
Mensagens: 1

MensagemEnviada: Sex Jan 28, 2011 10:48 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> NFe Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB