Não essa é a regra que vc vai utilizar quando clicar no botão baixar, pra pegar os que estão com a propriedade baixar marcada.
No checkbox do itemrenderer vc mantém o mesmo código que já postou aqui. 2010/9/30 Ednei <[email protected]> > Fábio Goll, > > Vamos ver se eu pegei o espírito da coisa. > > Por exemplo: > > // eu declaro um ArrayCollection Temporário > [Bindable] private var lista_selecionados:ArrayCollection; > > // aqui eu declaro sua funcao com algumas adaptacoes > private function getItensSelecionados():ArrayCollection > { > var selected: ArrayCollection = new ArrayCollection(); > > for each( var item: * in dataProvider ) > { > if( item.selecionado ) > { > selected.addItem( item ); > } > } > return selected; > } > > // entao no evento click() do itemRenderer eu faço > <mx:itemRenderer> > <mx:Component> > <mx:CheckBox click="outerDocument.passaValores(event)" > click="{lista_selecionados = getItensSelecionados}"/> > </mx:Component> > </mx:itemRenderer> > > O que me diz? > > Valeu! > > On 30 set, 14:38, Fábio Goll <[email protected]> wrote: > > Segue uma função que eu fiz pra um componente meu, que tem checkbox no > > datagrid. > > > > Troque a propriedade selecionado por baixar e dataProvider pela sua > coleção > > do grid. > > > > protected function getItensSelecionados(): ArrayCollection { > > var selected: ArrayCollection = new ArrayCollection(); > > for each( var item: * in dataProvider ){ > > trace("selecionado: "+ item.selecionado ); > > if( item.selecionado ) > > selected.addItem( item ); > > > > } > > return selected; > > } > > > > 2010/9/30 Ednei <[email protected]> > > > > > Luiz Nogueira, > > > > > Saquei! Mas ainda estou avaliando as alternativas. Vamos ver o que o > > > Fábio tem pra nós, depois vou comparar a duas e ver qual se encaixa > > > melhor no que eu preciso. > > > > > Valeu pela atenção. > > > > > On 30 set, 14:14, Ednei <[email protected]> wrote: > > > > Fabio Goll, > > > > > > Por incrível que parece, funciona sim. Eu uso outro intemRenderer > > > > idêntico, para fazer funções como excluir vários ítens do dataGrid > que > > > > o usuário marcar. > > > > > > Me predoe a ignorância, mas como se faz esse "for nos itens da > coleção > > > > e pegar os que estão com > > > > baixar == true"? Me parece mais prático. > > > > > > Obrigado > > > > > > On 30 set, 14:05, Fábio Goll <[email protected]> wrote: > > > > > > > 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" > > > > ... > > > > mais » > > -- > 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
