|
25.11.2024, 17:22 | #1 |
Участник
|
Как зафиксировать структуру запроса в SysQueryForm?
Добрый день
Есть диалог. В нем при инициализации строится запрос, передаваемый в QueryRun. В запросе описано некоторое количество фильтров, значения которых пользователь может инициализировать в интерфейсе SysQueryForm. Вопрос: можно ли как то зафиксировать структуру запроса, то есть запретить пользователю менять структуру запроса, к примеру добавлять линки и фильтры, оставляя возможность только работать с предопределенными фильтрами? |
|
25.11.2024, 17:46 | #2 |
Участник
|
Здравствуйте
SysQuery::addLockRange_RU - это ищите? |
|
25.11.2024, 18:06 | #3 |
Участник
|
X++: static QueryBuildRange addLockRange_RU(QueryBuildDataSource _queryBuildDataSource, FieldId _fieldId, str _value, boolean _clear = false) { QueryBuildRange queryBuildRange; if (_queryBuildDataSource && _fieldId) { if (_clear && _queryBuildDataSource.findRange(_fieldId)) { _queryBuildDataSource.clearRange(_fieldId); } queryBuildRange = _queryBuildDataSource.addRange(_fieldId); queryBuildRange.value(_value); queryBuildRange.status(RangeStatus::Locked); } return queryBuildRange; } Последний раз редактировалось AxeUser; 25.11.2024 в 18:12. |
|
26.11.2024, 08:23 | #4 |
Участник
|
Можно скрыть запрос от пользователя перекрыв метод showQueryValues
|
|
26.11.2024, 09:38 | #5 |
Участник
|
|
|
26.11.2024, 14:20 | #6 |
северный Будда
|
Вообще, когда перечень ограничений жёстко предопределён - действительно кмк проще убрать с диалога вызов SysQueryForm и добавить поля критериев. А потом уже обновлять QueryRun на основе введённых введённых в эти поля значений.
__________________
С уважением, Вячеслав |
|
|
За это сообщение автора поблагодарили: Товарищ ♂uatr (4). |
28.11.2024, 00:21 | #7 |
Участник
|
если кому интересно, нашел таки, все оказалось просто
QueryRun диалога наследовал от SysQueryRun и инициализировал его X++: queryRun.promptLoadLastUsedQuery(false); queryRun.promptAllowSave(false); queryRun.promptShowSorting(false); queryRun.promptSaveQueryPrUser(false); queryRun.promptAllowAddDataSource(false); queryRun.promptAllowAddRange(QueryAllowAdd::NoFields); |
|
|
За это сообщение автора поблагодарили: S.Kuskov (5). |
|
|