Posts Tagged ‘DataGrid’

Flex Erro #1034: Não é possível converter DragManagerImpl em IDragManager

Dias atrás me deparei com o erro abaixo:

Não é possível converter DragManagerImpl em IDragManager

Esse erro ocorria sempre ao acessar dois módulos que tivessem DataGrid com eventos de clique. Acessando o primeiro módulo, tudo funcionava perfeitamente, porém ao acessar o segundo módulo e clicar em qualquer parte da DataGrid, o erro surgia.

Após várias pesquisas acabei encontrando a solução.

Portanto caso você esteja passando por essa dificuldade, mude o modo de linkagem do framework para Runtime Shared Library (RSL), disponível em:

Project Properties | Flex Build Path | Library Path | Framework linkage

Conforme na imagem abaixo:

DragManagerSolution

Pronto, seu projeto agora funcionará perfeitamente.

Divirta-se.

Adobe Flex – Criar colunas dinamicamente na DataGrid

O título pode até não ser chamativo, visto que o Adobe Flex cria automaticamente colunas com base em seu dataProvider como no exemplo abaixo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<mx :Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
</mx><mx :Script>
	< ![CDATA[
		[Bindable]
		private var dp:Array = [
			{ symbol: "ADBE", name: "Adobe Systems Inc.", price1: 49.95, price2: 49.95, price3: 49.95, price4: 49.95, price5: 49.95 },
			{ symbol: "MACR", name: "Macromedia Inc.", price1: 49.95, price2: 49.95, price3: 49.95, price4: 49.95, price5: 49.95 },
			{ symbol: "MSFT", name: "Microsoft Corp.", price1: 49.95, price2: 49.95, price3: 49.95, price4: 49.95, price5: 49.95 },
			{ symbol: "IBM", name: "IBM Corp.", price1: 49.95, price2: 49.95, price3: 49.95, price4: 49.95, price5: 49.95 },
			{ symbol: "ADBE", name: "Adobe Systems Inc.", price1: 49.95, price2: 49.95, price3: 49.95, price4: 49.95, price5: 49.95 },
			{ symbol: "MACR", name: "Macromedia Inc.", price1: 49.95, price2: 49.95, price3: 49.95, price4: 49.95, price5: 49.95 }
			];
 
		private function init():void
		{
			dgDado.dataProvider = dp;
		}
	]]>
</mx>
<mx :DataGrid id="dgDado" />

Ou seja, de uma maneira bem simples, temos uma DataGrid com as colunas criadas automaticamente em tempo de execução com o seguinte resultado:

Mas perceba que o resultado obtido não é dos melhores, pois todas as colunas estão com o mesmo tamanho, as células com valores não possuem formatação, em fim, não tem qualquer personalização.

O meu propósito com esse post é compartilhar com você, como criar colunas de uma DataGrid de formata dinâmica com base no DataProvider.

Read the rest of this entry »

Adobe Flex – Exportar Datagrid para Excel

Se você é um desenvolvedor Flex de sistemas gerenciais com consultas ad-hoc como eu, se ainda não precisou, com certeza um dia irá precisar exportar os dados de uma Datagrid para o Microsoft Excel.

Abaixo mostrarei como realizar essa exportação.

Read the rest of this entry »

Modelo de consultas e relatórios ad-hoc no Adobe Flex

Com base no post do Vedovelli, sobre relatórios no Adobe Flex, resolvi postar sobre o assunto, para não tornar a resposta muito extensa no blog dele.

Primeiro vamos pro conceito de consultas ad-hoc:

Bill Inmon conceitua consulta ad-hoc como: “São consultas com acesso casual único e tratamento dos dados segundo parâmetros nunca antes utilizados, geralmente executado de forma iterativa e heurística. Isso tudo nada mais é do que o próprio usuário gerar consultas de acordo com suas necessidades de cruzar as informações de uma forma não vista e com métodos que o levem a descoberta daquilo que procura.”

Read the rest of this entry »

Adobe Flex: Trocar de figura no DataGrid de acordo com o DataProvider

Em um projeto com Adobe Flex precisei alterar a imagem de uma determinada célula no DataGrid de acordo com o valor originado do DataProvider.

Por exemplo, se no DataProvider o campo STATUS vier preenchido com 0 deve ser exibida a imagem off.png, caso contrário, dever ser exibida a imagem on.png.

Após várias pesquisas no Google, fiz uma compilação dos casos semelhantes e cheguei ao resultado que eu desejava.

Abaixo segue o código com essa funcionalidade.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
	<mx:Script>
		<![CDATA[
			[Bindable]
			private var arAlternate:Array = new Array({"STATUS":0},{"STATUS":1},{"STATUS":1},{"STATUS":0},{"STATUS":1},{"STATUS":0});
		]]>
	</mx:Script>
	<mx:DataGrid id="dgAlternate" width="60" dataProvider="{arAlternate}">
	<mx:columns>
		<mx:DataGridColumn headerText='Status'>
			<mx:itemRenderer>
				<mx:Component>
					<mx:Image horizontalAlign="center" width="32" height="32" source="{data.STATUS == 0 ? 'off.png' : 'on.png'}" />
				</mx:Component>
			</mx:itemRenderer>
		</mx:DataGridColumn> 
	</mx:columns>
	</mx:DataGrid>
</mx:Application>

O resultado final obtido foi: