28
Программный продукт "ПАРУС–Предприятие 8" Средство разработки и сопровождения "Конвертер" Руководство пользователя Москва 2016

Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

Программный продукт "ПАРУС–Предприятие 8"

Средство разработки и сопровождения

"Конвертер"

Руководство пользователя

Москва 2016

Page 2: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

Copyright © ООО "Центр Информационных Технологий и Консалтинга "Парус", 2016.

Все права защищены.

Без предварительного получения письменного разрешения ООО "ЦИТК "Парус" этот документ

(или его часть) не может быть подвергнут копированию, фотокопированию,

репродуцированию, переводу или переносу на любые носители. Информация, содержащаяся в

этом документе, может быть изменена без специального уведомления, что не является

нарушением обязательств по отношению к пользователю со стороны ООО "ЦИТК "Парус".

Содержание данного документа может частично не соответствовать установленной у

пользователя версии Программного продукта – в связи с его постоянным развитием. Для

получения более точной информации используйте электронную справочную систему.

Page 3: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

3

Содержание

Введение ....................................................................................................... 4

Общий порядок передачи данных с конвертированием........................ 4 Назначение модуля "конвертер"............................................................... 6 Установка модуля "Конвертер" ................................................................. 7 Запуск модуля "Конвертер"....................................................................... 8

Конвертирование данных .......................................................................... 9

порядок конвертирования данных............................................................ 9 Формирование файла настроек.............................................................. 10 Обеспечение чтения данных из базы Системы.................................... 19 собственно конвертирование данных .................................................... 20

Приложение. Функции алгоритмов преобразования.......................... 23

Общий список функций ....................................................................... 23 Описание функций............................................................................... 24

Page 4: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

4

Введение Настоящая книга является руководством по работе со служебным моду-

лем "Конвертер" входящим в состав Программного продукта (далее про-

сто Системы), предназначенным для преобразования (конвертирования)

данных форматов DBF и SDF.

Книга адресована администратору Системы или сотруднику, которому

поручено обеспечение и проведение передачи данных с их конвертиро-

ванием.

ОБЩИЙ ПОРЯДОК ПЕРЕДАЧИ ДАННЫХ С КОНВЕРТИРОВАНИЕМ

Система может использовать информацию из баз данных других про-

граммных комплексов (систем), созданных разработчиками настоящего

Программного продукта или другими фирмами. И наоборот, информация,

накопленная в базе данных Системы, может быть использована в других

программных комплексах:

Система(программныйкомплекс) -источник

данных

ФайлыDBF или SDF

Модуль"Конвертер"

1. Экспортданных

2. Преобразование

данных

2. Конвертирова-ние данных

3. Импортданных

Система(программныйкомплекс) -приемник

данных

ФайлыDBF или SDF

Базаданных

Базаданных

� Передача данных с конвертированием может осуществляться

в следующем порядке:

1 Сначала проводится экспорт данных, то есть формирование файлов

формата DBF или SDF по информации из базы данных системы – ис-

точника данных.

2 Затем при помощи модуля "Конвертор" данные полученных файлов

DBF или SDF считываются, преобразуются и записываются в другие

файлы DBF или SDF. Именно этот шаг будем называть конвертиро-

ванием данных.

3 Наконец осуществляется импорт данных, то есть запись информа-

ции из преобразованных файлов DBF или SDF в базу данных систе-

мы – приемника данных.

В описанной

последовательности

в качестве систем

понимается Систе-

ма, или иные про-

граммные продукты,

или программные

комплексы других

производителей.

Page 5: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

5

Например, источником данных может являться Система розничной тор-

говли "ПАРУС-Магазин 9". В специальном разделе модуля "Менеджер

магазина" этой системы осуществляется экспорт данных в SDF-файл.

Приемником данных может являться Система. Запись информации в базу

данных этой Системы проводится при помощи стандартного средства: им-

порта данных из DBF-файлов.

Как видите, в данном случае источник и приемник используют различные

форматы данных. К тому же эти данные могут быть "не согласованы", на-

пример, по структуре информации: набору и формату полей (характеристик)

записей таблиц. Подобные рассогласования как раз и разрешаются модулем

"Конвертер".

В особых случаях и источником, и приемником информации может являться

Система, например, при необходимости скорректировать содержание базы

данных этой Системы.

Модуль "Конвертер" поддерживает также возможность получения ис-

ходной информации непосредственно из базы данных Системы в ходе

