AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 19.01.2005, 17:05   #1  
linney ist offline
linney
Участник
Benutzerbild von linney
 
175 / 12 (1) ++
Registriert seit: 11.12.2002
Ort: Киев
Сортировка в запросе "В Наличии"
Добрый день!

Интересуюсь в целях повышения образованности.

Как сделать, чтобы товары были в этом запросе отсортированы, скажем, по Названиям Номенклатуры (InventTable.ItemName)?

Допустим что интерактивное задание параметров сортировок в фильтре по полям InventTable в этом запросе меня пока не интересует, я просто хочу чтобы при открытии формы товары сортировались по названию
Alt 19.01.2005, 17:44   #2  
AlexUnik ist offline
AlexUnik
Участник
 
199 / 22 (1) +++
Registriert seit: 01.06.2004
Ort: Королёв
Зачем Вам это? Данная форма и так не отличается быстродействием.
Alt 19.01.2005, 18:21   #3  
linney ist offline
linney
Участник
Benutzerbild von linney
 
175 / 12 (1) ++
Registriert seit: 11.12.2002
Ort: Киев
Не знаете - так и скажите. Не хорошо это, отвечать вопросом на вопрос.

Поясняю: не радует принципиальная (или трудноустранимая) невозможность сортировать по полям таблицы1, в тех местах где есть группировки и суммирование по полям таблицы0.
и таблица1 связана с таблица0 по каким-нибудь одному id, а сортировать хочу по таблица1.name
Alt 19.01.2005, 19:53   #4  
linney ist offline
linney
Участник
Benutzerbild von linney
 
175 / 12 (1) ++
Registriert seit: 11.12.2002
Ort: Киев
как это делает сиквел...
чем не запрос "в наличии" с аналитикой Склад?

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
Alt 19.01.2005, 20:04   #5  
Maxim Gorbunov ist offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2.483 / 646 (26) +++++++
Registriert seit: 27.11.2001
Ort: Dubai, UAE
Ну Вы сами себе и ответили. Только запросик поменять надо немножко:

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
Alt 19.01.2005, 20:09   #6  
mazzy ist offline
mazzy
Участник
Benutzerbild von mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29.472 / 4494 (208) ++++++++++
Registriert seit: 29.11.2001
Ort: Москва
Blog-Einträge: 10
хм... а после этого приходит консультант и говорит, что программировать не надо

То, что привел Maxim Gorbunov правильно. Но не полно.
Поскольку этот запрос сортирует по краткому наименованию.
А вообще говоря, есть полное наименование.
Полное наименование может быть на разных языках...

См. Номенклатура \ Настройка \ Описания номенклатуры по языкам

а теперь возвращаемся к исходной задаче...
вы уверены, что в системе должна быть функициональность с сортировкой по наименованию? Как заметил, AlexUnik, эта форма "и так не отличается быстродействием"...
Alt 19.01.2005, 20:17   #7  
Maxim Gorbunov ist offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2.483 / 646 (26) +++++++
Registriert seit: 27.11.2001
Ort: Dubai, UAE
Zitat:
Изначально опубликовано mazzy
а теперь возвращаемся к исходной задаче...
вы уверены, что в системе должна быть функициональность с сортировкой по наименованию? Как заметил, AlexUnik, эта форма "и так не отличается быстродействием"...
Замечу только для того, чтобы не страдала истина: если linney действительно сделает так, что его форма будет генерировать описанный запрос, быстродействие формы не пострадает. Дополнительная нагрузка упадет на SQL-сервер, но и она будет незначительна.

Тем не менее, это, конечно, не означает, что актуальность задачи бесспорна.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Alt 19.01.2005, 21:02   #8  
linney ist offline
linney
Участник
Benutzerbild von linney
 
175 / 12 (1) ++
Registriert seit: 11.12.2002
Ort: Киев
я тоже сомневаюсь в правильности сортировки по названию, но это пример для решения задачи: как БЫСТРО добавить в форму Запроса "В наличии" сортировку
или фильтр по полям связанной с 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 сами перевести сможете" - пока нет, не могу.
Alt 19.01.2005, 21:23   #9  
linney ist offline
linney
Участник
Benutzerbild von linney
 
