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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.02.2010, 13:48   #1  
Prophetic is offline
Prophetic
Участник
 
113 / 15 (1) ++
Регистрация: 08.12.2009
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Да, и кстати - Вы по какой дате собирались фильтроваться? По физической или финансовой?
Накладные CustInvoice* "датированы" финансовой (DateFinancial) датой.
А вот реальный уход со склада произведен физической (DatePhysical) датой
Просто в условие моего запроса нужно будет еще добавить статус расхода (StatusIssue), равный 1, если интересен статус Продано или 1 и 2, если еще и интересен статус Отпущено.
По финансовой дате. А custInvoiceTrans тогда вообще не нужен?
Старый 26.02.2010, 14:02   #2  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,343 / 3563 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от Prophetic Посмотреть сообщение
По финансовой дате. А custInvoiceTrans тогда вообще не нужен?
Не нужен. А по поводу правильного алгоритма расчета коррекции - загляните в отчет InventTurnover_RU - там коррекция на дату правильно считается.
Правда там код написан не очень корректно в плане того, что отчет тем дольше строится - чем больше записей в InventTrans. Но для того чтобы понять как связывать InventTrans и InventSettlement кода будет вполне достаточно.

Только учтите, что данный отчет строится по физической, а не финансовой дате.
__________________
Возможно сделать все. Вопрос времени
Старый 26.02.2010, 14:39   #3  
Prophetic is offline
Prophetic
Участник
 
113 / 15 (1) ++
Регистрация: 08.12.2009
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Не нужен. А по поводу правильного алгоритма расчета коррекции - загляните в отчет InventTurnover_RU - там коррекция на дату правильно считается.
Только учтите, что данный отчет строится по физической, а не финансовой дате.
Да, благодарю. Связывается по inventTable.RecID, если я правильно понял.

Но, для начала, нужно посчитать просто СostAmountPosted. Попробую обойтись без custInvoiceTrans. Я написал вот что:
Код:
set @DtBeg = N'01.12.2009'
set @DtEnd = N'31.12.2009'

select sum(itr.CostAmountPosted) from inventTrans itr where
itr.TransType = 0
and itr.StatusIssue = 1 or itr.statusIssue=2
and itr.dateFinancial <=@DtEnd
Результат непонятен.
Поясню -- у меня есть отчет по продажам, сделанный в Axcision. Меня уверяют, что отчет верный. Я пытаюсь в запросе получить такие же данные.

Последний раз редактировалось Prophetic; 26.02.2010 в 14:44.
Старый 26.02.2010, 14:47   #4  
MBurachkov is offline
MBurachkov
КОРУС Консалтинг
КОРУС Консалтинг
 
23 / 14 (1) ++
Регистрация: 18.12.2001
Адрес: Санкт-Петербург
Цитата:
Сообщение от Prophetic Посмотреть сообщение
Да, благодарю. Связывается по inventTable.RecID, если я правильно понял.

Но, для начала, нужно посчитать просто СostAmountPosted. Попробую обойтись без custInvoiceTrans. Я написал вот что:
Код:
set @DtBeg = N'01.12.2009'
set @DtEnd = N'31.12.2009'

select sum(itr.CostAmountPosted) from inventTrans itr where
itr.TransType = 0
and itr.StatusIssue = 1 or itr.statusIssue=2
and itr.dateFinancial <=@DtEnd
Результат непонятен.
Поясню -- у меня есть отчет по продажам, сделанный в Axcision. Меня уверяют, что отчет верный. Я пытаюсь в запросе получить такие же данные.
Посмотрите в настройках куба Axcision связки факт-таблиц и то, какую именно себестоимость хотят получить пользователи.
__________________
Misha Burachkov
Старый 26.02.2010, 14:53   #5  
Prophetic is offline
Prophetic
Участник
 
113 / 15 (1) ++
Регистрация: 08.12.2009
Цитата:
Сообщение от MBurachkov Посмотреть сообщение
Посмотрите в настройках куба Axcision связки факт-таблиц и то, какую именно себестоимость хотят получить пользователи.
В Кубе привязывается inventTransPosting по полю voucher и InventTransId, а также таблица sales По полю salesid=TransRefId
Старый 26.02.2010, 15:03   #6  
MBurachkov is offline
MBurachkov
КОРУС Консалтинг
КОРУС Консалтинг
 
23 / 14 (1) ++
Регистрация: 18.12.2001
Адрес: Санкт-Петербург
Цитата:
Сообщение от Prophetic Посмотреть сообщение
В Кубе привязывается inventTransPosting по полю voucher и InventTransId, а также таблица sales По полю salesid=TransRefId
Все что, вам нужно сделать - это повторить запрос Axcision - он ничего необычного не делает - строит ровно тот sql-запрос, которые вы хотите написать. Там куб разбит на несколько частей, каждая из которых отвечает за свою логику. Теперь нужно посмотреть, как идет выборка данных для показателя подсчета себестоимости.
__________________
Misha Burachkov
Старый 26.02.2010, 15:35   #7  
Prophetic is offline
Prophetic
Участник
 
