|  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, а там пускай фильтруют как хотят.
		 | 
|  |