Fazer loop no clientdataset xml
Pessoal estou com uma dúvida tremenda.
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.
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
Curtidas 0
Respostas
Marco Salles
16/09/2011
Um Xml por vez ...
Para utilizar o mesmo clientdataSet , utilize loadfromfile com ele fechado e deposde um open
Para utilizar o mesmo clientdataSet , utilize loadfromfile com ele fechado e deposde um open
GOSTEI 0
Gustavo Bretas
16/09/2011
E ae David
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!
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
Otavio Pimenta
16/09/2011
adicione um componente txmldocument no form.
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
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
Otavio Pimenta
16/09/2011
adicione um componente txmldocument no form.
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
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
David Sobral
16/09/2011
Obrigado pela pela dica, em breve retorno para informar o resultado.
GOSTEI 0
David Sobral
16/09/2011
Consegui fazer o que estava o loop
GOSTEI 0