собственно конвертирования:

СистемаПАРУС -источник

данных

Модуль"Конвертер"

1. Конвертирование с получением информациинепосредственно из БД Системы

2. Импортданных

Система(програм-мныйкомплекс) -приемник

данных

ФайлыDBF или SDF

Базаданных

БазаданныхORACLE

ДрайверBDE

Page 6: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

6

Наконец, модуль обеспечивает конвертирование, когда источниками

данных являются одновременно:

� DBF- или SDF-файлы;

� база данных Системы.

НАЗНАЧЕНИЕ МОДУЛЯ "КОНВЕРТЕР" Итак, модуль "Конвертер" предназначен для преобразования данных форматов DBF и SDF.

Дополнительной возможностью является получение данных сразу из базы Системы. На вход

модуля поступают данные файлов DBF или SDF, а также данные непосредственно из БД

Системы. Эта информация модифицируется при помощи специальных алгоритмов

преобразования и записывается в другие файлы DBF или SDF.

Модуль "Конвертор" является универсальным инструментом преобразо-

вания данных форматов DBF и SDF, так как он обеспечивает:

� обработку для всех четырех возможных вариантов форматов на вхо-

де и выходе: с любой струк-

турой записей входных и

выходных таблиц – эти

структуры описываются в

предварительно подготав-

ливаемом файле настройки

"Конвертера";

� любую модификацию (изменение и дополнение) данных, которая задает-

ся алгоритмами преобразования в файлах настройки "Конвертора".

Модуль "Конвертер" обеспечивает также просмотр данных форматов

DBF/SDF и структуры этих данных.

Система(програм-мныйкомплекс) -источник

данных

Модуль"Конвертер"

2. Конвертированиеданных

3. Импортданных

Система(програм-мныйкомплекс) -приемник

данных

ФайлыDBF или SDF

Базаданных

Базаданных

СистемаПАРУС -источник

данных

Базаданных

ORACLEДрайверBDE

2. Конвертирование с получением информациинепосредственно из БД Системы

ФайлыDBF или SDF

1. Экспортданных

N Источник Приемник

1 SDF SDF

2 SDF DBF

3 DBF DBF

4 DBF SDF

Page 7: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

7

УСТАНОВКА МОДУЛЯ "КОНВЕРТЕР"

Модуль "Конвертер" устанавливается:

� для Системы верс. 8.5.1.1 (и более ранних) – точно также, как и

другие компоненты (модули) Системы: см. книгу "Установка Систе-

мы. Руководство администратора";

� начиная с верс. 8.5.2 Системы – при помощи отдельно поставляемо-

го инсталлятора: запустите setup.exe и следуйте далее указаниям

Мастера установки.

Внимание! До установки конвертера на рабочем месте должен быть установлен

Microsoft Internet Explorer верс. 6 и выше.

В случае появления сообщения об ошибках:

� Для вер. 9х при появлении сообщения:

"Не найден Microsoft Script Control"

необходимо установить

"…\Парус Конвертер\SUPPORT\sct10en.exe".

� При возникновении других ошибок установить

Windows Script Host 5.6.

Page 8: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

8

ЗАПУСК МОДУЛЯ "КОНВЕРТЕР"

Запуск модуля "Конвертер" CONV.EXE осуществляется обычными для

Mifcrosoft Windows средствами, например, двойным щелчком мыши по

пиктограмме "Конвертор" в папке, где он установлен (например, в папке

C:\PARUS\CONV).

После запуска появится окно "Конвертер", состоящее из трех вкладок:

� Конвертация данных (см. стр. 20),

� Просмотр таблиц (см. стр. 16),

� ORACLE (см. стр. 19).

Для окончания работы с модулем (без проведения процедуры конверти-

рования) нажмите щелчком мыши кнопку в правом верхнем углу ок-

на "Парус Конвертер".

Примечание. Конвертирование может осуществляться при передаче информа-

ции с помощью типовых функций (команд) импорта или экспорта данных в

Системе (см. стр. 21).

Page 9: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

9

Конвертирование данных В данном разделе сначала приведен общий порядок конвертирования

данных, а затем – подробное описание каждого шага.

ПОРЯДОК КОНВЕРТИРОВАНИЯ ДАННЫХ

� Конвертирование данных проводится в следующем порядке:

� На подготовительном этапе формируется файл настроек "Конвер-

тера".

Этот файл содержит всю информацию, необходимую для преобразо-

