Fórum Fazer loop no clientdataset xml #407743
16/09/2011
0
Como faço para carregar ao mesmo tempo vários xml no clientdataset e se isso tbm é possível.
O que quero fazer: Meu cliente tem 50 arquivos xml correspondente a NFE, já efetuei a transformação no XML Mapper e está carregando corretamente no dbgrid, porém só carrega 1 xml e preciso que carregue vários.
Alguém pode me ajudar, pois preciso solucionar isso na empresa.
Abrigado.
David Sobral
Curtir tópico
+ 0Posts
17/09/2011
Marco Salles
Para utilizar o mesmo clientdataSet , utilize loadfromfile com ele fechado e deposde um open
Gostei + 0
20/09/2011
Gustavo Bretas
Realmente, só um XML por vez, maaassss... rs!
Pq vc ñ cria outro ClientDataSet para comportar os dados que vc precisa?
Daí vc faz um looping na pasta, carregando os xml, e transferindo os dados para o segundo DataSet!
Abraço!
Gostei + 0
29/09/2011
Otavio Pimenta
VAR
VXMLDOC_P1{,VXMLDOC_P2}: txmldocument;
NodeIdentificacao,nodemensagem:ixmlNode;
BEGIN
VXMLDOC_P1.LOADFromfile(FilenameEdit1.FileName);
OU
VXMLDOC_P1.LoadFromFile(C:\PASTA1\pASTA2\teste.xml);
VXMLDOC_P1.Active:=true;
....
....
nodemensagem:= VXMLDOC_P1.DocumentElement.ChildNodes[mensagem].ChildNodes[ansParaOperadora].ChildNodes[conferencia].ChildNodes.FindNode(beneficiario);
if (nodemensagem = nil )then
begin
//FAZ SUAS VALIDAÇOES
END
...
...
if not(nodemensagem = nil) then
begin
//FAZ SUAS VALIDAÇOES
END;
REPEAT
if not(NodeIdentificacao = nil) then
begin
CAMPO1:= NodeIdentificacao.ChildNodes[CAMPO].Text;
CAMPO2:= NodeIdentificacao.ChildNodes[CAMPO].Text;
END;
....E POR AI VAI
until nodemensagem = nil;
É ISSO, ESPERO QUE AJUDE
Gostei + 0
29/09/2011
Otavio Pimenta
VAR
VXMLDOC_P1{,VXMLDOC_P2}: txmldocument;
NodeIdentificacao,nodemensagem:ixmlNode;
BEGIN
VXMLDOC_P1.LOADFromfile(FilenameEdit1.FileName);
OU
VXMLDOC_P1.LoadFromFile(C:\PASTA1\pASTA2\teste.xml);
VXMLDOC_P1.Active:=true;
....
....
nodemensagem:= VXMLDOC_P1.DocumentElement.ChildNodes[nó1].ChildNodes[nó2].ChildNodes[nó3].ChildNodes.FindNode(no4);
if (nodemensagem = nil )then
begin
//FAZ SUAS VALIDAÇOES
END
...
...
if not(nodemensagem = nil) then
begin
//FAZ SUAS VALIDAÇOES
END;
REPEAT
if not(NodeIdentificacao = nil) then
begin
CAMPO1:= NodeIdentificacao.ChildNodes[CAMPO].Text;
CAMPO2:= NodeIdentificacao.ChildNodes[CAMPO].Text;
END;
....E POR AI VAI
until nodemensagem = nil;
É ISSO, ESPERO QUE AJUDE
Gostei + 0
11/10/2011
David Sobral
Gostei + 0
21/03/2013
David Sobral
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)