Ola pessoal Estou tentando fazer um menu para escolher quais colunas da grid. Já tenho ate ele funcionando mais quando coloco dentro de um mdi ele não funciona. Se algem poder me ajudar. Abaixo estão os 3 fonts.
<--Meu componente para selecionar a coluna da grid--> <?xml version="1.0" encoding="utf-8"?> <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" > <mx:Script> <![CDATA[ import mx.controls.DataGrid; import mx.utils.ObjectUtil; import mx.controls.dataGridClasses.DataGridColumn; [Bindable] private var _dataGrid:DataGrid; [Inspectable(category="WebInovacoes")] public function set dataGrid (value:DataGrid):void{ if (value!=null){ if (_dataGrid==null){ _dataGrid= value; } } } private function coluna(evento:Event):void{ var estadoAtual:Boolean; var child:DataGridColumn; var i:int=0; var colunas:Array=_dataGrid.columns; for (i; i<=colunas.length-1;i++){ child= colunas[i]; if (child.headerText==evento.target.label){ estadoAtual= child.visible; child.visible= !estadoAtual; continue; break; } } } ]]> </mx:Script> <mx:PopUpButton label="Escolha suas colunas" > <mx:popUp> <mx:Tile direction="horizontal" verticalGap="2" left="0" right="0" bottom="0" backgroundColor="white" > <mx:Repeater id="list" dataProvider="{_dataGrid.columns}"> <mx:CheckBox id="checkbox" label="{list.currentItem.headerText}" selected="{list.currentItem.visible}" change="coluna(event)" width="120"/> </mx:Repeater> </mx:Tile> </mx:popUp> </mx:PopUpButton> </mx:Canvas> <-- aqui esta a grid --> <?xml version="1.0" encoding="utf-8"?> <mx:VBox xmlns="br.com.webinovacoes.componentes.flexmdi.*" xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:utils="br.com.webinovacoes.componentes.utils.*" width="600" height="480" xmlns:grid="br.com.webinovacoes.componentes.grid.*" xmlns:formularios="br.com.webinovacoes.componentes.formularios.*" creationComplete="inicia();" > <mx:Script source="../../../componentes/utils/lib.as"/> <utils:Conexao id="cn"/> <mx:Script> <![CDATA[ import mx.controls.Alert; import br.com.webinovacoes.eventos.financeiro.EventContextCP; import br.com.webinovacoes.entity.financeiro.ContasPagarVO; private var vo:ContasPagarVO; private var evtContextCP:EventContextCP; [Bindable] private var cm:ContextMenu; /** * Inicia o Form */ private function inicia():void{ //Cria instancia this.vo = new ContasPagarVO; cn.service.destination="ContasPagarService"; // Atualiza Grid cn.service.todos(); // Novo Lançamento var cmNovoLancamento:ContextMenuItem = new ContextMenuItem("Novo lançamento",true); cmNovoLancamento.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, cmNovoLancamento_menuItemselect); // Editar Lançamento var cmEditarLancamento:ContextMenuItem = new ContextMenuItem("Editar lançamento"); cmEditarLancamento.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, cmEditarLancamento_menuItemselect); // Estornar var cmEstornarLancamento:ContextMenuItem = new ContextMenuItem("Estornar lançamento"); cmEstornarLancamento.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, cmEstornarLancamento_menuItemselect); // Baixar Lançamento var cmBaixarLancamento:ContextMenuItem = new ContextMenuItem("Baixar lançamento"); cmBaixarLancamento.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, cmBaixarLancamento_menuItemselect); // Antecipar Data de vencimento do titulo var cmAnteciparLancamento:ContextMenuItem = new ContextMenuItem("Antecipar vencimento",true); //Context Menu cm = new ContextMenu(); cm.hideBuiltInItems(); cm.customItems.push(cmNovoLancamento); cm.customItems.push(cmEditarLancamento); cm.customItems.push(cmEstornarLancamento); cm.customItems.push(cmBaixarLancamento); cm.customItems.push(cmAnteciparLancamento); dgGrid.contextMenu=cm; } /** * Evento NovoLançamento */ private function cmNovoLancamento_menuItemselect(evt:ContextMenuEvent):void{ evtContextCP = new EventContextCP("ContextMenuCPNovoLancamento"); systemManager.dispatchEvent( evtContextCP ); } /** * Evento EditarLançamento */ private function cmEditarLancamento_menuItemselect(evt:ContextMenuEvent):void{ if (dgGrid.selectedItem==null){ Alert.show("Favor selecionar algum registro"); }else{ if(dgGrid.selectedItem.status=="B"){ Alert.show("Atualização de títulos, somente para titulos em aberto. Status A"); }else{ evtContextCP = new EventContextCP("ContextMenuCPEditarLancamento"); evtContextCP.vo = dgGrid.selectedItem.valueOf(); systemManager.dispatchEvent( evtContextCP ); } } } private function cmEstornarLancamento_menuItemselect(evt:ContextMenuEvent):void{ if (dgGrid.selectedItem==null){ Alert.show("Favor selecionar algum registro"); }else{ if(dgGrid.selectedItem.status=="B"){ evtContextCP = new EventContextCP("ContextMenuCPEstornarLancamento"); evtContextCP.vo = dgGrid.selectedItem.valueOf(); systemManager.dispatchEvent( evtContextCP ); }else{ Alert.show("Estorno de títulos, somente para titulos em baixados. Status B"); } } } private function cmBaixarLancamento_menuItemselect(evt:ContextMenuEvent):void{ if (dgGrid.selectedItem==null){ Alert.show("Favor selecionar algum registro"); }else{ if(dgGrid.selectedItem.status=="A"){ evtContextCP = new EventContextCP("ContextMenuCPBaixarLancamento"); evtContextCP.vo = dgGrid.selectedItem.valueOf(); systemManager.dispatchEvent( evtContextCP ); }else{ Alert.show("Baixa de títulos, somente para titulos em aberto. Status A"); } } } /** * Atualiza Grid */ private function atualizaGrid():void{ } ]]> </mx:Script> <mx:Canvas width="100%" height="64"> <formularios:Formulario id="fr"> <formularios:Campo x="10" y="6" label="Data Inicial"> <formularios:CampoData/> </formularios:Campo> <formularios:Campo x="190" y="6" label="Data Final"> <formularios:CampoData width="91"/> </formularios:Campo> <mx:RadioButtonGroup id="Status" /> <mx:RadioButton x="10" y="36" label="Todas" groupName="Status"/ > <mx:RadioButton x="77" y="36" label="Abertas" groupName="Status"/> <mx:RadioButton x="152" y="36" label="Baixadas" groupName="Status"/> <mx:RadioButton x="236" y="36" label="Canceladas" groupName="Status"/> <mx:RadioButton x="333" y="36" label="Conciliadas" groupName="Status"/> </formularios:Formulario> <mx:LinkButton x="500" y="20" label="Pesquisar" click="atualizaGrid()"/> </mx:Canvas> <mx:ApplicationControlBar id="menuGrid" width="100%" dock="true"> <mx:Spacer width="100%" /> <grid:SeletorColuna dataGrid="{dgGrid}"/> </mx:ApplicationControlBar> <grid:DataGridFilter id="dgGrid" width="100%" height="100%" dataProvider="{cn.service.todos.lastResult}" y="35" resizableColumns="true" > <grid:columns> <mx:DataGridColumn headerText="ID" dataField="id" visible="false"/ > <mx:DataGridColumn headerText="Status" width="22" dataField="status"/> <mx:DataGridColumn headerText="Data" dataField="data" labelFunction="labelFunctionData"/> <grid:DataGridColumnFilter headerText="Pessoa" dataField="pessoa" filterRenderer="br.com.webinovacoes.componentes.grid.BeginWithFilterRenderer" width="50"/> <mx:DataGridColumn headerText="Vencimento" dataField="vencimento" labelFunction="labelFunctionData" width="85" /> <mx:DataGridColumn headerText="Venc. Real" dataField="vencimentoReal" labelFunction="labelFunctionData" width="85" /> <grid:DataGridColumnFilter headerText="Valor" dataField="valor" filterRenderer="br.com.webinovacoes.componentes.grid.RelacionalFilterRenderer" width="65" textAlign="right"/> <grid:DataGridColumnFilter headerText="Natureza" dataField="natureza" filterRenderer="br.com.webinovacoes.componentes.grid.BeginWithFilterRenderer"/ > <grid:DataGridColumnFilter headerText="Origem" dataField="filial" filterRenderer="br.com.webinovacoes.componentes.grid.BeginWithFilterRenderer"/ > </grid:columns> </grid:DataGridFilter> </mx:VBox> <-- e aqui o mdi --> <?xml version="1.0" encoding="utf-8"?> <MDIWindow xmlns="br.com.webinovacoes.componentes.flexmdi.containers.*" xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:utils="br.com.webinovacoes.componentes.utils.*" width="630" height="480" title="Contas a pagar" xmlns:grid="br.com.webinovacoes.componentes.grid.*" xmlns:formularios="br.com.webinovacoes.componentes.formularios.*" creationComplete="inicia();" xmlns:contaspagar="br.com.webinovacoes.apps.financeiro.contaspagar.*"> <mx:ApplicationControlBar id="menu" width="100%"> <mx:LinkBar id="linkbar" dataProvider="{telas}"/> </mx:ApplicationControlBar> <mx:Script source="../../../componentes/utils/lib.as"/> <mx:ViewStack id="telas" creationPolicy="all" height="100%" width="100%"> <!-- Lançamento --> <mx:Panel label="Lançamento"> <contaspagar:CPLancamento id="lancamento"/> </mx:Panel> <!-- Baixas --> <contaspagar:CPBaixas id="baixas" label="Baixas" width="100%"/> <!-- Estorno --> <mx:Panel label="Estorno" title="Estorno" > <contaspagar:CPEstorno id="estorno" /> </mx:Panel> <!-- Consulta --> <contaspagar:CPConsulta id="Consulta" label="Consultas" /> <!-- Bordero --> <contaspagar:CPBordero id="Bordero" label="Borderô" width="100%"/> <!-- Relatorios --> <mx:Panel label="Relatórios"> <contaspagar:CPRelatorios id="Relatorios"/> </mx:Panel> </mx:ViewStack> <utils:Conexao id="cn"/> <mx:Script> <![CDATA[ import br.com.webinovacoes.eventos.financeiro.EventContextCP; /** * Inicia o Form */ private function inicia():void{ // systemManager.addEventListener("ContextMenuCPNovoLancamento",eventoCPNovoLancamento); systemManager.addEventListener("ContextMenuCPEditarLancamento",eventoCPEditarLancamento); systemManager.addEventListener("ContextMenuCPEstornarLancamento",eventoCPEstornarLancamento); systemManager.addEventListener("ContextMenuCPBaixarLancamento",eventoCPBaixarLancamento); } // Evento para novo Lançamento [Inspectable(category="WebInovacoes")] private function eventoCPNovoLancamento(event:EventContextCP):void{ lancamento.fr.limparForm(); telas.tabIndex = 0; linkbar.selectedIndex =0; } // Evento para Editar Lançamento [Inspectable(category="WebInovacoes")] private function eventoCPEditarLancamento(event:EventContextCP):void{ telas.selectedIndex = 0; lancamento.atualizaForm(event.vo); } // Evento para Estornar lançamento [Inspectable(category="WebInovacoes")] private function eventoCPEstornarLancamento(event:EventContextCP):void{ telas.selectedIndex = 2; estorno.atualizaForm(event.vo); } // Evento para Baixar lançamento [Inspectable(category="WebInovacoes")] private function eventoCPBaixarLancamento(event:EventContextCP):void{ telas.selectedIndex = 1; baixas.atualizaForm(event.vo); } ]]> </mx:Script> </MDIWindow> --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