вания данных исходных файлов в приемные файлы1 для конкретного

варианта (случая) конвертации.

Например, для конвертирования данных системы розничной торговли

"ПАРУС-Магазин 9" в данные Системы подготавливается один опреде-

ленный файл настроек.

Для других случаев конвертирования формируются другие файлы на-

строек.

Вы можете заранее подготовить файлы настроек для всех необходи-

мых случаев. Различные файлы настроек конвертирования могут по-

ставляться также вместе с Системой.

� На этапе конвертирования данных:

1 Запишите в каталог жесткого диска Вашего компьютера или в

доступный каталог сервера исходные sdf- или dbf-файлы. Создай-

те на жестком диске Вашего компьютера или на сервере каталог

для записи приемных sdf- или dbf-файлов2.

1 В частности, файл настроек содержит описание структур входных и выходных таблиц баз данных. Подобные

сведения могут поставляться вместе с системами – источником и приемником данных. Подчеркнем, что для получения

описания структур данных удобнее воспользоваться самим модулем "Конвертор" (см. стр. 15).

2 Предварительное создание каталога-приемника не обязательно: при его отсутствии он будет создан автоматически

при проведении процедуры конвертирования.

Page 10: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

10

2 Запустите модуль "Конвертор".

� Выберите подходящий файл настроек.

� При необходимости Вы можете исправить некоторые общие

параметры, зафиксированные в файле настроек (в частности,

каталог, откуда будут считываться исходные файлы sdf или

dbf, и каталог, куда будут записываться формируемые файлы

sdf или dbf).

� Если исходные данные будут браться непосредственно из базы

Системы, то введите параметры настройки на вкладке

"ORACLE".

3 Запустите собственно процедуру конвертирования данных. По

окончании этой процедуры появится соответствующее сообщение

модуля "Конвертер".

ФОРМИРОВАНИЕ ФАЙЛА НАСТРОЕК

Файл настроек является текстовым файлом. Он формируется при помо-

щи любого текстового редактора.

Файл настроек может быть записан в том же каталоге, что и модуль "Кон-

вертер", или в любом другом каталоге. Как уже отмечалось выше, отдель-

ный файл настройки предназначен для конкретного варианта (случая)

конвертирования (см. стр. 9). Вы можете записать все файлы настройки в

одном каталоге или разместить их в нескольких каталогах, в соответствии

с удобной для Вас классификацией вариантов конвертирования.

Имя файла настроек произвольно. При этом рекомендуется:

� Собственно имена файлов задавать по определенной системе так,

чтобы можно было легко выбрать нужный из их совокупности.

� В качестве расширения имени использовать ini.

Для определенности в данном документе для файла настроек использу-

ется имя script.ini.

Page 11: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

11

Приведем пример файла настроек:

[General] Overwrite = YES LogFile = c:\parus\conv\log.txt ;Параметры SDF: ; разделитель данных SDFSeparator = , ; десятичный разделитель SDFDecimalSeparator = . ; ограничитель текста SDFComma = " ; формат даты SDFDateFormat = YYYYMMDD [Constants] ;Константы CurrentYear = D;1999 NDS = N;20 [Reserve] ;Зарезервированные слова NULL=NULL [Source] ;Параметры источника данных DBType = DBF DBPath = c:\parus\conv\source CharSet = WIN Table1 = MAIN Table2 = SLAVE [S:MAIN] Field0 = proba1;N;2 Field1 = proba2;C;200 [S:SLAVE] Field0 = proba1;N;2 Field1 = proba2;C;200

Page 12: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

12

[Target] DBType = SDF DBPath = c:\parus\conv\target CharSet = WIN Table1 = MAIN Table2 = SLAVE [T:MAIN] Field1 = proba1;N;2 Field2 = proba2;C;200 Field3 = proba3;N;15;5 Field4 = proba4;N;2 Field5 = proba5;N;10 Field6 = proba6;N;10 Field7 = proba7;C;200 Field8 = proba8;D Field9 = proba9;C;200 [T:SLAVE] Field1 = proba1;N;2 Field2 = proba2;C;200 [Units] Unit1 = Contragents [Contragents] 0010 = "FOR Q1 SELECT * FROM main" 0020 = " FOR Q2 SELECT M.* FROM slave M WHERE M.proba1={Q1.proba1}" 0030 = " INSERT INTO slave VALUES (proba1,proba2)" 0040 = " END Q2" 0050 = " INSERT INTO main VALUES (proba1,proba2, @((@genid+43)/20), @(1), @({NDS}/10), null, @("text"), @getdate, @nvl(@({NDS}/10);"John"))" 0060 = "END Q1"

Page 13: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

13

Рассмотрим содержание файла настроек подробнее.

Сначала приведем несколько общих указаний:

� Файл настроек состоит из секций, каждая из которых начинается с

наименования, заключенного в квадратные скобки.

� Значение параметра задается строкой:

имя_параметра = значение_параметра

� Строки с комментариями начинаются с символа "точка с запятой".

Теперь обсудим содержание каждой секции.

Секция General – содержит общие настройки.

Overwrite = YES или Overwrite = NO – признак замены или до-

полнения файлов – приемников информации. Если в каталоге-

приемнике (см. ниже описание секции Target) уже имеются файлы-

приемники информации, то при значении YES они будут замещаться

(старое содержание будет теряться), а при NO – новая информация

будет добавляться. Если в каталоге-приемнике соответствующие

файлы отсутствуют, то данный признак никакого значения не имеет,

так как новые файлы-приемники будут просто создаваться "на пус-

том месте".

LogFile = c:\parus\conv\log.txt – полное имя файла, куда будет за-

писываться протокол выполнения конвертирования. Если указанная

здесь цепочка каталогов не существует, то она будет создана автома-

тически при проведении процедуры конвертирования. Имя самого

файла протокола произвольно.

В этой же секции указываются символы, которые используются в

SDF-файле в качестве:

� разделителя данных, в данном случае – "запятая":

SDFSeparator = ,

� десятичного разделителя – "точка":

SDFDecimalSeparator = .

� ограничителя текста – "двойные кавычки":

SDFComma = "

а также – формат даты, в данном случае типа 20051231:

SDFDateFormat = YYYYMMDD

Page 14: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

14

Секция Constants – предназначена для описания констант, применяе-

мых в алгоритмах преобразования данных. Имя константы не должно

содержать пробелов. Имеются следующие типы констант: дата (обозна-

чается буквой D), число (N), текстовая строка (C). После указания типа

пишется символ "точка с запятой" и значение константы:

CurrentYear = D;1990

NDS = N;20

Секция Reserve. Здесь описываются зарезервированные слова, кото-

рые используются "как есть".

NULL=NULL

В секции Source задаются значения параметров источника данных.

DBType = DBF или DBType = SDF – тип источника.

DBPath = c:\parus\conv\source – полный путь к каталогу, где разме-

щаются файлы с исходной информацией.

CharSet = WIN или CharSet = OEM – кодировка символов в ис-

ходных файлах: Windows или DOS соответственно.

Далее идет перечень таблиц с исходной информацией:

Table1 = MAIN

Table2 = SLAVE

где MAIN и SLAVE – наименования таблиц, которые можно узнать

при помощи вкладки "Просмотр данных" модуля "Конвертер" (см.

стр. 15).

Page 15: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

15

Далее следуют секции (в нашем случае две: S:MAIN и S:SLAVE),

где описывается структура исходных данных. Обратите внимание на

префикс S (первая буква слова Sourse – Источник) имен этих секций, ко-

торый указывает, что таблицы являются источниками данных1.

Имеются следующие типы полей:

� дата (обозначается буквой D);

� целое число (N) – для него указывается количество позиций для

цифр;

� вещественное число (N) с указанием общего количества позиций

для цифр и количества цифр после запятой;

� текстовая строка (C) с указанием количества символов (это коли-

чество не должно превышать 255);

� "мемо"-поле (M) с указанием количества символов (это количест-

во может превышать 255).

В нашем примере обе таблицы (MAIN и SLAVE) имеют одинаковый

набор полей:

Field1 = proba1;N;2

Field2 = proba2;C;200

Как узнать структуру данных?

Структура данных может поставляться вместе с системами – источни-

ком и приемником данных. Альтернативный (да и более удобный) вари-

ант – воспользоваться самим модулем "Конвертор".

� Для получения информации о структуре данных

(а также наименований таблиц):

1 Запишите в какой-нибудь каталог DBF- или SDF-файлы – источни-

ки данных. При этом совершенно не обязательно, чтобы эти фай-

лы содержали реальную информацию, предназначенную для кон-

вертирования: ведь сейчас требуется узнать лишь структуру дан-

