OPENDATASET — различия между версиями
Материал из GB wiki
Alexey (обсуждение | вклад) |
Alexey (обсуждение | вклад) |
||
Строка 2: | Строка 2: | ||
|Название=OPENDATASET | |Название=OPENDATASET | ||
|Описание=Открывает датасет при помощи вызова процедуры, либо путем импорта данных из файла (текстового, DBF, Excel, CDS) | |Описание=Открывает датасет при помощи вызова процедуры, либо путем импорта данных из файла (текстового, DBF, Excel, CDS) | ||
− | |Синтаксис=OPENDATASET('''Имя процедуры''','''Датасет параметров''',''' | + | |Синтаксис=OPENDATASET('''Имя процедуры''', '''Датасет параметров''', '''Датасет результатов''') |
|Аргументы={{Аргумент | |Аргументы={{Аргумент | ||
|Название=Имя процедуры | |Название=Имя процедуры | ||
− | |Пояснение=Строка, имя процедуры в БД | + | |Пояснение=Строка, содержащая одно из значений: |
− | Имя процедуры может иметь вид ''GBDB://База/Процедура'' для осуществления [[Распределенные вызовы|распределенных вызовов]] либо ''GBTCP://Адрес:Порт/Процедура'' для вызова метода [[Бизнес-сервер|бизнес-сервера]] | + | * имя процедуры в БД. Имя процедуры может иметь вид ''`GBDB://База/Процедура`'' для осуществления [[Распределенные вызовы|распределенных вызовов]] либо ''`GBTCP://Адрес:Порт/Процедура`'' для вызова метода [[Бизнес-сервер|бизнес-сервера]]; |
+ | * константа '''`file:`''' для импорта данных из файла; | ||
+ | * константа '''`copy:`''' для создания копии Датасета параметров. | ||
}} | }} | ||
{{Аргумент | {{Аргумент | ||
|Название=Датасет параметров | |Название=Датасет параметров | ||
− | |Пояснение=Строка или ассоциативный массив, имя либо описание датасета, хранящего параметры процедуры либо параметры импорта | + | |Пояснение=Строка или ассоциативный массив, имя либо описание датасета, хранящего параметры процедуры либо параметры импорта. |
Параметры импорта файлов: | Параметры импорта файлов: | ||
* FileType – строка, тип файла (TXT,CSV,DBF,XLS,CDS) | * FileType – строка, тип файла (TXT,CSV,DBF,XLS,CDS) | ||
* FileName – строка, имя файла | * FileName – строка, имя файла | ||
* FieldCount – число, количество полей в строке файла | * FieldCount – число, количество полей в строке файла | ||
− | * FieldsMap – строка, список формул вида имя,тип=выражение через «;», определяющих поля создаваемого датасета и их вычисление через поля исходного файла | + | * FieldsMap – строка, содержит описание полей создаваемого датасета.<br>Представляет собой список формул вида имя,тип=выражение через «;», определяющих поля создаваемого датасета и их вычисление через поля исходного файла. Возможные значения для типа поля: I, F, D, S, B.<br>При задании константы '''`auto`''' для файла типа DBF, структура '''Датасета результатов''' повторит структуру импортируемого файла DBF. |
− | * Filter – выражение для фильтрации строк исходного файла | + | * Filter – выражение для фильтрации строк исходного файла; |
− | * Separator – строка, разделитель полей в текстовом файле | + | * Separator – строка, разделитель полей в текстовом файле; |
* Tabs – строка, список отступов полей в текстовом файле начиная с 0 через “;” | * Tabs – строка, список отступов полей в текстовом файле начиная с 0 через “;” | ||
* Comment – строка, символ комментария в текстовом файле, при встрече которого в начале строки нужно эту строку игнорировать | * Comment – строка, символ комментария в текстовом файле, при встрече которого в начале строки нужно эту строку игнорировать | ||
Строка 29: | Строка 31: | ||
}} | }} | ||
{{Аргумент | {{Аргумент | ||
− | |Название= | + | |Название=Датасет результатов |
|Пояснение=Строка, определяющая имя создаваемого датасета. Если задана пустая строка ``, то датасет не будет создан (используется, если нам не интересно, что вернула процедура). | |Пояснение=Строка, определяющая имя создаваемого датасета. Если задана пустая строка ``, то датасет не будет создан (используется, если нам не интересно, что вернула процедура). | ||
}} | }} |
Версия 11:28, 18 марта 2016
Открывает датасет при помощи вызова процедуры, либо путем импорта данных из файла (текстового, DBF, Excel, CDS)
Синтаксис
OPENDATASET(Имя процедуры, Датасет параметров, Датасет результатов)
Аргументы
- Имя процедуры
- Строка, содержащая одно из значений:
- имя процедуры в БД. Имя процедуры может иметь вид `GBDB://База/Процедура` для осуществления распределенных вызовов либо `GBTCP://Адрес:Порт/Процедура` для вызова метода бизнес-сервера;
- константа `file:` для импорта данных из файла;
- константа `copy:` для создания копии Датасета параметров.
- Датасет параметров
- Строка или ассоциативный массив, имя либо описание датасета, хранящего параметры процедуры либо параметры импорта.
Параметры импорта файлов:
- FileType – строка, тип файла (TXT,CSV,DBF,XLS,CDS)
- FileName – строка, имя файла
- FieldCount – число, количество полей в строке файла
- FieldsMap – строка, содержит описание полей создаваемого датасета.
Представляет собой список формул вида имя,тип=выражение через «;», определяющих поля создаваемого датасета и их вычисление через поля исходного файла. Возможные значения для типа поля: I, F, D, S, B.
При задании константы `auto` для файла типа DBF, структура Датасета результатов повторит структуру импортируемого файла DBF. - Filter – выражение для фильтрации строк исходного файла;
- Separator – строка, разделитель полей в текстовом файле;
- Tabs – строка, список отступов полей в текстовом файле начиная с 0 через “;”
- Comment – строка, символ комментария в текстовом файле, при встрече которого в начале строки нужно эту строку игнорировать
- CharSet – строка, значение `CP866` включает кодировку DOS, `UTF-8` включает кодировку UTF-8, `WIN1251` включает кодировку WIN1251
- CP866 – строка, любое непустое значение означает, что текстовый файл в досовской кодировке (оставлено для совместимости)
- WIN1251 – строка, любое непустое значение означает, что DBF файл в кодировке windows (оставлено для совместимости)
- StartLine – число, номер строки с которой начинается импорт (первая строка – 0)
- EndLine – число, номер строки которой заканчивается импорт (отрицательное число означает что не нужно импортировать соответствующее число последних строк).
- StopIfEmpty – строка, любое непустое значение означает, что нужно остановить импорт, встретив пустую строку
- Sheet – строка, название листа для импорта из Excel
- Датасет результатов
- Строка, определяющая имя создаваемого датасета. Если задана пустая строка ``, то датасет не будет создан (используется, если нам не интересно, что вернула процедура).
Тип результата
- Нет
Примеры
Вызов отчёта "Реестр документов" (в датасете DDoc - входные параметры процедуры):
OPENDATASET( `Documents_PeriodRegistry`, `DDoc`, `Res` )
Не все процедуры возвращают массивы с данными. Но при этом некоторые процедуры могут возвращать различные сообщения о результатах своей работы, например "Обработано 1234 строк. Найдено и отмечено 110 товаров". Такое сообщение принято передавать в выходном датасете в поле Message, а вывести его можно так:
OpenDataSet( `MZ_ArticulsImport`, `dsTXT`, `dsRes` ), IfEmpty( dsRes.Message, 0, Info( dsRes.Message ) )