Изменения

Перейти к: навигация, поиск

Импорт баз данных

5660 байт добавлено, 12:55, 31 мая 2022
м
Шаблон как отдельный файл
== Пример создания простого шаблона Логика загрузки заказов ==
Для импорта базы рассылки в формате MS Excel или DBF (а также любого другого формата, поддерживаемого загрузки заказов из MS Excel), создайте заказ, в который необходимо импортировать, потом в главном меню основного окна программы выберите пункт «Связь» → «Импорт БД из Excel» (необходимо наличие прав создания почтовых заказов)MeaSoft используются шаблоны. Откроется окно следующего вида:
[[Файл:Импорт Шаблон описывает соответствие между столбцами таблицы Excel и параметрами заказа в системе. Например, в файле Excel в столбце H указан телефон получателя. Шаблон нужен, чтобы перенести значение из Excelстолбца H в параметр заказа «Телефон получателя».png|center]]
В системе нет готовых шаблонов. Как правило, шаблоны каждой курьерской службы уникальны. Содержимое шаблона зависит от формата данных во входящих Excel-файлах.
В окне процессе импорта необходимо выбрать заказ, система может выполнить обработку отдельных значений. Для этого добавьте в который нужно импортировать базу, шаблон загрузки, а также указать имя файла-источникавыражение на внутреннем языке разработки. Подробнее см. в статье [[Руководство программиста|«Руководство программиста»]]. Например, из которого необходимо загружатьрекомендуем приводить адрес доставки к внутреннему формату системы.
Редактирование шаблонов доступно путем нажатия на кнопку «Шаблоны…».<br /> Шаблон состоит MeaSoft поддерживает импорт из заголовка, который в себя включает название шаблона, номер первой загружаемой строки в файле, а также условие загрузки каждой конкретной строки (номер первой строки и условие загрузки может задаваться формулами), и строк описания значений, помещаемых в каждое конкретное поле базы всех форматов данных адресов. Строка состоит из названия поля (кратко по-английски), описания (развернуто по-русски), значения по умолчанию, и значениякоторые предоставляет Excel. Если поле «значение» пустое – система использует значение поля «значение по умолчанию»Подробнее см. Поля «значение» и «значение по умолчанию» описывают преобразования данных на внутреннем языке формул (описание языка приведено по ссылке http[https://wikisupport.courierexeoffice.com/ru-ru/index.phparticle/Руководство_программиста)поддерживаемые-excel-форматы-файлов-0943ff2c-6014-4e8d-aaea-b83d51d46247 на официальном сайте Microsoft Office].
Процесс импорта реестра заказов == Создание шаблона загрузки ==Чтобы создать шаблон:# Перейдите в '''Связь''' > '''Импорт БД из excel Excel''', затем в систему будет выполнен окне «Импорт из Excel» нажмите на примере построения шаблона с именем “Example”кнопку '''Шаблоны'''. Откроется окно со списком шаблонов. На рисунке ниже изображено содержимое excel файла с заказами клиента# Нажмите на кнопку F3. Набор столбцов реестра – типовой и содержит 13 полей, по желанию набор полей можно расширить или же сократитьОткроется окно «Шаблон загрузки»:[[Файл:Vlog 5.png|none]]
Для загрузки по шаблону достаточно настроить вкладку '''Основное'''. Настройка остальных вкладок необязательна и зависит от формата заказов в Excel-файле.
[[Файл:Excel_шаблон'''Примечание'''. Не рекомендуем самостоятельно писать скрипты для вкладок '''Дополнительно'''. Если надо изменить логику обработки заказов, обратитесь в службу поддержки MeaSoft.png|850px|center]]
'''Поля вкладки «Основное»'''
'''Примечание: Название'''На рисунке выше, поля столбцов по горизонтали нумеруются буквами латинского алфавита (A-M), однако данное представление в пакете MS Office может отличаться от привычного - иметь цифровую нумерацию (R1C1). На рисунке ниже представлено меню настроек (включение/отключение) в программе Excel для стиля ссылок R1C1Укажите название шаблона. Для работы с цифровым представлением столбцов excel - соответствие цифровой нумерации буквенной происходит путем простого преобразования: номер цифры = порядковому номеру буквы алфавита (1-‘a’, 2-‘b’, 3-‘c’ и т.д.)
[[Файл:R1C1'''Личный шаблон'''. Если флажок установлен, другие пользователи не могут редактировать шаблон. Личный шаблон может изменить его владелец или администратор системы.png|center]]
'''Первая строка'''. Укажите номер первой строки с заказом в таблице Excel. Не указывайте номер строки с заголовком таблицы. Например, если в шаблоне первая строка это заголовок таблицы и поле '''Условие загрузки''' пустое, то система создаст заказ на основе заголовка таблицы.
'''Примечание: Условие загрузки'''Обработка программой реестра заказов из excel файла происходит с первой вкладки документа. Дополнительное условие, поэтому таблица заказов должна находиться значение — логическое выражение на первой вкладке[[Руководство программиста|внутреннем языке разработки]]. <rspoiler text ="Посмотреть примеры условий"> <p><nowiki>A!''</nowiki></p> <p>A!'Итого'</p> <p>A!A(-1)</p> </rspoiler>. Во время чтения таблицы система проверяет каждую строку по указанному условию:* условие выполнено — формируется новый заказ из строки;* условие не выполнено — пропускает строку и переходит к следующей.
Редактирование старых и создание новых шаблонов доступно по нажатию на кнопку «Шаблоны…» в окне “Импорт '''Адрес не пустой'''. Если флажок установлен, заказы создаются только из Excel”. Буквенные соответствия столбцов excel файла указаны напротив ячеек с названием. На рисунке ниже показано окно редактирования шаблона с именем “Example”. Для поля “Адрес получателя” указано значение с функцией MakeAddress(буква столбца строк с заполненным адресом из реестра в excel файле). Функция MakeAddress(s) – помогает и позволяет синтактически более точно преобразовывать адрес получателя путем его многократного преобразования и приведения к внутреннему стандарту программы. Описание других полей интуитивно понятно и не требует дополнительных комментариев.
'''Контролировать уникальность шифра'''. Если флажок установлен, нельзя создавать заказ с шифром, который уже есть в системе.
[[Файл:Template1'''Только в недоставленных'''. Если флажок установлен, не нужно проверять уникальность шифра среди доставленной корреспонденции.png|550px|center]]
'''Идентификация отправителя'''. Выберите параметр, по которому будет определяться отпавитель. Возможные значения: '''Нет''', '''Юр. лицо''', '''ИНН''', '''ID'''.
На рисунке ниже для двух полей периода времени доставки “c”-“до” производится автоматическое добавление символов разрядности минут “:00”, приводящее содержимое загружаемой ячейки excel к внутреннему стандарту программы'''Столбец''' и '''Строка'''. Дополнительно для поля “Поручение” производится автоматическое суммирование содержимого ячеек excel “i+l”, при этом содержимое двух ячеек дополнительно разделяется запятой Укажите столбец и строку с пробеломинформацией об отправителе.
'''Пересчитать стоимость после загрузки'''. Если флажок установлен, стоимость доставки пересчитывается после завершения загрузки из файла.
[[ФайлВ таблице настройте соответствие столбцов в Excel с параметрами заказа в системе. Столбцы в таблице:* '''Поле''' — внутреннее имя параметра заказа;* '''Название''' — название параметра в MeaSoft;* '''По умолчанию''' — значение параметра, если столбец «Значение» пустой;* '''Значение''' — значение параметра. Укажите буквенное обозначение столбца в Excel. Система использует значение из указанного столбца текущей строки. Чтобы отредактировать исходное значение, используйте внутренний язык разработки. Например, в Excel фамилия, имя и отчество получателя указаны в отдельных столбцах: A, B и C. MeaSoft хранит эти данные в одном параметре «ФИО получателя» (name). Чтобы сложить значения из трех столбцов в один параметр, для ФИО получателя укажите следующее:Template2«A+' '+B+' '+C».png|550px|center]]
Для параметра '''Адрес получателя''' используйте значение вида «MakeAddress(буква столбца)». Такой подход преобразует адрес во внутренний формат системы.
Каждое из полей == Как указать лист с заказами в настройке шаблона соответствует определенному полю в карточке единицы корреспонденции, показанному Excel-файле ==По умолчанию система ищет информацию о товарах на первом листе Excel-файла. Эту логику можно изменить вручную. Для этого:# Откройте существующий шаблон на рисунке нижередактирование или добавьте новый шаблон. Заполнение полей шаблона “Example” происходит в соответствии со структурой и содержимым ячеек реестра в excel файле# Перейдите на вкладку '''Дополнительно'''.# В поле '''Скрипт до загрузки''' напишите формулу: <?> SetSheet(х);
В указанной формуле х — это номер листа с заказами в Excel-файле. Замените х на подходящее число.
[[Файл:Zakaz2.png|700px|center]]== Как загрузить заказы ==
=== Загрузка из одного файла ===
# Убедитесь, что в MeaSoft есть [[Клиенты и партнеры|запись клиента]], от имени которого будет создан заказ. Для этого перейдите на вкладку '''Клиенты''' и используйте поиск в правой части окна. Например, укажите название компании, ФИО менеджера и нажмите '''Вывести'''.
# Если клиент не найден, то нажмите F3 и в окне новой записи заполните вкладки '''Основное''', '''Реквизиты''' и '''Финансы'''.
# Перейдите на вкладку '''Заказы''' и создайте новый [[Работа с заказами#Карточка заказа|заказ]].
# В главном меню выберите '''Связь''' > '''Импорт БД из Excel'''. Откроется окно «Импорт из Excel»:[[Файл:Импорт из эксель.png|none]]
# В поле '''Формат''' выберите шаблон импорта.
# В поле '''Заказ''' укажите номер созданного заказа или выберите его из списка по кнопке [[Файл:More.png]]. В этот заказ будут загружены данные файла.
# В поле '''Файл''' нажмите на кнопку [[Файл:More.png]] справа и укажите путь к файлу MS Excel с информацией о заказах.
# Нажмите '''Старт''', чтобы начать импорт данных.
После создания === Загрузка из нескольких файлов ===# Убедитесь, что в MeaSoft есть [[Клиенты и редактирования нового шаблона становится возможным автоматическая загрузка заказов из excel файлапартнеры|запись клиента]], от имени которого будет создан заказ. Для этого перейдите на вкладку '''Клиенты''' и используйте поиск в правой части окна. Например, укажите название компании, ФИО менеджера и нажмите '''Вывести'''.# Если клиент не найден, то нажмите F3 и в окне новой записи заполните вкладки '''Основное''', '''Реквизиты''' и '''Финансы'''.# В главном меню выберите '''Связь''' > '''Импорт БД из папки'''. Откроется окно «Импорт из папки»:[[Файл:Importfromfolder.png|none]]# В поле '''Папка''' нажмите на кнопку [[Файл:More.png]] справа и укажите укажите путь к папке с нужными Excel-файлами. Убедитесь, что в папке хранятся только файлы с заказами. Система не проверяет содержимое файлов.# В поле '''Клиент''' укажите название клиента, последовательно указываем тип шаблона для которого будет создан заказ. В поле работает автозаполнение при вводе.# В списке '''Шаблон''' выберите шаблон импорта для обработки реестра заказов первого файла в списке. Для удобства рекомендуем в excel, номер заказа названии Excel-файлов писать название подходящего шаблона или клиента.# Нажмите '''Загрузить'''. Система обработает первый файл и файл реестра. По нажатию на кнопку “Cтарт” происходит последовательная обработка строк excel файлауберет его из списка, ячейки которой считываются в БД заказов программы “КС 2008”панели внизу отобразится отчет о количестве обработанных записей. Процесс завершения обработки сопровождается информационным сообщением содержащим статистику обработки записей# Если в списке остались элементы, повторите действия, начиная с пункта 4, для следующего файла.
[[Файл:Import.png|center]]==Автозамена==
При оформлении заказа клиенты и покупатели могут указывать один и тот же адрес в разных форматах, что ведет к ошибкам [[Модуль_«Карта»#Геокодирование|геокодирования]].
Чтобы привести адрес к [[Знакомство_с_программой#Ввод адресной информации|требуемому формату]], вы можете настроить правила автозамены для загруженных извне заказов. Для выполнения операции требуются права «Администрирование».
Чтобы настроить автозамену:
# В главном меню выберите '''Связь''' > '''Импорт БД из Excel''' и в окне «Импорт из Excel» нажмите на кнопку '''Автозамена'''. Откроется окно «Настройка автозамены»:[[Файл:Настройка автозамены.png|none]]
# Нажмите F3 и создайте новое правило автозамены. При нажатии на кнопку '''ОК''' в списке правил добавится еще одна строка.<br>Чтобы изменить правило, щелкните дважды на его строке. Чтобы удалить правило, используйте комбинацию клавиш CTRL+F8.
# После создания правил с помощью кнопок '''Вверх''' и '''Вниз''' определите их порядок. Автозамены применяются к адресу последовательно сверху вниз.
== Примеры модификаций содержимого ячеек при помощи формул ==Автозамену можно отключить для определенных режимов срочности. Для этого в справочнике '''Статусы''' > '''17 Виды срочности''' для режима срочности установите 7 параметр первой строки в значение 1. Подробнее см. раздел «[[Виды срочности]]».
ИногдаАвтозамены, для приведения содержимого ячеек Excel к стандартному типупредусмотренные исходным кодом системы:* следующие слова удаляются из начала адреса еще до срабатывания пользовательской автозамены: вул., который будет понятен программеул., следует воспользоваться специальными функциями (полное описание языка приведено по ссылке http://wikiпр.courierexe,проспект,проезд,шоссе ,шоссе,аллея,ул ,пр-д,пер.ru/index,пер ,ул ,пр ,пр-т,пр-кт,бульвар,бул.php/Руководство_программиста),бул ,набережная,наб. Простые примеры применения данных функций рассмотрены ниже: ,наб
'''1* если улица не найдена, но в справочнике есть другая улица, название которой отличается на одну букву, срабатывает подмена одной буквы в названии улицы.'''Пример содержимого ячейки Excel “F”: “Россия, МоскваЕсли улица была указана корректно, Горького улукажите ее вручную.Система «запомнит» эту улицу, ди ошибка больше не повторится. 23”
Задача: Копировать == Шаблон как отдельный файл ==Вы можете сохранить шаблон в отдельный XML-файл. Или загрузить шаблон в систему из ячейки слово "Москва"XML-файла.{{Note|При выгрузке и загрузке шаблона система не копирует настройки на вкладке '''Услуги'''. Укажите эти настройки вручную после импорта шаблона.}}
Решение: === Сохранить шаблон в файл ===# Перейдите в '''PARAM(replace(f, Связь' ', ','), 2)''Импорт БД из Excel''' → '''Шаблоны'''.# Выберите шаблон для выгрузки и кликните на нем правой кнопкой мыши.# Нажмите '''Сохранить в файл'''.# Выберите папку и нажмите '''Сохранить'''.
КомментарийСохранение шаблона: Делим строку разделителями пробелов на параметры и читаем второй параметр. На выходе получаем "Москва"[[Файл:Vlog 12_1.png|center|300px]]
=== Добавить в систему шаблон из файла ===
# Перейдите в '''Связь''' → '''Импорт БД из Excel''' → '''Шаблоны'''.
# Выберите шаблон для выгрузки и кликните на нем правой кнопкой мыши.
# Нажмите '''Добавить из файла'''.
# Выберите XML-файл шаблона и нажмите '''Открыть'''.
'''2Загрузка шаблона:[[Файл:Vlog 12_2.'''Пример содержимого ячейки Excel “J”: “с 11 до 18”png|center|300px]]
Задача А: приведение строки к стандартному типу времени ЧЧ:ММ == Пример создания простого шаблона для загрузки вложений =={{Note|Пример построения простого шаблона рассмотрен в этой статье в целях обучения и для возможности самостоятельного создания шаблона пользователем. В случае необходимости создания сложного шаблона для клиента, который включает в себя сложные модификаторы формул, процедуры преобразования типов и множество прочих нюансов - следует обращаться с вопросами в техническую поддержку (например, желательно с файлом реестра Вашего клиента и описанием желаемых требований для времени доставкиего загрузки в MeaSoft). Необходимо к значению времени “11” добавить значение “:00”.}}
Решение: 'Для импорта базы рассылки в формате Microsoft Excel необходимо сделать заказ (вкладка основного окна программы ''LEFT(REMSPACE(replace(J, 'с«Заказы»', '')), 2)+в который будет производиться импорт. Затем, в главном меню основного окна программы выберите пункт меню '':00'«Связь» → «Импорт БД из Excel»'''(необходимо наличие прав создания почтовых заказов). Откроется окно следующего вида:
Комментарий: Поиском слева ищем в строке значение “c”, после читаем второй параметр, разделенный символом пробел – число “11”, затем к нему прибавляем значение “:00”. На выходе получаем “11:00”.
Задача Б[[Файл: приведение строки к стандартному типу времени ЧЧ:ММ (например, для времени доставки). Необходимо к значению времени “18” добавить значение “:00”vlog 1.png|none]]
Решение: '''RIGHT(J, 2)+':00''''
Комментарий: Копируем справа от начала строки 2 символа – значение ”18”В окне импорта выберите имя (формат) шаблона загрузки, заказ, в который необходимо импортировать базу, а также указать имя файла-источника, затем к нему прибавляем значение “:00”. На выходе получаем “18из которого необходимо загружать реестр:00”.
'''3[[Файл:vlog 2.'''Пример содержимого ячейки Excel “A”: “'забор груза'”, либо “'забор'”png|none]]
Задача: Определять при чтении содержимого ячейки забор или доставку. В случае наличия слова “'забор груза'”, либо “'забор'” – подставлять в ячейку цифру “0”,
иначе подставлять следующий порядковый номер.
Решение: ''Чтобы редактировать шаблон, нажмите на кнопку 'if((C='забор груза')+(C='забор'), 0, GetNewNumber)Шаблоны'''. Можно использовать существующий шаблон или же создать новый путём нажатия клавиши F3.
Комментарий: При помощи условия if Шаблон состоит из заголовка, который включает в себя название шаблона, порядковый номер первой загружаемой строки в таблице, а также условие загрузки каждой конкретной строки (номер первой строки и логического ИЛИ выполняем проверкуусловие загрузки могут задаваться формулами), если условие соблюдается – подставиться значение “0”и строк описания значений, если не соблюдается помещаемых в каждое конкретное поле базы данных адресов. Строка состоит из названия поля в БД по- подставлять следующий порядковый номер английски и описания по-русски, значения по умолчанию, и значения ячейки. Если поле '''значение''' пустое — программа использует значение поля '''значение по умолчанию'''. Поля «значение» и «значение по умолчанию» описывают преобразования данных на внутреннем языке формул (функция GetNewNumberописание языка приведено по ссылке [http://wiki.courierexe.ru/index.php/Руководство_программиста]).
Процесс импорта реестра заказов из Microsoft Excel в систему будет выполнен на примере построения шаблона с именем '''«пример»'''. На рисунке ниже изображено содержимое таблицы Microsoft Excel с заказами клиента:
'''4.'''Пример содержимого ячейки Excel “K” -“забрать документы”, содержимого ячейки Excel “L” - “поставить печать”:
Задача[[Файл: сложить одержимое двух ячеек для загрузки поля “поручение курьера”vlog_3. png|none|1000px]]
Решение: '''k+', '+l'''
Комментарий: Выполняем сложение содержимого двух ячеек “K” В данном реестре мы видим, что заказы № 1-3 имеют одного и “L”того же получателя, разделенного запятой и пробеломпоэтому для удобства выполнения их можно объединить в одну единицу корреспонденции. На выходе получаем “забрать документы, поставить печать”Такая же ситуация с заказами № 4-6.
Примечание: На рисунке выше, поля столбцов по горизонтали нумеруются буквами латинского алфавита (A-N), однако данное представление в пакете MS Office может отличаться от привычного и иметь цифровую нумерацию (R1C1). На рисунке ниже представлено меню настроек (включение/отключение) в программе Microsoft Excel для стиля ссылок R1C1. Для работы с цифровым представлением столбцов Microsoft Excel — соответствие цифровой нумерации буквенной происходит путем простого преобразования: номер цифры = порядковому номеру буквы алфавита (1-‘A’, 2-‘B’, 3-‘C’ и т. д.):
'''5.'''Пример содержимого ячейки “масса, грамм” в Excel “N”: “2500”
Задача[[Файл: Перевод значения ячейки “масса” из грамм в килограммvlog 4. png|none]]
Решение: '''n/1000'''
Комментарий'''Примечание: Выполняем операцию деления. На выходе получаем значение для поля масса “2.5 ”''' Обработка программой реестра заказов из файла происходит с первого листа документа, поэтому таблица заказов должна находиться на первой странице.
Редактирование старых и создание новых шаблонов доступно по нажатию на кнопку '''«Шаблоны…»''' в окне '''«Импорт из Excel»'''. Буквенные соответствия столбцов таблицы указаны напротив ячеек с названием. На рисунке ниже показано окно редактирования шаблона с именем '''«пример»'''.
Для поля '''6«Адрес получателя»''' указано значение с функцией '''MakeAddress'''(буква столбца с адресом из реестра в Excel файле). Функция '''MakeAddress'''(e) — помогает и позволяет синтактически более точно преобразовывать адрес получателя путем его многократного преобразования и приведения к внутреннему стандарту программы.Параметры преобразования адреса можно задать путем нажатия кнопки '''Пример расчета сроков доставки«Автозамена…»''' в окне '''«Импорт из Excel»'''.
Задача: Рассчитать планируемую дату доставки на основе [[Справочники#Тарифы для междугородной доставки|сроков доставки]]Описание других полей интуитивно понятно и не требует дополнительных комментариев.
Решение: '''CalcTownDeliveryDate(ZakazRecord.source, Mode, TownTo, TownFrom, ZakazRecord.date_beg)'''
Комментарий[[Файл: Вызываем функцию CalcTownDeliveryDate которая рассчитывает дату планируемой доставки по таблице сроков. В функцию передаем : ZakazRecord.date_beg - дата заказа, к ней будет добавлено найденное количество дней на доставку. ZakazRecord.source - код клиента, по нему будет найден тариф с указанными сроками. Mode - режим срочности. TownTo, TownFrom - коды городов отправителя и получателяvlog 5.png|none]]
== Пример создания простого шаблона для загрузки вложений ==
Для импорта базы рассылки в формате Microsoft Excel необходимо сделать заказ В данном примере мы видим, что первой строкой, из которой программа начнёт считывать данные, является строка под номером 10. Условием загрузки является то, что ячейка ‘d’ (Контактное лицо (вкладка основного окна программы '''«Заказы»'''Ф.И.О.)) не равна своему же значению из предыдущей строки. Если равно, в который то такая строка будет производиться импортсчитаться вложением к предыдущей строке. ЗатемВложения необходимы для того, чтобы можно было объединять несколько единиц корреспонденции в главном меню основного окна программы выберите пункт меню '''«Связь» → «Импорт БД из Excel»''' одну карточку при выполнении заданных условий (необходимо наличие прав создания почтовых заказовв нашем случае таким условием является то, что получателем корреспонденции является одно и то же лицо по одному и тому же адресу). Откроется окно следующего вида:
Для работы с вложениями необходимо перейти во вкладку '''«Дополнительно»''' и в окне '''«Скрипт после загрузки (используйте %zakaz% как код загружаемого заказа)»''' ввести следующий скрипт (первая строка должна быть пустой):
[[Файл:vlog_1.png|center]]
Query update address a join
(select b.address, sum(b.kol_vo*b.price) as price, sum(b.kol_vo*b.mass) as mass,
sum(b.kol_vo) as kol_vo
from address a join boxes b on b.address=a.code
where a.zakaz=%zakaz%
group by b.address) b on a.code=b.address
set
a.kol_vo=b.kol_vo,
a.rur=b.price,
a.mass=CalcAddressMass(a.code)
WHERE NOT EXISTS (SELECT r.code FROM boxes bb JOIN `returns` r ON r.box=bb.code WHERE bb.address=a.code) and a.date_put is null
В окне импорта выберите имя (формат) шаблона загрузки, заказ, в который необходимо импортировать базу, а также указать имя файла-источника, из которого необходимо загружать реестр[[Файл:vlog 6.png|none]]
[[Файл:vlog_2Этот скрипт необходим для суммирования значений переменных '''«количество»''', '''«масса»''' и '''«цена»''' вложений в карточке корреспонденции.png|center]]
Далее переходим во вкладку '''«Вложения»''':
Редактирование шаблонов доступно путем нажатия на кнопку '''«Шаблоны…»'''. Можно использовать существующий шаблон или же создать новый путём нажатия клавиши '''«F3»'''.
Шаблон состоит из заголовка, который включает в себя название шаблона, порядковый номер первой загружаемой строки в таблице, а также условие загрузки каждой конкретной строки (номер первой строки и условие загрузки могут задаваться формулами), и строк описания значений, помещаемых в каждое конкретное поле базы данных адресов. Строка состоит из названия поля в БД по-английски и описания по-русски, значения по умолчанию, и значения ячейки. Если поле '''«значение»''' пустое – программа использует значение поля '''«значение по умолчанию»'''. Поля «значение» и «значение по умолчанию» описывают преобразования данных на внутреннем языке формул (описание языка приведено по ссылке [http[Файл://wikivlog 7.courierexe.ru/index.php/Руководство_программистаpng|none]]).
Процесс импорта реестра заказов из Microsoft Excel в систему будет выполнен на примере построения шаблона с именем '''“пример”'''. На рисунке ниже изображено содержимое таблицы Microsoft Excel с заказами клиента:
Ставим галку '''«Загружать вложения»'''.
[[Файл:vlog_3Условием загрузки в данном примере является то, что ячейка ‘d’ не пустая. Наименование вложения будет браться из ячейки ‘h’.png|center]]
Поле '''«Код товара»''' используется как артикул в [[Модуль складского учета#Карточка товара|номенклатуре поставщика]] (актуально при использовании модуля складского учёта). В нашем случае оно пустое.
В данном реестре мы видимКаждое из полей в настройке шаблона соответствует определенному полю в карточке единицы корреспонденции, что заказы №1-3 имеют одного показанному на рисунке ниже. Заполнение полей шаблона «пример» происходит в соответствии со структурой и того же получателя, поэтому для удобства выполнения их можно объединить содержимым ячеек реестра в одну единицу Excel файле. Поля на вкладке '''«Получатель»''' единицы корреспонденции. Такая же ситуация с заказами №4-6. заполняются следующим образом:
Примечание: На рисунке выше, поля столбцов по горизонтали нумеруются буквами латинского алфавита (A-N), однако данное представление в пакете MS Office может отличаться от привычного и иметь цифровую нумерацию (R1C1). На рисунке ниже представлено меню настроек (включение/отключение) в программе Microsoft Excel для стиля ссылок R1C1. Для работы с цифровым представлением столбцов Microsoft Excel - соответствие цифровой нумерации буквенной происходит путем простого преобразования: номер цифры = порядковому номеру буквы алфавита (1-‘A’, 2-‘B’, 3-‘C’ и т.д.):
[[Файл:vlog 8.png|none]]
[[Файл:vlog_4.png|center]]
* Значения ячейеек ‘m’, ‘g’, ‘i’ в карточке корреспонденции будут суммироваться согласно своим значениям во вложениях.
Поля на вкладке '''Примечание:«Вложения»''' Обработка программой реестра заказов из файла происходит с первого листа документа, поэтому таблица заказов должна находиться на первой странице.единицы корреспонденции заполнятся так:
Редактирование старых и создание новых шаблонов доступно по нажатию на кнопку '''«Шаблоны…»''' в окне '''“Импорт из Excel”'''. Буквенные соответствия столбцов таблицы указаны напротив ячеек с названием. На рисунке ниже показано окно редактирования шаблона с именем '''“пример”'''.
Для поля '''“Адрес получателя”''' указано значение с функцией '''MakeAddress'''(буква столбца с адресом из реестра в Excel файле). Функция '''MakeAddress'''(e) – помогает и позволяет синтактически более точно преобразовывать адрес получателя путем его многократного преобразования и приведения к внутреннему стандарту программы. Параметры преобразования адреса можно задать путем нажатия кнопки '''«Автозамена…»''' в окне '''«Импорт из Excel»'''[[Файл:vlog 9.png|none]]
Описание других полей интуитивно понятно После создания и не требует дополнительных комментариевредактирования нового шаблона становится возможным автоматическая загрузка заказов из файла Excel.Для этого в окне '''«Импорт из Excel»''', последовательно указываем тип шаблона для обработки реестра заказов в Excel, номер заказа и файл реестра. По нажатию на кнопку '''«Cтарт»''' происходит последовательная обработка строк из файла Excel, ячейки которой считываются в базу данных заказов программы. Процесс завершения обработки сопровождается информационным сообщением содержащим статистику обработки записей:
[[Файл:vlog_5vlog 10.png|centernone]]
В данном примере мы видимИз результата импорта видно, что первой строкой, из которой программа начнёт считывать данные, является строка под номером 10. Условием загрузки является то, что ячейка ‘d’ (Контактное лицо (Ф.И.О.)) не равна своему же значению обработала 6 записей из предыдущей строки. Если равнофайла реестра Excel, то такая строка будет считаться вложением к предыдущей строкекоторые были объеденены в 2 карточки корреспонденции согласно заданных в шаблоне условий. Вложения необходимы для того, чтобы После этого мы можем перейти во вкладку '''«Адреса»''' где можно было объединять несколько единиц просмотреть те единицы корреспонденции , которые были импортированы в одну карточку при выполнении заданных условий заказ нашем данном случае таким условием является то, что получателем корреспонденции является одно это заказ № 120340) и то же лицо по одному и тому же адресу). продолжить работу в программе:
Для работы с вложениями необходимо перейти во вкладку '''«Дополнительно»''' и в окне '''«Скрипт после загрузки (используйте %zakaz% как код загружаемого заказа)»''' ввести следующий скрипт (первая строка должна быть пустой [ссылка]):
[[Файл:vlog_11.png|none|1000px]]
Query update address a join (select b.address, sum(b.kol_vo*b.price) as price, sum(b.kol_vo*b.mass) as mass, sum(b.kol_vo) as kol_vo from address a join boxes b on b.address=a.code where a.zakaz=%zakaz% group by b.address) b on a.codeПримеры модификаций содержимого ячеек при помощи формул ==b.address set a.kol_vo=b.kol_voИногда для приведения содержимого ячеек Excel к стандартному типу, a.rur=b.priceкоторый будет понятен программе, aследует воспользоваться [[Руководство программиста|специальными функциями]].mass=bПростые примеры применения функций рассмотрены ниже.mass WHERE NOT EXISTS (SELECT r.code FROM boxes bb JOIN `returns` r ON r.box=bb.code WHERE bb.address=a.code) and a.date_put is null
[[Файл'''1.'''Пример содержимого ячейки Excel «F»:vlog_6«Россия, Москва, Горького ул., д.png|center]]23»
Задача: Копировать из ячейки слово «Москва».
Этот скрипт необходим для суммирования значений переменных Решение: '''«количество»PARAM(replace(f, '', ', '''«масса»''' и '''«цена»), 2)''' вложений в карточке корреспонденции.
Далее переходим во вкладку '''«Вложения»'''Комментарий: Делим строку разделителями пробелов на параметры и читаем второй параметр. На выходе получаем «Москва».
[[Файл'''2.'''Пример содержимого ячейки Excel «J»:vlog_7.png|center]]«с 11 до 18»
Задача А: приведение строки к стандартному типу времени ЧЧ:ММ (например, для времени доставки). Необходимо к значению времени «11» добавить значение «:00».
Ставим галку Решение: '''«Загружать вложения»LEFT(REMSPACE(replace(J, 'с', '')), 2)+':00''''.
Условием загрузки Комментарий: Поиском слева ищем в данном примере является тостроке значение «c», что ячейка ‘d’ не пустаяпосле читаем второй параметр, разделенный символом пробел — число «11», затем к нему прибавляем значение «:00». Наименование вложения будет браться из ячейки ‘h’На выходе получаем «11:00».
Поле '''«Код товара»''' используется как артикул в номенклатуре поставщика Задача Б: приведение строки к стандартному типу времени ЧЧ:ММ (актуально при использовании модуля складского учётанапример, см. раздел Модуль складского учетадля времени доставки). В нашем случае оно пустоеНеобходимо к значению времени «18» добавить значение «:00».
Каждое из полей в настройке шаблона соответствует определенному полю в карточке единицы корреспонденцииРешение: '''RIGHT(J, показанному на рисунке ниже. Заполнение полей шаблона “пример” происходит в соответствии со структурой и содержимым ячеек реестра в Excel файле. Поля на вкладке 2)+':00''«Получатель»''' единицы корреспонденции заполняются следующим образом:
Комментарий: Копируем справа от начала строки 2 символа — значение «18», затем к нему прибавляем значение «:00». На выходе получаем «18:00».
[[Файл:vlog_8.png|center]]
'''3.'''Пример содержимого ячейки Excel «A»: «'забор груза'», либо «'забор'»
*Значения ячейеек ‘m’Задача: Определять при чтении содержимого ячейки забор или доставку. В случае наличия слова «'забор груза'», ‘g’либо «'забор'» — подставлять в ячейку цифру «0», ‘i’ в карточке корреспонденции будут суммироваться согласно своим значениям во вложенияхиначе подставлять следующий порядковый номер.
Поля на вкладке Решение: '''if((C='забор груза')+(C='«Вложения»забор'), 0, GetNewNumber)''' единицы корреспонденции заполнятся так:
Комментарий: При помощи условия if и логического ИЛИ выполняем проверку, если условие соблюдается — подставиться значение «0», если не соблюдается — подставлять следующий порядковый номер (функция GetNewNumber).
[[Файл:vlog_9.png|center]]
После создания и редактирования нового шаблона становится возможным автоматическая загрузка заказов из файла Excel. Для этого в окне '''«Импорт из Excel»''', последовательно указываем тип шаблона для обработки реестра заказов в Excel, номер заказа и файл реестра4. По нажатию на кнопку '''“Cтарт”''' происходит последовательная обработка строк из файла Пример содержимого ячейки Excel«K» -«забрать документы», содержимого ячейки которой считываются в базу данных заказов программы. Процесс завершения обработки сопровождается информационным сообщением содержащим статистику обработки записейExcel «L» — «поставить печать»:
Задача: сложить одержимое двух ячеек для загрузки поля «поручение курьера».
[[ФайлРешение:vlog_10.png|center]]'''k+', '+l'''
Комментарий: Выполняем сложение содержимого двух ячеек «K» и «L», разделенного запятой и пробелом. На выходе получаем «забрать документы, поставить печать».
Из результата импорта видно, что программа обработала 6 записей из файла реестра Excel, которые были объеденены в 2 карточки корреспонденции согласно заданных в шаблоне условий.
После этого мы можем перейти во вкладку '''«Адреса»''' где можно просмотреть те единицы корреспонденции, которые были импортированы в заказ (в данном случае это заказ №120340) и продолжить работу в программе:
'''5.'''Пример содержимого ячейки «масса, грамм» в Excel «N»: «2500»
[[ФайлЗадача:vlog_11Перевод значения ячейки «масса» из грамм в килограмм.png|center]]
== Примечания ==Решение: '''n/1000'''
Примеры построения простых шаблонов рассмотрены в этой статье в целях обучения и Комментарий: Выполняем операцию деления. На выходе получаем значение для возможности самостоятельного создания шаблона пользователемполя масса "2. В случае необходимости создания сложного шаблона для клиента, который включает в себя сложные модификаторы формул, процедуры преобразования типов и множество прочих нюансов - следует обращаться с вопросами в техническую поддержку (желательно с файлом реестра Вашего клиента и описанием желаемых требований для его загрузки в систему КС2008)5 ".
Любой шаблон может быть выгружен/загружен из системы и сохранен в виде внешнего файла (в формате XML) из контекстного меню '''"Сохранить в файл"/"Добавить из файла"''' в окне общего списка шаблонов системы (кнопка '''"Шаблоны"'''). Однако, при процедуре импорта/экспорта шаблона не копируется вкладка '''"Услуги"''', которая предназначена для загрузки дополнительных услуг из реестра. Это связано с тем, что в каждой системе порядок следования и название услуг могут отличаться. Настройки этой вкладки требуется однократно выполнять в ручном режиме после импорта шаблона.
[[Файл:vlog_12.png|center]]  == Групповая загрузка файлов-реестров из папки ==[[Файл:Importfromfolder.png|thumb|250px|right|'''рис6.1 Интерфейс групповой загрузки фалов-реестров''']]В системе предусмотрена возможность групповой обработки файлов с реестром через основное меню '''"Связь - Импорт БД из папки"'''. Интерфейс такой загрузки представлен на рисунке. Процедура группового импорта представляет собой следующий алгоритм действий пользователя: 1.В поле '''"Папка"''' кнопкой выбрать папку, в которой находятся предполагаемые к загрузке файлы-реестров в формате Excel. Содержимое выбранной папки отобразится в виде списка файлов в окне интерфейса (отображаются все файлы Excel вне зависимости от их содержимого). 2.В поле '''"Клиент"''' указать название клиента, для которого система автоматически создаст новый заказ на вкладке '''"Заказы"'''.Пример расчета сроков доставки
3.В поле '''"Шаблон"''' указать тип шаблона, соответствующего самому верхнему реестру в списке. Очевидно, что для удобства обработки, имя каждого файла реестра должно содержать название клиента и(-или) название шаблона загрузки.Задача: Рассчитать планируемую дату доставки на основе [[Тарифы клиентов|сроков доставки]]
4.Кнопка '''"Загрузить"Решение: ''' обработает первый верхний файл списка CalcDeliveryDate(отображаемый в среднем окне интерфейса)ZakazRecord. После успешной загрузки реестраsource, Mode, TownTo, загруженный файл исчезнет из спискаTownFrom, ZakazRecord.date_beg)'''
5Комментарий: Вызываем функцию CalcTownDeliveryDate которая рассчитывает дату планируемой доставки по таблице сроков.Процедура циклически повторяется начиная В функцию передаем : ZakazRecord.date_beg — дата заказа, к ней будет добавлено найденное количество дней на доставку. ZakazRecord.source — код клиента, по нему будет найден тариф с пуказанными сроками.1 для каждого файла-реестра (пока список в среднем окне не будет пуст)Mode — режим срочности. TownTo, TownFrom — коды городов отправителя и получателя. Примечание: функция CalcDeliveryDate до версии 804, имела имя CalcTownDeliveryDate

Навигация