Matheus, eu vou postar um código aqui da forma que eu uso em um sistema meu.
//Codigos Flex
package br.com.infinitum.cotaprodutos.models.vo
{
import mx.collections.ArrayCollection;
import util.IComparable;
[RemoteClass(alias="vo.cotacaoVO")]
public class cotacaoVO implements IComparable
{
public function get identifier():String
{
return String(id);
}
[Bindable]
public var id:int;
[Bindable]
public var status:String;
[Bindable]
public var nome:String;
[Bindable]
public var categoriaproduto:int;
[Bindable]
public var usuario:int;
//Collection
[Bindable]
public var produtocotacao:ArrayCollection = new ArrayCollection();
}
}
//Datagrid que exibe cotações e produtos
<mx:AdvancedDataGrid id="cotaGrd" height="80%" width="98%" x="0"
borderColor="#e3e3e3"
color="0x323232"
initialize="{grid.refresh()}" alternatingItemColors="[#ffffff,#9FB5AB]">
<mx:dataProvider>
<mx:GroupingCollection id="grid">
<mx:grouping>
<mx:Grouping>
<mx:GroupingField name="nomecotacao"/>
</mx:Grouping>
</mx:grouping>
</mx:GroupingCollection>
</mx:dataProvider>
<mx:columns>
<mx:AdvancedDataGridColumn dataField="nomecotacao" headerText="Cotação"
sortable="false"/>
<mx:AdvancedDataGridColumn labelFunction="status_labelFunc" width="70"
dataField="status" headerText="Status" sortable="false"/>
<mx:AdvancedDataGridColumn width="200"
dataField="produto" headerText="Nome Produto"/>
<mx:AdvancedDataGridColumn dataField="descricao" headerText="Descrição do
Produto"/>
<mx:AdvancedDataGridColumn labelFunction="hidezero_labelFunc" width="100"
dataField="quantidade" headerText="Quantidade"/>
<mx:AdvancedDataGridColumn width="50" textAlign="center"
sortable="false">
<mx:itemRenderer>
<mx:Component>
<renderer:iconsRenderer visibility="{data.idproduto}"
click="{outerDocument.showDetalhes(data.children)}"/>
</mx:Component>
</mx:itemRenderer>
</mx:AdvancedDataGridColumn>
</mx:columns>
</mx:AdvancedDataGrid>
Em um método do component de cotações eu pego o resultEvent do meu
remoteObject e gravo no provider da grid.
// VO do php
<?php
class cotacaoVO
{
public $id;
public $status;
public $nome;
public $categoriaproduto;
public $usuario;
//collection
public $produtocotacao;
public $_explicitType = "vo.cotacaoVO";
}
?>
Note que eu usei um advancedDatagrid.
Mas que isso não tenho como fazer
2010/3/30 Matheus <[email protected]>
> Então Paulo eu ja fiz isso, ja coloquei um array no vo do paciente, e
> tenho a saida que postei em um post acima pelo amfphp, sai a estrutura
> certinha, so que nao consigo mostrar isso no dataGrid, apenas nao sai,
> nao consigo acessar tb, testei dando um alert e nao foi.
>
> Alert.show(e.result[0].telefones.idTelefone as String); Como faço pra
> conseguir acessar o array que esta dentro do Objeto, pensei que
> conseguiria acessar igual em java, mas não foi.
>
> Abs e vlw pela dica
>
> On 30 mar, 17:52, Paulo Augusto Teixeira <[email protected]>
> wrote:
> > Meu amigo,
> >
> > teu vo de pacientes tem que receber um array, segue um exemplo básico de
> > como iniciar
> >
> > class TelefoneVO
> > {
> > $idTelefone;
> > $telefone;
> >
> > }
> >
> > class PacienteVO
> > {
> > $idPaciente;
> > $nome;
> > $telefones;
> >
> > }
> >
> > na hora de setar
> >
> > while($paciente ...){
> > $dadosPaciente[i] = new PacienteVO();
> > $dadosPaciente[i]->idPaciente = $paciente['idPaciente'];
> > $dadosPaciente[i]->nome = $paciente['nome'];
> >
> > while($telefone ...){
> > $dadosPaciente[i]->telefones[y] = new TelefoneVO();
> > $dadosPaciente[i]->telefones[y]->IdTelefone =
> > $telefone['IdTelefone'];
> > $dadosPaciente[i]->telefones[y]->telefone = $telefone['telefone'];
> > }
> >
> > }
> >
> > return $dadosPaciente;
> > 2010/3/30 Matheus <[email protected]>
> >
> >
> >
> > > A minha saida no amfphp está assim oh:
> >
> > >http://www.batuquetecnologias.com.br/matheus/imagens/exemplo.jpg
> >
> > > Talvez fique mais fácil pra quem tem costume.
> >
> > > Abs
> >
> > > On 30 mar, 15:08, Matheus <[email protected]> wrote:
> > > > @bruno bg não funcionou.
> >
> > > > @Cleber irei ler com mais calma mas acredito que exista outra forma
> de
> > > > fazer do que aquela ali, pois aquela ali está fazendo um procedimento
> > > > muito complexo pra uma coisa trivial.
> >
> > > > Preciso resolver isso, senão terei que voltar a implementação sem o
> > > > uso de VO.
> > > > =/
> >
> > > > Abs
> >
> > > > On 30 mar, 13:46, Cleber Kellmane <[email protected]> wrote:
> >
> > > > > Matheus,
> >
> > > > > Dá uma olhada neste post do grupo.
> >
> > > > >http://www.mail-archive.com/[email protected]/msg09955.html
> >
> > > > > Att,
> >
> > > > > 2010/3/30 bruno bg <[email protected]>
> >
> > > > > > coloque no seu dataprovider do seu DataGrid do telefone, assim:
> > > > > > dataProvider="{pacienteVO.telefoneVO}"
> >
> > > > > > bruno bg
> >
> > > > > > Em 30 de março de 2010 10:44, Matheus <[email protected]>
> escreveu:
> >
> > > > > > Então amigo eu já fiz isso, só que pensei de outra fora no VO do
> > > > > >> paciente eu criei a variavel telefones do tipo TelefoneVO. E ate
> deu
> > > > > >> certo a saida no amfphp, so que na hora de pegar o resultado la
> no
> > > > > >> flex não funcionou, penso que porque o retorno do amfphp saiu
> assim:
> >
> > > > > >> nomepaciente = "xxxxx";
> > > > > >> idadePaciente= xx;
> > > > > >> telefones
> > > > > >> idTelefone = x;
> > > > > >> telefone = "xxx xxxx";
> >
> > > > > >> Como faria pra minha funcao de result conseguir pegar os campos
> > > > > >> idTelefone, telefone e os outros e jogar no grid?
> >
> > > > > >> Abs
> >
> > > > > >> On 30 mar, 09:17, Vilmar Spies <[email protected]> wrote:
> > > > > >> > Bem,
> > > > > >> > penso eu que qdo vc tem um relacionamento 1:N seria algo assim
> > > > > >> > class TelefoneVO
> > > > > >> > {
> > > > > >> > var codigo;
> > > > > >> > var telefone;}
> >
> > > > > >> > class PacienteVO
> > > > > >> > {
> > > > > >> > var codigo;
> > > > > >> > var nome;
> > > > > >> > var telefones = array();
> >
> > > > > >> > }
> >
> > > > > >> > Acho que está seria uma implementação mais real do seu
> problema
> > > > > >> ("sugestões
> > > > > >> > são bem vindas":) ), pois o seu *paciente é que tem o telefone
> e
> > > não o
> > > > > >> > telefone que tem o paciente*
> >
> > > > > >> > --
> > > > > >> > Vilmar Spies
> >
> > > > > >> > ADOTE ESTA CAMPANHA:
> >
> > > > > >> > 1. Apague o meu e-mail e o meu nome.
> > > > > >> > 2. Apague também os endereços dos amigos antes de reenviar.
> > > > > >> > 3. Encaminhe como cópia oculta (Cco ou Bcc) aos SEUS
> > > destinatários.
> > > > > >> > Agindo sempre assim dificultaremos a disseminação de vírus,
> spams
> > > e
> > > > > >> banners.
> >
> > > > > >> --
> > > > > >> 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 emhttp://
> > > groups.google.com/group/flexdev
> >
> > > > > >> To unsubscribe from this group, send email to flexdev+
> > > > > >> unsubscribegooglegroups.com or reply to this email with the
> words
> > > "REMOVE
> > > > > >> ME" as the subject.
> >
> > > > > > --
> > > > > > 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 emhttp://
> > > groups.google.com/group/flexdev
> >
> > > > > > To unsubscribe from this group, send email to flexdev+
> > > > > > unsubscribegooglegroups.com or reply to this email with the
> words
> > > "REMOVE
> > > > > > ME" as the subject.
> >
> > > > > --
> > > > > Cleber Kellmane
> > > > > E-mail: kellmane[at]gmail[dot]com
> > > > > MSN : kellmane[at]hotmail[dot]com
> > > > > Cel : + 55 81 9996-5043
> > > > > LinkedIn:http://www.linkedin.com/in/kellmane
> > > > > Twitter:http://twitter.com/kellmane
> >
> > > --
> > > 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 emhttp://groups.google.com/group/flexdev
> >
> > > To unsubscribe from this group, send email to flexdev+
> > > unsubscribegooglegroups.com or reply to this email with the words
> "REMOVE
> > > ME" as the subject.
> >
> > --
> > Paulo A. Teixeira
> > Adobe Certified Expert Flex 3 with AIR
> > Adobe Certified Expert Rich Internet Application v1.0
> > Adobe Certified Expert ColdFusion 8
> > --
> > Blog:http://www.pauloteixeira.blog.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
>
> To unsubscribe from this group, send email to flexdev+
> unsubscribegooglegroups.com or reply to this email with the words "REMOVE
> ME" as the subject.
>
--
Paulo A. Teixeira
Adobe Certified Expert Flex 3 with AIR
Adobe Certified Expert Rich Internet Application v1.0
Adobe Certified Expert ColdFusion 8
--
Blog: http://www.pauloteixeira.blog.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
To unsubscribe, reply using "remove me" as the subject.