OPENDATASET

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

Открывает датасет при помощи вызова процедуры, либо путем импорта данных из файла (текстового, 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 – строка, любое непустое значение означает, что текстовый файл в кодировке DOS (было в старых версиях ГБ, оставлено для совместимости)
  • WIN1251 – строка, любое непустое значение означает, что DBF файл в кодировке Windows (было в старых версиях ГБ, оставлено для совместимости)
  • StartLine – число, номер строки с которой начинается импорт (отсчет начинается с 0);
  • EndLine – число, номер строки, на которой заканчивается импорт (отсчет начинается с 0). Отрицательное значение означает, что не нужно импортировать соответствующее число последних строк;
  • StopIfEmpty – строка, любое непустое значение означает, что нужно остановить импорт, встретив пустую строку;
  • Sheet – строка, название листа для импорта из Excel.
Датасет результатов
Строка, определяющая имя создаваемого датасета. Если задана пустая строка ``, то датасет не будет создан (используется, если нам не интересно, что вернула процедура).

Тип результата

Нет

Примеры

Вызов отчёта "Реестр документов" (в датасете dsDoc - входные параметры процедуры):

OPENDATASET(
  `Documents_PeriodRegistry`,
  `dsDoc`,
  `dsRes`
)

Не все процедуры возвращают массивы с данными. Но при этом некоторые процедуры могут возвращать различные сообщения о результатах своей работы, например "Обработано 1234 строк. Найдено и отмечено 110 товаров". Такое сообщение в процедурах принято передавать в выходном датасете в поле Message, а вывести его можно так:

OpenDataSet(`MZ_ArticulsImport`, `dsTXT`, `dsRes`),
IfEmpty(dsRes.Message, 0, Info(dsRes.Message))