José, Não consigo debugar a aplicação. Motivo: estou usando querystring na url para informar alguns dados de usuário (como um login), e gravar os dados neste usuário. Acontece que a aplicação inicia sem estes dados, e tenho que colocá-las manualmente no meu ambiente de teste (na publicação, estes dados virão de outro sistema), e, quando dou refresh na página web, o debug finaliza...
Airton 2009/12/8 Airton Toyansk <[email protected]> > Sim, eu tenho esta classe, tb chamada de Pmod > E nela eu tenho > package Pmod { > [RemoteClass(alias="Pmod.Pmod")] > > public class Pmod { > public var atributoX:Number; > } > } > > Tentei ainda > private function alertDg():void > { > > var pmod:Pmod = dg.dataProvider; > Alert.show(pmod.idPlan.toString()); // idPlan é o atributo que eu > quero recuperar > } > > E exibiu o seguinte erro: > 1118: Implicit coercion of a valeu with static type Object to a possibly > unrelated type com.radix.utils:Pmod. > > Vou debugar... > > Obrigado! > > > > 2009/12/8 José Alexandre D'Abruzzo Pereira <[email protected]> > >> A marcação seria algo como : >> >> package vo { >> [RemoteClass(alias="vo.Pmod")] >> public class Pmod { >> public var atributoX:Number; >> } >> } >> >> sendo que você tem que substituir vo.Pmod pelo namespace completo da sua >> classe no C#. >> >> >> 2009/12/8 José Alexandre D'Abruzzo Pereira <[email protected]> >> >>> Como vc tá usando .net, dá pra vc ter uma classe Pmod no flex. >>> É só marcar ela como sendo a mesma classe do .net. >>> >>> No alert, vc teria então: >>> >>> var pmod:Pmod = dg.dataProvider; >>> Alert.show(pmod.atributo_que_vai_exibir); >>> >>> Algo assim... Isto ajuda, mas não é necessário. Se você debugar, já vai >>> descobrir onde está errado. >>> >>> >>> 2009/12/8 Airton Toyansk <[email protected]> >>> >>>> Tentei outra coisa. >>>> >>>> Inseri o seguinte código: >>>> private function alertDg():void >>>> >>>> { >>>> var obj: Object = dg.dataProvider; >>>> Alert.show(obj.toString()); >>>> } >>>> >>>> E o Alert me exibiu a seguinte mensagem: >>>> [object Pmod] >>>> >>>> Sendo que Pmod é o nome do meu source no RemoteObject (das classes no >>>> Flex e no .Net). >>>> É o mesmo resultado em usar >>>> private function alertDg():void >>>> { >>>> Alert.show(dg.dataProvider.toString()); >>>> } >>>> >>>> Isso ajuda a descobrir o que pode ser? >>>> >>>> Obrigado! >>>> >>>> 2009/12/8 José Alexandre D'Abruzzo Pereira <[email protected]> >>>> >>>>> Sem ver o código todo fica difícil de saber o que é. >>>>> >>>>> Debuga tanto o método result do remote quanto antes de exibir o alert. >>>>> Às vezes a propriedade tem algum erro de digitação. Debugando dá pra ver >>>>> direito como está retornando do remote. >>>>> >>>>> >>>>> 2009/12/8 Airton Toyansk <[email protected]> >>>>> >>>>>> Se insiro a verificação, não exibe Alert (e não dá erro). >>>>>> Se comento o if, exibe o erro: >>>>>> *Error: Unknown Property: 'X'* >>>>>> >>>>>> Ou seja, este objeto não tem o atributo X... >>>>>> >>>>>> >>>>>> 2009/12/8 José Alexandre D'Abruzzo Pereira <[email protected]> >>>>>> >>>>>> private function exibeX(): void { >>>>>>> var obj: Object = dg.dataProvider; >>>>>>> if (obj.hasProperty("X")) // Como ele retorna um object, é bom >>>>>>> verificar se aquele objeto tem o atributo X. >>>>>>> Alert.show(obj["X"]); // isto é o equivalente a obj.X; >>>>>>> } >>>>>>> >>>>>>> 2009/12/8 Airton Toyansk <[email protected]> >>>>>>> >>>>>>> E se eu carregar como um Object, dessa forma: >>>>>>>> dg.dataProvider = e.result *as* Object; >>>>>>>> Ele exibe no DataGrid do mesmo jeito. Mas como exibir no Alert >>>>>>>> (estou com dificuldade mesmo sendo um objeto)? >>>>>>>> >>>>>>>> Obrigado! >>>>>>>> >>>>>>>> Airton Toyansk >>>>>>>> >>>>>>>> 2009/12/7 José Alexandre D'Abruzzo Pereira <[email protected]> >>>>>>>> >>>>>>>> Pode ser feito como vc fez. Aí na hora de dar o Alert é só fazer >>>>>>>>> ArrayCollection(dg.dataProvider) e pegar o ArrayCollection e indexa >>>>>>>>> de zero. >>>>>>>>> Vc vai ter um Object. Aí é só pegar a propriedade X do Object: >>>>>>>>> obj.X ou obj["X"]. >>>>>>>>> >>>>>>>>> Se vc recebe sempre um objeto, será que é necessário colocar num >>>>>>>>> ArrayCollection? Não dá pra colocar direto num objeto? Isto também >>>>>>>>> acaba >>>>>>>>> dependendo do retorno do seu método na sua linguagem server-side. Se >>>>>>>>> estiver >>>>>>>>> retornando um ArrayList ou algo assim, tudo bem. Se estiver retornando >>>>>>>>> apenas um objeto, acho que não compensa colocar num ArrayCollection. >>>>>>>>> >>>>>>>>> Tem muitas formas de fazer o que você quer. Só que tem que escolher >>>>>>>>> a melhor para deixar o swf mais leve e não sobrecarregar o cliente =) >>>>>>>>> >>>>>>>>> 2009/12/7 Airton Toyansk <[email protected]> >>>>>>>>> >>>>>>>>> Na verdade, resolveria se este registro fosse exibido em um >>>>>>>>>> TextInput. Mas não consegui carregá-lo num campo de texto no >>>>>>>>>> creationComplete, só num DataGrid, dessa forma: >>>>>>>>>> >>>>>>>>>> public function getDataR(e:ResultEvent):void >>>>>>>>>> { >>>>>>>>>> dg.dataProvider = e.result as ArrayCollection; >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> Se estivesse num campo de texto, estaria resolvido mandar para o >>>>>>>>>> Alert... Como posso fazer carregar num TextInput no método chamado >>>>>>>>>> no result >>>>>>>>>> do RemoteObject? >>>>>>>>>> Vou tentar também a opção no DataGrid. >>>>>>>>>> >>>>>>>>>> Obrigado! >>>>>>>>>> >>>>>>>>>> Airton Toyansk >>>>>>>>>> 2009/12/6 José Alexandre D'Abruzzo Pereira <[email protected]> >>>>>>>>>> >>>>>>>>>>> Se é apenas uma linha tem que ser um DataGrid para exibir estes >>>>>>>>>>> valores? >>>>>>>>>>> >>>>>>>>>>> De qualquer forma, é só fazer no creationComplete da sua >>>>>>>>>>> aplicação, um método que pegue a primeira posição do dataProvider do >>>>>>>>>>> DataGrid, pegar o atributo X e dar o Alert. >>>>>>>>>>> >>>>>>>>>>> Se os dados estiverem vindo de um RemoteObject ou de um >>>>>>>>>>> WebService, tem que ser no método chamdo no result destas operações. >>>>>>>>>>> >>>>>>>>>>> Se não der certo ainda, posta o seu código pra gente ver... >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> 2009/12/6 Airton Toyansk <[email protected]> >>>>>>>>>>> >>>>>>>>>>>> @José, >>>>>>>>>>>> >>>>>>>>>>>> Quero poder exibir logo que carrego a aplicação. >>>>>>>>>>>> No meu datagrid, tenho apenas uma coluna e uma linha (sempre). E >>>>>>>>>>>> quero exibir este valor no Alert assim que o usuário entre, ou >>>>>>>>>>>> seja, sem >>>>>>>>>>>> selecionar o registro (por isso minha dificuldade, pq não posso >>>>>>>>>>>> usar o >>>>>>>>>>>> selectedItem). >>>>>>>>>>>> >>>>>>>>>>>> Airton Toyansk >>>>>>>>>>>> >>>>>>>>>>>> 2009/12/6 José Alexandre D'Abruzzo Pereira <[email protected]> >>>>>>>>>>>> >>>>>>>>>>>>> Mas em qual momento você quer exibir o Alert? >>>>>>>>>>>>> >>>>>>>>>>>>> Uma possibilidade seria no click da grid, selecionando uma >>>>>>>>>>>>> linha. Aí neste método é só pegar dataGrid.selectedItem, que >>>>>>>>>>>>> retorna um >>>>>>>>>>>>> Object. Este é o objeto que popula aquela linha do grid. Aí é só >>>>>>>>>>>>> acessa o >>>>>>>>>>>>> atributo que popula a coluna X. Algo como: >>>>>>>>>>>>> >>>>>>>>>>>>> var obj: Object = dataGrid.selectedItem; >>>>>>>>>>>>> Alert.show(obj.X); >>>>>>>>>>>>> >>>>>>>>>>>>> 2009/12/6 Airton Toyansk <[email protected]> >>>>>>>>>>>>> >>>>>>>>>>>>> Pessoal, >>>>>>>>>>>>>> >>>>>>>>>>>>>> Existe alguma maneira de recuperar determinado dado de um >>>>>>>>>>>>>> datagrid vindo de um BD e exibí-lo num Alert? >>>>>>>>>>>>>> Algo como "exiba dado da coluna X e linha Y"? >>>>>>>>>>>>>> >>>>>>>>>>>>>> Agradeço as respostas. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Airton Toyansk >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> José Alexandre D'Abruzzo Pereira >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> José Alexandre D'Abruzzo Pereira >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> José Alexandre D'Abruzzo Pereira >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> José Alexandre D'Abruzzo Pereira >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>> >>>>> >>>>> -- >>>>> José Alexandre D'Abruzzo Pereira >>>>> >>>>> >>> >>> >>> -- >>> José Alexandre D'Abruzzo Pereira >>> >> >> >> >> -- >> José Alexandre D'Abruzzo Pereira >> >> >> >> > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
