![]() |
#9 |
Участник
|
Я так понимаю нам надо получить типа:
X++: SELECT WITH SELECT_ORDER, NESTED_LOOP, FORCE_PLACEHOLDERS INDEXISHINT SUM(PostedQty), SUM(PostedValue), SUM(PhysicalValue), SUM(Deducted), SUM(Registered), SUM(Received), SUM(Picked), SUM(ReservPhysical), SUM(ReservOrdered), SUM(OnOrder), SUM(Ordered), SUM(Arrived), SUM(QuotationReceipt), SUM(QuotationIssue), SUM(PhysicalInvent), SUM(PostedValueSecCur_RU), SUM(PhysicalValueSecCur_RU), SUM(AvailPhysical), SUM(AvailOrdered) FROM InventSum USING INDEX ClosedItemDimIdx WHERE ((Closed = )) JOIN INDEXISHINT * FROM InventDim GROUP BY InventDim.InventLocationId ASC USING INDEX DimIdIdx WHERE InventSum.InventDimId = InventDim.inventDimId JOIN ItemId, SotrOrder FROM X_table GROUP BY X_table.SotrOrder, X_table.ItemId ASC WHERE X_table.ItemId = InventSum.ItemId Добиться подобного запроса можно добавив X_table datasource в форму с inner join к InventSum... Далее придеться переписать init X_table datasource как-то примерно так: X++: void init() { Query q; QueryBuildDatasource qbds; ; super(); q = this.Query(); qbds = q.dataSourceTable(tableNum(InventSum)); qbds.orderMode(OrderMode::GroupBy); qbds.fetchMode(QueryFetchMode::One2One); qbds.sortClear(); // долой ItemId qbds.addSortField(fieldNum(InventSum, dataAreaId)); // наверное можно и без этого qbds = q.dataSourceTable(tableNum(InventDim)); qbds.orderMode(OrderMode::GroupBy); qbds.fetchMode(QueryFetchMode::One2One); qbds.sortClear(); // долой сортировку/группировку... qbds.addSelectionField(fieldNum(InventDim, InventLocationId)); qbds.addSortField(fieldNum(InventDim, InventLocationId)); qbds = q.dataSourceTable(tableNum(X_Table)); qbds.orderMode(OrderMode::GroupBy); qbds.fetchMode(QueryFetchMode::One2One); qbds.addSelectionField(fieldNum(X_Table, SortOrder)); qbds.addSelectionField(fieldNum(X_Table, ItemId)); qbds.addSortField(fieldNum(X_Table, SortOrder)); qbds.addSortField(fieldNum(X_Table, ItemId)); // sql: /* qbds = q.dataSourceTable(tableNum(InventSum)); box::info(qbds.toString()); */ } Соот-но... по-правильному этот метод необходимо перестраивать с учетом настройки, поэтому лучше свою форму или... Фактически совет EVGL Цитата:
- модифицировать класс, который применяет группировку к источнику данных в форме InventOnhand
Последний раз редактировалось ansoft; 24.07.2013 в 15:32. |
|