QUERYPARAMS — различия между версиями
Andrew (обсуждение | вклад) |
Andrew (обсуждение | вклад) |
||
Строка 30: | Строка 30: | ||
<pre> | <pre> | ||
− | + | `Grid=MyDs,String['aaa']=aaa,GridParams:__AutoGridMyDs='"RequiredLayout=|""reason"",""-100"",""Причина""|;|""NewField1[Тест,]=1+2"",""-40"",""Тест!""|"'`, `Заголовок` | |
+ | </pre> | ||
Заметим, что двойные кавычки в настройке таблицы удваиваются. | Заметим, что двойные кавычки в настройке таблицы удваиваются. | ||
Строка 38: | Строка 39: | ||
== Зависимое поле == | == Зависимое поле == | ||
<pre> | <pre> | ||
− | + | QueryParams(`File['Файл']=FileName{Constraints='Ext=*.xlsx'},PriceList.ByNode(219)['Тип тарифа']=utType,PriceList['Опция тарифа']:Folder=utSubType{Constraints='Src=OpenDataSet( "PRICELISTS_LIST",[ "Node,I" : ifempty(?utType,-1) ],"dsR" ),dsR.$data;KeyField=Id;ListField=Id.Name;DependsOn=?utType'}`), | |
</pre> | </pre> |
Версия 09:57, 23 августа 2023
Предлагает пользователю форму для ввода параметров. Возвращает "истина", если пользователь нажал в предложенной форме кнопку "Принять", и "ложь" в противном случае. Введенные пользователем параметры сохраняются в переменных.
Синтаксис
QUERYPARAMS (Строка описания параметров,Заголовок окна)
Аргументы
- Строка описания параметров
- Строка, описывающая требуемые параметры. Формат тот же, что для описания параметров отчетов.
- Заголовок окна
- Строка, заголовок окна для ввода параметров.
Тип результата
- Логическое значение.
Примеры
Если пользователь ввел требуемые параметры и нажал "Принять", то в переменных :MyStock и :MyString сохранятся введенные параметры:
QueryParams("Stock['Склад']=MyStock,String['Строка']=MyString")
Ввод пароля, который отображается "звёздочками":
QueryParams(`String['Пароль']=pwd{Constraints='password=*'}`,`Ввод пароля`)
Отображение таблиц
Специальный режим работы функции QUERYPARAMS - это отображение одного из датасетов текущей формы в виде таблицы. Синтаксис:
QueryParams(`Grid=MyDs`)
Замечания:
- поскольку таблица лежит в форме ввода параметров команды, а датасет в родительской, нельзя делать правила (изменять одни поля при изменении других, запрещать вставку и удаление)
- поскольку форма ввода параметров создается с одним и тем же именем, настройка таблицы в реестре хранится всего одна. Поэтому в случае использования QUERYPARAMS для отображения разных датасетов может потребоваться задавать настройку таблицы прямо в функции:
`Grid=MyDs,String['aaa']=aaa,GridParams:__AutoGridMyDs='"RequiredLayout=|""reason"",""-100"",""Причина""|;|""NewField1[Тест,]=1+2"",""-40"",""Тест!""|"'`, `Заголовок`
Заметим, что двойные кавычки в настройке таблицы удваиваются. Для разбивки заголовка колонок на несколько строк следует использовать управляющую комбинацию #13#10
Зависимое поле
QueryParams(`File['Файл']=FileName{Constraints='Ext=*.xlsx'},PriceList.ByNode(219)['Тип тарифа']=utType,PriceList['Опция тарифа']:Folder=utSubType{Constraints='Src=OpenDataSet( "PRICELISTS_LIST",[ "Node,I" : ifempty(?utType,-1) ],"dsR" ),dsR.$data;KeyField=Id;ListField=Id.Name;DependsOn=?utType'}`),