OPENDATASET

Материал из GB wiki
Перейти к: навигация, поиск

Открывает датасет при помощи вызова процедуры, либо путем импорта данных из файла (текстового, DBF, Excel, CDS)

Синтаксис

OPENDATASET(Имя процедуры,Датасет параметров,Имя датасета)

Аргументы

Имя процедуры
Строка, имя процедуры в БД, либо константа `file:` для импорта данных из файла, либо константа `copy:` для создания копии датасета параметров.

Имя процедуры может иметь вид GBDB://База/Процедура для осуществления распределенных вызовов либо GBTCP://Адрес:Порт/Процедура для вызова метода бизнес-сервера

Датасет параметров
Строка или ассоциативный массив, имя либо описание датасета, хранящего параметры процедуры либо параметры импорта

Параметры импорта файлов:

  • FileType – строка, тип файла (TXT,CSV,DBF,XLS,CDS)
  • FileName – строка, имя файла
  • FieldsMap – строка, список формул вида имя,тип=выражение через «;», определяющих поля создаваемого датасета и их вычисление через поля исходного файла, [`FieldsMap,B` : `auto`] - повторяет структуру импортируемого датасета из DBF. Возможные значения для типа поля: I, F, D, S, B
  • Filter – выражение для фильтрации строк исходного файла
  • Separator – строка, разделитель полей в текстовом файле
  • FieldCount – число, количество полей в текстовом файле
  • 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
  )
)