Bom dia
   No meu dataGrid tenho uma lista de pagamento e cada pagamento
pertence a um usuario, no entanto não sei como mostrar o nome do
usuario no dataGrid, Tentei fazer assim mas não mostrou nada.
<mx:DataGridColumn headerText="Usuario" dataField="usuario.nome" />
</mx:columns>

Segue abaixo as minhas classes.

package com.digows.artigos.JavaFlex.view.entity
{
        import mx.collections.ArrayCollection;

        
[RemoteClass(alias="com.digows.artigos.JavaFlex.model.entity.Usuario")]
        [Bindable]
        public class Usuario
        {
                public var id:Number;
                public var nome:String;
                public var login:String;
                public var senha:String;

                public var listPagamentos:ArrayCollection;

                public function Usuario()
                {
                        listPagamentos = new ArrayCollection();
                }

        }
}
-----------------------------------------------------------------------------------------
package com.digows.artigos.JavaFlex.view.entity
{
        
[RemoteClass(alias="com.digows.artigos.JavaFlex.model.entity.Pagamento")]
        [Bindable]
        public class Pagamento
        {
                public var id:Number;
                public var dataPagamento:Date;
                public var dataVencimento:Date;
                public var valorPagamento:Number;
                public var valorVencimento:Number;
                public var obs:String;
                public var status:Status;
                public var usuario:Usuario;

                public function Pagamento()
                {
                        status = new Status();
                        usuario = new Usuario();
                        this.status = status;
                }

        }
}

<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml";
        creationComplete="getList()" width="100%" height="100%">

        <mx:Panel id="panelPagamento" layout="absolute" title="Controle de
Pagamento teste" width="100%" height="100%">

                <mx:Label text="Id:" x="10" y="10"/>
                <mx:TextInput id="idTxt" editable="false" enabled="false"
text="{Pagamento(dgPagamento.selectedItem).id}" x="34" y="8"
width="72"/>

                <mx:Label text="Pagamento" x="124" y="10"/>

                <mx:Label text="Vencimento" x="124" y="36"/>
                <mx:DateField id="dtdataPagamento" formatString="DD/MM/YYYY"
        
text="{dateFormatter.format(Pagamento(dgPagamento.selectedItem).dataPagamento)}"
x="201" y="34" width="107" />

        <mx:DateField id="dtdataVencimento" formatString="DD/MM/YYYY"
        
text="{dateFormatter.format(Pagamento(dgPagamento.selectedItem).dataVencimento)}"
x="201" y="8" width="107" />

                <mx:TextInput id="valorPagamentoTxt"
text="{Pagamento(dgPagamento.selectedItem).valorPagamento}" x="375"
y="8" width="133"/>
                <mx:Label text="Valor" x="334" y="10"/>
                <mx:Label text="Valor" x="334" y="36"/>
                <mx:TextInput id="valorVencimentoTxt"
text="{Pagamento(dgPagamento.selectedItem).valorVencimento}" x="375"
y="34" width="133"/>

                <mx:ComboBox id="combo_usuarios" dataProvider="{listUsuarios}"
labelField="nome" x="201" y="64"  width="211" />

                <mx:DataGrid id="dgPagamento"
                        dataProvider="{listPagamentos}" width="100%" 
height="130" y="94">
                        <mx:columns>
                                <mx:DataGridColumn headerText="ID" width="30" 
dataField="id"/>
                                <mx:DataGridColumn headerText="Pagamento"
dataField="dataPagamento" labelFunction="formatDate"/>
                                <mx:DataGridColumn headerText="Valor" 
dataField="valorPagamento" /
>
                                <mx:DataGridColumn headerText="Vencimento"
dataField="dataVencimento" labelFunction="formatDate"/>
                                <mx:DataGridColumn headerText="Valor" 
dataField="valorVencimento"
labelFunction="formatMoney" />
                                <mx:DataGridColumn headerText="Usuario" 
dataField="usuario.nome" /
>
                        </mx:columns>
                </mx:DataGrid>
        <mx:ControlBar horizontalAlign="center">
                <mx:Button label="Novo" id="btNovo" click="setDefault()"
icon="@Embed('icons/novo2.jpg')"/>
                <mx:Button label="Salvar" id="btSalvar" click="save()"
icon="@Embed('icons/save12.jpg')"/>
                <mx:Button label="Excluir" id="btExcluir" click="remove()"
icon="@Embed('icons/delete_lixo_10.jpeg')"/>
        </mx:ControlBar>

        </mx:Panel>

        <mx:CurrencyFormatter id="moneyFormatter" precision="2"
rounding="none"
                decimalSeparatorTo="," thousandsSeparatorTo="."
                useThousandsSeparator="true" useNegativeSign="true"
