segue um exemplo.
no mxml:
<mx:HTTPService
id="dsContaContabil"
url="urlaqui"
useProxy="false"
resultFormat="e4x"
method="POST"
contentType="application/x-www-form-urlencoded"
showBusyCursor="true"
result="handleDsContaContabilResult(event)"
fault="handleDsFault(event)"
>
</mx:HTTPService>
<mx:XMLListCollection id="ContaContabilXMLLC"/>
no script:
private function handleDsContaContabilResult( ev:ResultEvent ):void {
var raiz:XML = XML(ev.result.toString());
raiz = raiz.normalize();
// transferindo resultado para o dataprovider do datagrid
var temp:XMLList = raiz.response.ContaContabil;
ContaContabilXMLLC.removeAll();
ContaContabilXMLLC.source = temp;
}
essa é a idéia da coisa. Tive que remover umas linhas pra deixar mais
legivel o foco do problema. (pegar o resultado do httpservice e jogar no
collection)
[]s
Luís Eduardo.
Luis Carlos Quinhone escreveu:
>e como vc pega o resultado do HTTPService e joga no XMLListCollection?
>
>Att
>
>Quinhone
>
>----- Original Message -----
>From: "Luís Eduardo" <[EMAIL PROTECTED]>
>To: <flexdev@googlegroups.com>
>Sent: Friday, March 09, 2007 2:16 PM
>Subject: [flexdev] Re: ArrayCollection + AhaTTPService
>
>
>
>
>
> Quinhone, eu não pude olhar seu codigo fonte inteiro mas já tive um
>erro parecido quando tentei usar esse metodo indexado [0].
> existem alguns jeitos de resolver... o jeito mais correto seria
>testar se existe mesmo tal nó antes de tentar acessá-lo. Tanto os nós
>filhos (aqueles com []) quanto os nós pais da hierarquia.
>lastResult.resultado.respostas. O ideal mesmo era não usar lastResult.
>Melhor seria usar o evento result do HTTPService e lá dentro vc trata e
>monta um arraycollection pro resto da aplicação usar.
> eu aqui uso XMLListCollection.. é um pouco diferente do
>ArrayCollection, mas aqui faço assim:
>
> para testar se existe um nó "Combustivel" dentro de um xml antes de
>enviar o Id a um lookupcombobox.:
>
> if ( xmlIn.Combustivel != undefined ) {
> cbxCombustivelC.selectItemByValue(
>[EMAIL PROTECTED] );
> } else { cbxCombustivelC.clearItem();}
>
> para acessar um item indexado, e testar antes se ele existe mesmo,
>aqui eu uso assim:
>
>if (XMLList(xmlMestre).children().length() > 0) {
> dtEmissaoC.text = XMLList(xmlMestre)[EMAIL PROTECTED];
> }
> else {
> dtEmissaoC.clearItem();
> }
>
>onde o xmlmestre tem o formato:
><Pagamento> varios subitems </Pagamento>
><Pagamento> varios subitems </Pagamento>
><Pagamento> varios subitems </Pagamento>
>
>(perceba que não tem um nó raiz, logo não é um xml válido, mas o XMLList
>sempre tem um nó raiz próprio e o cast já trata isso pra mim.)
>
>
>agora.... sempre existe a solução ultra super rápida is very good POG. :)
>coloca assim:
>
>private function gauge():void {
>try {
>toda a função aqui
>} catch(erro:Error) {
>return
>}
>}
>
>que ninguem mais vai ver o pipino, nem o usuario nem o gerente de
>projeto. Vc resolve o erro em 1 min e ainda leva a fama de que é bom de
>serviço. hehe
>
>eeee mundo cruel.
>
> abração.
>
> Luís Eduardo.
>
>
>
>Luis Carlos Quinhone escreveu:
>
>
>
>>Bom é o seguinte pessoal, não me conformei com um Warning que o flex
>>está me mostrando com relação a minha enquete, então resolvi encará-la.
>>
>>esse warning é porque usei essa linha:
>>{pegaDados.lastResult.resultado.respostas[0].unico}
>>o flex não aceita, executa, mas pro flex é anti-ético, usar respostas[
>>0 ] ele pede pra usar o ArrayCollection.getItemAt(0), então fui a luta
>>atrás dele na documentação, criei usaei, mas não pega o resultado,
>>então se alguém já usaou ou souber usar e puder me ensinar ou mandar
>>algum material eu agradeço.
>>Pq na doocumentação só mostra exemplo simples com Array.
>>
>>Estou tentando usar da seuinte forma:
>>
>> [Bindable]
>> public var myAC:ArrayCollection;
>>
>> public function initData():void {
>> myAC = new
>>ArrayCollection(ArrayUtil.toArray(pegaDados.lastResult.resultado.respostas));
>>//pega dados é o meu HTTPServce
>> }
>>
>>e estou pegando assim os dados:
>>
>><mx:Label x="133" y="10" text="{myAC.getItemAt(1)}" id="lbl1"/>
>>
>>mas não pega nada
>>
>>Att
>>
>>Quinhone
>>
>>
>>
>
>
>
>
>>
>
>
>
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---