30.05.2006, 14:35 | #21 |
----------------
|
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 | #22 |
Участник
|
Цитата:
Сообщение от Wamr
PHP код:
_inventDimCriteria - запись из InventDim (необязательно существующая), значения полей из которой будут использованы как фильтр при выборке всех возможных вариантов. то есть если нет ограничений, то все поля должна быть пустыми (или см. _inventDimParm) _inventDimParm - запись в которой поля носят имена аналогичные полям из InventDim с добавлением "Flag" и являются флажками, показывающими по каким полям фильтровать (какие поля из _inventDimCriteria использовать, а какие проигнорировать) Таким образом, чтобы отфильтровать по складу надо, чтобы в _inventDimCriteria было заполнено хотя бы поле склад (InventLocationId), а в _inventDimParm стоял только флаг InventLocationIdFlag. Чтобы не использовались никакие фильтры _inventDimParm должна быть без флажков (и тогда все-равно что в _inventDimCriteria). И постарайтесь это запомнить, так как данный прием используется повсеместно. а именно как передать все возможные поля в таблицу InventDim (_inventDimCriteria), то есть грубо говоря организовать цикл по всем Складам, МОЛам, Номеклатурам, группам номенклатур, партиям!!! чтоб на основе этих значений создать экземпляр класса InventSumDateValueReportDim. вот в чем трабл. в частном случае, когда все фильтры указаны все прекрасно считает, а вот если что-то опущено(не заполнен какой-либо фильтр) тут возникает проблема перебора. |
|
31.05.2006, 09:00 | #23 |
----------------
|
Посмотрите класс InventReport_DimPosted (вызывает отчет). Мне кажется, он делает именно то, что вам нужно.
Для построения перебора по всем существующим комбинациям используется inventDim::newQueryInventSum(...) А для расчета окончательных значений InventSumFinancial::newSumReport(...) |
|
|
|