11.04.2008, 15:37 | #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); inventLocation.InventLocationId - РЦ inventLocation.Name - Распред Центр |
|
11.04.2008, 17:08 | #2 |
MCITP
|
А это вопрос случайно не про Retail?
Или что это вообще такое?
__________________
Zhirenkov Vitaly |
|
11.04.2008, 17:17 | #3 |
Участник
|
Похоже на прямой запрос в Microsoft Access
Если я правильно вопрос, то вам надо изменить вот это X++: strFmt("where [Склады].[(%2) %1],", inventLocation.Name, inventLocation.InventLocationId); X++: strFmt("where [Склады].[(%2) %1] = '(%3) %4',", inventLocation.Name, inventLocation.InventLocationId, "Распред Центр", "РЦ"); |
|
11.04.2008, 17:44 | #4 |
Участник
|
Помоему это запрос к ОЛАП на MDX (Multi Dimensional eXpressions). Там в where не нужно знак "=" указывать - указывается просто срез.
Вроде бы там как-то так надо делать: X++: "where [Склады].[Название атрибута1].&[Значение атрибута] AND [Склады].[Название атрибута2].&[Значение атрибута]" Последний раз редактировалось _scorp_; 11.04.2008 в 18:10. |
|
14.04.2008, 07:33 | #5 |
Axapta Retail User
|
да Scorp прав это OLAP MDX, ща попробуем
Последний раз редактировалось CasperSKY; 14.04.2008 в 07:35. |
|
14.04.2008, 08:34 | #6 |
Axapta Retail User
|
Не неполучилось, вообще поидеи я же обращаюсь к измерениям, получается, что условия
where [Склады].[Все склады].[Не определена].[(РЦ) Распределительный Центр] должно хватить ... или не так ? Последний раз редактировалось CasperSKY; 14.04.2008 в 09:35. |
|
14.04.2008, 11:08 | #7 |
Участник
|
Ну по MDX я тоже небольшой специалист и с синтаксисом первый раз напутал. Попробуйте так:
X++: "where ([Склады].[Название атрибута1].&[Значение атрибута], [Склады].[Название атрибута2].&[Значение атрибута])" |
|
17.04.2008, 09:50 | #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); |
|
17.04.2008, 10:20 | #9 |
Axapta Retail User
|
Видимо у вас Axapta Retail?
И наверное вы хотите по тем товарам у которых флаг "Заказывается на РЦ"? Потому что причем тут закупки - которые в запросе у вас не фигурируют - не очень понятно. Либо добавить их в запрос и отфильтровать по полю "склад". |
|
17.04.2008, 10:52 | #10 |
Axapta Retail User
|
Всё пасиб разобрался
|
|