![]() |
#13 |
Участник
|
Глубоко не копал, но, "на вскидку" сразу же наткнулся на ограничение количества отображаемых Range на форме диалога в классе \Classes\RunBaseDialogModify
X++: // \Classes\RunBaseDialogModify\addQueryDatasource - здесь инициализация при открытии диалога // Add ranges defined in datasource while (curRangeFields <= #MAXRANGES && currentRange <= rangeCount) (...) // Add the specific element of the array field // that has been specified by the query. // Тут все правильно. Если поле то же самое, то счетчик curRangeFields не увеличивается curRangeFields += this.addField( sysDictField, fieldNameSet, sysDictField.label(), queryBuildRange.value()); (...) Теперь жмем кнопку расширенного фильтра и после сохранения попадаем вот сюда X++: // \Classes\RunBaseDialogModify\updateQuery - это обновление после кнопки расширенного фильтра // Loop through the ranges for the data source. while (curRangeFields <= #MAXRANGES && currentRange <= rangeCount) (...) fieldNameEnabledSet = this.addRangeAndFilterToDialog( sysDictField, queryBuildRange.value(), fieldNameEnabledSet, dialogGroupTable, curRangeFields); // И вот здесь безусловное увеличение счетчика curRangeFields++; (...) Т.е. отображать-то отображает, но не более указанного количества. По умолчанию, не более 8 Range. Причем в данном синтаксисе каждое значение пойдет как отдельный Range. Вот их и обрезали. Просто достигли предела цикла ![]() Видимо, тут надо добавить проверку на количество элементов в возвращенном fieldNameEnabledSet. Т.е. цикл ограничить не переменной curRangeFields, а как-то так X++: // Loop through the ranges for the data source. while (fieldNameEnabledSet.elements() <= #MAXRANGES && currentRange <= rangeCount)
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|