ных. Подобные файлы назовем условно образцами.

1 Ниже в секции Target определена таблица – приемник информации с таким же именем MAIN. Но описание ее полей

приведено в секции T:MAIN, префикс имени которой T (от Target – Цель).

Page 16: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

16

2 Запустите модуль "Конвертор" и выберите в появившемся окне

вкладку "Просмотр таблиц":

3 Укажите в поле "Каталог" полный путь к каталогу, где размещены

образцы DBF- или SDF-файлов (см. п.1).

Тогда в списке "Таблицы" появятся наименования таблиц.

Именно эти наименования указываются в секции Source (см.

стр. 14) или секции Target файла настроек.

4 Выберите (например, щелчком мыши) одну из таблиц.

Тогда в поле "Структура данных" появится перечень полей с

описаниями их форматов. Этот перечень является, по существу,

содержанием секции с описанием полей таблицы.

Для переноса текста

поля "Структура дан-

ных" в файл настройки

Вы можете воспользо-

ваться командами кон-

текстного меню, вызы-

ваемого щелчком правой

кнопки мыши в поле

"Структура данных".

Page 17: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

17

В секции Target задаются значения параметров приемника данных

аналогично тому, как это делается для источника данных в секции

Sourse (см. стр. 14)

Далее следуют секции (в нашем случае две: T:MAIN и T:SLAVE),

где описываются поля таблиц с приемной информацией. Обратите вни-

мание на префикс T (первая буква слова Target – Цель) имен этих сек-

ций, который указывает, что таблицы являются приемниками данных.

В нашем примере приемная таблица MAIN имеет девять полей (на-

помним, что в исходной их всего два):

Field1 = proba1;N;2

Field2 = proba2;C;200

Field3 = proba3;N;15;5

Field4 = proba4;N;2

Field5 = proba5;N;10

Field6 = proba6;N;10

Field7 = proba7;C;200

Field8 = proba8;D

Field9 = proba9;C;200

а приемная таблица SLAVE – тот же набор полей, что и исходная

таблица SLAVE:

Field1 = proba1;N;2

Field2 = proba2;C;200

Далее следуют секции, где описываются алгоритмы чтения, преобразо-

вания (если требуется) и записи данных. Синтаксис этого описания схо-

ден с SQL-языком.

[Units]

Unit1 = Contragents

[Contragents]

0010 = "FOR Q1 SELECT * FROM main"

0020 = " FOR Q2 SELECT M.* FROM slave M

WHERE M.proba1={Q1.proba1}"

0030 = " INSERT INTO slave VALUES (proba1,proba2)"

0040 = " END Q2"

0050 = " INSERT INTO main VALUES (proba1,proba2,

@((@genid+43)/20),

@(1),

@({NDS}/10),

null,

@("text"),

@getdate,

@nvl(@({NDS}/10);"John"))"

0060 = " END Q1"

Page 18: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

18

В нашем примере последние семь полей приемной таблицы MAIN

заполняются:

� непосредственно задаваемыми данными, например: @(1);

� результатами вычисления выражений, например: @({NDS}/10);

попутно отметим, что NDS, как и всякая константа, должна быть

указана "в фигурных скобках";

� с применением специальных функций, например, @getdate (см.

приложение "Функции алгоритмов преобразования");

так как аналогичные поля в исходной таблице отсутствуют.

Если конвертируются данные более чем одной "независимой" табли-

цы, тогда в секции Units задаются произвольные имена1 нескольких

секций, где описываются соответствующие алгоритмы преобразова-

ния. Например:

[Units]

Unit1 = Contragents

Unit2 = Nomenclature

Unit3 = Documents

[Contragents]

...

[Nomenclature]

...

[Documents]

...

Если исходные данные будут браться непосредственно из базы Сис-

темы, то имя исходной таблицы должно состоять из префикса и собст-

венно имени. Префикс задается в поле "Префикс объектов ORACLE" на

вкладке "ORACLE" (см. стр. 19): например, в качестве префикса можно

использовать буквосочетание ORA. Отметим, что сама база данных ни-

как префикс не определяет: Вы можете выбрать и другое буквосочета-

ние. Тогда в рамках нашего примера надо записать:

[Contragents]

0010 = "FOR Q1 SELECT * FROM ORA.main"

...

1 Хотя эти имена и произвольны, но рекомендуется применять осмысленные слова, отражающие, например,

содержание таблицы.

Page 19: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

19

