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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.09.2004, 11:59   #1  
sergy is offline
sergy
Участник
 
62 / 10 (1) +
Регистрация: 12.02.2004
Адрес: Воронеж
:) И снова фильтр!
Привет всем!

В классе InventTransIdSum в методе calcSum производится вычисление количеств
с фильтром по № лота:

PHP код:
while select sum(qtyfrom inventTrans
            index hint TransIdIdx
            group by statusIssue
,statusReceipt
            where inventTrans
.inventTransId       == transId 
Нужно добавить фильтр еще по одному полю, inventTrans.ReceiptId (не стандартное),
если переменная receiptId не пустая,

PHP]
while select sum(qty) from inventTrans
index hint TransIdIdx
group by statusIssue,statusReceipt
where inventTrans.inventTransId == transId &&
inventTrans.ReceiptId == receiptId

[/PHP]

а если пустая, то это условие не добавлять.

PHP код:
while select sum(qtyfrom inventTrans
            index hint TransIdIdx
            group by statusIssue
,statusReceipt
            where inventTrans
.inventTransId       == transId 
Через Query, QueryRun, QueryBuildDataSource, QueryBuildRange как сделать знаю.

Может как - нибудь через макрос?

Заранее благодарен
Старый 15.09.2004, 12:06   #2  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
PHP код:
&& ((receiptId == "") || (inventTrans.ReceiptId == receiptId)) 
Старый 15.09.2004, 13:03   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Re: И снова фильтр!
Цитата:
Изначально опубликовано sergy
Может как - нибудь через макрос?
Ни в коем разе!
макросы оставлены для совместимости.
Их сейчас рекомендуют использовать только для определения констант #define
Старый 15.09.2004, 13:32   #4  
sergy is offline
sergy
Участник
 
62 / 10 (1) +
Регистрация: 12.02.2004
Адрес: Воронеж
dn
не совсем так. Нужно либо все проводки по лоту, если параметр receiptId пустой, т.е. == "", либо проводки по указанному не пустому receiptId, например == "ЗППР016000"

Mazzy
Когда же он нас покинут? В Axapta 4.0?
Старый 15.09.2004, 13:37   #5  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 868 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Re: Re: И снова фильтр!
Цитата:
макросы оставлены для совместимости.
Их сейчас рекомендуют использовать только для определения констант #define
Глядя на использование макроса #InventDimJoin, что-то я сомневаюсь, что от них откажутся.
Старый 15.09.2004, 13:59   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано sergy
Когда же он нас покинут? В Axapta 4.0?
Не знаю. Точных обещаний не видел.
Старый 15.09.2004, 14:00   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Re: Re: Re: И снова фильтр!
Цитата:
Изначально опубликовано Wamr
Глядя на использование макроса #InventDimJoin, что-то я сомневаюсь, что от них откажутся.
Откажутся.
Такие вещи намного эффективнее запросами делать.

Для упражнения, попробуйте повторить этот код с использованием query.
Старый 15.09.2004, 14:18   #8  
sergy is offline
sergy
Участник
 
62 / 10 (1) +
Регистрация: 12.02.2004
Адрес: Воронеж
И все таки можно решить проблему? С макросом или как еще, без разницы
Старый 15.09.2004, 14:26   #9  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1850 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Re: Re: Re: Re: И снова фильтр!
Цитата:
Изначально опубликовано mazzy
Откажутся.
Такие вещи намного эффективнее запросами делать.
А с макросом так симпатишно получалось..
Старый 15.09.2004, 14:29   #10  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1850 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Изначально опубликовано sergy
И все таки можно решить проблему? С макросом или как еще, без разницы
Вам же dn уже привел вариант
Старый 15.09.2004, 14:32   #11  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
Цитата:
Изначально опубликовано sergy
dn
не совсем так. Нужно либо все проводки по лоту, если параметр receiptId пустой, т.е. == "", либо проводки по указанному не пустому receiptId, например == "ЗППР016000"
А я что по-твоему написал?

PHP код:
while select sum(qtyfrom inventTrans
            index hint TransIdIdx
            group by statusIssue
,statusReceipt
            where inventTrans
.inventTransId       == transId
           
&& ((receiptId == "") || (inventTrans.ReceiptId == receiptId)) 
если receiptId == "", то условие inventTrans.ReceiptId == receiptId не будет анализироваться,
а если receiptId != "", то как раз сработает условие inventTrans.ReceiptId == receiptId.

p.s. Вообще-то это стандартный прием в TSQL.
Старый 15.09.2004, 15:04   #12  
sergy is offline
sergy
Участник
 
62 / 10 (1) +
Регистрация: 12.02.2004
Адрес: Воронеж
Мучился с макросами, но получилось так
PHP код:
( ( receiptId && inventTrans.ReceiptId == receiptId ) || !receiptId 
Старый 27.05.2010, 09:37   #13  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 868 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
про макросы InventDimJoin
Цитата:
Сообщение от mazzy Посмотреть сообщение
Откажутся.
Такие вещи намного эффективнее запросами делать.

Для упражнения, попробуйте повторить этот код с использованием query.
Иван (kashperuk) или Михаил (mifi), что скажите ... откажутся?
Теги
макрос, запрос (query), ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ERP-BLOG: Axapta, фильтр по сетке Blog bot DAX Blogs 26 05.02.2009 15:56
Исполнить сформированный фильтр radya DAX: Программирование 14 26.07.2007 20:47
Иногда не работает фильтр chel DAX: Функционал 0 09.10.2004 19:08
Программируемый фильтр по Grid ArturK DAX: Программирование 6 01.03.2004 09:23
фильтр по связанной таблице mick_777 DAX: Программирование 13 21.08.2002 16:00

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

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

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