Описание источника данных — различия между версиями
Материал из GB wiki
Bars (обсуждение | вклад) (Новая страница: «Категория:Настройка ГБ == Использование == Описание источника данных служит для создания…») |
Alexey (обсуждение | вклад) |
||
Строка 12: | Строка 12: | ||
: вариант 2: OpenDataSet(`процедура`,`параметры`,`src`),src.$data | : вариант 2: OpenDataSet(`процедура`,`параметры`,`src`),src.$data | ||
:: вместо OpenDataSet может быть и более сложный скрипт, формирующий нужный датасет | :: вместо OpenDataSet может быть и более сложный скрипт, формирующий нужный датасет | ||
− | {{Внимание|Поскольку символ ; является разделителем элементов, в скрипте его использование недопустимо! вместо него нужно использовать [[CHAR|Char]](59),например: <br/> <nowiki>opendataset(`partners_get`,`Ids,S="`+DataSet.Partner+`"|Props,S="`+char(59)+`Stocks`+char(59)+`"`)</nowiki>}} | + | {{Внимание|Поскольку символ ; является разделителем элементов, в скрипте его использование недопустимо! вместо него нужно использовать [[CHAR|Char]](59),например: <br/> <nowiki>opendataset(`partners_get`,`Ids,S="`+DataSet.Partner+`"|Props,S="`+char(59)+`Stocks`+char(59)+`"`, ...)</nowiki>}} |
* '''KeyField''' = название ключевого поля в датасете | * '''KeyField''' = название ключевого поля в датасете | ||
* '''ListField''' = выражение, значение которого будет отображаться в выбиралке. Может быть как именем поля в датасете, простым выражением типа Id.Name, либо более сложным выражением, с обязательным именем поля, например, SName[@,fmName+100]=Heap.@Number+` `+AbateDate | * '''ListField''' = выражение, значение которого будет отображаться в выбиралке. Может быть как именем поля в датасете, простым выражением типа Id.Name, либо более сложным выражением, с обязательным именем поля, например, SName[@,fmName+100]=Heap.@Number+` `+AbateDate |
Версия 09:35, 26 августа 2020
Использование
Описание источника данных служит для создания элементов управления в виде списка значений, который не может быть получен стандартным способом.
Описание источника данных задается в строке описания элемента управления параметром Constraints='...', и может встречаться в параметрах колонок таблицы, в текстовых описаниях форм, отчетов, в функции QUERYPARAMS.
Структура
Состоит из элементов, разделенных ;
- Src = выражение, возвращающее датасет.
- вариант 1: GB_GET(тип, код, `поле`)
- Например, GB_GET(0,:CurrentFirm,`Stocks`)
- вариант 2: OpenDataSet(`процедура`,`параметры`,`src`),src.$data
- вместо OpenDataSet может быть и более сложный скрипт, формирующий нужный датасет
Внимание! Поскольку символ ; является разделителем элементов, в скрипте его использование недопустимо! вместо него нужно использовать Char(59),например: opendataset(`partners_get`,`Ids,S="`+DataSet.Partner+`"|Props,S="`+char(59)+`Stocks`+char(59)+`"`, ...) |
- KeyField = название ключевого поля в датасете
- ListField = выражение, значение которого будет отображаться в выбиралке. Может быть как именем поля в датасете, простым выражением типа Id.Name, либо более сложным выражением, с обязательным именем поля, например, SName[@,fmName+100]=Heap.@Number+` `+AbateDate
- Filter = выражение для фильтрации датасета. Буду отображаться только те записи, для которых результат вычисления = Истина.
- Order = выражение для сортировки датасета.
- DependsOn = выражение, от которого зависит список значений.
Примеры
Список серий для товара, заданного в поле MyArt:
QueryParams( `Articul['Товар']=MyArt,Certificate['Серия']=MyCert{Constraints='Src=gb_get(1,DataSet.?MyArt,"Passports");KeyField=Id;ListField=Id.Name;DependsOn=DataSet.?MyArt'}` )
?MyArt приходится писать из-за специфики работы функции QueryParams (на момент создания элементов управления датасет еще не активен и полей в нем еще нет)