ОБЕСПЕЧЕНИЕ ЧТЕНИЯ ДАННЫХ ИЗ БАЗЫ СИСТЕМЫ

Если исходная информация для конвертирования будет браться непосред-

ственно из базы данных Системы, тогда необходимо:

� обеспечить соединение рабочего места с базой данных;

� для исходных таблиц (базы данных) в файле настройки указать име-

на со специальным префиксом;

� задать параметры на вкладке "ORACLE" конвертера.

Соединение рабочего места с базой данных обеспечивается при помощи

серверной и клиентской частей ORACLE и драйвера BDE (см. рис. на

стр. Ошибка! Закладка не определена.).

Указание имен объектов ORACLE (например, исходных таблиц базы

данных Системы в файле настройки) со специальным префиксом описа-

но на стр. 18.

На вкладке "ORACLE" конвертера надо указать:

� текст префикса объектов ORACLE (например, ORA); именно этот

префикс должен применяться и в файле настройки;

� имя базы данных, откуда будет считываться исходная информация;

� имя пользователя и его пароль – точно также, как и при запуске

обычного приложения Системы.

После задания пара-

метров нажмите

кнопку "Тест" для про-

верки соединения

с базой данных:

если все хорошо, то

выведется сообщение

типа "Соединение ус-

пешно осуществлено".

Page 20: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

20

СОБСТВЕННО КОНВЕРТИРОВАНИЕ ДАННЫХ

� Для проведения собственно процедуры конвертирования данных:

1 Запустите модуль "Конвертер". На экран выведется окно:

2 В поле "Файл настроек" укажите полный путь этому файлу и сам

файл. Это можно сделать "вручную" или выбором в окне, после на-

жатия кнопки "с тремя точками" в правой части поля.

Тогда все остальные поля этой вкладки заполнятся в соответствии с

данными из указанного файла настроек.

Page 21: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

21

3 Проверьте значения в этих полях. Скорректируйте (заполните) их

при необходимости. При этом имейте в виду, что подобная коррек-

ция отразится в файле настроек, выбранном в п.2.

4 Если конвертер будет использовать исходную информацию непо-

средственно из базы данных Системы, то задайте параметры на

вкладке "ORACLE" (см. стр. 19).

5 Нажмите кнопку "Старт" на вкладке "Конвертация данных".

По окончании процедуры конвертирования данных на экран выведется

соответствующее сообщение.

Конвертирование данных при импорте или экспорте информации

Система обеспечивает импорт и экспорт информации раздела (словаря)

при помощи типовых функций (команд). При этом возможно преобразо-

вание данных при помощи конвертера.

� Для импорта (или экспорта) информации раздела Системы с преоб-

разованием данных:

1 Задайте в разделе Системы функцию (команду) Обмен | Импорт

(или Обмен | Экспорт).

2 В появившемся окне:

� установите флажок "Использовать конвертер";

� укажите (выберите) в поле "Конвертер" полный путь к каталогу,

куда был установлен конвертер;

� укажите (выберите) в поле "Файл настроек" полный путь к этому

файлу и сам файл.

Задайте значения других параметров импорта (или экспорта) и на-

жмите кнопку ОК.

Page 22: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

22

Система обеспечивает импорт и экспорт информации сразу нескольких

разделов (словарей). При этом также возможно преобразование данных

при помощи конвертера.

� Для импорта (или экспорта) информации сразу нескольких разделов Системы с преобразованием данных:

1 Выберите в меню главного окна приложения Файл | Экс-

порт/Импорт | Файловый.

2 В появившемся окне:

� укажите (выберите) в поле "Конвертер" полный путь к каталогу,

куда был установлен конвертер;

