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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.11.2006, 13:15   #1  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Сделать AND по одному полю без расширенного фильтра
Интересная фича fieldId2ext
X++:
    Query       q = new Query();
    QueryBuildDataSource qbds;
    ;

    qbds = q.addDataSource(tableNum(InventTable));

    qbds.addRange(fieldNum(InventTable, ItemId)).value("8");
    qbds.addRange(fieldid2ext(fieldNum(InventTable, ItemId),1)).value("2");

    info(qbDS.toString());
За это сообщение автора поблагодарили: mazzy (2), EVGL (1), blokva (2), zemlyn (1), kashperuk (3), axaLearner (1), oip (3).
Старый 24.11.2006, 13:26   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,953 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
:(
Скорее уж багофича
Старый 24.11.2006, 14:11   #3  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Не знаю. По-моему, все-таки фича. Полезная. Потому в Полезное перенесу.

Wamr'у уже в который раз благодарность от всего сообщества.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 24.11.2006, 14:17   #4  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Класс!
Старый 24.11.2006, 14:22   #5  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Ого. Супер. А расскажите еще, как до такой жизни дошли? В смысле, где-то встретили такой код, или же сами придумали?
Старый 24.11.2006, 14:23   #6  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
ну раз пошла такая пьянка. Сразу предупреждаю, что Аксапта считает эти поля разными всегда и при поиске фильтра и при удалении и пр.

Как дошли... давно это было - не помню уже
Старый 24.11.2006, 14:26   #7  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Ну, это можно попробовать так обойти:
X++:
    qbr = qbds.findRange(fieldNum(InventTable, ItemId), 2);
Старый 24.11.2006, 14:30   #8  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Правда это ж просто occurrence задается, то есть если перед 2 задать еще один фильтр, то найдется он, а не по расширенному полю

Но по fieldId2Ext он у меня этот фильтр просто не находит.
Старый 24.11.2006, 15:02   #9  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
А у нас был программист, оказывается, который это знал. И мне даже посчастливилось с ним немного поработать. Вот некий его код в нашем приложении еще от 2004 года, только что случайно обнаружил:
X++:
                // При добавление Range'ов с разными fieldId, они соединяются по условию AND
                qbds.addRange(fieldId2Ext(fieldnum(InventTable, ItemId), 1)).value(queryRunRangeValue);
                qbds.addRange(fieldnum(InventTable, ItemId)).value(range.value());
Старый 27.11.2006, 12:51   #10  
blokva is offline
blokva
Пенсионер
Аватар для blokva
SAP
NavAx Club
 
743 / 167 (7) ++++++
Регистрация: 04.06.2003
Адрес: Беларусь
Ого классная фича, тут можно такие весчи вытворять, например добавление OR и еще AND и т.д.:
X++:
qbds.addRange(fieldNum(InventTable, ItemId)).value("8");
    qbds.addRange(fieldid2ext(fieldNum(InventTable, ItemId),1)).value("2");
    qbds.addRange(fieldid2ext(fieldNum(InventTable, ItemId),1)).value("3");
    qbds.addRange(fieldid2ext(fieldNum(InventTable, ItemId),1)).value("4");
или
X++:
qbds.addRange(fieldNum(InventTable, ItemId)).value("8");
    qbds.addRange(fieldid2ext(fieldNum(InventTable, ItemId),1)).value("2");
    qbds.addRange(fieldid2ext(fieldNum(InventTable, ItemId),0)).value("3");
    qbds.addRange(fieldid2ext(fieldNum(InventTable, ItemId),1)).value("4");
однозначный респект!!!
__________________
Законы природы еще никто не отменял!
А еще у меня растет 2 внучки!!! Кому интересно подробности тут:
http://www.baby-shine.com/
Теги
faq, query, полезное

 

Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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