Импорт баз данных — различия между версиями
Mihail (обсуждение | вклад) |
Mihail (обсуждение | вклад) |
||
Строка 43: | Строка 43: | ||
[[Файл:Import.png|center]] | [[Файл:Import.png|center]] | ||
+ | |||
+ | |||
+ | '''Примеры модификаций содержимого ячеек при помощи формул.''' | ||
+ | |||
+ | Иногда, для приведения содержимого ячеек Excel к стандартному типу, который будет понятен программе, следует воспользоваться специальными функциями (полное описание языка приведено по ссылке http://wiki.courierexe.ru/index.php/Руководство_программиста). Простые примеры применения данных функций рассмотрены ниже: | ||
+ | |||
+ | '''1.'''Пример содержимого ячейки Excel “F”: “Россия, Москва, Горького ул., д. 23” | ||
+ | |||
+ | Задача: Копировать из ячейки слово "Москва". | ||
+ | |||
+ | Решение: PARAM(replace(f, ' ', ','), 2) | ||
+ | |||
+ | Комментарий: Делим строку разделителями пробелов на параметры и читаем второй параметр. На выходе получаем "Москва". | ||
+ | |||
+ | |||
+ | '''2.'''Пример содержимого ячейки Excel “J”: “с 11 до 18” | ||
+ | |||
+ | Задача А: приведение строки к стандартному типу времени ЧЧ:ММ (например, для времени доставки). Необходимо к значению времени “11” добавить значение “:00”. | ||
+ | |||
+ | Решение: LEFT(REMSPACE(replace(J, 'с', '')), 2)+':00' | ||
+ | |||
+ | Комментарий: Поиском слева ищем в строке значение “c”, после читаем второй параметр, разделенный символом пробел – число “11”, затем к нему прибавляем значение “:00”. На выходе получаем “11:00”. | ||
+ | |||
+ | Задача Б: приведение строки к стандартному типу времени ЧЧ:ММ (например, для времени доставки). Необходимо к значению времени “18” добавить значение “:00”. | ||
+ | |||
+ | Решение: RIGHT(J, 2)+':00' | ||
+ | |||
+ | Комментарий: Копируем справа от начала строки 2 символа – значение ”18”, затем к нему прибавляем значение “:00”. На выходе получаем “18:00”. | ||
+ | |||
+ | |||
+ | '''3.'''Пример содержимого ячейки Excel “A”: “'забор груза'”, либо “'забор'” | ||
+ | |||
+ | Задача: Определять при чтении содержимого ячейки забор или доставку. В случае наличия слова “'забор груза'”, либо “'забор'” – подставлять в ячейку цифру “0”, | ||
+ | иначе подставлять следующий порядковый номер. | ||
+ | |||
+ | Решение: if((C='забор груза')+(C='забор'), 0, GetNewNumber) | ||
+ | |||
+ | Комментарий: При помощи условия if и логического ИЛИ выполняем проверку, если условие соблюдается – подставиться значение “0”, если не соблюдается - подставлять следующий порядковый номер (функция GetNewNumber). | ||
+ | |||
+ | |||
+ | '''4.'''Пример содержимого ячейки Excel “K” -“забрать документы”, содержимого ячейки Excel “L” - “поставить печать”: | ||
+ | |||
+ | Задача: сложить одержимое двух ячеек для загрузки поля “поручение курьера”. | ||
+ | |||
+ | Решение: k+', '+l | ||
+ | |||
+ | Комментарий: Выполняем сложение содержимого двух ячеек “K” и “L”, разделенного запятой и пробелом. На выходе получаем “забрать документы, поставить печать”. | ||
+ | |||
+ | |||
+ | '''5.'''Пример содержимого ячейки “масса, грамм” в Excel “N”: “2500” | ||
+ | |||
+ | Задача: Перевод значения ячейки “масса” из грамм в килограмм. | ||
+ | |||
+ | Решение: n/1000 | ||
+ | |||
+ | Комментарий: Выполняем операцию деления. На выходе получаем значение для поля масса “2.5 ”. |
Версия 05:44, 6 декабря 2013
Для импорта базы рассылки в формате MS Excel или DBF (а также любого другого формата, поддерживаемого MS Excel), создайте заказ, в который необходимо импортировать, потом в главном меню основного окна программы выберите пункт «Связь» → «Импорт БД из Excel» (необходимо наличие прав создания почтовых заказов). Откроется окно следующего вида:
В окне импорта необходимо выбрать заказ, в который нужно импортировать базу, шаблон загрузки, а также указать имя файла-источника, из которого необходимо загружать.
Редактирование шаблонов доступно путем нажатия на кнопку «Шаблоны…».
Шаблон состоит из заголовка, который в себя включает название шаблона, номер первой загружаемой строки в файле, а также условие загрузки каждой конкретной строки (номер первой строки и условие загрузки может задаваться формулами), и строк описания значений, помещаемых в каждое конкретное поле базы данных адресов. Строка состоит из названия поля (кратко по-английски), описания (развернуто по-русски), значения по умолчанию, и значения. Если поле «значение» пустое – система использует значение поля «значение по умолчанию». Поля «значение» и «значение по умолчанию» описывают преобразования данных на внутреннем языке формул (описание языка приведено по ссылке http://wiki.courierexe.ru/index.php/Руководство_программиста).
Процесс импорта реестра заказов из excel в систему будет выполнен на примере построения шаблона с именем “Example”. На рисунке ниже изображено содержимое excel файла с заказами клиента. Набор столбцов реестра – типовой и содержит 13 полей, по желанию набор полей можно расширить или же сократить.
Примечание: На рисунке выше, поля столбцов по горизонтали нумеруются буквами латинского алфавита (A-M), однако данное представление в пакете MS Office может отличаться от привычного - иметь цифровую нумерацию (R1C1). На рисунке ниже представлено меню настроек (включение/отключение) в программе Excel для стиля ссылок R1C1. Для работы с цифровым представлением столбцов excel - соответствие цифровой нумерации буквенной происходит путем простого преобразования: номер цифры = порядковому номеру буквы алфавита (1-‘a’, 2-‘b’, 3-‘c’ и т.д.)
Примечание: Обработка программой реестра заказов из excel файла происходит с первой вкладки документа, поэтому таблица заказов должна находиться на первой вкладке.
Редактирование старых и создание новых шаблонов доступно по нажатию на кнопку «Шаблоны…» в окне “Импорт из Excel”. Буквенные соответствия столбцов excel файла указаны напротив ячеек с названием. На рисунке ниже показано окно редактирования шаблона с именем “Example”. Для поля “Адрес получателя” указано значение с функцией MakeAddress(буква столбца с адресом из реестра в excel файле). Функция MakeAddress(s) – помогает и позволяет синтактически более точно преобразовывать адрес получателя путем его многократного преобразования и приведения к внутреннему стандарту программы. Описание других полей интуитивно понятно и не требует дополнительных комментариев.
На рисунке ниже для двух полей периода времени доставки “c”-“до” производится автоматическое добавление символов разрядности минут “:00”, приводящее содержимое загружаемой ячейки excel к внутреннему стандарту программы. Дополнительно для поля “Поручение” производится автоматическое суммирование содержимого ячеек excel “i+l”, при этом содержимое двух ячеек дополнительно разделяется запятой с пробелом.
Каждое из полей в настройке шаблона соответствует определенному полю в карточке единицы корреспонденции, показанному на рисунке ниже. Заполнение полей шаблона “Example” происходит в соответствии со структурой и содержимым ячеек реестра в excel файле.
После создания и редактирования нового шаблона становится возможным автоматическая загрузка заказов из excel файла. Для этого в окне Импорт из Excel, последовательно указываем тип шаблона для обработки реестра заказов в excel, номер заказа и файл реестра. По нажатию на кнопку “Cтарт” происходит последовательная обработка строк excel файла, ячейки которой считываются в БД заказов программы “КС 2008”. Процесс завершения обработки сопровождается информационным сообщением содержащим статистику обработки записей.
Примеры модификаций содержимого ячеек при помощи формул.
Иногда, для приведения содержимого ячеек Excel к стандартному типу, который будет понятен программе, следует воспользоваться специальными функциями (полное описание языка приведено по ссылке http://wiki.courierexe.ru/index.php/Руководство_программиста). Простые примеры применения данных функций рассмотрены ниже:
1.Пример содержимого ячейки Excel “F”: “Россия, Москва, Горького ул., д. 23”
Задача: Копировать из ячейки слово "Москва".
Решение: PARAM(replace(f, ' ', ','), 2)
Комментарий: Делим строку разделителями пробелов на параметры и читаем второй параметр. На выходе получаем "Москва".
2.Пример содержимого ячейки Excel “J”: “с 11 до 18”
Задача А: приведение строки к стандартному типу времени ЧЧ:ММ (например, для времени доставки). Необходимо к значению времени “11” добавить значение “:00”.
Решение: LEFT(REMSPACE(replace(J, 'с', )), 2)+':00'
Комментарий: Поиском слева ищем в строке значение “c”, после читаем второй параметр, разделенный символом пробел – число “11”, затем к нему прибавляем значение “:00”. На выходе получаем “11:00”.
Задача Б: приведение строки к стандартному типу времени ЧЧ:ММ (например, для времени доставки). Необходимо к значению времени “18” добавить значение “:00”.
Решение: RIGHT(J, 2)+':00'
Комментарий: Копируем справа от начала строки 2 символа – значение ”18”, затем к нему прибавляем значение “:00”. На выходе получаем “18:00”.
3.Пример содержимого ячейки Excel “A”: “'забор груза'”, либо “'забор'”
Задача: Определять при чтении содержимого ячейки забор или доставку. В случае наличия слова “'забор груза'”, либо “'забор'” – подставлять в ячейку цифру “0”, иначе подставлять следующий порядковый номер.
Решение: if((C='забор груза')+(C='забор'), 0, GetNewNumber)
Комментарий: При помощи условия if и логического ИЛИ выполняем проверку, если условие соблюдается – подставиться значение “0”, если не соблюдается - подставлять следующий порядковый номер (функция GetNewNumber).
4.Пример содержимого ячейки Excel “K” -“забрать документы”, содержимого ячейки Excel “L” - “поставить печать”:
Задача: сложить одержимое двух ячеек для загрузки поля “поручение курьера”.
Решение: k+', '+l
Комментарий: Выполняем сложение содержимого двух ячеек “K” и “L”, разделенного запятой и пробелом. На выходе получаем “забрать документы, поставить печать”.
5.Пример содержимого ячейки “масса, грамм” в Excel “N”: “2500”
Задача: Перевод значения ячейки “масса” из грамм в килограмм.
Решение: n/1000
Комментарий: Выполняем операцию деления. На выходе получаем значение для поля масса “2.5 ”.