Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.01.2010, 05:54
don_Lino вне форума Посмотреть профиль Отправить личное сообщение для don_Lino Найти все сообщения от don_Lino
  № 1  
Ответить с цитированием
don_Lino

Регистрация: Jan 2010
Сообщений: 13
По умолчанию вопрос по AdvancedDataGrid, dataProvider и itemRenderer

Нужно что бы в столбце Task и Worker были данные из SimpleFlatData.as, а к adcg1:AdvancedDataGridColumnGroup применить itemRenderer который зарисовывать к-во ячеек данной группы, беря значение к-ва (Duration) в SimpleFlatData.as
Подскажите как это можно реализовать?
trainingProject.mxml :
Код AS3:
?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="init()">
<mx:Script>
	<![CDATA[
		import mx.controls.Button;
		import mx.controls.AdvancedDataGrid;
		import MyGrpdDG;
 
	private function init():void
	{ 
		var my_GrpdDG: MyGrpdDG = new MyGrpdDG();
		var myDG: AdvancedDataGrid = new AdvancedDataGrid();
		myDG = my_GrpdDG.createDG();
		addChild(myDG);
	}
	]]>
</mx:Script>
</mx:Application>
SimpleFlatData.as :
Код AS1/AS2:
[Bindable]
private var dpFlat:ArrayCollection = new ArrayCollection([
  {Task:"Task 1", Worker:"Worker 1", Duaration:2}, 
  {Task:"Task 2", Worker:"Worker 2", Duaration:4},  
  {Task:"Task 3", Worker:"Worker 3", Duaration:4},  
  {Task:"Task 4", Worker:"Worker 1", Duaration:1},  
  {Task:"Task 5", Worker:"Worker 2", Duaration:3}, 
  {Task:"Task 6", Worker:"Worker 3", Duaration:2},  
  {Task:"Task 7", Worker:"Worker 1", Duaration:5}, 
  {Task:"Task 8", Worker:"Worker 2", Duaration:4},  
  {Task:"Task 9", Worker:"Worker 3", Duaration:4}, 
  {Task:"Task 10", Worker:"Worker 2", Duaration:3}
]);
и MyGrpdDG.as :
Код AS1/AS2:
package
{
	import mx.collections.*;
	import mx.controls.*;
	import mx.controls.advancedDataGridClasses.*;
	import mx.core.UIComponent;
	import mx.collections.ArrayCollection;
	include "SimpleFlatData.as";
 
	public class MyGrpdDG extends UIComponent
	{
		public function MyGrpdDG():void
		{
		}
 
		public function createDG():AdvancedDataGrid
		{
			var ac:ArrayCollection;
			var gc:GroupingCollection;
			var ad:AdvancedDataGrid;
 
			gc = new GroupingCollection();
			gc.source = ac;
 
			var grouping:Grouping = new Grouping();
			grouping.fields = new Array(new GroupingField("Date"));
			gc.grouping = grouping;
 
			var column1:AdvancedDataGridColumn = new AdvancedDataGridColumn("Задача");
			column1.dataField = "Task"; 
			var column2:AdvancedDataGridColumn = new AdvancedDataGridColumn("Сотрудник");
			column2.dataField = "Worker";
 
			var adcg1:AdvancedDataGridColumnGroup = new AdvancedDataGridColumnGroup("Время");
			adcg1.dataField = "Time";
			var i:int;
			var columnD:AdvancedDataGridColumn = new AdvancedDataGridColumn("");
			for ( i = 0; i < 23; i++)
			{
					columnD = new AdvancedDataGridColumn(i+"");
					columnD.width = 25;
					columnD.sortable = false;
					adcg1.children.push(columnD);
			}
 
			ad = new AdvancedDataGrid();
			ad.groupedColumns = new Array(column1, column2, adcg1);
			return(ad);
		}
 
	}
}

Старый 21.01.2010, 11:53
BeDLiNt вне форума Посмотреть профиль Отправить личное сообщение для BeDLiNt Найти все сообщения от BeDLiNt
  № 2  
Ответить с цитированием
BeDLiNt
 
Аватар для BeDLiNt

Регистрация: Mar 2008
Адрес: Moscow
Сообщений: 311
Отправить сообщение для BeDLiNt с помощью ICQ Отправить сообщение для BeDLiNt с помощью Skype™
Не понятно что вы хотите получить.
__________________
2+2=5

Старый 21.01.2010, 14:03
don_Lino вне форума Посмотреть профиль Отправить личное сообщение для don_Lino Найти все сообщения от don_Lino
  № 3  
Ответить с цитированием
don_Lino

Регистрация: Jan 2010
Сообщений: 13
Цитата:
Сообщение от BeDLiNt Посмотреть сообщение
Не понятно что вы хотите получить.
Не занаю как в данном случае применить dataProvider что бы в ячеках отображалось содержимое. И каким образом привязять itemRenderer к группе столбцов adcg1.

Старый 21.01.2010, 14:32
BeDLiNt вне форума Посмотреть профиль Отправить личное сообщение для BeDLiNt Найти все сообщения от BeDLiNt
  № 4  
