Импорт баз данных — различия между версиями

Материал из Меасофт
Перейти к: навигация, поиск
Строка 47: Строка 47:
 
'''Примеры модификаций содержимого ячеек при помощи формул.'''
 
'''Примеры модификаций содержимого ячеек при помощи формул.'''
  
Иногда, для приведения содержимого ячеек Excel к стандартному типу, который будет понятен программе, следует воспользоваться специальными функциями (полное описание языка приведено по ссылке http://wiki.courierexe.ru/index.php/Руководство_программиста). Простые примеры применения данных функций рассмотрены ниже:  
+
Иногда, для приведения содержимого ячеек Excel к стандартному типу, который будет понятен программе, следует воспользоваться специальными функциями (полное описание языка приведено по ссылке http://wiki.courierexe.ru/index.php/Руководство_программиста). Простые примеры применения данных функций рассмотрены ниже:
 +
  
 
'''1.'''Пример содержимого ячейки Excel “F”: “Россия, Москва, Горького ул., д. 23”
 
'''1.'''Пример содержимого ячейки Excel “F”: “Россия, Москва, Горького ул., д. 23”
Строка 53: Строка 54:
 
Задача: Копировать  из ячейки слово "Москва".
 
Задача: Копировать  из ячейки слово "Москва".
  
Решение: PARAM(replace(f, ' ', ','), 2)
+
Решение: '''PARAM(replace(f, ' ', ','), 2)'''
  
 
Комментарий: Делим строку разделителями пробелов на параметры и читаем второй параметр. На выходе получаем "Москва".
 
Комментарий: Делим строку разделителями пробелов на параметры и читаем второй параметр. На выходе получаем "Москва".
Строка 62: Строка 63:
 
Задача А: приведение строки к стандартному типу времени ЧЧ:ММ  (например, для времени доставки).  Необходимо к значению времени “11” добавить значение “:00”.
 
Задача А: приведение строки к стандартному типу времени ЧЧ:ММ  (например, для времени доставки).  Необходимо к значению времени “11” добавить значение “:00”.
  
Решение: LEFT(REMSPACE(replace(J, 'с', '')), 2)+':00'
+
Решение: '''LEFT(REMSPACE(replace(J, 'с', '')), 2)+':00''''
  
 
Комментарий: Поиском слева ищем в строке значение “c”, после читаем второй параметр, разделенный символом пробел – число “11”, затем к нему прибавляем  значение “:00”. На выходе получаем “11:00”.
 
Комментарий: Поиском слева ищем в строке значение “c”, после читаем второй параметр, разделенный символом пробел – число “11”, затем к нему прибавляем  значение “:00”. На выходе получаем “11:00”.
Строка 68: Строка 69:
 
Задача Б: приведение строки к стандартному типу времени ЧЧ:ММ  (например, для времени доставки).  Необходимо к значению времени “18” добавить значение “:00”.
 
Задача Б: приведение строки к стандартному типу времени ЧЧ:ММ  (например, для времени доставки).  Необходимо к значению времени “18” добавить значение “:00”.
  
Решение: RIGHT(J, 2)+':00'
+
Решение: '''RIGHT(J, 2)+':00''''
  
 
Комментарий: Копируем справа от начала строки 2 символа – значение  ”18”, затем к нему прибавляем  значение “:00”. На выходе получаем “18:00”.
 
Комментарий: Копируем справа от начала строки 2 символа – значение  ”18”, затем к нему прибавляем  значение “:00”. На выходе получаем “18:00”.
Строка 78: Строка 79:
 
иначе подставлять следующий порядковый номер.
 
иначе подставлять следующий порядковый номер.
  
Решение: if((C='забор груза')+(C='забор'), 0, GetNewNumber)
+
Решение: '''if((C='забор груза')+(C='забор'), 0, GetNewNumber)'''
  
 
Комментарий: При помощи условия if и логического ИЛИ выполняем проверку, если условие соблюдается – подставиться значение “0”, если не соблюдается - подставлять следующий порядковый номер (функция GetNewNumber).
 
Комментарий: При помощи условия if и логического ИЛИ выполняем проверку, если условие соблюдается – подставиться значение “0”, если не соблюдается - подставлять следующий порядковый номер (функция GetNewNumber).
Строка 87: Строка 88:
 
Задача: сложить одержимое двух ячеек для загрузки поля “поручение курьера”.  
 
Задача: сложить одержимое двух ячеек для загрузки поля “поручение курьера”.  
  
Решение: k+', '+l
+
Решение: '''k+', '+l'''
  
 
Комментарий:  Выполняем сложение содержимого двух ячеек “K” и “L”, разделенного запятой и пробелом. На выходе получаем “забрать документы, поставить печать”.
 
Комментарий:  Выполняем сложение содержимого двух ячеек “K” и “L”, разделенного запятой и пробелом. На выходе получаем “забрать документы, поставить печать”.
Строка 96: Строка 97:
 
Задача: Перевод значения ячейки “масса” из грамм в килограмм.  
 
Задача: Перевод значения ячейки “масса” из грамм в килограмм.  
  
Решение: n/1000
+
Решение: '''n/1000'''
  
 
Комментарий:  Выполняем операцию деления. На выходе получаем значение для поля масса “2.5 ”.
 
Комментарий:  Выполняем операцию деления. На выходе получаем значение для поля масса “2.5 ”.

Версия 05:46, 6 декабря 2013

Для импорта базы рассылки в формате MS Excel или DBF (а также любого другого формата, поддерживаемого MS Excel), создайте заказ, в который необходимо импортировать, потом в главном меню основного окна программы выберите пункт «Связь» → «Импорт БД из Excel» (необходимо наличие прав создания почтовых заказов). Откроется окно следующего вида:

Импорт из Excel.png


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

Редактирование шаблонов доступно путем нажатия на кнопку «Шаблоны…».
Шаблон состоит из заголовка, который в себя включает название шаблона, номер первой загружаемой строки в файле, а также условие загрузки каждой конкретной строки (номер первой строки и условие загрузки может задаваться формулами), и строк описания значений, помещаемых в каждое конкретное поле базы данных адресов. Строка состоит из названия поля (кратко по-английски), описания (развернуто по-русски), значения по умолчанию, и значения. Если поле «значение» пустое – система использует значение поля «значение по умолчанию». Поля «значение» и «значение по умолчанию» описывают преобразования данных на внутреннем языке формул (описание языка приведено по ссылке http://wiki.courierexe.ru/index.php/Руководство_программиста).

Процесс импорта реестра заказов из excel в систему будет выполнен на примере построения шаблона с именем “Example”. На рисунке ниже изображено содержимое excel файла с заказами клиента. Набор столбцов реестра – типовой и содержит 13 полей, по желанию набор полей можно расширить или же сократить.


Excel шаблон.png


Примечание: На рисунке выше, поля столбцов по горизонтали нумеруются буквами латинского алфавита (A-M), однако данное представление в пакете MS Office может отличаться от привычного - иметь цифровую нумерацию (R1C1). На рисунке ниже представлено меню настроек (включение/отключение) в программе Excel для стиля ссылок R1C1. Для работы с цифровым представлением столбцов excel - соответствие цифровой нумерации буквенной происходит путем простого преобразования: номер цифры = порядковому номеру буквы алфавита (1-‘a’, 2-‘b’, 3-‘c’ и т.д.)

R1C1.png


Примечание: Обработка программой реестра заказов из excel файла происходит с первой вкладки документа, поэтому таблица заказов должна находиться на первой вкладке.

Редактирование старых и создание новых шаблонов доступно по нажатию на кнопку «Шаблоны…» в окне “Импорт из Excel”. Буквенные соответствия столбцов excel файла указаны напротив ячеек с названием. На рисунке ниже показано окно редактирования шаблона с именем “Example”. Для поля “Адрес получателя” указано значение с функцией MakeAddress(буква столбца с адресом из реестра в excel файле). Функция MakeAddress(s) – помогает и позволяет синтактически более точно преобразовывать адрес получателя путем его многократного преобразования и приведения к внутреннему стандарту программы. Описание других полей интуитивно понятно и не требует дополнительных комментариев.


Template1.png


На рисунке ниже для двух полей периода времени доставки “c”-“до” производится автоматическое добавление символов разрядности минут “:00”, приводящее содержимое загружаемой ячейки excel к внутреннему стандарту программы. Дополнительно для поля “Поручение” производится автоматическое суммирование содержимого ячеек excel “i+l”, при этом содержимое двух ячеек дополнительно разделяется запятой с пробелом.


Template2.png


Каждое из полей в настройке шаблона соответствует определенному полю в карточке единицы корреспонденции, показанному на рисунке ниже. Заполнение полей шаблона “Example” происходит в соответствии со структурой и содержимым ячеек реестра в excel файле.


Zakaz2.png


После создания и редактирования нового шаблона становится возможным автоматическая загрузка заказов из excel файла. Для этого в окне Импорт из Excel, последовательно указываем тип шаблона для обработки реестра заказов в excel, номер заказа и файл реестра. По нажатию на кнопку “Cтарт” происходит последовательная обработка строк excel файла, ячейки которой считываются в БД заказов программы “КС 2008”. Процесс завершения обработки сопровождается информационным сообщением содержащим статистику обработки записей.

Import.png


Примеры модификаций содержимого ячеек при помощи формул.

Иногда, для приведения содержимого ячеек 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 ”.