20.03.2003, 16:51 | #1 |
OntargIT
|
Проблема: подстановка значений по дефолту в диалог QueryRun
Здравствуйте, уважаемые!
Итак, попрос: Надо сделать фильтр по строкам таблицы, скажем, DateTrans, при выполнении периодической операции по этой таблице. При этом по дефолту в одно из полей в диалоге запроса надо поставить значение из поля TransDate найденой строки, скажем, DateTable. Класс есть: xxxxxXxxxxxCreate static void main(Args args) { .... if (xxxxxXxxxxxCreate.prompt()) { xxxxxXxxxxxCreate.run() } } и, соответственно, prompt: boolean prompt() { Query q; TransDate transDate = DateTable::find(...).TransDate; ; queryRun = new QueryRun(queryStr(DateTableQuery)); q = queryRun.query(); q.dataSourceTable(tableNum(DateTrans)).findRange(fieldNum(DateTrans,TransDate)).value(sysQuery::value(transDate)); return queryRun.prompt(); } Вопрос знатокам: почему значение transDate не появляется в соотв поле диалога запроса, а вместо этого происходит unpack ранее введенных значений c runBaseDialog? DateTableQuery - interactive. Менять последовательность сборки qr тоже не помогает (в смысле, если сначала собирать query, а потом делать new QueryRun(q)) thanks in advance |
|
20.03.2003, 18:11 | #2 |
Участник
|
Похоже, что ядро по умолчанию загружает сохраненные значения.
Если в подобной ситуации посмотреть на закладку формы запроса Загрузить/Сохранить, то увидишь, что там установлена опция "Ранее исполненный запрос". При включении опции "Исходный запрос", увидишь свое значение. Добиться, чтобы сразу отображались новые параметры запроса я так и не смог.... Можно попробовать подменить сохраненные для запроса значения, но как-то это неправильно. |
|
20.03.2003, 18:13 | #3 |
Участник
|
можно встречный вопрос к исходному вопросу?
а чем не устраивает функция сохранить/загрузить "ранее использованный запрос"? Пробовал? ответ на твой вопрос в постинге кроется именно в этом функционале. Аксапта сама пытается подставить ранее использованные значения из сохраненного "ранее использованного" запроса. |
|
20.03.2003, 18:34 | #4 |
NavAx
|
Ну это можно сделать например в dialog перед вызовом super()
PHP код:
__________________
С уважением, Игорь Ласийчук. |
|
21.03.2003, 09:39 | #5 |
Участник
|
Можно попробовать так...
Предлагаю два возможных варианта:
1. После создани queryRun вызвать метод queryRun.saveUserSetup(false). 2. При каждом вызове метода давать запросу новое уникальное имя. Например, так: PHP код:
|
|
|
За это сообщение автора поблагодарили: denny (1), Gustav (3). |
|
|