Nossa, dei bobeira mesmo... o seguinte

Esse problema ocorre comigo por que ele não reconhece a variável topo, logo
não reconhece topo1. Para contornar eu faço event ser do tipo ResultEvent
exemplo:

private function resultHandler(event:ResultEvent):void {
        var resultado:ObjectProxy = event.result as ObjectProxy;
        var topo:ObjectProxy = resultado.topo as ObjectProxy;

        if ( topo.hasProperty("topo1") && topo.topo1 != null ) {

                if ( topo.topo1 is ArrayCollection) {
                 //arrDadosGrid = event.result.topo.topo1;
                    arrDadosGrid = event.result.topo.topo1 as
ArrayCollection;
                } else if (event.result.topo.topo1 is ObjectProxy) {
                        arrDadosGrid = new ArrayCollection();
                        var topo1:ObjectProxy = event.result.topo.topo1 as
ObjectProxy;
                        arrDadosGrid.add(topo1);
                      //arrDadosGrid = new
 
ArrayCollection(ArrayUtil.toArray(event.result.topo.topo1));
                } else if (event.result.topo == null ||
event.result.topo.topo1 == null ){
                        Alert.show("Cadastro de notícias vazio!");

                }
        }


Quando eu separo as variáveis em ObjectProxy é possível fazer referência a
uma "propriedade", um objeto, que pode ou não existir dentro do objeto alvo,
no nosso caso topo1 pode ou não existir dentro de topo;

Engraçado que não era pra estar dando esse erro, ele aceita fazer a
referência completa sem ter que separar.
Dá uma olhada nas suas IMPORTAÇÕES, exclui todas e refaz os includes.


-----Mensagem original-----
De: [email protected] [mailto:[EMAIL PROTECTED] Em nome de
carlos_online
Enviada em: terça-feira, 13 de maio de 2008 10:50
Para: flexdev
Assunto: [flexdev] Re: RES: [flexdev] AHHH... VOU ENDOIDAR COM O FLEX!!!
=PPPP


Daniel,

Em primeiro lugar, obrigado pela ajuda. Seu metodo parece ser bem
interessante pelo fato de vc assinar a classe dos objetos colocando um
"AS". Legal...

Infelizmente isso nao corrigiu meu problema... =P

O problema acontece justamente na primeira linha do resultHandler do
HTTPService, ou seja, essa aqui ó:

                  if (event.result.topo.topo1 is ArrayCollection) {

O erro eh: TypeError: Error #1010: A term is undefined and has no
properties.

Eu estava lendo que esse erro tem a ver com um elemento de um array
que nao esta bem determinado. Engracado eh que eu fiz uma checagem
tripla em meu XML e ele parece estar ok, de acordo com a amostra que
enviei para vcs.  Inclusive, rodei o php pelo browser e rodou
belizinha, retornando o que eu preciso.

Quanto a debugar: pois eh amigo!! Eu estava debugando... por isso
mesmo cheguei a conclusao que o problema esta ocorrendo nessa linha
acima.

Agora pessoal... o engracado eh o seguinte... logo quando eu monto a
tela da primeira vez eu chamo o httpservice assim:

        httpRemoteDados.send({evento: 'select',
                                          table: 't009_conteudo',
                                          colunas: "T009_CONTEUDO_IU,
T009_MENU, T009_TEXTO,
T009_DATA_PUBLICAR, T009_TITULO_NOTICIA, T009_STATUS ",
                                          where: "where T009_STATUS in
('ISO9001',
'NOTICIAS')",
                                          orderby : 'order by T009_MENU',
                                          tipoXML:"noticias"});


Percebam que o parametro chamado EVENTO agora eh "select"... dai o php
vai montar uma query de selecao com o restante dos parametros. Notem
tambem que eu nao tenho o parametro sqlGrid que eu tenho quando estou
fazendo insert, update ou delete.

Essa chamada acima TAMBEM PASSA pelo resultHandler demonstrado acima.
E FUNCIONA!!! Ele tras os dados BONITNHOS!!! O problema no
resultHandler so esta acontecendo quando eu faco insert, update e
delete. ELE FAZ o que eh mandado, ou seja, INSERE, DELETA e
ATUALIZA... mas na hora de pegar o XML gerado pelo sqlGrid, da
problema.

Eh engracado... me parece que depois q o resultHandler roda da
primeira vez ele POLUI o event.result e fica dando esse pepino...


E ai?? ALGUEM PODE ME AJUDAR PELO AMOR DE DEUS?? rsrsrs


Abraco a todos...

Qualquer ajuda sera bem vinda.


On 13 maio, 08:44, Daniel Negri <[EMAIL PROTECTED]> wrote:
> Eu não entendi direito seu código mas faria da seguinte forma:
>
> if (event.result.topo.topo1 is ArrayCollection) {
>         //arrDadosGrid = event.result.topo.topo1;
>         arrDadosGrid = event.result.topo.topo1 as ArrayCollection;} else
if (event.result.topo.topo1 is ObjectProxy) {
>
>         arrDadosGrid = new ArrayCollection();
>         var topo1:ObjectProxy = event.result.topo.topo1 as ObjectProxy;
>         arrDadosGrid.add(topo1);
>
>         //arrDadosGrid = new
> ArrayCollection(ArrayUtil.toArray(event.result.topo.topo1));} else if
(event.result.topo == null || event.result.topo.topo1 == null ){
>
>         Alert.show("Cadastro de notícias vazio!");
>
> }
>
> Verifique que eu sempre "assino" um objeto antes de atribuir utilizando o
> "as ArrayCollection" ou "as ObjectProxy".
>
> Sugestão, utiliza o Sabre-AMF funciona que é uma beleza e você pode
trabalha
> com os objetos do PHP dentro do Flex, que tal?
>
> Espero que dê certo, era essa a dúvida?
> -Daniel Negri
>
> -----Mensagem original-----
> De: [email protected] [mailto:[EMAIL PROTECTED] Em nome de
> carlos_online
> Enviada em: segunda-feira, 12 de maio de 2008 23:23
> Para: flexdev
> Assunto: [flexdev] AHHH... VOU ENDOIDAR COM O FLEX!!! =PPPP
>
> Hehehe... eh bem por ai...
>
> Amigos... preciso da ajuda de quem eh "NINJA" e ja passou pelo meu
> problema... estou me estressando muito aqui com o flex e estava
> funcionando o codigo q vou postar abaixo.
>
> Em primeiro lugar estou obtendo o famigerado erro:
> TypeError: Error #1010: A term is undefined and has no properties.
>
> Quando acontece: quando mando atualizar dados do meu banco de dados.
>
> Olhem so... eu tenho um HTTPService que eh usado pra enviar comandos
> para um php assim:
>
>                 httpRemoteDados.send({evento: 'update',
>                                                   table: 't009_conteudo',
>                                                   colunas: " T009_TEXTO =
> '<![CDATA[" +
> txtTexto.htmlText + "]]>', T009_STATUS = '" + cbTipoConteudo.text +
> "', T009_DATA_PUBLICAR = '" + dtfDataPublicar.text.substr(6,4) +
> dtfDataPublicar.text.substr(3,2) + dtfDataPublicar.text.substr(0,2) +
> "', T009_TITULO_NOTICIA = '" + txtTituloNoticia.text + "'",
>                                                   where: "where
> T009_CONTEUDO_IU = " +
> dgGridDados.selectedItem.codigo,
>
> tipoxml:"noticias",
>                                                   sqlGrid:sqlGrid });
>
> Percebam que eu saio preenchendo os parametros que la no meu PHP vao
> montar o SQL de UPDATE (pois esse eh o tipo de evento - primeiro
> parametro). Ate ai, beleza... ele ate atualiza super bem.
>
> Notem que o ultimo parametro se chama: sqlGrid. Ele eh o SQL generico
> do grid... ou seja, depois q o httpservice rodar, la no resultHandler
> dele eu vou pegar um XML que sera resultado desse sqlGrid. So pra
> ilustrar, eis o conteudo do meu sqlGrid:
>
> select T009_CONTEUDO_IU, T009_MENU, T009_TEXTO, T009_DATA_PUBLICAR,
> T009_TITULO_NOTICIA, T009_STATUS from t009_conteudo
>
> e aqui esta o XML resultante:
>
> <topo>
>
> <topo1>
> <codigo>8</codigo>
> <menu>NOTICIAS</menu>
> <texto>Texto de teste</texto>
> <status>NOTICIAS</status>
> <datapublicacao>2008-05-01</datapublicacao>
> <titulo>Preço dispara</titulo>
> </topo1>
>
> </topo>
>
> Ate aqui, beleza, ne??
>
> Bem... olhem o meu resultHandler:
>
>                         if (event.result.topo.topo1 is ArrayCollection) {
>                                 arrDadosGrid = event.result.topo.topo1;
>                         } else if (event.result.topo.topo1 is ObjectProxy)
{
>                                 arrDadosGrid = new
> ArrayCollection(ArrayUtil.toArray(event.result.topo.topo1));
>                                 if (arrDadosGrid.length == 0){
>                                         alert.info("Cadastro de notícias
> vazio!");
>                                 }
>                         }
>
> O engracado eh que da o erro 1010 logo na PRIMEIRA linha do meu
> resultHandler...
>
> Alguem sabe me explicar o porque?
>
> DESCULPEM o jornal, mas creio que assim bem explicadinho eh mais facil
> pra vcs me ajudarem, ne?? hehehe
>
> Abraco a todos...
>
> Qualquer ajuda sera bem vinda.
>
> Atenciosamente,
>
> Carlos E. Pereira
> [EMAIL PROTECTED]://www.ioweb.com.br


--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Responder a