|
|
#1 |
|
Axapta Retail User
|
Не могу сформировать строку strFmt
Уважаемые аксаптеры столкнулся с проблемой отображения данных по распред центру.
Есть Descendants, тут происходить наследование ассортимента от родителя(я так понял от root) X++: descendants += strFmt("DESCENDANTS (%1, [Товар] , SELF )",
inventItemRange.getItemRangeCondition()
);X++: queryText +=
strFmt("select ")
+ strFmt("{ %1 } on rows, ", descendants)
+ strFmt("{[Measures].[Номенклатура], [Measures].[Наименование],[Measures].[Конфигурация], ")
+ strFmt("[Measures].[Размер], [Measures].[Цвет], [Measures].[Остаток на начало], [Measures].[Остаток на конец], ")
+ strFmt("[Measures].[Закупки], [Measures].[Продажи], [Measures].[Прочее], ")
+ strFmt("[Measures].[Продажи за период1], [Measures].[Продажи за период2], [Measures].[Продажи за период3], [Measures].[Продажи за период4], [Measures].[Продажи за период5], [Measures].[Продажи за период6],")
+ strFmt("[Measures].[Производство за период2]} on columns ")
+ strFmt("from InventTrans ")
+ strFmt("where [Склады].[(%2) %1],", inventLocation.Name, inventLocation.InventLocationId); ) , а нужно только если у записи склад РЦ, как сделать так чтобы условие where отрабатывалось верно,inventLocation.InventLocationId - РЦ inventLocation.Name - Распред Центр |
|
|
|
|
#2 |
|
MCITP
|
А это вопрос случайно не про Retail?
Или что это вообще такое?
__________________
Zhirenkov Vitaly |
|
|
|
|
#3 |
|
Участник
|
Похоже на прямой запрос в Microsoft Access
Если я правильно вопрос, то вам надо изменить вот это X++: strFmt("where [Склады].[(%2) %1],", inventLocation.Name, inventLocation.InventLocationId);X++: strFmt("where [Склады].[(%2) %1] = '(%3) %4',", inventLocation.Name, inventLocation.InventLocationId, "Распред Центр", "РЦ"); |
|
|
|
|
#4 |
|
Участник
|
Помоему это запрос к ОЛАП на MDX (Multi Dimensional eXpressions). Там в where не нужно знак "=" указывать - указывается просто срез.
Вроде бы там как-то так надо делать: X++: "where [Склады].[Название атрибута1].&[Значение атрибута] AND [Склады].[Название атрибута2].&[Значение атрибута]"Последний раз редактировалось _scorp_; 11.04.2008 в 18:10. |
|
|
|
|
#5 |
|
Axapta Retail User
|
да Scorp прав это OLAP MDX, ща попробуем
Последний раз редактировалось CasperSKY; 14.04.2008 в 07:35. |
|
|
|
|
#6 |
|
Axapta Retail User
|
Не неполучилось, вообще поидеи я же обращаюсь к измерениям, получается, что условия
where [Склады].[Все склады].[Не определена].[(РЦ) Распределительный Центр] должно хватить ... или не так ? Последний раз редактировалось CasperSKY; 14.04.2008 в 09:35. |
|
|
|
|
#7 |
|
Участник
|
Ну по MDX я тоже небольшой специалист и с синтаксисом первый раз напутал. Попробуйте так:
X++: "where ([Склады].[Название атрибута1].&[Значение атрибута], [Склады].[Название атрибута2].&[Значение атрибута])" |
|
|
|
|
#8 |
|
Axapta Retail User
|
Всё там же ... прошлое неверно .... вопрос следующий, есть запрос формирующий строки, вида:
X++: inventTableModulePurch = inventTable.inventTableModulePurch();
while
select
vendItem
join
inventTable
where inventTable.ItemId == vendItem.ItemId
&& inventTable.OLAPItemName
exists join
inventItemRangeRef
where inventItemRangeRef.RangeIdRef == inventTable.ItemRangeIdRef
&& inventItemRangeRef.RangeIdRefParent == inventItemRange.RecId
{
if(inventTableModulePurch.Blocked==NoYes::No)
{
if (descendants)
descendants += ", ";
descendants += strFmt("DESCENDANTS (%1.[%2 - %3], [Товар] , SELF )", // vital 30.09.2004 SPAR
InventItemRange::find(inventTable.ItemRangeId).getItemRangeCondition(),
inventTable.ItemId,
inventTable.OLAPItemName); |
|
|
|
|
#9 |
|
Axapta Retail User
|
Видимо у вас Axapta Retail?
И наверное вы хотите по тем товарам у которых флаг "Заказывается на РЦ"? Потому что причем тут закупки - которые в запросе у вас не фигурируют - не очень понятно. Либо добавить их в запрос и отфильтровать по полю "склад". |
|
|
|
|
#10 |
|
Axapta Retail User
|
Всё пасиб разобрался
|
|
|