Luis Eduardo, no seu código o que seria essa linha: var temp:XMLList = raiz.response.ContaContabil;
precisamente o ContaContábil até essa linha: var raiz:XML = XML(ev.result.toString()); raiz = raiz.normalize(); meu código está pegando o XML certinho, mas depois disso ele simplesmente some. Att Luis Carlos ----- Original Message ----- From: "Luís Eduardo" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Saturday, March 10, 2007 3:11 AM Subject: [flexdev] Re: ArrayCollection + AhaTTPService O e4x é um dos formatos que o httpservice consegue trabalhar. Esse formato é mais adequado quando se usa xml como resposta do servidor, exatamente do jeito que eu e vc estamos fazendo mesmo. Se não me engano, esse mnemônico "e4x" significa "Ecmascript for XML". É um conjunto de funcionalidades para se trabalhar o xml de forma mais intuitiva. O httpservice funciona melhor usando ele. Eu pelo menos acho. Se tiver um tempo, dê uma lida no artigo que o Michael Labriola escreveu sobre como visualizar dados no datagrid usando xml. Apesar de não ser bem isso que estamos falando aqui agora, a primeira parte do artigo é um ótimo guia do que se consegue fazer usando o e4x. (http://www.adobe.com/devnet/flex/articles/e4x.html ) ( ou essa "seSÇão" no livedocs http://livedocs.macromedia.com/flex/2/docs/00001912.html ) Rapaz... gostei do seu jeito de identar o xml. :) O email sempre detonou a identação...se não for copyrigthed eu vou usar tb ok? abração! Luís Eduardo. Luis Carlos Quinhone escreveu: >Só uma dúvida Luis Eduardo, por padrão, se não for especificado o >HTTPService traz as informações como objeto, tentei usar os outros tipos e >nenhum funcionou >somente o objeto que formato é esse e4x? > >no meu caso as informações saem do php assim: > ><resultado> >....<respostas> >.........<id>10</id> >.........<resp>Ótimo</resp> >.........<voto>15</voto> >.........<unico>1</unico> >....</respostas> ></resultado> > ><resultado> >....<respostas> >.........<id>10</id> >.........<resp>Bom</resp> >.........<voto>19</voto> >.........<unico>2</unico> >....</respostas> ></resultado> > >att > >Quinhone > > > >----- Original Message ----- >From: "Luís Eduardo" <[EMAIL PROTECTED]> >To: <[email protected]> >Sent: Friday, March 09, 2007 5:49 PM >Subject: [flexdev] Re: ArrayCollection + AhaTTPService > > > > > > > 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: <[email protected]> >>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 [email protected] 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 -~----------~----~----~----~------~----~------~--~---
