|  19.01.2005, 17:05 | #1 | 
| Участник | Сортировка в запросе "В Наличии" 
			
			Добрый день! Интересуюсь в целях повышения образованности. Как сделать, чтобы товары были в этом запросе отсортированы, скажем, по Названиям Номенклатуры (InventTable.ItemName)? Допустим что интерактивное задание параметров сортировок в фильтре по полям InventTable в этом запросе меня пока не интересует, я просто хочу чтобы при открытии формы товары сортировались по названию | 
|  | 
|  19.01.2005, 17:44 | #2 | 
| Участник | 
			
			Зачем Вам это? Данная форма и так не отличается быстродействием.
		 | 
|  | 
|  19.01.2005, 18:21 | #3 | 
| Участник | 
			
			Не знаете - так и скажите. Не хорошо это, отвечать вопросом на вопрос. Поясняю: не радует принципиальная (или трудноустранимая) невозможность сортировать по полям таблицы1, в тех местах где есть группировки и суммирование по полям таблицы0. и таблица1 связана с таблица0 по каким-нибудь одному id, а сортировать хочу по таблица1.name | 
|  | 
|  19.01.2005, 19:53 | #4 | 
| Участник | 
			
			как это делает сиквел...  чем не запрос "в наличии" с аналитикой Склад? SELECT A.ITEMID, Name = (SELECT C.ItemName from dbo.InventTable C WHERE A.ITEMID=C.ITEMID), B.INVENTLOCATIONID, SUM(A.POSTEDQTY), SUM(A.POSTEDVALUE), SUM(A.PHYSICALVALUE), SUM(A.DEDUCTED), SUM(A.REGISTERED), SUM(A.RECEIVED), SUM(A.PICKED), SUM(A.RESERVPHYSICAL), SUM(A.RESERVORDERED), SUM(A.ONORDER), SUM(A.ORDERED), SUM(A.ARRIVED), SUM(A.QUOTATIONRECEIPT), SUM(A.QUOTATIONISSUE), SUM(A.PHYSICALINVENT), SUM(A.POSTEDVALUESECCUR_RU), SUM(A.PHYSICALVALUESECCUR_RU), SUM(A.AVAILPHYSICAL), SUM(A.AVAILORDERED) FROM dbo.INVENTSUM A INNER JOIN dbo.INVENTDIM B ON A.INVENTDIMID=B.INVENTDIMID GROUP BY A.ITEMID,B.INVENTLOCATIONID ORDER BY NAME | 
|  | 
|  19.01.2005, 20:04 | #5 | 
| Administrator | 
			
			Ну Вы сами себе и ответили. Только запросик поменять надо немножко: SELECT A.ITEMID, C.ITEMNAME, B.INVENTLOCATIONID, SUM(A.POSTEDQTY), SUM(A.POSTEDVALUE), SUM(A.PHYSICALVALUE), SUM(A.DEDUCTED), SUM(A.REGISTERED), SUM(A.RECEIVED), SUM(A.PICKED), SUM(A.RESERVPHYSICAL), SUM(A.RESERVORDERED), SUM(A.ONORDER), SUM(A.ORDERED), SUM(A.ARRIVED), SUM(A.QUOTATIONRECEIPT), SUM(A.QUOTATIONISSUE), SUM(A.PHYSICALINVENT), SUM(A.POSTEDVALUESECCUR_RU), SUM(A.PHYSICALVALUESECCUR_RU), SUM(A.AVAILPHYSICAL), SUM(A.AVAILORDERED) FROM INVENTSUM A INNER JOIN INVENTDIM B ON A.INVENTDIMID=B.INVENTDIMID INNER JOIN INVENTTABLE C ON C.ITEMID=A.ITEMID GROUP BY A.ITEMID,B.INVENTLOCATIONID,C.ITEMNAME ORDER BY ITEMNAME Обратно на Axapta сами перевести сможете?   
				__________________ Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me | 
|  | 
|  19.01.2005, 20:09 | #6 | 
| Участник | 
			
			хм... а после этого приходит консультант и говорит, что программировать не надо   То, что привел Maxim Gorbunov правильно. Но не полно. Поскольку этот запрос сортирует по краткому наименованию. А вообще говоря, есть полное наименование. Полное наименование может быть на разных языках... См. Номенклатура \ Настройка \ Описания номенклатуры по языкам а теперь возвращаемся к исходной задаче... вы уверены, что в системе должна быть функициональность с сортировкой по наименованию? Как заметил, AlexUnik, эта форма "и так не отличается быстродействием"... | 
|  | 
|  19.01.2005, 20:17 | #7 | 
| Administrator | Цитата: 
		
			Изначально опубликовано mazzy  а теперь возвращаемся к исходной задаче... вы уверены, что в системе должна быть функициональность с сортировкой по наименованию? Как заметил, AlexUnik, эта форма "и так не отличается быстродействием"... Тем не менее, это, конечно, не означает, что актуальность задачи бесспорна. 
				__________________ Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me | 
