Luiz Nogueira,

Acho que entendi como entendi como funciona a sua função, mas estou
tendo dificuldade em adaptá-la ao que eu tenho.

A dúvida me surgiu em como eu chamarei a função MarcaDesmarcaCHK sendo
o meu ItemRendere um componente esterno.

Veja:

Meu itemRenderer é o arquivo ItemRendererChkBaixar.mxml:
----

<?xml version="1.0" encoding="utf-8"?>
<mx:Box xmlns:mx="http://www.adobe.com/2006/mxml"; paddingLeft="15">

        <mx:Script>
                <![CDATA[
                        import mx.binding.utils.BindingUtils;


                        /*Para entender a necessidade deste método, veja:
                        http://www.vedovelli.com.br/?p=835*/
                        override public function set data(value:Object):void
                        {
                                super.data = value;

                                if(value.baixar == true)
                                {
                                        chkbaixa.selected = true;
                                } else {
                                        chkbaixa.selected = false;
                                }

                                if ( value.Situacao == 'C' )
                                {
                                        chkbaixa.enabled = false;
                                }
                                else
                                {
                                        chkbaixa.enabled =  true;
                                }
                        }

                        private function alterar():void
                        {
                                /* Quando vc manipula a propriedade data, que 
contém o registro do
dataGrid,
                                vc está manipulando diretamente o dataProvider. 
Assim, na hora de
salvar no banco,
                                basta enviar o objeto de volta, com os valores 
atualizados*/
                                data.baixar = chkbaixa.selected;
                        }

                ]]>
        </mx:Script>
        <mx:Binding destination="chkbaixa.selected" source="data.baixar"/>
        <mx:CheckBox id="chkbaixa" change="alterar()" />

</mx:Box>

-------------------

e no meu DataGrid eu tenho:

----------

<mx:DataGrid x="10" y="28" width="939" height="413"
        dataProvider="{lista_financeiro}"
        doubleClickEnabled="true" itemDoubleClick="{preenche_form();}"
        id="dg_financeiro" creationComplete="{chama_lista_financeiro()};"
headerHeight="22">

        <mx:columns>
            <mx:DataGridColumn headerText="B" textAlign="center"
dataField="baixar"
                itemRenderer="br.com.app.component.ItemRendererChkBaixar" 
width="40"/
>
        (...)

----------