Ответить с цитированием
BeDLiNt
 
Аватар для BeDLiNt

Регистрация: Mar 2008
Адрес: Moscow
Сообщений: 311
Отправить сообщение для BeDLiNt с помощью ICQ Отправить сообщение для BeDLiNt с помощью Skype™
То что вы не знаете как сделать я понял. А что вы хотите чтобы отображалось в массе этих столбцов? Данных для них всего одно как я понял(это Duaration), а ячеек 23 штуки. Вы хотите чтобы количество закрашенных ячеек было равным Duaration? Или как?
__________________
2+2=5

Старый 21.01.2010, 17:01
don_Lino вне форума Посмотреть профиль Отправить личное сообщение для don_Lino Найти все сообщения от don_Lino
  № 5  
Ответить с цитированием
don_Lino

Регистрация: Jan 2010
Сообщений: 13
Цитата:
Сообщение от BeDLiNt Посмотреть сообщение
То что вы не знаете как сделать я понял. А что вы хотите чтобы отображалось в массе этих столбцов? Данных для них всего одно как я понял(это Duaration), а ячеек 23 штуки. Вы хотите чтобы количество закрашенных ячеек было равным Duaration? Или как?
Совершенно верно! Но и еще есть первые два столбца Task и Worker, в которых тоже должны быть внесены данные.
Вопрос может и глупый, но я только изучаю flex. Есть свойства dataProvider и itemRenderer, но как правильно сделать что бы это все работало, так как пытался ничего не работало =(

Старый 21.01.2010, 17:38
BeDLiNt вне форума Посмотреть профиль Отправить личное сообщение для BeDLiNt Найти все сообщения от BeDLiNt
  № 6  
Ответить с цитированием
BeDLiNt
 
Аватар для BeDLiNt

Регистрация: Mar 2008
Адрес: Moscow
Сообщений: 311
Отправить сообщение для BeDLiNt с помощью ICQ Отправить сообщение для BeDLiNt с помощью Skype™
Вот так:

MyGrpdDG.as :
Код AS3:
package
{
	import mx.collections.*;
	import mx.controls.*;
	import mx.controls.advancedDataGridClasses.*;
	import mx.core.ClassFactory;
	import mx.core.UIComponent;
 
	include "SimpleFlatData.as";
 
	public class MyGrpdDG extends UIComponent
	{
		public function MyGrpdDG():void
		{
		}
 
		public function createDG():AdvancedDataGrid
		{
			var ac:ArrayCollection;
			var gc:GroupingCollection;
			var ad:AdvancedDataGrid;
 
			gc = new GroupingCollection();
			gc.source = ac;
 
			var grouping:Grouping = new Grouping();
			grouping.fields = new Array(new GroupingField("Date"));
			gc.grouping = grouping;
 
			var column1:AdvancedDataGridColumn = new AdvancedDataGridColumn("Задача");
			column1.dataField = "Task";
 
 
			var column2:AdvancedDataGridColumn = new AdvancedDataGridColumn("Сотрудник");
			column2.dataField = "Worker";
 
			var adcg1:AdvancedDataGridColumnGroup = new AdvancedDataGridColumnGroup("Время");
			adcg1.dataField = "Duaration";
			var i:int;
			var columnD:AdvancedDataGridColumn = new AdvancedDataGridColumn("");
 
			for ( i = 0; i < 23; i++)
			{
				columnD = new AdvancedDataGridColumn(i+"");
				columnD.itemRenderer = new ClassFactory(DurationItemRenderer);
				columnD.width = 25;
				columnD.sortable = false;
				adcg1.children.push(columnD);
			}
 
			ad = new AdvancedDataGrid();
			ad.groupedColumns = new Array(column1, column2, adcg1);
			return(ad);
		}
 
	}
}
DurationItemRenderer.as :
Код AS3:
package {
 
	import mx.controls.Label;
	import mx.controls.dataGridClasses.*;
	import mx.controls.listClasses.IListItemRenderer;
	import mx.core.IFactory;
 
	public class DurationItemRenderer extends Label implements IFactory, IListItemRenderer {
 
		public function DurationItemRenderer(){
			super();
		}
 
		public function newInstance():*{
			return new DurationItemRenderer();
		}
 
		override public function set data(value:Object):void
		{
			if(value != null)
			{
				//super.data = value;
				if(DataGridListData(listData).dataField < value.Duaration)
					this.opaqueBackground = 0xFF0000;
				else
					this.opaqueBackground = 0x000000;
			}
		}
	}
 
}
__________________
2+2=5

Старый 21.01.2010, 17:49
don_Lino вне форума Посмотреть профиль Отправить личное сообщение для don_Lino Найти все сообщения от don_Lino
  № 7  
Ответить с цитированием
don_Lino

Регистрация: Jan 2010
Сообщений: 13
Огромнейшее спасибо!! =)

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:41.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
advanceddatagrid , dataProvider , itemrenderer

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 15:41.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.