|  | 
|  19.01.2005, 21:02 | #8 | 
| Участник | 
			
			я тоже сомневаюсь в правильности сортировки по названию, но это пример для решения задачи: как БЫСТРО добавить в форму Запроса "В наличии" сортировку или фильтр по полям связанной с InventSum таблицы. ЛЮБОЙ. Не все параметры, свойства товара можно запихнуть в его код, да еще и так чтобы соблюсти необходимый порядок сортировки, не хочу иметь код размером 40 символов... (вот и пришлось расказывать "зачем") А проблема методики кодификации - обсосана тут и везде 1000000 раз - не стоит к ней возвращаться. Поэтому если Maxim Gorbunov скажет как этот запрос: SELECT A.ITEMID, C.ITEMNAME, B.INVENTLOCATIONID, SUM(A.POSTEDQTY), SUM(A.POSTEDVALUE), SUM(A.PHYSICALVALUE), SUM(A.DEDUCTED), SUM(A.REGISTERED), SUM(A.RECEIVED), SUM(A.PICKED), SUM(A.RESERVPHYSICAL), SUM(A.RESERVORDERED), SUM(A.ONORDER), SUM(A.ORDERED), SUM(A.ARRIVED), SUM(A.QUOTATIONRECEIPT), SUM(A.QUOTATIONISSUE), SUM(A.PHYSICALINVENT), SUM(A.POSTEDVALUESECCUR_RU), SUM(A.PHYSICALVALUESECCUR_RU), SUM(A.AVAILPHYSICAL), SUM(A.AVAILORDERED) FROM INVENTSUM A INNER JOIN INVENTDIM B ON A.INVENTDIMID=B.INVENTDIMID INNER JOIN INVENTTABLE C ON C.ITEMID=A.ITEMID GROUP BY A.ITEMID,B.INVENTLOCATIONID,C.ITEMNAME ORDER BY ITEMNAME прикрутить к форме "В наличии", а не к своей форме - было бы супер ибо ответ на "Обратно на Axapta сами перевести сможете" - пока нет, не могу. | 
|  | 
|  19.01.2005, 21:23 | #9 | 
| Участник | 
			
			тут добрые люди нашли ответ на этот вопрос...  это уже было в форуме... | 
|  | 
|  19.01.2005, 21:30 | #10 | 
| Administrator | 
			
			Добавляете DataSource InventTable и модифицируете метод modifyQuery() у класса InventDimFrmCtrl_OnHand (возможно, класс называется немного иначе - не проверил).
		 
				__________________ Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me | 
|  | 
|  20.01.2005, 12:02 | #11 | 
| Участник | 
			
			Вот Аксаптовский запрос.. Только вопрос. МАКСИМ, или кто-нибудь другой,  а как сюда еще добавить и сортировку по ItemName? SELECT WITH SELECT_ORDER, NESTED_LOOP, 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 = Нет)) JOIN INDEXISHINT * FROM InventDim GROUP BY InventDim.wMSLocationId ASC USING INDEX DimIdIdx WHERE InventSum.InventDimId = InventDim.inventDimId JOIN ItemName FROM InventTable GROUP BY InventTable.ItemName ASC WHERE InventSum.ItemId = InventTable.ItemId Если просто так оставить, то сортировка все равно идет по ItemId, так как по нему идет группировка в InventSum И еще, вообще возможно ли это?? Syntax of select SelectStatement = select Parameters Parameters = [ [ FindOptions ] [ FieldList from ] ] TableVariable [IndexClause] [ Options ] [ Where Clause ] [ JoinClause ] FindOptions = reverse | firstfast | firstonly | forupdate | nofetch FieldList = Field { , Field } | * Field = Aggregate ( FieldIdentifier ) | FieldIdentifier Aggregate = sum | avg | minof | maxof | count Options = (order by | group by ) FieldIdentifier [ Direction ] { , FieldIdentifier [ Direction ] } IndexCaluse = index Idx | index hint idx Direction = asc | desc WhereClause = where Expression JoinClause = [exists | notexists | outer ] join Parameters То есть, насколько я понял, можно или группировать или сортировать. ?? | 
|  | 
|  20.01.2005, 13:16 | #12 | 
| Участник | 
			
			Есть аьтернативные пути получения информации о наличии товара: 1) Номенклатурный справочник, который можно сортировать как угодно. В нем имеется кнопочка "В наличии". Такой способ отражает более реальные данные в условиях интенсивной работы пользователей. 2) Отчет "В наличии" - создать на его основе собственный отчет с необходимыми сортировками. 3) В заказе использовать функцию "Создание строк". На основе данной формы создать свою с полями фильтрации и сортировки, вытащить кнопку "В наличии" и т.д. | 
|  | 
|  20.01.2005, 15:11 | #13 | 
| Участник | 
			
			альтернативы не катят...   .отчет - по причине не интерактивности .номенклатурный справочник - по причине необходимости нажимать на кнопки на каждой строке надо В Наличии - потому как переписывать вест функционал навернутый на эту форму нет никакого желания, т.к. нужна только сортировка... | 
|  | 
|  20.01.2005, 15:20 | #14 | 
| Administrator | 
			
			Сортировать нельзя. Только фильтровать. Обычно этого достаточно.
		 
				__________________ Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me | 
|  | 
|  20.01.2005, 18:06 | #15 | 
| Участник | 
			
			это трындец какой-то... чтоб нельзя было поменять порядок сортировки, сортируем сначала по полям первого датасорся, потом второго... и никак иначе... | 
|  | 
|  20.01.2005, 18:08 | #16 | 
| Administrator | 
			
			Я бы сказал, что это - функциональное ограничение    
				__________________ Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me | 
|  | 
|  20.01.2005, 20:01 | #17 | 
| Участник | 
			
			Да если вы посмотрите как строится отчёт, вы поймёте, что если бы он сортировался (совместно с группировкой) по какому либо полю, кроме ItemId, он бы выводил всякую лажу.    | 
|  | 
|  | 
| 
 |