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

Responder a