113 / 15 (1) ++
Регистрация: 08.12.2009
Цитата:
Сообщение от MBurachkov Посмотреть сообщение
Все что, вам нужно сделать - это повторить запрос Axcision - он ничего необычного не делает - строит ровно тот sql-запрос, которые вы хотите написать. Там куб разбит на несколько частей, каждая из которых отвечает за свою логику. Теперь нужно посмотреть, как идет выборка данных для показателя подсчета себестоимости.
Да, согласен. InventSettlement используется для расчета корректировки в кубе.
Старый 26.02.2010, 15:05   #8  
Prophetic is offline
Prophetic
Участник
 
113 / 15 (1) ++
Регистрация: 08.12.2009
Цитата:
Сообщение от MBurachkov Посмотреть сообщение
Посмотрите в настройках куба Axcision связки факт-таблиц и то, какую именно себестоимость хотят получить пользователи.
Хм.. интересно, а реально ли посмотреть SQL-запрос, который Куб генерит?
Старый 26.02.2010, 15:25   #9  
MBurachkov is offline
MBurachkov
КОРУС Консалтинг
КОРУС Консалтинг
 
23 / 14 (1) ++
Регистрация: 18.12.2001
Адрес: Санкт-Петербург
Цитата:
Сообщение от Prophetic Посмотреть сообщение
Хм.. интересно, а реально ли посмотреть SQL-запрос, который Куб генерит?
В теории, наверное, можно (как минимум через профайлер SQL) но в данном случае вся логика описывается параметрически. Есть факт-таблицы и есть все связки между ними и все фильтры, накладываемые на таблицы + есть описание всех показателей и источники данных для них. На основании этого Axcision формирует sql-запрос.
__________________
Misha Burachkov
Старый 26.02.2010, 17:10   #10  
MBurachkov is offline
MBurachkov
КОРУС Консалтинг
КОРУС Консалтинг
 
23 / 14 (1) ++
Регистрация: 18.12.2001
Адрес: Санкт-Петербург
Цитата:
Сообщение от MBurachkov Посмотреть сообщение
В теории, наверное, можно (как минимум через профайлер SQL) но в данном случае вся логика описывается параметрически. Есть факт-таблицы и есть все связки между ними и все фильтры, накладываемые на таблицы + есть описание всех показателей и источники данных для них. На основании этого Axcision формирует sql-запрос.
В Axcision (настройка куба, привязка факта) есть колонка "идентификатор факта" (например, AxF0014) - по нему можно посмотреть запрос в Views MS SQL сервера. (например, KAX_OLAP_Fact_AxF0014_View) - там видно, какой SQL запрос генерится.
__________________
Misha Burachkov
За это сообщение автора поблагодарили: Prophetic (1).
Старый 26.02.2010, 15:17   #11  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,343 / 3563 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от Prophetic Посмотреть сообщение
Да, благодарю. Связывается по inventTable.RecID, если я правильно понял.
Да.

Цитата:
Сообщение от Prophetic Посмотреть сообщение
Код:
and itr.StatusIssue = 1 or itr.statusIssue=2
and itr.dateFinancial <=@DtEnd
Ээээ.. Вы либо используете финансовую дату и используете StatusIssue = 1, либо используете физическую дату и используете StatusIssue = 1 or StatusIssue = 2.
Иначе - косяк получится. Вы просуммируете все проводки в статусе Отпущено независимо от даты (т.к. 1900-й год заведомо раньше).
Так что в Вашем запросе фразу or itr.statusIssue=2 лучше убрать
__________________
Возможно сделать все. Вопрос времени
Старый 26.02.2010, 16:29   #12  
Prophetic is offline
Prophetic
Участник
 
113 / 15 (1) ++
Регистрация: 08.12.2009
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Да.


Ээээ.. Вы либо используете финансовую дату и используете StatusIssue = 1, либо используете физическую дату и используете StatusIssue = 1 or StatusIssue = 2.
Иначе - косяк получится. Вы просуммируете все проводки в статусе Отпущено независимо от даты (т.к. 1900-й год заведомо раньше).
Так что в Вашем запросе фразу or itr.statusIssue=2 лучше убрать
Убрал. Получается какая-то безумная сумма, все равно.
Теги
себестоимость

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Denis Fedotenko: Себестоимость и закрытие склада Blog bot DAX: База знаний и проекты 44 29.03.2010 14:54
Зачистка товара. Себестоимость vey DAX: Функционал 17 16.02.2007 10:48
Помогите с SQL запросом malex DAX: Программирование 8 26.07.2005 13:43
Себестоимость проданного товара Hamster DAX: Функционал 3 12.08.2004 16:02
Физическая себестоимость товара Алексей Контев DAX: Функционал 5 22.08.2002 20:18
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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