� установите флажок "Использовать конвертер" (на вкладке "Экс-

порт" или "Импорт");

� укажите (выберите) в поле "Файл настроек" (на вкладке "Экс-

порт" или "Импорт") полный путь к этому файлу и сам файл.

Задайте значения других параметров импорта (или экспорта) и на-

жмите кнопку "Импорт" или "Экспорт".

Page 23: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

23

Приложение.

Функции алгоритмов преобразования В данном приложении описаны специальные функции (в дальнейшем просто функции), которые

могут применяться в алгоритмах конвертирования данных. Подобные функции предназначены

для получения данных, их преобразования и т.п.

Вызов функции осуществляется записью, типа следующей:

@ИМЯ_ФУНКЦИИ(СПИСОК_АРГУМЕНТОВ)

Имя функции можно указывать как прописными, так и строчными буквами. Аргументы в

списке разделяются символом ; (точка с запятой). Если функция не имеет аргументов, то она

вызывается записью типа:

@ИМЯ_ФУНКЦИИ

Общий список функций � D2D – преобразование порядкового номера дня в году в дату.

� S2D – преобразование строки в дату.

� D2S – преобразование даты в строку.

� S2N – преобразование строки в число.

� N2S – преобразование числа в строку.

� LPAD – дополнение строки слева.

� RPAD – дополнение строки справа.

� LTRIM – усечение строки слева.

� RTRIM – усечение строки справа.

� TRIM – усечение строки слева и справа.

� SUBSTR – выделение подстроки.

� STRLENGTH – получение длины строки.

� NVL – задание значения по условию NULL.

� IIF – выбор значения по условию.

� ISNULL – выбор значения по условию NULL.

� GENID_CURRVAL – получение текущего значения последовательности.

� GENID,

GENID_NEXTVAL – получение следующего значения последовательности.

� GETDATE – получение текущей (системной) даты.

� GENID_CLEARVAL – очистка счетчика.

� GENID_SETVAL – установка счетчика.

� ASCII – получение кода символа.

� CHR – получение символа по коду.

Page 24: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

24

Описание функций

Преобразование порядкового номера дня в году в дату.

date D2D(n number; s string)

n – порядковый номер дня в году: 1, 2, 3, ...;

s – строка, указывающая год в формате: "YYYY". Попутно отметим,

что подобный формат используется в Системе версии 4.

Пример: @D2D(40;"1999") возвращает 09.02.1999

Особый случай: @D2D(40;"") возвращает 09.02.1999, если 1999 являет-

ся текущим (то есть установленным на рабочем месте) годом.

Преобразование строки в дату.

date S2D(s1 string; s2 string)

s1 – строка с датой;

s2 – строка с форматом даты. В строке s1 дата должна быть записана

именно в этом формате.

Пример: @S2D("01011999";"ddmmyyyy") возвращает 01.01.1999

Преобразование даты в строку.

string D2S(d date; s string)

d – дата;

s – строка с форматом возвращаемого значения.

Пример: @D2S(date;"ddmmyyyy") возвращает строку "01011999", если

date содержит дату 01.01.1999

Преобразование строки в число.

number S2N(s1 string; s2 string)

s1 – строка с числом;

s2 – строка, указывающая десятичный разделитель в строке s1; если s2

пусто, тогда десятичным разделителем считается стандартный символ.

Пример: @S2N("123,456";",") возвращает число 123.456

Преобразование числа в строку.

string N2S(n number; s string)

n – число;

s – строка с форматом возвращаемой строки.

Пример: @N2S(123.456;"%7.3f") возвращает строку "123.456"

D2D

S2D

D2S

S2N

N2S

Тип

возвращаемого

значения

Тип аргумента n Тип аргумента s

Строка с форматом всегда начинается

с символа %

7 – общее количество символов в записи

числа;

3 – количество знаков после запятой

Page 25: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

25

Дополнение строки слева.

string LPAD(s1 string; n number; s2 char)

s1 – дополняемая строка;

n – количество символов в возвращаемой строке;

s2 – символ дополнения.

Пример: @LPAD("qw";12;"r") возвращает "rrrrrrrrrrqw"

Дополнение строки справа.

string RPAD(s1 string; n number; s2 char)

s1 – дополняемая строка;

n – количество символов в возвращаемой строке;

s2 – символ дополнения.

Пример: @RPAD("qw";12;"r") возвращает "qwrrrrrrrrrr"

Усечение символов слева.

string LTRIM(s1 string; s2 char)

s1 – усекаемая строка;

s2 – символ усечения.

Примеры: @LTRIM("rqw";"r") возвращает "qw"

@LTRIM("rrqw";"r") возвращает "qw"

@LTRIM("rr1rqw";"r") возвращает "1rqw"

Усечение символов справа.

string RTRIM(s1 string; s2 char)

s1 – усекаемая строка;

s2 – символ усечения.

Примеры: @RTRIM("qwr";"r") возвращает "qw"

@RTRIM("qwrr";"r") возвращает "qw"

@RTRIM("qwr1rr";"r") возвращает "qwr1"

Усечение символов слева и справа.

string TRIM(s1 string; s2 char)

s1 – усекаемая строка;

s2 – символ усечения.

Примеры: @TRIM("rqwr";"r") возвращает "qw"

@TRIM("rrqwrr";"r") возвращает "qw"

@TRIM("rr1rqwr1rr";"r") возвращает "1rqwr1"

Выделение подстроки.

string SUBSTR(s string; n1 number; n2 number)

s – исходная строка;

n1 – номер позиции исходной строки s; с этой позиции начинается

выделяемая подстрока;

n2 – длина выделяемой подстроки.

LPAD

RPAD

LTRIM

RTRIM

TRIM

SUBSTR

Page 26: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

26

Пример: @SUBSTR("qwerty";3;2) возвращает "er"

Возвращает длину строки.

integer STRLENGTH(WideString const sSource)

WideString – проверяемая строка.

Пример:

@STRLENGTH("Текст") возвращает 5.

Задание значения по условию NULL.

variant NVL(v1 variant; v2 variant)

v1 – проверяемое значение;

v2 – возвращаемое значение, если проверяемое значение есть NULL.

Примеры:

@NVL("Не_пустая_строка";"Строка_вместо_NULL")

возвращает "Не_пустая_строка"

@NVL(NULL;"Строка_вместо_NULL")

возвращает "Строка_вместо_NULL"

Выбор значения по условию.

variant IIF(v1 variant; s string; v2 variant; v3 variant;

v4 variant)

v1 – 1-я сравниваемая величина;

s – строка с условием; возможные значения:

"=","<>","<",">","<=",">="

v2 – 2-я сравниваемая величина;

v3 – значение, возвращаемое при соблюдении условия;

v4 – значение, возвращаемое при не соблюдении условия.

Примеры:

@IIF(NULL;">";NULL;"ИСТИНА";"ЛОЖЬ") возвращает "ЛОЖЬ"

@IIF(10;">";9;"ИСТИНА";"ЛОЖЬ") возвращает "ИСТИНА"

@IIF("aa";">";"ab";"ИСТИНА";"ЛОЖЬ") возвращает "ЛОЖЬ"

Выбор значения по условию NULL.

variant ISNULL(v1 variant; v2 variant; v3 variant)

v1 – сравниваемая с NULL величина;

v2 – возвращаемое значение, если v1 есть NULL;

v3 – возвращаемое значение, если v1 не NULL.

Примеры:

@ISNULL("Не_пустая_строка";

"Строка_вместо_NULL"; "Строка_вместо_не_NULL")

возвращает "Строка_вместо_не_NULL"

@ISNULL(NULL;

"Строка_вместо_NULL"; "Строка_вместо_не_NULL")

возвращает "Строка_вместо_NULL"

STRLENGTH

NVL

IIF

ISNULL

Page 27: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

27

Возвращает текущее значение последовательности уникальных номеров.

number GENID_CURRVAL(iNumber integer)

iNumber – номер счетчика (1, 2, 3, ...).

Пример: @GENID_CURRVAL(1)

Возвращает следующее значение последовательности уникальных но-

меров.

number GENID(iNumber integer)

number GENID_NEXTVAL(iNumber integer)

Обе функции дают одинаковый результат.

iNumber – номер счетчика (1, 2, 3, ...).

Примеры:

@GENID_NEXTVAL(1)

@GENID(1)

Возвращает текущую системную (то есть установленную на данном рабо-

чем месте) дату.

date GetDate

Аргументы отсутствуют.

Пример: @GetDate

Очищает счетчик.

GenId_ClearVal(iNumber integer);

iNumber – номер очищаемого счетчика (1, 2, 3, ...).

Пример: @GenId_ClearVal(1)

Устанавливает значение для счетчика.

GenId_SetVal(iNumber integer; iVal integer);

iNumber – номер устанавливаемого счетчика (1, 2, 3, ...);

iVal – устанавливаемое значение.

Пример: @GenId_SetVal(1; 100)

GENID_CURRVAL

GENID_NEXTVAL

GENID

GETDATE

GENID_CLEARVAL

GENID_SETVAL

Page 28: Конвертер · 2018. 4. 18. · 4 Введение Настоящая книга является руководством по работе со служебным моду-лем

28

Получение кода символа.

number ASCII(s char)

s – символ.

Пример: @ASCII("A") возвращает число 65.

Получение символа по коду.

char CHR(n number)

n – код.

Пример: @CHR(65) возвращает символ "А".

ASCII

CHR