29.10.2004, 09:39 | #1 |
Участник
|
Значения параметров из SysQueryForm.
Как получить значения параметров из SysQueryForm?
Из формы пользователь вызывает форму фильтра (SysQueryForm) и накладывает свои критерии выбора. Как получить значение выбранных критериев наложенного фильтра? В форму, SysQueryForm возвращает только одно значение, а необходимы все значения выбранных пользователем критериев. Конкретно форма “приемка” (Управление запасами/периодические операции/Приемка ->кнопка “выбор”), нужно получить значение выбранной пользователем даты. Заранее признателен за помощь. |
|
29.10.2004, 10:03 | #2 |
----------------
|
Не нашел такого пункта меню.
SysQueryForm вызывается из QueryRun.prompt() все ограничения, сортировки и пр. попадает в QueryRun.query(). Остается только найти тот самый QueryRun |
|
29.10.2004, 10:10 | #3 |
Участник
|
Уточнение расположение формы "приемка"
Управление запасами/периодические операции/Спецификации/Приемка ->кнопка “выбор”). |
|
29.10.2004, 10:10 | #4 |
Moderator
|
Цитата:
Не нашел такого пункта меню.
|
|
29.10.2004, 10:24 | #5 |
Участник
|
Да Андрей ты прав, меню находится:
Управление запасами/Периодические операции/Спецификации/Приемка ->кнопка “выбор”). |
|
29.10.2004, 10:36 | #6 |
Moderator
|
А где ты хочешь получить эти значения ? В какой именно точке кода ?
А вообще, общий подход Wamr сказал. |
|
29.10.2004, 10:54 | #7 |
Участник
|
Значения параметров мне необходимо получить в перекрытом методе clicked() добавленной кнопки. Значения параметров в дальнейшем необходимо использовать для выборки данных из таблиц сводного планирования. Конечной целью является перенос спланированных количеств спецификаций из сводного плана в форму приемка.
|
|
29.10.2004, 11:02 | #8 |
Модератор
|
Насколько я могу судить, это несколько неверный подход...
Посмотри tutorial_RunbaseForm. Я бы перекрыл метод хм.. ну, допустим chechCloseDialog и проверял бы там. заодно можно и не дать закрыть окно, если паметрв введены неверно. С Уважением, Георгий |
|
29.10.2004, 11:03 | #9 |
----------------
|
Признаться, мне сложно понять, всю красоту Вашего замысла, но думаю, результаты работы SysQueryForm Вы сможете найти в multiReportFinish.queryRun().query().
|
|
29.10.2004, 11:09 | #10 |
Moderator
|
PHP код:
Цитата:
но думаю, результаты работы SysQueryForm Вы сможете найти в multiReportFinish.queryRun().query().
Исправление: Хотя нет, в Query() значений Ranges вы тоже не найдете. |
|
29.10.2004, 11:23 | #11 |
Moderator
|
Вот, вроде бы работающий вариант:
PHP код:
|
|
29.10.2004, 12:17 | #12 |
Участник
|
Андрей спасибо за желание помочь.
Вы абсолютно правы в таблице BomParmReportFinish хранятся строки отфильтрованные в соответствии с параметрами заданными пользователем в форме SysQueryForm. Но трудность заключается в том, что в таблице BomParmReportFinish нет значения нужного мне критерия, а именно Даты выбранной пользователем в SysQueryForm, а эта дата необходима для дальнейших выборок. |
|
29.10.2004, 12:24 | #13 |
Moderator
|
Цитата:
Но трудность заключается в том, что в таблице BomParmReportFinish нет значения нужного мне критерия, а именно Даты выбранной пользователем в SysQueryForm
Что это за поле ? Оно именно так и называется "Дата" ? Это стандартное поле или добавленное вами ? |
|
29.10.2004, 12:34 | #14 |
Участник
|
Все правильно. Это я не точно пояснил. По умолчанию в SysQueryForm выбрана “Картотека номенклатуры”. Затем пользователь добавляет в SysQueryForm таблицу “Спланированный заказ”, а в ней выбирает поле “Дата заказа”. Именно значение критерия “Дата заказа” необходимо для получения необходимой выборки.
|
|
29.10.2004, 12:42 | #15 |
Moderator
|
Ну тогда у вас два варианта:
1. Разобраться почему у multiReportFinish не инициализирован QueryRun. 2. В код, заполняющий BomParmReportFinish добавить возможность сохранения даты. Первый способ универсальнее и идеологически более правильный. p.s. А он кстати по дате фильрует ? |
|
29.10.2004, 12:49 | #16 |
Участник
|
Фильтрует по дате при условии выбора в таблице “Спланированный заказ” критерия для поля “план”.
|
|
29.10.2004, 13:31 | #17 |
----------------
|
Посмотрел немного код..
п.1 не поможет надо сразу смотреть п.2, точнее где-то тут RunBaseMultiParm.choose() |
|
29.10.2004, 14:03 | #18 |
Участник
|
Re: Значения параметров из SysQueryForm.
Цитата:
Изначально опубликовано har
Как получить значения параметров из SysQueryForm? Из формы пользователь вызывает форму фильтра (SysQueryForm) и накладывает свои критерии выбора. Как получить значение выбранных критериев наложенного фильтра? В форму, SysQueryForm возвращает только одно значение, а необходимы все значения выбранных пользователем критериев. Посчитать количество наложенных фильтров: { Table1_ds.queryRun().query().dataSourceNo(1).rangeCount() } Найти какой-нибудь интересующий нас фильтр: { if(Table1_ds.queryRun().query().dataSourceNo(1).findRange(fieldNum(Table1, Field1))) info(queryvalue(range.value())); } Или имелось в виду что-нибудь другое? |
|
29.10.2004, 14:18 | #19 |
Moderator
|
В данном случае данный прием работать не будет.
|
|
29.10.2004, 15:25 | #20 |
Участник
|
С позволения Андрея позволю себе добавить.
В форме BOMReportFinish КОНЕЧНЫЙ фильтр накладывается по полю ParmId таблицы BOMReportFinish (это значение получить не проблема). Значения ParmId в таблице BOMReportFinish меняются в соответствии с критериями наложенными пользователями в SysQueryForm во время закрытия формы SysQueryForm. То есть всем записям, удовлетворяющим критериям фильтра, присваиваются одинаковые значения ParmId. Значение ParmId возвращается в форму, и по этому значению накладывается фильтр. Но дело в том, что для решения поставленной задачи необходимы именно критерии пользователей, сделанные в SysQueryForm и которые не возвращаются в форму BOMReportFinish. |
|
|
|