On 30 set, 12:08, Luiz Nogueira <[email protected]> wrote:
> Eita que itemrenderer da trabalho mas vou tentar te dar uma força.
>
> Cara parece complexo demais, mas vc tem que verificar o evento q o
> cara ta fazendo
>
> vc cria tipo um arrayTemporario do tipo arraycollection
>
> olha uma funcao que usei uma vez
>
> to te passando a funcao completa aqui e acho q vc vai entender...
>
> public function MarcaDesmarcaCHK(e:Event):void{
>         var obj:Object;
>         var valorTotal:Number;
>         var nValor:String;
>         var nValorTemp:String;
>         var meusDados:SisaBrVo = new SisaBrVo;
>         var index:int;
>         if(Application.application.bBRCHKSelected == true &&
> Application.application.bClicouCheck == false){
>                 EmprestimoSelecionado = 
> SisaBrVo(e.currentTarget.selectedItem);
>                 meusDados.sql_rowid = EmprestimoSelecionado.sql_rowid;
>                 meusDados.cConta = EmprestimoSelecionado.cConta;
>                 meusDados.cNome = EmprestimoSelecionado.cNome;
>                 meusDados.nCpfCgc = EmprestimoSelecionado.nCpfCgc;
>                 meusDados.nMatEmp = EmprestimoSelecionado.nMatEmp;
>                 meusDados.nTParc = EmprestimoSelecionado.nTParc;
>                 meusDados.nValor = EmprestimoSelecionado.nValor;
>                 meusDados.cTipo = EmprestimoSelecionado.cTipo;
>                 meusDados.bSelect = true;
>                 Application.application.nQtdEmpSelecionados++;
>                 nValor =
> formatarAmericano.format(EmprestimoSelecionado.nValor.toString());
>                 nValorTemp =
> formatarAmericano.format(nSomaVlrEmpSelecionados.text.toString());
>                 valorTotal = parseFloat(nValorTemp.toString()) +
> parseFloat(nValor.toString());
>                 nSomaVlrEmpSelecionados.text =
> formatarReal.format(valorTotal.valueOf().toString());
>                 arrayTempDadosSelecionados.addItem(meusDados);
>                 nQtdEmpSelecionados.text =
> Application.application.nQtdEmpSelecionados;
>                 Application.application.bClicouCheck = true;
>         }
>         if(Application.application.bBRCHKSelected == false &&
> Application.application.bClicouCheck == true){
>                 EmprestimoSelecionado = 
> SisaBrVo(e.currentTarget.selectedItem);
>                 Application.application.nQtdEmpSelecionados--;
>                 nValor =
> formatarAmericano.format(EmprestimoSelecionado.nValor.toString());
>                 nValorTemp =
> formatarAmericano.format(nSomaVlrEmpSelecionados.text.toString());
>                 valorTotal = parseFloat(nValorTemp.toString()) -
> parseFloat(nValor.toString());
>                 nSomaVlrEmpSelecionados.text =
> formatarReal.format(valorTotal.valueOf().toString());
>                 procura_index(EmprestimoSelecionado.sql_rowid,
> arrayTempDadosSelecionados);
>                 nQtdEmpSelecionados.text =
> Application.application.nQtdEmpSelecionados;
>                 Application.application.bClicouCheck = false;
>         }
>
> }
>
> no seu gid vc colocar assim
>
> click="MarcaDesmarcaCHK(event)"
>
> Se nao entender tento te explicar melhor blz?
>
> tem outra funcao que uso dentro do meu itemrenderer
>
> public function passaValores(e:Event):void{
>         if(e.target.selected == true){
>                 //Alert.show('Marcou');
>                 Application.application.bBRMarcado = true;
>                 Application.application.bBRCHKSelected = true;
>                 Application.application.bClicouCheck = false;
>         } else{
>                 //Alert.show('Desmarcou');
>                 Application.application.bBRMarcado = false;
>                 Application.application.bBRCHKSelected = false;
>                 Application.application.bClicouCheck = true;
>         }
>
> }
>
> meu itemredere ficou assim:
>
>                                                 <mx:DataGridColumn 
> headerText=" " textAlign="center"
> dataField="bSelect" width="20" editable="true" rendererIsEditor="true"
> editorDataField="selected">
>                                                         <mx:itemRenderer>
>                                                                 <mx:Component>
>                                                                         
> <mx:CheckBox click="outerDocument.passaValores(event)"
> selected="{data.bSelect}"/>
>                                                                 
> </mx:Component>
>                                                         </mx:itemRenderer>
>                                                 </mx:DataGridColumn>
>
> no codigo mxml reescrevi a funcao set data ficou assim:
>
>         <mx:Script>
>                 <![CDATA[
>                         [Bindable] private var _selected:Boolean
>
>                         override public function set data(value:Object):void{
>                                 super.data = value;
>                                 if(data.bSelect == true){
>                                         _selected = true;
>                                 }else{
>                                         _selected = false;
>                                 }
>                         }
>
>                 ]]>
>         </mx:Script>
>
> qualquer coisa estamos ai...
>
> On 30 set, 11:01, Ednei <[email protected]> wrote:
>
> > Entendi, a idéia é boa... mas como seria feito? Digo, na prática, como
> > seria o código?
>
> > On 30 set, 10:48, Kleber Gracia <[email protected]> wrote:
>
> > > Jogue para outro arrayCollection os event do clique no grid, ao ir 
> > > clicando
> > > vai adicionando, e ao abrir a telinha passo os dados para outro array
> > > [Bindable], espero que dê certo.
>
> > > At.
> > > Kleber Gracia Soares
> > > Equipe Galaxyz trabalhando para vocêwww.galaxyz.com.br
> > > Telefone: |44| 3233-2039
> > > Cel.: |44| 9960-0298 - Tim
> > > Msn: [email protected]
> > > Skype: kleber.gracia
> > > Email: [email protected]
> > > "Tudo posso naquele que me fortalece!" (Fl 4,13).
>
> > > Em 30 de setembro de 2010 10:39, Ednei <[email protected]> escreveu:
>
> > > > Olá galera,
>
> > > > Eu tenho um DataGrid que neste tem um itemRenderer que é um checkBox,
> > > > que setado true ou false pela coluna "baixar".
>
> > > > Quando eu marco e desmarco o checkbox, naturalmente, a coluna baixar
> > > > do ArrayCollection é alterarda na llinha correspondente.
>
> > > > O que eu preciso é o seguinte: Quando o usuário marcar algumas linhas
> > > > do DataGrid através do checkBox  e clicar no Button "BAIXAR", eu
> > > > preciso abrir uma janelinha PopUp que nesta averá um DataGrid populado
> > > > com as linhas marcadas do DataGrid anterior.
>
> > > > Alguém tem uma idéa de como fazer isso?
>
> > > > ps: Eu uso Flex3 + AMFPHP.
>
> > > > --
> > > > 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
>
>

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