|  04.05.2009, 16:56 | #1 | 
| Участник | Фильтр на форме InventClassifierItemSelection 
			
			Добрый день. Простите, если повторяюсь, но не нашел на форуме ничего конкретного.... Вообщем, имеется форма InventClassifierItemSelection (Заказ на продажу/Добавить/Из классификатора). В ней отображается номенклатура и текущие остатки по ней. Хочу сделать фильтр "Только остатки", при установке которого в форме отображалась бы только номенклатура, по которой есть физический остаток по складу. Делал такое несколько раз (в формах Наличие на складах (InventOnHandItem)), в этой форме не получается.... Может кто делал такое? Подскажите пожалуйста     Последний раз редактировалось Andrux; 04.05.2009 в 16:59. | 
|  | 
|  04.05.2009, 17:00 | #2 | 
| NavAx | 
			
			InventClassifierItemSelection - это в какой аксапте?
		 | 
|  | 
|  04.05.2009, 17:01 | #3 | 
| Ищущий знания... | 
			
			Похоже это решение какого то партнера (возможно AxRetail), или это ваши местные доработки... в стандарте (Ах 3.0) нет такой формы, смотрите инит формы, скорее всего там какой то замут с query 
				__________________ "Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем | 
|  | 
|  04.05.2009, 17:06 | #4 | 
| NavAx | 
			
			Возможно остатки отображаются через дисплейный метод. Тогда нужно в случае выбора "показывать только с остатками" делать exist join к InventSum с соответствующими условиями (т.е. модифицировать query соответствующим образом). | 
|  | 
|  04.05.2009, 17:27 | #5 | 
| Участник | 
			
			Axapta 4.0. Возможно, что форма нестандартная.. я так думаю AxRetail. Дело в том, что на ней куча источников данных и таблица InventSum приджойнена к InventTable как Delayed, поэтому моя фильтрация не срабатывает. Ставлю InnerJoing запрос вообще умирает...
		 | 
|  | 
|  04.05.2009, 17:34 | #6 | 
| Ищущий знания... | Цитата: Хорошо бы увидеть запрос который отправляется в БД. 
				__________________ "Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем | 
|  | 
|  04.05.2009, 17:48 | #7 | 
| Участник | 
			
			В InventTable_ds.executeQuery() SELECT * FROM InventTable USING INDEX ItemIdx WHERE ((ItemType = 0) OR (ItemType = 1) OR (ItemType = 100) OR (ItemType = 2)) EXISTS JOIN * FROM InventItemRangeRef WHERE InventTable.ItemRangeIdRef = InventItemRangeRef.RangeIdRef JOIN * FROM InventItemRangeRef_Retail WHERE InventTable.ItemRangeIdRef_Retail = InventItemRangeRef_Retail.RangeIdRef В InventSum_ds.executeQuery() SELECT WITH 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 GROUP BY InventSum.ItemId ASC USING INDEX ClosedItemDimIdx WHERE ((Closed = 0)) AND ((NOT (AvailPhysical = 0))) AND InventTable.ItemId=InventSum.ItemId JOIN INDEXISHINT * FROM InventDim GROUP BY InventDim.configId ASC, InventDim.InventSizeId ASC, InventDim.InventColorId ASC USING INDEX DimIdIdx WHERE InventSum.InventDimId = InventDim.inventDimId EXISTS JOIN * FROM InventLocation WHERE InventDim.InventLocationId = InventLocation.InventLocationId AND ((InventLocationType = 0) OR (InventLocationType = 101)) AND ((InventLocationId = N'Ц_СБ_ОСН')) Записи в InventSum фильтруются, а связанная с ней по Delayed запись InventTable не фильтруется | 
|  | 
|  04.05.2009, 17:55 | #8 | 
| Участник | Цитата: 
		
			Сообщение от Andrux
			   Добрый день. Простите, если повторяюсь, но не нашел на форуме ничего конкретного.... Вообщем, имеется форма InventClassifierItemSelection (Заказ на продажу/Добавить/Из классификатора). В ней отображается номенклатура и текущие остатки по ней. Хочу сделать фильтр "Только остатки", при установке которого в форме отображалась бы только номенклатура, по которой есть физический остаток по складу. Делал такое несколько раз (в формах Наличие на складах (InventOnHandItem)), в этой форме не получается.... Может кто делал такое? Подскажите пожалуйста    (2) форму завтра посмотрю. На ней есть датасорс InventSum, копайте в эту сторону. | 
|  | 
|  04.05.2009, 17:58 | #9 | 
| Участник | 
			
			ага, Retail Version. Axapta нам Korus внедрял Да есть датасорс, но я с ним справиться не могу )))) | 
|  | 
|  05.05.2009, 07:43 | #10 | 
| Axapta Retail User | 
			
			Andrux, стояла такая же задача. Столкнулись с тем, что если просто делать запрос и фильтрацию по inventSum, то форма медленно умирает - слишком тяжелый запрос для нее получается. Конечно все зависит от кол-ва зависей в inventSum и inventDim, но мы пошли другим путем - добавили в inventTable поля со значением остатков по нужным нам складам и соответсвенно фильтруем уже inventTable. И еще - вступите в группу Axapta Retail, так людям на форуме будет проще понимать о какой Axapte идет речь. | 
|  | 
|  06.05.2009, 10:11 | #11 | 
| Участник | Цитата: 
		
			Сообщение от ViV
			   Andrux, стояла такая же задача. Столкнулись с тем, что если просто делать запрос и фильтрацию по inventSum, то форма медленно умирает - слишком тяжелый запрос для нее получается. Конечно все зависит от кол-ва зависей в inventSum и inventDim, но мы пошли другим путем - добавили в inventTable поля со значением остатков по нужным нам складам и соответсвенно фильтруем уже inventTable.   | 
|  | 
|  06.05.2009, 10:48 | #12 | 
| Участник | 
			
			А вы попробуйте, для начала, воспользоваться расширенным фильтром. Добавьте InventSum (Запасы в наличии) к "Картотеке номенклатуры", добавьте InventDim (Складская аналитика) к InventSum. Добавьте ограничение на Складскую аналитику - нужный склад. Добавьте ограничение на Запасы в наличии - Физ. доступно > 0. Так вы увидите, насколько быстро будет работать форма при наличии фильтров. Что касается переделки формы - использовать уже существующие InventSum и InventDim нельзя - на них навешено много логики, не учитывающей привязку через InnerJoin или ExistsJoin к InventTable. Надо добавлять свои собственные и уже для них делать фильтрацию 
				__________________ Axapta v.3.0 sp5 kr2 | 
|  | 
| Теги | 
| axapta retail, форма, ax4.0 | 
|  | 
|  Похожие темы | ||||
| Тема | Ответов | |||
| Фильтр строк подчиненной таблицы на форме | 4 | |||
| Фильтр на форме в гриде | 1 | |||
| Фильтр на Веб форме | 3 | |||
| Фильтр на форме | 5 | |||
| Не работает стандартный фильтр на форме | 4 | |||
| 
 |