AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.11.2004, 10:28   #1  
stavteam is offline
stavteam
Участник
 
15 / 10 (1) +
Регистрация: 27.10.2004
Адрес: Южный Федеральный Округ
? Оборотно-сальдовая одним запросом ???
Уважаемый All, есть маленькая проблема.
Необходимо разработать оборотно-сальдовую ведомость, в которой обороты разрезаются по нескольким дополнительным аналитикам, например - по датам, по номенклатурным группам. При этом необходим режим "Только итоги по номенклатурным группам", или "Только итоги по датам". В стандартном SQL - это просто GROUP BY. В Аксапта при генерации отчета тоже можно поставить признак "Только итоги". Единственное ограничение - результирующий набор должен извлекаться одним Query.
В MS SQL я могу написать оборотно сальдовую одним SQL-запросом:

select
ItemId,
NameAlias,
(select (sum(AvailPhysical) from InventSum S where S.ItemId = N.ItemId) as SaldoNow,
(select sum(Qty) from InventTrans T where T.ItemId = N.ItemId and DatePhysical < @DateBegin and StatusReceipt > 0) as Obr1In,
(select sum(Qty) from InventTrans T where T.ItemId = N.ItemId and DatePhysical < @DateBegin and StatusIssue > 0) as Obr1Out,
...
SaldoNow - Obr1In + Obr1Out as SaldoBegin,
......
from InventTable N;

Принцип понятен. Используются вложенные запросы. Каждый вложенный запрос я могу оформить отдельной функцией, тогда оборотку можно будет извлечь так:

select
ItemId,
NameAlias,
SaldoBegin(ItemId, @DateBegin),
ObrIn(ItemId, @DateBegin, @DateEnd),
ObrOut(ItemId, @DateBegin, @DateEnd),
SaldoEnd(ItemId, @DateEnd),
from InventTable;

Такой запрос можно джойнить к дополнительным таблицам и получать отчеты с группировками с помощью стандартного Query.

Вопрос - такое возможно в Аксапта ?
Я просто смотрел код оборотки - там используется цикл, а сальдо и обороты извлекаются отдельными запросами. Соответственно - все промежуточныи итоги и группировки надо програмить явно. А это - очень грустно. Хочется простого и универсального механизма.

Заранее благодарен за рассмотрение.
__________________
С уважением, Евгений.
Старый 15.05.2006, 14:54   #2  
AxPr-r is offline
AxPr-r
Участник
Axapta Retail User
 
44 / 11 (1) +
Регистрация: 13.03.2006
Цитата:
Изначально опубликовано macklakov

P.S. "Оборотно сальдовая ведомость по складу", порочное наследие с тех времен, когда в аксапте никто толком не разбирался. И вообще, поосторожнее с кодом, имеющим суффикс RU ;-)
Уважаемый macklakov поясните пожалуйста - следует ли из вашего ответа что пользоваться "Оборотно сальдовой ведомостью по складу" не рекомендуется как и ОСВ в ГК и прочими запросами(и отчетами) с суффиксом RU или проблеммы связаны с модификациями данных запросов?
И в чем же заключается проблемма(ы)?

спрашиваю не из праздного любопытства, мы активно пользуемся ОСВ по складу и прочими запросами с суффиксом RU, причем некоторые модифицированы
Старый 15.05.2006, 15:13   #3  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от stavteam
Вопрос - такое возможно в Аксапта ?
Я просто смотрел код оборотки - там используется цикл, а сальдо и обороты извлекаются отдельными запросами. Соответственно - все промежуточныи итоги и группировки надо програмить явно. А это - очень грустно. Хочется простого и универсального механизма.

Заранее благодарен за рассмотрение.
Через АДО можно все, например так
Цитата:
Сообщение от stavteam
Хочется простого и универсального механизма.
Через ОЛАП

Кстати, судя по навыкам в скуле Вас должен порадовать MS reporting services
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/

Последний раз редактировалось Recoilme; 15.05.2006 в 15:37.
Старый 15.05.2006, 16:02   #4  
itfs is offline
itfs
Участник
 
277 / 43 (2) +++
Регистрация: 18.07.2005
Адрес: Moscow
Подумайте, прежде чем такой запрос пытаться осуществить (на MS-SQL). У него большая вероятность получить несогласованные данные, либо надолго заблокировать работу большого кол-ва пользователей. Как не неприятен ручной механизм получения данных, он все-же позволит избежать узких мест.

С уважением, itfs.
Старый 15.05.2006, 16:20   #5  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: 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
Старый 21.05.2006, 12:00   #6  
SomeBodyElse is offline
SomeBodyElse
Участник
 
10 / 10 (1) +
Регистрация: 10.04.2006
А как получить остаток на начало периода, остаток на конец периода,себестоимость (такое же поле как и в стандартном отчете ОСВ) , если я иду по InventTrans,но оборотов за данный период не было?? Заранее благодарен.
Старый 21.05.2006, 12:43   #7  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: 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
Старый 21.05.2006, 14:57   #8  
SomeBodyElse is offline
SomeBodyElse
Участник
 
10 / 10 (1) +
Регистрация: 10.04.2006
2MaximGorbunov: Да это очевидно и для меня. Просто вопрос в том из какой таблицы вытащить остаток на начало и себестоимость. Можно ли из InventSum (если да, то на какую дату ориентироваться), или придется из InventTrans брать сумму до определенного периода CostAmountAdjastmеnt+ CostAmount****(какое втoрое точно не помню так как дома нохожусь и Аксапты нет под рукой)???
Старый 22.05.2006, 12:27   #9  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Теоритически, можно и так, и так. На практике: смотрите классы InventSumPhysical и InventSumFinancial.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Оборотно-сальдовая ведомость по складу miklenew DAX: Функционал 15 29.03.2010 12:27
Оборотно-сальдовая ведомость??! Silence DAX: Прочие вопросы 16 11.12.2007 14:54
Оборотно-сальдовая ведомость по клиентам kvan DAX: Программирование 11 30.11.2007 12:00
Оборотно-сальдовая ведомость (или проводки по складу) oleg_e DAX: Функционал 5 01.10.2007 13:39
Оборотно-сальдовая ведомость. gaenar DAX: База знаний и проекты 1 07.10.2005 19:47

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 11:28.