Isso aqui não vai funcionar:

/* 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;

Vc teria que usar assim pra gravar no dataprovider:

*super.*data.baixar = chkbaixa.selected;

Pesquise sobre "itemRenderer as itemEditor", vc não precisa ficar
controlando na mão isso.

Depois é só fazer um for nos itens da coleção e pegar os que estão com
baixar == true, simples assim.

2010/9/30 Ednei <[email protected]>

> 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<http://xn--vocwww-kva.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
>



-- 
Fábio Goll
Gtalk/Msn: [email protected]
Twitter: @fabiogoll

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