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

Материал из GB wiki
Перейти к: навигация, поиск
Строка 14: Строка 14:
 
   |Пояснение=Строка или ассоциативный массив, имя либо описание датасета, хранящего параметры процедуры либо параметры импорта.
 
   |Пояснение=Строка или ассоциативный массив, имя либо описание датасета, хранящего параметры процедуры либо параметры импорта.
 
Параметры импорта файлов:
 
Параметры импорта файлов:
* FileType – строка, тип файла (TXT,CSV,DBF,XLS,CDS)
+
* FileType – строка, тип файла (TXT, CSV, DBF, XLS, CDS);
* FileName – строка, имя файла
+
* FileName – строка, имя файла;
* FieldCount – число, количество полей в строке файла
+
* FieldCount – число, количество полей в строке файла;
* FieldsMap – строка, содержит описание полей создаваемого датасета.<br>Представляет собой список формул вида имя,тип=выражение через «;», определяющих поля создаваемого датасета и их вычисление через поля исходного файла. Возможные значения для типа поля: I, F, D, S, B.<br>При задании константы '''`auto`''' для файла типа DBF, структура '''Датасета результатов''' повторит структуру импортируемого файла DBF.
+
* FieldsMap – строка, содержит описание полей создаваемого датасета.<br>Представляет собой список формул вида имя,тип=выражение через «;», определяющих поля создаваемого датасета и их вычисление через поля исходного файла. Возможные значения для типа поля: I, F, D, S, B.<br>При задании константы '''`auto`''' для файла типа DBF, структура '''Датасета результатов''' повторит структуру импортируемого файла DBF;
 
* Filter – выражение для фильтрации строк исходного файла;
 
* Filter – выражение для фильтрации строк исходного файла;
 
* Separator – строка, разделитель полей в текстовом файле;
 
* Separator – строка, разделитель полей в текстовом файле;
* Tabs – строка, список отступов полей в текстовом файле начиная с 0 через ;
+
* Tabs – строка, список отступов полей в текстовом файле начиная с 0 через ";"
* Comment – строка, символ комментария в текстовом файле, при встрече которого в начале строки нужно эту строку игнорировать
+
* Comment – строка, символ комментария в текстовом файле. При встрече данного символа в начале строки, эта строка игнорируется и не попадает в '''Датасет результатов''';
* CharSet – строка, значение `CP866` включает кодировку DOS, `UTF-8` включает кодировку UTF-8, `WIN1251` включает кодировку WIN1251
+
* CharSet – строка, тип кодировки файла. Возможны следующие значения:
* <span style="color:gray;">CP866 – строка, любое непустое значение означает, что текстовый файл в досовской кодировке (оставлено для совместимости)</span>
+
**`CP866` включает кодировку DOS;
* <span style="color:gray;">WIN1251 – строка, любое непустое значение означает, что DBF файл в кодировке windows (оставлено для совместимости)</span>
+
**`UTF-8` включает кодировку UTF-8;
* StartLine – число, номер строки с которой начинается импорт (первая строка – 0)
+
**`WIN1251` включает кодировку WIN1251;
* EndLine – число, номер строки которой заканчивается импорт (отрицательное число означает что не нужно импортировать соответствующее число последних строк).
+
* <span style="color:gray;">CP866 – строка, любое непустое значение означает, что текстовый файл в кодировке DOS (было в старых версиях ГБ, оставлено для совместимости)</span>
* StopIfEmpty – строка, любое непустое значение означает, что нужно остановить импорт, встретив пустую строку
+
* <span style="color:gray;">WIN1251 – строка, любое непустое значение означает, что DBF файл в кодировке Windows (было в старых версиях ГБ, оставлено для совместимости)</span>
* Sheet – строка, название листа для импорта из Excel
+
* StartLine – число, номер строки с которой начинается импорт (отсчет начинается с 0);
 +
* EndLine – число, номер строки, на которой заканчивается импорт (отсчет начинается с 0). Отрицательное значение означает, что не нужно импортировать соответствующее число последних строк;
 +
* StopIfEmpty – строка, любое непустое значение означает, что нужно остановить импорт, встретив пустую строку;
 +
* Sheet – строка, название листа для импорта из Excel.
 
}}
 
}}
 
{{Аргумент
 
{{Аргумент
Строка 34: Строка 37:
 
   |Пояснение=Строка, определяющая имя создаваемого датасета. Если задана пустая строка ``, то датасет не будет создан (используется, если нам не интересно, что вернула процедура).
 
   |Пояснение=Строка, определяющая имя создаваемого датасета. Если задана пустая строка ``, то датасет не будет создан (используется, если нам не интересно, что вернула процедура).
 
}}
 
}}
  |Пример=Вызов отчёта "Реестр документов" (в датасете DDoc - входные параметры процедуры):
+
  |Пример=Вызов отчёта "Реестр документов" (в датасете dsDoc - входные параметры процедуры):
 
  OPENDATASET(
 
  OPENDATASET(
 
   `Documents_PeriodRegistry`,
 
   `Documents_PeriodRegistry`,
   `DDoc`,
+
   `dsDoc`,
   `Res`
+
   `dsRes`
 
  )
 
  )
  
Не все процедуры возвращают массивы с данными. Но при этом некоторые процедуры могут возвращать различные сообщения о результатах своей работы, например ''"Обработано 1234 строк. Найдено и отмечено 110 товаров"''. Такое сообщение принято передавать в выходном датасете в поле Message, а вывести его можно так:
+
Не все процедуры возвращают массивы с данными. Но при этом некоторые процедуры могут возвращать различные сообщения о результатах своей работы, например ''"Обработано 1234 строк. Найдено и отмечено 110 товаров"''. Такое сообщение в процедурах принято передавать в выходном датасете в поле Message, а вывести его можно так:
  
  OpenDataSet(
+
  OpenDataSet(`MZ_ArticulsImport`, `dsTXT`, `dsRes`),
  `MZ_ArticulsImport`,
+
  IfEmpty(dsRes.Message, 0, Info(dsRes.Message))
  `dsTXT`,
 
  `dsRes`
 
),
 
  IfEmpty(
 
  dsRes.Message,
 
  0,
 
  Info(
 
    dsRes.Message
 
  )
 
)
 
 
}}
 
}}

Версия 11:43, 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 – строка, любое непустое значение означает, что текстовый файл в кодировке 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))