|
29.05.2006, 09:31 | #1 |
Участник
|
Помогите сваять отчет по остаткам на складе
Вообщем я начинающий в Ax, необходимо сварганить отчет, выдающий остатки по номенклатуре на определенную дату.
При этом учесть возможность фильтрации и группировки по 5-ти признакам: - склад - МОЛ - номенклатурная группа - номенклатура - партия Подскажите какого вида Query надо забить, ну и как лучше его обработать!!! |
|
29.05.2006, 09:48 | #2 |
Участник
|
|
|
29.05.2006, 10:25 | #3 |
Участник
|
Цитата:
Сообщение от slava09
|
|
29.05.2006, 09:48 | #4 |
NavAx
|
Начать надо с анализа отчетов Управление запасами/Отчеты/Статус/Физ.наличие/Физ.наличие по складам (Физ.наличие по группам)
|
|
29.05.2006, 10:26 | #5 |
Участник
|
Цитата:
Сообщение от raz
Начать надо с анализа отчетов Управление запасами/Отчеты/Статус/Физ.наличие/Физ.наличие по складам (Физ.наличие по группам)
|
|
29.05.2006, 10:48 | #6 |
Участник
|
каким образом в отчете Физ. наличие по группам вызываются стандартные классы, описанные в статье http://www.axapta.mazzy.ru/lib/inventsumdate/...??
там если идти по отладчику отслеживая события, вызываемые нажатием кнопы ОК, приходим к тому что запускается класс RunBaseReport и нигде нет ни намека на использование классов: InventSumDateValueReport, InventSumDateValueReportDim о которых в статье написано что именно они используются этими стандартными отчетами |
|
29.05.2006, 11:22 | #7 |
Модератор
|
Цитата:
Сообщение от sparur
каким образом в отчете Физ. наличие по группам вызываются стандартные классы, описанные в статье
__________________
-ТСЯ или -ТЬСЯ ? |
|
29.05.2006, 12:00 | #8 |
Участник
|
Цитата:
Сообщение от Vadik
коллега, как программист программисту - Вы точки останова в интересующих методах ставить пробовали?
канеш пробовал.... |
|
29.05.2006, 11:03 | #9 |
Участник
|
Смотрите отчет InventDimPhys.
В нем в методе fetch() создается экземпляр класса InventSumDateValueReportDim, а на секциях отчета созданы дисплейные методы, которые возвращают значения из этого класса
__________________
Axapta v.3.0 sp5 kr2 |
|
30.05.2006, 07:25 | #10 |
Участник
|
Цитата:
Сообщение от AndyD
Смотрите отчет InventDimPhys.
В нем в методе fetch() создается экземпляр класса InventSumDateValueReportDim, а на секциях отчета созданы дисплейные методы, которые возвращают значения из этого класса |
|
30.05.2006, 13:10 | #11 |
Участник
|
неужто никто не подскажет ничего полезного в этом плане ??
|
|
30.05.2006, 14:35 | #12 |
----------------
|
PHP код:
_inventDimCriteria - запись из InventDim (необязательно существующая), значения полей из которой будут использованы как фильтр при выборке всех возможных вариантов. то есть если нет ограничений, то все поля должна быть пустыми (или см. _inventDimParm) _inventDimParm - запись в которой поля носят имена аналогичные полям из InventDim с добавлением "Flag" и являются флажками, показывающими по каким полям фильтровать (какие поля из _inventDimCriteria использовать, а какие проигнорировать) Таким образом, чтобы отфильтровать по складу надо, чтобы в _inventDimCriteria было заполнено хотя бы поле склад (InventLocationId), а в _inventDimParm стоял только флаг InventLocationIdFlag. Чтобы не использовались никакие фильтры _inventDimParm должна быть без флажков (и тогда все-равно что в _inventDimCriteria). И постарайтесь это запомнить, так как данный прием используется повсеместно. Последний раз редактировалось Wamr; 30.05.2006 в 14:40. |
|
30.05.2006, 15:32 | #13 |
Участник
|
Цитата:
Сообщение от Wamr
PHP код:
_inventDimCriteria - запись из InventDim (необязательно существующая), значения полей из которой будут использованы как фильтр при выборке всех возможных вариантов. то есть если нет ограничений, то все поля должна быть пустыми (или см. _inventDimParm) _inventDimParm - запись в которой поля носят имена аналогичные полям из InventDim с добавлением "Flag" и являются флажками, показывающими по каким полям фильтровать (какие поля из _inventDimCriteria использовать, а какие проигнорировать) Таким образом, чтобы отфильтровать по складу надо, чтобы в _inventDimCriteria было заполнено хотя бы поле склад (InventLocationId), а в _inventDimParm стоял только флаг InventLocationIdFlag. Чтобы не использовались никакие фильтры _inventDimParm должна быть без флажков (и тогда все-равно что в _inventDimCriteria). И постарайтесь это запомнить, так как данный прием используется повсеместно. а именно как передать все возможные поля в таблицу InventDim (_inventDimCriteria), то есть грубо говоря организовать цикл по всем Складам, МОЛам, Номеклатурам, группам номенклатур, партиям!!! чтоб на основе этих значений создать экземпляр класса InventSumDateValueReportDim. вот в чем трабл. в частном случае, когда все фильтры указаны все прекрасно считает, а вот если что-то опущено(не заполнен какой-либо фильтр) тут возникает проблема перебора. |
|
29.05.2006, 11:57 | #14 |
Программатор
|
PHP код:
|
|
29.05.2006, 12:26 | #15 |
Участник
|
Цитата:
Сообщение от Sada
PHP код:
|
|
29.05.2006, 12:29 | #16 |
Программатор
|
на что? хотелось бы знать...
|
|
29.05.2006, 12:31 | #17 |
Участник
|
вот на это:
inventDim.inventDimId; грит ошибка синтаксическая |
|
29.05.2006, 12:35 | #18 |
Программатор
|
Это моя ошибка , удалите эту строку.
|
|
29.05.2006, 12:43 | #19 |
Участник
|
ну теперь работает, однако зачем пользовать inventtrans, если есть таблица InventSum со складскими остатками??
|
|
29.05.2006, 12:51 | #20 |
Программатор
|
Насколько я понял, если делать через inventtrans на сегодня (к примеру), то данные совпадут с обороткой стандартной (хотя я не уверен что она на 100% у нас стандартная), если через InventSum, то будет физическое наличие...
Может я в чём не прав и меня поправят... PHP код:
Последний раз редактировалось Sada; 29.05.2006 в 13:03. |
|
|
|