Como faço para copiar elementos do TreeView
Boa tarde!
Carreguei um arquivo XML no TreeView, como faço para copiar os elementos
de uma determinada raiz ou todas para Edit.text.
a minha intenção e copiar para o banco de dados.
Obrigado.
Henrique
11 67253401
Henrique Rocha
Curtidas 0
Respostas
Rodrigo Mourão
22/10/2009
Olá Henrique,
Se você conseguiu ler um XML e colocar numa TreeView então ja fez a pior parte. Porque ao inves de querer pegar o conteudo da treeview para colocar no EDit na hora que vc ler o XML ja não colocar o conteudo no Edit.
Acho que fica mais fácil, não acha ???
Mude seua rotina, ao inves de colocar na treeview leia direto para o Edit !!!
Abs!!1
Se você conseguiu ler um XML e colocar numa TreeView então ja fez a pior parte. Porque ao inves de querer pegar o conteudo da treeview para colocar no EDit na hora que vc ler o XML ja não colocar o conteudo no Edit.
Acho que fica mais fácil, não acha ???
Mude seua rotina, ao inves de colocar na treeview leia direto para o Edit !!!
Abs!!1
GOSTEI 0
Rodrigo Mourão
22/10/2009
Olá Amigo, Podemos ajudar em algo mais ????
Att,
Att,
GOSTEI 0
Henrique Rocha
22/10/2009
Bom dia!
Rodrigo,
Embora eu consegui ler o xml esse xml tem algo diferente, pois não consegui ler ele diretamente
para os edit, pois por exemplo posso ter até 99 contratos nesse xml, então eu preciso
somente de um determinado contrato, gostaria de fazer o seguinte:
Quero selecionar um no raiz e o sub-nó filho ou seja os elementos desse nó filho copiar para os edits
pois quando eu selecionar ainda tenho que fazer cálculo com alguns desses campos.
poderia mandar um exemplo de como eu copio o que esta selecionado no TreeView para esses campos?
Obrigado.
Henrique.
GOSTEI 0
Rodrigo Mourão
22/10/2009
Hum, entendi.
Bem vc poderia fazer o seguinte. Criar um arquivo xtr que e um arquivo que transforma um XML em um DataPackt para poder colocar num ClientDataSet. Tem dois artigos artigos que foram publicados um de XML Mapper e um de minha autoria que mostra como criar um xtr para colocar o retorno de um webService em um CDS.
Acho que os dois vao te ajudar.
https://www.devmedia.com.br/articles/viewcomp.asp?comp=14380 ;
(Observe a parte onde uso o XML Mapper para gerar o XTR.)
https://www.devmedia.com.br/articles/viewcomp.asp?comp=12988 ;
https://www.devmedia.com.br/articles/viewcomp.asp?comp=11138
Caso não tenha acesso ao artigos nos avise para liberarmos o acesso.
Att,
Bem vc poderia fazer o seguinte. Criar um arquivo xtr que e um arquivo que transforma um XML em um DataPackt para poder colocar num ClientDataSet. Tem dois artigos artigos que foram publicados um de XML Mapper e um de minha autoria que mostra como criar um xtr para colocar o retorno de um webService em um CDS.
Acho que os dois vao te ajudar.
https://www.devmedia.com.br/articles/viewcomp.asp?comp=14380 ;
(Observe a parte onde uso o XML Mapper para gerar o XTR.)
https://www.devmedia.com.br/articles/viewcomp.asp?comp=12988 ;
https://www.devmedia.com.br/articles/viewcomp.asp?comp=11138
Caso não tenha acesso ao artigos nos avise para liberarmos o acesso.
Att,
GOSTEI 0
Henrique Rocha
22/10/2009
Boa tarde!
no artigo
https://www.devmedia.com.br/articles/viewcomp.asp?comp=11138
tem um exemplo:
procedure TForm1.TreeView1Click(Sender: TObject);
var
NoAtivo : TTreeNode;
begin
if AnsiContainsText(TreeView1.Selected.Text,'codigo') then
begin
NoAtivo := TreeView1.Selected;
Produto := Estoque.Produto[NoAtivo.Parent.IndexOf(NoAtivo)];
with Produto do
begin
edtCodigo.Text := IntToStr(Codigo);
edtNome.Text := Nome;
edtQuantidade.Text := IntToStr(Quantidade);
edtPreco.Text := CurrToStr(Preco);
end;
end
else
begin
Produto := nil;
edtCodigo.Clear;
edtNome.Clear;
edtQuantidade.Clear;
edtPreco.Clear;
end;
btnAtualizar.Enabled := Assigned(Produto);
end;
Neste exemplo ele usa Inteface para se referenciar aos elementos no Nó Selecionado,
no meu caso estou usando os elementos do TreeView já carregados, mas não consigo.
por exemplo:
Pessoa <-- primeiro Nó
+ Cadastro
ID = 1
nome = henrique
+ Parcelas <-- segundo nó esse que eu Selecionei
NU_parcela = 2
Vencimento = '2009-10-10'
Valor = 200.20
Digamos que eu selecionei o nó Parcelas
como eu copio os valores para os edit, seguindo o exemplço acima?
Edit1.text:= ???
Edit2.text:= ???
Edit3.text:= ???
Amigo me ajuda.
Obrigado.
Henrique
GOSTEI 0
Rodrigo Mourão
22/10/2009
Henrique vc leu o artigo sobre o XML Mapper ???
O que eu escrevi onde que carrego um XML para unm ClientDataSet ??? É a maneira mais facil e mais coesa para seu problema. Mas enfim se vc insiste em pegar da treeview então me mande oque vc tem pronto que vejo como posso lhe ajudar.
Mande pelo disco virtual !!!
Att,
O que eu escrevi onde que carrego um XML para unm ClientDataSet ??? É a maneira mais facil e mais coesa para seu problema. Mas enfim se vc insiste em pegar da treeview então me mande oque vc tem pronto que vejo como posso lhe ajudar.
Mande pelo disco virtual !!!
Att,
GOSTEI 0
Henrique Rocha
22/10/2009
Boa dia!
Bem Rodrigo, li o artigo e não consegui fazer mesmo seguindo o exemplo, desculpe!, mas quero fazer de modo mais coerente possivel, por isso peço novamente sua ajuda para isso, estou mandando um exemplo
que consegui fazer usando seu artigo, pode ver se você consegue carregar os dados no DBgrid,
o XML esta em um campo Memo na aplicação.
a aplicação esta em :
C:\XML Mapper\
Mandei o arquivo .RAR no Central do Autor.
XML Mapper.rar
Obrigado.
Henrique
GOSTEI 0
Rodrigo Mourão
22/10/2009
Olá HEnrique,
Mande o link eu nao tenho acesso ao disco virtual.
Veja co,o publicar aqui: https://www.devmedia.com.br/imagens/videos/4/Video%20disco%20virtual.htm
Att,
Mande o link eu nao tenho acesso ao disco virtual.
Veja co,o publicar aqui: https://www.devmedia.com.br/imagens/videos/4/Video%20disco%20virtual.htm
Att,
GOSTEI 0
Henrique Rocha
22/10/2009
Bom dia!
segue link...
http://video.devmedia.com.br/discovirtual/18998/XML%20Mapper.rar
Obrigado.
GOSTEI 0
Rodrigo Mourão
22/10/2009
Olá Henrique.
Eu baixei seu exemplo e tem um detalhe no sue XML. ELe não é um xml comum, ele é um pacote de resposta SOAP. O que chamamos de Envelope.
Sendo assim o arquivo xtr que é gerado não mapeia corretamente o XML fazendo com que os dados não sejam carragados no CDS. Agora é estranho ele ser retornado pelo XML, mas enfim isso tem que ser verificado junto a empresa que disponibliza o serviço.
Para resolver eu tive que editar o XML e tirar o cabeçalho do soap:Envelop mas foi um trabalho manual que fica inviável quando pensamos no sistema como um todo.
Mas para você poder ver funcionando estou te mandando o link com o exemplo funcionando que fiz com o XML que eu editei. Você poderá comparar com o seu XML.
Verifique a documentação do WebService para se certificar que não haja um outro metodo que retorno o XML sem o cabeçalho SOAP, até por que como eu falei, este tipo de retorno não é comum.
No mais estou a disposição !!
Att,
Eu baixei seu exemplo e tem um detalhe no sue XML. ELe não é um xml comum, ele é um pacote de resposta SOAP. O que chamamos de Envelope.
Sendo assim o arquivo xtr que é gerado não mapeia corretamente o XML fazendo com que os dados não sejam carragados no CDS. Agora é estranho ele ser retornado pelo XML, mas enfim isso tem que ser verificado junto a empresa que disponibliza o serviço.
Para resolver eu tive que editar o XML e tirar o cabeçalho do soap:Envelop mas foi um trabalho manual que fica inviável quando pensamos no sistema como um todo.
Mas para você poder ver funcionando estou te mandando o link com o exemplo funcionando que fiz com o XML que eu editei. Você poderá comparar com o seu XML.
Verifique a documentação do WebService para se certificar que não haja um outro metodo que retorno o XML sem o cabeçalho SOAP, até por que como eu falei, este tipo de retorno não é comum.
No mais estou a disposição !!
Att,
GOSTEI 0
Rodrigo Mourão
22/10/2009
Só faltou o link
video.devmedia.com.br/RodrigoCarreiro/Consultoria/XML_Mapper.rar
Sorry !!!!
video.devmedia.com.br/RodrigoCarreiro/Consultoria/XML_Mapper.rar
Sorry !!!!
GOSTEI 0
Henrique Rocha
22/10/2009
Obrigado.
Não consigo dar o Feedback, a pagina esta dando erro.
erro: Erro no formulário de feedback.
Não consigo dar o Feedback, a pagina esta dando erro.
erro: Erro no formulário de feedback.
GOSTEI 0