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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.09.2015, 12:37   #1  
ax_vsn is offline
ax_vsn
Участник
 
36 / 12 (1) ++
Регистрация: 05.02.2014
Финансовые аналитики Ax2012
Ax 2012. Есть query. В Datasource добавлена таблица VendTrans. Как настроить query чтобы при открытии в фильтре в поле, я не сам выбирал определенную аналитику, по которой буду фильтровать, а она там уже была. Что можно сделать?
Старый 11.09.2015, 12:49   #2  
syl is offline
syl
Участник
Аватар для syl
 
236 / 21 (1) +++
Регистрация: 10.06.2015
Адрес: Киев
Передать фильтр в форму параметром при открытии?
Старый 11.09.2015, 12:55   #3  
ax_vsn is offline
ax_vsn
Участник
 
36 / 12 (1) ++
Регистрация: 05.02.2014
Да
Старый 11.09.2015, 13:01   #4  
syl is offline
syl
Участник
Аватар для syl
 
236 / 21 (1) +++
Регистрация: 10.06.2015
Адрес: Киев
Как то так

X++:
// Args class is usually used in Axapta for passing parameters between forms
    Args            args;
    FormRun         formRun;
    ;

    args = new args();

    // Our values which we want to pass to FormB
    // If we want pass just simple string we can use 'parm' method of 'Args' class
    args.parm( "anyStringValue" );

    // Run FormB
    args.name( formstr( FormB ) );
    formRun = classFactory.formRunClass( Args );
    formRun.init();
    formrun.run();
    formrun.wait();
X++:
public void init()
{
    str             anyStringValueFromCaller;
    ;
    super();

    // Check for passed arguments
    if( element.args() )
    {
        // get string parameter
        anyStringValueFromCaller = element.args().parm();

    }
}
Старый 11.09.2015, 13:17   #5  
ax_vsn is offline
ax_vsn
Участник
 
36 / 12 (1) ++
Регистрация: 05.02.2014
Не совсем то.
При открытии запроса мне надо выбрать поле по которому я буду указывать критерий. А мне надо чтобы поле было уже выбрано, и осталось указать критерий. Как это сделать для поля поставщик я знаю (добавить это поле в Datasource в узел Ranges). А как для финансовых аналитик я не знаю.
Старый 11.09.2015, 15:38   #6  
online
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,319 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
На уровне ядра за добавление такого фильтра отвечает метод Query.addQueryFilter, который на вход принимает объект QueryBuildDataSource и строковое название поля.
Соответственно, чтобы наложить Range, нужно приджойнить все необходимые датасорсы и на нужное поле наложить Range.

Все это сильно нетривиально, поэтому есть штатный метод SysQuery::addDimensionAttributeRange, который в случае непустого значения (заглушка на непустое значение находится в начале метода \Classes\DimensionProvider\addAttributeRangeToQuery) аналитики в состоянии добавить нужный Range в форму расширенного фильтра. Для пустого значения Range не добавится

Пример использования этого метода расположен в \Data Dictionary\Tables\CustTable\Methods\openBalanceMSTPerAgreement_RU
__________________
Возможно сделать все. Вопрос времени
За это сообщение автора поблагодарили: Logger (3), ax_vsn (1).
Теги
финансовая аналитика

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
AX 2012 R2, R3: финансовые аналитики и работа со справочниками Kabardian DAX: Функционал 14 21.02.2020 11:10
Финансовые аналитики Harry DAX: Функционал 22 23.07.2014 09:48
AX2012 - Финансовые аналитики в строках общего журнала ГК immerge DAX: Функционал 4 21.06.2014 00:35
Финансовые аналитики smailik DAX: Программирование 2 11.04.2012 11:13
финансовые аналитики в диалог longson DAX: Программирование 6 02.07.2008 03:23

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

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

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