29.08.2006, 13:20 | #1 |
Участник
|
Фильтрация в форме "В наличии" по агрегатному полю "Физ. наличие"
Можно ли как-нибудь отфильтровать записи в форме "В наличии" по агрегатному полю "Физ. наличие" != 0 ?
Может есть у форм аналог метода send() (в отчетах)? |
|
29.08.2006, 14:44 | #2 |
Участник
|
Просто так не отфильтровать. Это же дисплей.
|
|
29.08.2006, 14:51 | #3 |
Участник
|
Я понимаю, что просто так не отфильтровать. Думал может можно в _DS не включать нулевые записи. Например цветом выделить их через displayOption(..) я могу, а так чтоб в грид они не попали - нет. ?
|
|
29.08.2006, 15:02 | #4 |
Участник
|
можно, только нужно переделать форму. сторить ее на временной таблице, которую заполнять при открытии. тогда и фильтр и сортировка будут работать
__________________
Дом поросенка должен быть крепостью. (Наф-Наф, полн. собр. соч., т.5, стр. 286) |
|
29.08.2006, 15:03 | #5 |
NavAx
|
Если очень нужно, есть способ: добавить поле в InventSum, которое будет содержать значение товара в наличии. Естественно при этом нужно это поле инициализировать значением из ф-ии \Data Dictionary\Tables\InventSum\Methods\physicalInvent при любом изменении ее слагаемых.
|
|
29.08.2006, 15:05 | #6 |
Участник
|
все равно расчет будет. там ведь в разрезе аналитики показано значение
__________________
Дом поросенка должен быть крепостью. (Наф-Наф, полн. собр. соч., т.5, стр. 286) |
|
29.08.2006, 15:10 | #7 |
NavAx
|
Цитата:
Сообщение от mit
все равно расчет будет. там ведь в разрезе аналитики показано значение
|
|
29.08.2006, 15:20 | #8 |
Участник
|
В таблице InventSum в методе update() написано слудующее:
void update() { ; this.closedQty = this.isAllQtyFieldsZero(); this.closed = this.isAllValueFieldsZero() && this.closedQty; this.setAvailFields(); super(); } А в методе setAvailFields() соответственно: void setAvailFields() { this.availOrdered = this.availOrdered(); this.availPhysical = this.availPhysical(); this.physicalInvent = this.physicalInvent(); } Так что пробуйте использовать для фильтрации поле, а не дисплейный метод. |
|
29.08.2006, 15:20 | #9 |
Участник
|
Физ. наличие для конкретной записи расчитыватся, как сумма пяти полей. Можно ли к запросу добавить критерий, что (postedQty + received - deducted + registered - picked != 0) ? Было бы тоже неплохо, но с Аксаптовским синтаксисом запросов кажется, что такое не получится или я ошибаюсь?
По поволу временной таблицы - все хорошо, да только много времени будет уходить на её формирование (InventSum большая). Добавить поле - можно, но нарушается нормализация таблицы. Это не страшно, но попробуем отговорить от такой идеи. Спасибо. |
|
29.08.2006, 15:25 | #10 |
Участник
|
Цитата:
Сообщение от Mario
void setAvailFields()
{ this.availOrdered = this.availOrdered(); this.availPhysical = this.availPhysical(); this.physicalInvent = this.physicalInvent(); } |
|
29.08.2006, 15:30 | #11 |
Участник
|
Это они "физически доступно" хранят в поле.
|
|
29.08.2006, 15:35 | #12 |
Участник
|
и физ. наличие тоже, это поле physicalInvent
|
|
29.08.2006, 15:44 | #13 |
Участник
|
Вообще-то на форме используется группировка в датасоурсе. Axapta не умеет делать having sum() <> 0. Так что нулевые суммы как были, так и останутся
__________________
Axapta v.3.0 sp5 kr2 |
|
29.08.2006, 23:45 | #14 |
Участник
|
Покажи им как выгружать в Excel, а там пускай фильтруют как хотят.
|
|