OPENDATASET — различия между версиями

Материал из GB wiki
Перейти к: навигация, поиск
Строка 2: Строка 2:
 
  |Название=OPENDATASET
 
  |Название=OPENDATASET
 
  |Описание=Открывает датасет при помощи вызова процедуры, либо путем импорта данных из файла (текстового, DBF, Excel, CDS)
 
  |Описание=Открывает датасет при помощи вызова процедуры, либо путем импорта данных из файла (текстового, DBF, Excel, CDS)
  |Синтаксис=OPENDATASET('''Имя процедуры''','''Датасет параметров''','''Имя датасета''')
+
  |Синтаксис=OPENDATASET('''Имя процедуры''', '''Датасет параметров''', '''Датасет результатов''')
 
  |Аргументы={{Аргумент
 
  |Аргументы={{Аргумент
 
   |Название=Имя процедуры
 
   |Название=Имя процедуры
   |Пояснение=Строка, имя процедуры в БД, либо константа `file:` для импорта данных из файла, либо константа `copy:` для создания копии датасета параметров.
+
   |Пояснение=Строка, содержащая одно из значений:
Имя процедуры может иметь вид ''GBDB://База/Процедура'' для осуществления [[Распределенные вызовы|распределенных вызовов]] либо ''GBTCP://Адрес:Порт/Процедура'' для вызова метода [[Бизнес-сервер|бизнес-сервера]]
+
* имя процедуры в БД. Имя процедуры может иметь вид ''`GBDB://База/Процедура`'' для осуществления [[Распределенные вызовы|распределенных вызовов]] либо ''`GBTCP://Адрес:Порт/Процедура`'' для вызова метода [[Бизнес-сервер|бизнес-сервера]];
 +
* константа '''`file:`''' для импорта данных из файла;
 +
* константа '''`copy:`''' для создания копии Датасета параметров.
 
}}
 
}}
 
{{Аргумент
 
{{Аргумент
 
   |Название=Датасет параметров
 
   |Название=Датасет параметров
   |Пояснение=Строка или ассоциативный массив, имя либо описание датасета, хранящего параметры процедуры либо параметры импорта
+
   |Пояснение=Строка или ассоциативный массив, имя либо описание датасета, хранящего параметры процедуры либо параметры импорта.
 
Параметры импорта файлов:
 
Параметры импорта файлов:
 
* FileType – строка, тип файла (TXT,CSV,DBF,XLS,CDS)
 
* FileType – строка, тип файла (TXT,CSV,DBF,XLS,CDS)
 
* FileName – строка, имя файла
 
* FileName – строка, имя файла
 
* FieldCount – число, количество полей в строке файла
 
* FieldCount – число, количество полей в строке файла
* FieldsMap – строка, список формул вида имя,тип=выражение через «;», определяющих поля создаваемого датасета и их вычисление через поля исходного файла, [`FieldsMap,B` : `auto`] - повторяет структуру импортируемого датасета из DBF. Возможные значения для типа поля: I, F, D, S, B  
+
* 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
  )
)