currencySymbol="$ "
                alignSymbol="left"/>

        <mx:DateFormatter id="dateFormatter" formatString="DD/MM/YYYY" />

        <mx:RemoteObject id="pagamentoService" showBusyCursor="true"
                fault="onFault(event)" destination="pagamentoService">
                <mx:method name="save" result="onResultSave(event)"
fault="onFault(event)"/>
                <mx:method name="remove" result="onResultRemove(event)"
fault="onFault(event)"/>
                <mx:method name="getList" result="onResultGetList(event)"
fault="onFault(event)"/>
                <mx:method name="getListUsuarios"
result="onResultGetListUsuarios(event)" fault="onFault(event)"/>
                <mx:method name="aviso" result="onResultGetList(event)"
fault="onFault(event)"/>
        </mx:RemoteObject>

        <mx:Script>
                <![CDATA[
                        import com.digows.artigos.JavaFlex.view.entity.Usuario;
                        import com.digows.artigos.JavaFlex.view.entity.Status;
                        import 
com.digows.artigos.JavaFlex.view.entity.Pagamento;
                        import 
com.digows.artigos.JavaFlex.view.entity.Pagamento;
                        import mx.collections.ArrayCollection;
                        import mx.rpc.events.ResultEvent;
                        import mx.rpc.events.FaultEvent;
                        import mx.controls.Alert;
                        import mx.utils.ObjectUtil;

                        [Bindable]
                        private var listPagamentos:ArrayCollection;
            [Bindable]
            private var listUsuarios:ArrayCollection;

                        private var pagamento:Pagamento;

                        private var usuario:Usuario;

                        public function save():void
                        {
                                
//Alert.show(combo_usuarios.selectedItem.data.toString());
                                this.pagamento = new Pagamento();
                                this.pagamento.dataPagamento   = 
dtdataVencimento.selectedDate;
                                this.pagamento.dataVencimento   = 
dtdataPagamento.selectedDate;
                                this.pagamento.valorPagamento   = 
Number(valorPagamentoTxt.text);
                                this.pagamento.valorVencimento   =
Number(valorVencimentoTxt.text);
                                this.pagamento.obs = "teste";
                                // Pegar o usuario selecionado
                                this.pagamento.usuario = 
combo_usuarios.selectedItem as Usuario;
                                //Chama o metodo Save do servico "cargoService"
                                pagamentoService.save(pagamento);
                        }

                        private function
getListUsuariosResultHandler(event:ResultEvent):void
                        {
                        listUsuarios = event.result as ArrayCollection;
                        combo_usuarios.dataProvider(listUsuarios);
                        }


                        //Função que será executada após a conclusão do método 
save
                        public function onResultSave(event:ResultEvent):void
                        {
                                status = "Salvo com Sucesso! Ultima ID:
"+Pagamento(event.result).id;
                                getList();
                        }

                        public function remove():void
                        {
                                if (dgPagamento.selectedItem != null) {
                                        pagamento = dgPagamento.selectedItem as 
Pagamento;
                                        pagamentoService.remove(pagamento);
                                } else {
                                        Alert.show("Selecione um Item na 
DataGrid");
                                }
                        }

                        //Função que será executada após a conclusão do método 
remove
                        public function onResultRemove(event:ResultEvent):void
                        {
                                status = "Excluido com Sucesso!";
                                getList();
                        }

                        public function getList():void
                        {
                                pagamentoService.getList();
                                
combo_usuarios.dataProvider(pagamentoService.getListUsuarios());
                                combo_usuarios.dataProvider(getListUsuarios() 
as ArrayCollection)

                        }

                        public function getListUsuarios():void
                        {
                                pagamentoService.getListUsuarios();
                        }

                        //Função que será executada após a conclusão do método 
getList
                        public function onResultGetList(event:ResultEvent):void
                        {
                                listPagamentos = event.result as 
ArrayCollection;
                        }

                        //Função que será executada após a conclusão do método 
getList
                        public function 
onResultGetListUsuarios(event:ResultEvent):void
                        {
                                listUsuarios = event.result as ArrayCollection;
                                combo_usuarios.dataProvider(listUsuarios);
                        }

                        public function setDefault():void
                        {
                                dtdataPagamento.text = "";
                                dtdataVencimento.text = "";
                                valorPagamentoTxt.text = "";
                                valorVencimentoTxt.text = "";

                                listUsuarios = getListUsuarios() as 
ArrayCollection;
                                combo_usuarios.dataProvider(listUsuarios);
                        }

                        //Ocorreu uma falha ao chamar algum servico servico.
                        public function onFault(event:FaultEvent):void
                        {
                                Alert.show(event.fault.message);
                        }

                private function formatDate(item:Object,
column:DataGridColumn):String
                {
                        return dateFormatter.format(item[column.dataField]);
                        }

                        private function formatMoney(item:Object,
column:DataGridColumn):String
                {
                        return moneyFormatter.format(item[column.dataField]);
                        }
                ]]>
        </mx:Script>
</mx:TitleWindow>

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