AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.11.2005, 07:40   #5  
tumev is offline
tumev
Участник
 
30 / 10 (1) +
Регистрация: 12.09.2005
2 AndyD релейшен есть (его не может не быть )
2 Андре добавить индекс на поле ... программно?
Метод fetch отчёта:
Код:
 public boolean fetch()
{
	QueryRun				subQueryRun;
	InventDim			 subInventDim;
	boolean				 rangeNotViewed;
	QueryRun				qRun;
	;
	rangeNotViewed = this.checkRangesNotViewed();
	qRun = new QueryRun(query);
	while (qRun.next())
	{
		InventSum = qRun.get(tableNum(InventSum));
		InventDim = qRun.get(tableNum(InventDim));
		if (rangeNotViewed)
		{
			inventSumDateValueReportDim = null;
			subQueryRun = this.subQueryRun(InventSum, InventDim);
			while (subQueryRun.next())
			{
				subInventDim = subQueryRun.get(tableNum(InventDim));
				if (! inventSumDateValueReportDim)
				{
					inventSumDateValueReportDim = InventSumDateValueReportDim::newParameters(
						inventDimReport.parmPerDate(),
						inventSum.ItemId,
						subInventDim,
						inventDimReport.parmInventDimParm()
						);
				}
				else
				{
					inventSumDateValueReportDim.parmInventDim(subInventDim);
					inventSumDateValueReportDim.init();
				}
			}
		}
		else
		{
			inventSumDateValueReportDim = InventSumDateValueReportDim::newParameters(
				inventDimReport.parmPerDate(),
				inventSum.ItemId,
				inventDim,
				inventDimReport.parmInventDimParm()
				);
		}
		if (this.printLine() && inventSumDateValueReportDim)
		{
			this.send(InventSum);
			this.send(InventDim);
		}
	}
	return true;
}
Как понимаю если и вставлять индекс на поле, то где-нибудь здесь.
Хотя есть ещё метод subQueryRun, но он работает для каждой строки (думаю этот метод не подходит).
Вот код этого метода:
Код:
queryRun subQueryRun(InventSum _inventSum,
					 InventDim _inventDim)
{
	QueryRun				subQueryRun;
	QueryBuildDataSource	subQbdsDim;
	QueryBuildDataSource	subQbdsSum;
	QueryBuildRange		 rangeItemId;
	Counter				 h;
	FieldId				 x,y;
	;
	subQbdsDim = subQuery.dataSourceTable(tableNum(InventDim));
	subQbdsSum = subQuery.dataSourceTable(tableNum(InventSum));
	for (h=1; h<=subQbdsDim.rangeCount(); h++)
	{
		y = fieldName2Id(tableNum(InventDim),subQbdsDim.range(h).name());
		x = InventDim::dim2dimParm(y);
		if (conFind(subFieldList,y))
		{
			if (subQbdsDim.range(h))
			{
				subQbdsDim.addSortField(y);
				subQbdsDim.orderMode(OrderMode::GroupBy);
			}
			if (_inventDim.(y))
				subQbdsDim.range(h).value(_inventDim.(y));
			else
			if ( inventDimReport.parmInventDimParm().(x) && !_inventDim.(y) && !subQbdsDim.range(h).value())
				subQbdsDim.range(h).value(SysQuery::valueEmptyString());
		}
	}
	rangeItemId = subQbdsSum.findRange(fieldNum(InventSum,ItemId));
	if (! rangeItemId)
		subQbdsSum.addRange(fieldNum(InventSum,ItemId));
	rangeItemId.value(strfmt('"%1"',_inventSum.ItemId));
	subQueryRun = new QueryRun(subQuery);
	return subQueryRun;
}
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Запасы в наличии в OLAP AlexeyBP DAX: Функционал 1 16.11.2006 12:46
Фильтрация в форме "В наличии" по агрегатному полю "Физ. наличие" miaa DAX: Программирование 13 29.08.2006 23:45
Сортировка в запросе "В Наличии" linney DAX: Программирование 16 20.01.2005 20:01
Дата физ. проводки Yprit DAX: Функционал 4 17.12.2004 15:29
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 16:02.