175 / 12 (1) ++
Registriert seit: 11.12.2002
Ort: Киев
тут добрые люди нашли ответ на этот вопрос...
это уже было в форуме...
Alt 19.01.2005, 21:30   #10  
Maxim Gorbunov ist offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2.483 / 646 (26) +++++++
Registriert seit: 27.11.2001
Ort: Dubai, UAE
Добавляете 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
Alt 20.01.2005, 12:02   #11  
kashperuk ist offline
kashperuk
Участник
Benutzerbild von kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.361 / 2084 (78) +++++++++
Registriert seit: 30.05.2004
Ort: Atlanta, GA, USA
Вот Аксаптовский запрос.. Только вопрос.
МАКСИМ, или кто-нибудь другой, а как сюда еще добавить и сортировку по 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

То есть, насколько я понял, можно или группировать или сортировать. ??
Alt 20.01.2005, 13:16   #12  
AlexUnik ist offline
AlexUnik
Участник
 
199 / 22 (1) +++
Registriert seit: 01.06.2004
Ort: Королёв
Есть аьтернативные пути получения информации о наличии товара:
1) Номенклатурный справочник, который можно сортировать как угодно. В нем имеется кнопочка "В наличии". Такой способ отражает более реальные данные в условиях интенсивной работы пользователей.
2) Отчет "В наличии" - создать на его основе собственный отчет с необходимыми сортировками.
3) В заказе использовать функцию "Создание строк". На основе данной формы создать свою с полями фильтрации и сортировки, вытащить кнопку "В наличии" и т.д.
Alt 20.01.2005, 15:11   #13  
linney ist offline
linney
Участник
Benutzerbild von linney
 
175 / 12 (1) ++
Registriert seit: 11.12.2002
Ort: Киев
альтернативы не катят...
.отчет - по причине не интерактивности
.номенклатурный справочник - по причине необходимости нажимать на кнопки на каждой строке

надо В Наличии - потому как переписывать вест функционал навернутый на эту форму нет никакого желания, т.к. нужна только сортировка...
Alt 20.01.2005, 15:20   #14  
Maxim Gorbunov ist offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2.483 / 646 (26) +++++++
Registriert seit: 27.11.2001
Ort: Dubai, UAE
Сортировать нельзя. Только фильтровать. Обычно этого достаточно.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Alt 20.01.2005, 18:06   #15  
linney ist offline
linney
Участник
Benutzerbild von linney
 
175 / 12 (1) ++
Registriert seit: 11.12.2002
Ort: Киев
это трындец какой-то...
чтоб нельзя было поменять порядок сортировки, сортируем сначала по полям первого датасорся, потом второго... и никак иначе...
Alt 20.01.2005, 18:08   #16  
Maxim Gorbunov ist offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2.483 / 646 (26) +++++++
Registriert seit: 27.11.2001
Ort: Dubai, UAE
Я бы сказал, что это - функциональное ограничение
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Alt 20.01.2005, 20:01   #17  
Alks ist offline
Alks
Участник
 
336 / 41 (2) +++
Registriert seit: 23.07.2004
Ort: г. Новокузнецк
Да если вы посмотрите как строится отчёт, вы поймёте, что если бы он сортировался (совместно с группировкой) по какому либо полю, кроме ItemId, он бы выводил всякую лажу.
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Фильтрация в форме "В наличии" по агрегатному полю "Физ. наличие" miaa DAX: Программирование 13 29.08.2006 23:45
Галка "Закрыто" на таблице "В наличии" sev DAX: Функционал 1 11.04.2006 10:19
Отображение финансовых аналитик в "Номенклатура" - "В наличии" Roenick DAX: Функционал 50 27.03.2006 21:58
Отчет "В наличии". Как добавить новое условие Range ATimTim DAX: Функционал 5 13.08.2005 13:26
Номнклатура без запасов в запросе "В наличии" Van DAX: Функционал 2 03.03.2004 14:26

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 19:38 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.