|
11.09.2015, 12:37 | #1 |
Участник
|
Финансовые аналитики Ax2012
Ax 2012. Есть query. В Datasource добавлена таблица VendTrans. Как настроить query чтобы при открытии в фильтре в поле, я не сам выбирал определенную аналитику, по которой буду фильтровать, а она там уже была. Что можно сделать?
|
|
11.09.2015, 12:49 | #2 |
Участник
|
Передать фильтр в форму параметром при открытии?
|
|
11.09.2015, 12:55 | #3 |
Участник
|
Да
|
|
11.09.2015, 13:01 | #4 |
Участник
|
Как то так
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 |
Участник
|
Не совсем то.
При открытии запроса мне надо выбрать поле по которому я буду указывать критерий. А мне надо чтобы поле было уже выбрано, и осталось указать критерий. Как это сделать для поля поставщик я знаю (добавить это поле в Datasource в узел Ranges). А как для финансовых аналитик я не знаю. |
|
11.09.2015, 15:38 | #6 |
Administrator
|
На уровне ядра за добавление такого фильтра отвечает метод Query.addQueryFilter, который на вход принимает объект QueryBuildDataSource и строковое название поля.
Соответственно, чтобы наложить Range, нужно приджойнить все необходимые датасорсы и на нужное поле наложить Range. Все это сильно нетривиально, поэтому есть штатный метод SysQuery::addDimensionAttributeRange, который в случае непустого значения (заглушка на непустое значение находится в начале метода \Classes\DimensionProvider\addAttributeRangeToQuery) аналитики в состоянии добавить нужный Range в форму расширенного фильтра. Для пустого значения Range не добавится Пример использования этого метода расположен в \Data Dictionary\Tables\CustTable\Methods\openBalanceMSTPerAgreement_RU
__________________
Возможно сделать все. Вопрос времени |
|
|
За это сообщение автора поблагодарили: Logger (3), ax_vsn (1). |