Изменения

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

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

2412 байт добавлено, 09:02, 7 сентября 2021
м
Нет описания правки
== Пример создания простого шаблона Логика загрузки заказов ==Чтобы загрузить заказы из Excel, используются внутренние шаблоны. Шаблон описывает соответствие между столбцами электронной таблицы и параметрами заказа в системе. Например, в файле Excel в столбце H указан телефон получателя. Шаблон нужен, чтобы система записала значение из столбца H в параметр заказа «Телефон получателя».
Для импорта базы рассылки в формате MS Excel или DBF (а также любого другого В системе нет готовых шаблонов. Как правило, шаблоны каждой курьерской службы уникальны. Содержимое шаблона зависит от формата, поддерживаемого MS информации во входящих Excel), создайте заказ, в который необходимо импортировать, потом в главном меню основного окна программы выберите пункт «Связь» → «Импорт БД из Excel» (необходимо наличие прав создания почтовых заказов)-файлах. Откроется окно следующего вида:
В процессе импорта система может выполнить обработку отдельных значений. Для этого добавьте в шаблон выражение на внутреннем языке разработки. Подробнее см. в статье [[Файл:Импорт из Excel.png|centerРуководство программиста]]. Например, рекомендуем приводить адрес доставки к внутреннему формату системы.
MeaSoft поддерживает импорт из всех форматов данных, которые поддерживает Excel. Подробнее см. [https://support.office.com/ru-ru/article/поддерживаемые-excel-форматы-файлов-0943ff2c-6014-4e8d-aaea-b83d51d46247 на официальном сайте Microsoft Office].
В окне импорта необходимо выбрать заказ== Создание шаблона ==На форме настройки шаблона есть несколько вкладок: '''Основное''', в который нужно импортировать базу'''Места''', '''Вложения''', шаблон '''Услуги''' и '''Дополнительные'''. Для загрузки, а также указать имя файлапо шаблону настройте вкладку '''Основное'''. Настройка остальных вкладок необязательна и зависит от формата заказов в Excel-источника, из которого необходимо загружатьфайле.
Редактирование шаблонов доступно путем нажатия {{Note|Не рекомендуем самостоятельно писать скрипты на кнопку «Шаблоны…»'''Дополнительных''' вкладках.<br /> Шаблон состоит из заголовкаЕсли надо изменить логику обработки заказов, который то обратитесь в себя включает название шаблона, номер первой загружаемой строки в файле, а также условие загрузки каждой конкретной строки (номер первой строки и условие загрузки может задаваться формулами), и строк описания значений, помещаемых в каждое конкретное поле базы данных адресов. Строка состоит из названия поля (кратко по-английски), описания (развернуто по-русски), значения по умолчанию, и значения. Если поле «значение» пустое – система использует значение поля «значение по умолчанию». Поля «значение» и «значение по умолчанию» описывают преобразования данных на [[Руководство программиста|внутреннем языке разработки]]службу поддержки MEA Soft.}}
Процесс импорта реестра заказов === Как добавить шаблон ===Создать шаблон загрузки может пользователь с доступом к созданию заказа. Чтобы создать шаблон:# Перейдите в '''Связь''' → '''Импорт БД из excel Excel'''.# Нажмите '''Шаблоны''' → '''F3''', чтобы добавить шаблон.# Укажите '''Название''' шаблона.# Включите опцию '''Личный шаблон''', чтобы другие пользователи не могли его редактировать. Личный шаблон может изменить его владелец или администратор системы.# Укажите номер '''Первой строки''' с заказом в систему будет выполнен электронной таблице. Не указывайте номер строки с заголовком таблицы. Например, если в шаблоне '''Первая строка''' это заголовок таблицы и поле '''Условие загрузки''' пустое, то система создаст заказ на примере построения шаблона основе заголовка таблицы.# Включите опцию '''Адрес не пустой''', чтобы система создавала заказы только из строк с указанным адресом.# Если требуется дополнительное условие, то укажите '''Условие загрузки''' — логическое выражение на [[Руководство программиста|внутреннем языке разработки]]. <rspoiler text ="Посмотреть примеры условий"> <p><nowiki>A!''</nowiki></p> <p>A!'Итого'</p> <p>A!A(-1)</p> </rspoiler>. Во время чтения таблицы система проверяет каждую строку по указанному условию:#* условие выполнено — система формирует новый заказ из строки;#* условие не выполнено — система пропускает строку и переходит к следующей.# Включите опцию '''Контролировать уникальность шифра''', чтобы пропускать заказы с шифром, который уже есть в системе.# Включите опцию '''Только в недоставленных''', чтобы система не проверяла уникальность шифра среди доставленной корреспонденции.# Выберите способ '''Идентификации отправителя'''. Укажите '''Столбец''' и '''Строку''' с именем “Example”информацией об отправителе. На рисунке ниже изображено содержимое excel # Включите опцию '''Пересчитать стоимость после загрузки''', чтобы система рассчитала стоимость доставки после завершения загрузки из файла .# В таблице настройте соответствие столбцов в Excel с заказами клиентапараметрами заказа в системе. Набор Столбцы в таблице:#* '''Поле''' — внутреннее имя параметра заказа;#* '''Название''' параметра в MeaSoft;#* '''По умолчанию''' — значение параметра, если столбец Значение пустой;#* '''Значение''' параметра. Укажите буквенное обозначение столбца в Excel. Система использует значение из указанного столбца текущей строки. Чтобы отредактировать исходное значение, используйте внутренний язык разработки. Например, в Excel фамилия имя и отчество получателя указаны в отдельных столбцах: A, B и C. MeaSoft хранит эти данные в одном параметре «ФИО получателя» (name). Чтобы сложить значения из трех столбцов реестра – типовой и содержит 13 полейв один параметр, по желанию набор полей можно расширить или же сократитьдля ФИО получателя укажите следующее: «A+' '+B+' '+C».
{{Note|Для параметра '''Адрес получателя''' используйте значение вида "MakeAddress(буква столбца)". Такой подход преобразует адрес во внутренний формат системы. }}
Форма настройки шаблона:[[Файл:Excel_шаблонVlog 5.png|850pxcenter|600px|center]]
=== Как указать лист с заказами в Excel-файле ===
По умолчанию система ищет информацию о товарах на первом листе Excel-файла. Эту логику можно изменить вручную. Для этого:
# Откройте существующий шаблон на редактирование. Или добавьте новый шаблон.
# Перейдите на вкладку '''Дополнительно'''.
# В поле '''Скрипт до загрузки''' напишите формулу:
<?>
SetSheet(2);
'''Примечание: '''На рисунке выше, поля столбцов по горизонтали нумеруются буквами латинского алфавита (A-M), однако данное представление В указанной формуле 2 это номер листа с заказами в пакете MS Office может отличаться от привычного Excel- иметь цифровую нумерацию (R1C1). На рисунке ниже представлено меню настроек (включение/отключение) в программе Excel для стиля ссылок R1C1файле. Для работы с цифровым представлением столбцов excel - соответствие цифровой нумерации буквенной происходит путем простого преобразования: номер цифры = порядковому номеру буквы алфавита (1-‘a’, Замените 2-‘b’, 3-‘c’ и т.дна подходящее вам число.)
[[Файл:R1C1template_setsheet.png|center|600px|]]
== Как загрузить заказы ==
=== Загрузка из одного файла ===# Убедитесь, что в систему добавлен нужный клиент. Для этого перейдите на вкладку '''Клиенты''' и используйте поиск в правой части окна. Например, укажите название '''Компании''', '''ФИО''' менеджера и нажмите '''Вывести'''.# Если клиент не найден, то нажмите '''F3''', чтобы добавить нового. В открывшемся окне обязательно заполните вкладки '''Основное''', '''Реквизиты''' и '''Финансы'''. Их подробное описание см. в статье [[Клиенты и партнеры]].# Перейдите на вкладку '''Заказы''' и нажмите '''F3''Примечание', чтобы создать новый заказ. Система откроет окно Информация о заказе.# Укажите '''Заказчика'''. В поле работает автозаполнение: введите часть значения и нажмите '''Tab''', когда предложено подходящее. Система автоматически заполнит часть полей, используя информацию о клиенте.# Выберите '''Тип заказа'''.# Нажмите '''OK''', чтобы создать заказ.# В верхнем меню выберите '''Связь''''Обработка программой реестра заказов ''Импорт БД из excel файла происходит Excel'''.# В поле '''Формат''' выберите шаблон импорта.# Укажите созданный '''Заказ'''.# Выберите '''Файл''' Excel с первой вкладки документаинформацией о заказах.# Нажмите '''Старт''', поэтому таблица заказов должна находиться на первой вкладкечтобы начать импорт данных.
Редактирование старых и создание новых шаблонов доступно по нажатию на кнопку «Шаблоны…» в окне “Импорт из Excel”. Буквенные соответствия столбцов excel файла указаны напротив ячеек с названием. На рисунке ниже показано окно редактирования шаблона с именем “Example”. Для поля “Адрес получателя” указано значение с функцией MakeAddress(буква столбца с адресом из реестра в excel файле). Функция MakeAddress(s) – помогает и позволяет синтакcически более точно преобразовывать адрес получателя путем его многократного преобразования и приведения к внутреннему стандарту программы. Описание других полей интуитивно понятно и не требует дополнительных комментариевФорма импорта заказов:[[Файл:Import.png|center|500px]]
=== Загрузка из нескольких файлов ===
# Убедитесь, что в систему добавлен нужный клиент. Для этого перейдите на вкладку '''Клиенты''' и используйте поиск в правой части окна. Например, укажите название '''Компании''', '''ФИО''' менеджера и нажмите '''Вывести'''.
# Если клиент не найден, то нажмите '''F3''', чтобы добавить нового. В открывшемся окне обязательно заполните вкладки '''Основное''', '''Реквизиты''' и '''Финансы'''. Их подробное описание см. в статье [[Клиенты и партнеры]].
# Укажите '''Папку''' с нужными Excel-файлами. Убедитесь, что в папке хранятся только файлы с заказами. Система не проверяет содержимое файлов.
# Укажите '''Клиента''', для которого система создаст новый заказ.
# Выберите '''Шаблон''' импорта для обработки первого файлу в списке. Для удобства рекомендуем в названии Excel-файлов писать название подходящего шаблона или клиента.
# Нажмите '''Загрузить'''. Система обработает первый файл и уберет его из списка.
# Если в списке остались элементы, то вернитесь на пункт 2 и повторите действия для следующего файла.
Форма импорта из нескольких файлов:[[Файл:Template1Importfromfolder.png|550pxcenter|center500px]]
== Шаблон как отдельный файл ==
Вы можете сохранить шаблон в отдельный XML-файл. Или загрузить шаблон в систему из XML-файла.
{{Note|При выгрузке и загрузке шаблона система не копирует настройки на вкладке '''Услуги'''. Укажите эти настройки вручную после импорта шаблона.}}
На рисунке ниже === Сохранить шаблон в файл ===# Перейдите в '''Связь''' → '''Импорт БД из Excel''' → '''Шаблоны'''.# Выберите шаблон для двух полей периода времени доставки “c”-“до” производится автоматическое добавление символов разрядности минут “:00”, приводящее содержимое загружаемой ячейки excel к внутреннему стандарту программывыгрузки и кликните на нем правой кнопкой мыши. Дополнительно для поля “Поручение” производится автоматическое суммирование содержимого ячеек excel “i+l”, при этом содержимое двух ячеек дополнительно разделяется запятой с пробелом# Нажмите '''Сохранить в файл'''.# Выберите папку и нажмите '''Сохранить'''.
Сохранение шаблона:
[[Файл:Vlog 12_1.png|center|300px]]
[[Файл:Template2=== Добавить в систему шаблон из файла ===# Перейдите в '''Связь''' → '''Импорт БД из Excel''' → '''Шаблоны'''.# Выберите шаблон для выгрузки и кликните на нем правой кнопкой мыши.# Нажмите '''Добавить из файла'''.# Выберите XML-файл шаблона и нажмите '''Открыть'''.png|550px|center]]
Загрузка шаблона:
[[Файл:Vlog 12_2.png|center|300px]]
Каждое из полей == Пример создания простого шаблона для загрузки вложений =={{Note|Пример построения простого шаблона рассмотрен в настройке этой статье в целях обучения и для возможности самостоятельного создания шаблона соответствует определенному полю в карточке единицы корреспонденции, показанному на рисунке нижепользователем. Заполнение полей В случае необходимости создания сложного шаблона “Example” происходит для клиента, который включает в соответствии со структурой себя сложные модификаторы формул, процедуры преобразования типов и содержимым ячеек множество прочих нюансов - следует обращаться с вопросами в техническую поддержку (желательно с файлом реестра Вашего клиента и описанием желаемых требований для его загрузки в excel файлеMeaSoft).}}
Для импорта базы рассылки в формате Microsoft Excel необходимо сделать заказ (вкладка основного окна программы '''«Заказы»'''), в который будет производиться импорт. Затем, в главном меню основного окна программы выберите пункт меню '''«Связь» → «Импорт БД из Excel»''' (необходимо наличие прав создания почтовых заказов). Откроется окно следующего вида:
[[Файл:Zakaz2.png|700px|center]]
[[Файл:vlog 1.png|none]]
После создания и редактирования нового шаблона становится возможным автоматическая загрузка заказов из excel файла. Для этого в окне Импорт из Excel, последовательно указываем тип шаблона для обработки реестра заказов в excel, номер заказа и файл реестра. По нажатию на кнопку “Cтарт” происходит последовательная обработка строк excel файла, ячейки которой считываются в БД заказов программы “КС 2008”. Процесс завершения обработки сопровождается информационным сообщением содержащим статистику обработки записей.
[[ФайлВ окне импорта выберите имя (формат) шаблона загрузки, заказ, в который необходимо импортировать базу, а также указать имя файла-источника, из которого необходимо загружать реестр:Import.png|center]]
== Примеры модификаций содержимого ячеек при помощи формул ==
Иногда, для приведения содержимого ячеек Excel к стандартному типу, который будет понятен программе, следует воспользоваться специальными функциями (полное описание языка приведено по ссылке http[[Файл://wikivlog 2.courierexe.ru/index.php/Руководство_программиста). Простые примеры применения данных функций рассмотрены ниже: png|none]]
'''1.'''Пример содержимого ячейки Excel “F”: “Россия, Москва, Горького ул., д. 23”
Задача: Копировать из ячейки слово "Москва"Чтобы редактировать шаблон, нажмите на кнопку '''Шаблоны'''. Можно использовать существующий шаблон или же создать новый путём нажатия клавиши F3.
Решение: Шаблон состоит из заголовка, который включает в себя название шаблона, порядковый номер первой загружаемой строки в таблице, а также условие загрузки каждой конкретной строки (номер первой строки и условие загрузки могут задаваться формулами), и строк описания значений, помещаемых в каждое конкретное поле базы данных адресов. Строка состоит из названия поля в БД по-английски и описания по-русски, значения по умолчанию, и значения ячейки. Если поле '''значение''PARAM(replace(f, ' пустое — программа использует значение поля ', ','), 2)значение по умолчанию'''. Поля «значение» и «значение по умолчанию» описывают преобразования данных на внутреннем языке формул (описание языка приведено по ссылке [http://wiki.courierexe.ru/index.php/Руководство_программиста]).
Комментарий: Делим строку разделителями пробелов Процесс импорта реестра заказов из Microsoft Excel в систему будет выполнен на параметры и читаем второй параметрпримере построения шаблона с именем '''«пример»'''. На выходе получаем "Москва".рисунке ниже изображено содержимое таблицы Microsoft Excel с заказами клиента:
'''2[[Файл:vlog_3.'''Пример содержимого ячейки Excel “J”: “с 11 до 18”png|none|1000px]]
Задача А: приведение строки к стандартному типу времени ЧЧ:ММ (например, для времени доставки). Необходимо к значению времени “11” добавить значение “:00”.
Решение: '''LEFT(REMSPACE(replace(JВ данном реестре мы видим, 'что заказы № 1-3 имеют одного и того же получателя, поэтому для удобства выполнения их можно объединить в одну единицу корреспонденции. Такая же ситуация с', '')), 2)+':00''''заказами № 4-6.
КомментарийПримечание: Поиском слева ищем в строке значение “c”На рисунке выше, после читаем второй параметрполя столбцов по горизонтали нумеруются буквами латинского алфавита (A-N), разделенный символом пробел – число “11”, затем к нему прибавляем значение “:00”однако данное представление в пакете MS Office может отличаться от привычного и иметь цифровую нумерацию (R1C1). На выходе получаем “11рисунке ниже представлено меню настроек (включение/отключение) в программе Microsoft Excel для стиля ссылок R1C1. Для работы с цифровым представлением столбцов Microsoft Excel — соответствие цифровой нумерации буквенной происходит путем простого преобразования:00”номер цифры = порядковому номеру буквы алфавита (1-‘A’, 2-‘B’, 3-‘C’ и т. д.):
Задача Б: приведение строки к стандартному типу времени ЧЧ:ММ (например, для времени доставки). Необходимо к значению времени “18” добавить значение “:00”.
Решение[[Файл: '''RIGHT(J, 2)+':00''''vlog 4.png|none]]
Комментарий: Копируем справа от начала строки 2 символа – значение ”18”, затем к нему прибавляем значение “:00”. На выходе получаем “18:00”.
'''Примечание:''' Обработка программой реестра заказов из файла происходит с первого листа документа, поэтому таблица заказов должна находиться на первой странице.
Редактирование старых и создание новых шаблонов доступно по нажатию на кнопку '''3«Шаблоны…»''' в окне '''«Импорт из Excel»'''. Буквенные соответствия столбцов таблицы указаны напротив ячеек с названием.На рисунке ниже показано окно редактирования шаблона с именем '''Пример содержимого ячейки Excel “A”: “«пример»'забор груза'”, либо “'забор'”.
Задача: Определять при чтении содержимого ячейки забор или доставкуДля поля '''«Адрес получателя»''' указано значение с функцией '''MakeAddress'''(буква столбца с адресом из реестра в Excel файле). Функция '''MakeAddress'''(e) — помогает и позволяет синтактически более точно преобразовывать адрес получателя путем его многократного преобразования и приведения к внутреннему стандарту программы. В случае наличия слова “Параметры преобразования адреса можно задать путем нажатия кнопки '''забор груза«Автозамена…»'”, либо “'забор'” – подставлять в ячейку цифру “0”, иначе подставлять следующий порядковый номерокне '''«Импорт из Excel»'''.
Решение: '''if((C='забор груза')+(C='забор'), 0, GetNewNumber)'''Описание других полей интуитивно понятно и не требует дополнительных комментариев.
Комментарий: При помощи условия if и логического ИЛИ выполняем проверку, если условие соблюдается – подставиться значение “0”, если не соблюдается - подставлять следующий порядковый номер (функция GetNewNumber).
[[Файл:vlog 5.png|none]]
'''4.'''Пример содержимого ячейки Excel “K” -“забрать документы”, содержимого ячейки Excel “L” - “поставить печать”:
Задача: сложить одержимое двух ячеек В данном примере мы видим, что первой строкой, из которой программа начнёт считывать данные, является строка под номером 10. Условием загрузки является то, что ячейка ‘d’ (Контактное лицо (Ф.И.О.)) не равна своему же значению из предыдущей строки. Если равно, то такая строка будет считаться вложением к предыдущей строке. Вложения необходимы для загрузки поля “поручение курьера”того, чтобы можно было объединять несколько единиц корреспонденции в одну карточку при выполнении заданных условий (в нашем случае таким условием является то, что получателем корреспонденции является одно и то же лицо по одному и тому же адресу).
Решение: Для работы с вложениями необходимо перейти во вкладку '''«Дополнительно»'''и в окне 'k+', '+l«Скрипт после загрузки (используйте %zakaz% как код загружаемого заказа)»'''ввести следующий скрипт (первая строка должна быть пустой):
Комментарий: Выполняем сложение содержимого двух ячеек “K” и “L”, разделенного запятой и пробелом. На выходе получаем “забрать документы, поставить печать”.
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
'''5[[Файл:vlog 6.'''Пример содержимого ячейки “масса, грамм” в Excel “N”: “2500” png|none]]
Задача: Перевод значения ячейки “масса” из грамм в килограмм.
Решение: Этот скрипт необходим для суммирования значений переменных '''n/1000«количество»''', '''«масса»''' и '''«цена»''' вложений в карточке корреспонденции.
КомментарийДалее переходим во вкладку '''«Вложения»''': Выполняем операцию деления. На выходе получаем значение для поля масса “2.5 ”.
'''6[[Файл:vlog 7.'''Пример расчета сроков доставкиpng|none]]
Задача: Рассчитать планируемую дату доставки на основе [[Справочники#Тарифы для междугородной доставки|сроков доставки]]
Решение: Ставим галку '''CalcTownDeliveryDate(ZakazRecord.source, Mode, TownTo, TownFrom, ZakazRecord.date_beg)«Загружать вложения»'''.
Комментарий: Вызываем функцию CalcTownDeliveryDate которая рассчитывает дату планируемой доставки по таблице сроков. В функцию передаем : ZakazRecord.date_beg - дата заказаУсловием загрузки в данном примере является то, к ней будет добавлено найденное количество дней на доставку. ZakazRecordчто ячейка ‘d’ не пустая.source - код клиента, по нему Наименование вложения будет найден тариф с указанными сроками. Mode - режим срочности. TownTo, TownFrom - коды городов отправителя и получателябраться из ячейки ‘h’.
== Пример создания простого шаблона для загрузки вложений ==Поле '''«Код товара»''' используется как артикул в [[Модуль складского учета#Ввод данных|номенклатуре поставщика]] (актуально при использовании модуля складского учёта). В нашем случае оно пустое.
Для импорта базы рассылки Каждое из полей в настройке шаблона соответствует определенному полю в формате Microsoft Excel необходимо сделать заказ (вкладка основного окна программы '''«Заказы»''')карточке единицы корреспонденции, показанному на рисунке ниже. Заполнение полей шаблона «пример» происходит в соответствии со структурой и содержимым ячеек реестра в который будет производиться импортExcel файле. Затем, в главном меню основного окна программы выберите пункт меню Поля на вкладке '''«Связь» → «Импорт БД из Excel»«Получатель»''' (необходимо наличие прав создания почтовых заказов). Откроется окно следующего видаединицы корреспонденции заполняются следующим образом:
[[Файл:vlog_1vlog 8.png|centernone]]
В окне импорта выберите имя (формат) шаблона загрузки* Значения ячейеек ‘m’, заказ‘g’, ‘i’ в который необходимо импортировать базу, а также указать имя файла-источника, из которого необходимо загружать реестр:карточке корреспонденции будут суммироваться согласно своим значениям во вложениях.
Поля на вкладке '''«Вложения»''' единицы корреспонденции заполнятся так:
[[Файл:vlog_2.png|center]]
[[Файл:vlog 9.png|none]]
Редактирование шаблонов доступно путем нажатия на кнопку После создания и редактирования нового шаблона становится возможным автоматическая загрузка заказов из файла Excel. Для этого в окне '''«Шаблоны…»«Импорт из Excel»''', последовательно указываем тип шаблона для обработки реестра заказов в Excel, номер заказа и файл реестра. Можно использовать существующий шаблон или же создать новый путём нажатия клавиши По нажатию на кнопку '''«F3»«Cтарт»'''происходит последовательная обработка строк из файла Excel, ячейки которой считываются в базу данных заказов программы.Процесс завершения обработки сопровождается информационным сообщением содержащим статистику обработки записей:
Шаблон состоит из заголовка, который включает в себя название шаблона, порядковый номер первой загружаемой строки в таблице, а также условие загрузки каждой конкретной строки (номер первой строки и условие загрузки могут задаваться формулами), и строк описания значений, помещаемых в каждое конкретное поле базы данных адресов. Строка состоит из названия поля в БД по-английски и описания по-русски, значения по умолчанию, и значения ячейки. Если поле '''«значение»''' пустое – программа использует значение поля '''«значение по умолчанию»'''. Поля «значение» и «значение по умолчанию» описывают преобразования данных на внутреннем языке формул (описание языка приведено по ссылке [http://wiki.courierexe.ru/index.php/Руководство_программиста]).
Процесс импорта реестра заказов из Microsoft Excel в систему будет выполнен на примере построения шаблона с именем '''“пример”'''[[Файл:vlog 10. На рисунке ниже изображено содержимое таблицы Microsoft Excel с заказами клиента:png|none]]
[[ФайлИз результата импорта видно, что программа обработала 6 записей из файла реестра Excel, которые были объеденены в 2 карточки корреспонденции согласно заданных в шаблоне условий.После этого мы можем перейти во вкладку '''«Адреса»''' где можно просмотреть те единицы корреспонденции, которые были импортированы в заказ (в данном случае это заказ № 120340) и продолжить работу в программе:vlog_3.png|center]]
В данном реестре мы видим, что заказы №1-3 имеют одного и того же получателя, поэтому для удобства выполнения их можно объединить в одну единицу корреспонденции. Такая же ситуация с заказами №4-6[[Файл:vlog_11. png|none|1000px]]
Примечание: На рисунке выше, поля столбцов по горизонтали нумеруются буквами латинского алфавита (A-N), однако данное представление в пакете MS Office может отличаться от привычного и иметь цифровую нумерацию (R1C1). На рисунке ниже представлено меню настроек (включение/отключение) в программе Microsoft Excel == Примеры модификаций содержимого ячеек при помощи формул ==Иногда для стиля ссылок R1C1. Для работы с цифровым представлением столбцов Microsoft приведения содержимого ячеек Excel - соответствие цифровой нумерации буквенной происходит путем простого преобразования: номер цифры = порядковому номеру буквы алфавита (1-‘A’к стандартному типу, 2-‘B’который будет понятен программе, 3-‘C’ и тследует воспользоваться [[Руководство программиста|специальными функциями]].дПростые примеры применения функций рассмотрены ниже.):
'''1.'''Пример содержимого ячейки Excel «F»: «Россия, Москва, Горького ул., д. 23»
[[ФайлЗадача:vlog_4Копировать из ячейки слово «Москва».png|center]]
Решение: '''PARAM(replace(f, ' ', ','), 2)'''
'''ПримечаниеКомментарий:''' Обработка программой реестра заказов из файла происходит с первого листа документа, поэтому таблица заказов должна находиться Делим строку разделителями пробелов на первой страницепараметры и читаем второй параметр. На выходе получаем «Москва».
Редактирование старых и создание новых шаблонов доступно по нажатию на кнопку '''«Шаблоны…»''' в окне '''“Импорт из Excel”'''. Буквенные соответствия столбцов таблицы указаны напротив ячеек с названием. На рисунке ниже показано окно редактирования шаблона с именем '''“пример”'''.
Для поля '''“Адрес получателя”''' указано значение с функцией '''MakeAddress2.'''(буква столбца с адресом из реестра в Пример содержимого ячейки Excel файле). Функция '''MakeAddress'''(e) – помогает и позволяет синтактически более точно преобразовывать адрес получателя путем его многократного преобразования и приведения к внутреннему стандарту программы. Параметры преобразования адреса можно задать путем нажатия кнопки '''«Автозамена…»''' в окне '''«Импорт из Excel»'''.«J»: «с 11 до 18»
Описание других полей интуитивно понятно и не требует дополнительных комментариевЗадача А: приведение строки к стандартному типу времени ЧЧ:ММ (например, для времени доставки). Необходимо к значению времени «11» добавить значение «:00».
Решение: '''LEFT(REMSPACE(replace(J, 'с', '')), 2)+':00''''
[[ФайлКомментарий:vlog_5Поиском слева ищем в строке значение «c», после читаем второй параметр, разделенный символом пробел — число «11», затем к нему прибавляем значение «:00». На выходе получаем «11:00».png|center]]
Задача Б: приведение строки к стандартному типу времени ЧЧ:ММ (например, для времени доставки). Необходимо к значению времени «18» добавить значение «:00».
В данном примере мы видим, что первой строкой, из которой программа начнёт считывать данные, является строка под номером 10. Условием загрузки является то, что ячейка ‘d’ (Контактное лицо (Ф.И.О.)) не равна своему же значению из предыдущей строки. Если равно, то такая строка будет считаться вложением к предыдущей строке. Вложения необходимы для того, чтобы можно было объединять несколько единиц корреспонденции в одну карточку при выполнении заданных условий Решение: '''RIGHT(в нашем случае таким условием является тоJ, что получателем корреспонденции является одно и то же лицо по одному и тому же адресу2). +':00''''
Для работы с вложениями необходимо перейти во вкладку '''«Дополнительно»''' и в окне '''«Скрипт после загрузки (используйте %zakaz% как код загружаемого заказа)»''' ввести следующий скрипт (первая строка должна быть пустой [ссылка])Комментарий:Копируем справа от начала строки 2 символа — значение «18», затем к нему прибавляем значение «:00». На выходе получаем «18:00».
Query update address a join (select b'''3.address'''Пример содержимого ячейки Excel «A»: «'забор груза'», 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=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либо «'забор'»
[[ФайлЗадача:vlog_6Определять при чтении содержимого ячейки забор или доставку. В случае наличия слова «'забор груза'», либо «'забор'» — подставлять в ячейку цифру «0»,иначе подставлять следующий порядковый номер.png|center]]
Решение: '''if((C='забор груза')+(C='забор'), 0, GetNewNumber)'''
Этот скрипт необходим для суммирования значений переменных '''«количество»'''Комментарий: При помощи условия if и логического ИЛИ выполняем проверку, '''«масса»''' и '''«цена»''' вложений в карточке корреспонденцииесли условие соблюдается — подставиться значение «0», если не соблюдается — подставлять следующий порядковый номер (функция GetNewNumber).
Далее переходим во вкладку '''«Вложения»''':
'''4.'''Пример содержимого ячейки Excel «K» -«забрать документы», содержимого ячейки Excel «L» — «поставить печать»:
[[ФайлЗадача:vlog_7сложить одержимое двух ячеек для загрузки поля «поручение курьера».png|center]]
Решение: '''k+', '+l'''
Ставим галку '''«Загружать вложения»'''Комментарий: Выполняем сложение содержимого двух ячеек «K» и «L», разделенного запятой и пробелом. На выходе получаем «забрать документы, поставить печать».
Условием загрузки в данном примере является то, что ячейка ‘d’ не пустая. Наименование вложения будет браться из ячейки ‘h’.
Поле '''«Код товара»5.''' используется как артикул Пример содержимого ячейки «масса, грамм» в номенклатуре поставщика (актуально при использовании модуля складского учёта, см. раздел Модуль складского учета). В нашем случае оно пустое.Excel «N»: «2500»
Каждое Задача: Перевод значения ячейки «масса» из полей в настройке шаблона соответствует определенному полю в карточке единицы корреспонденции, показанному на рисунке ниже. Заполнение полей шаблона “пример” происходит грамм в соответствии со структурой и содержимым ячеек реестра в Excel файлекилограмм. Поля на вкладке '''«Получатель»''' единицы корреспонденции заполняются следующим образом:
Решение: '''n/1000'''
[[ФайлКомментарий:vlog_8Выполняем операцию деления. На выходе получаем значение для поля масса "2.5 ".png|center]]
*Значения ячейеек ‘m’, ‘g’, ‘i’ в карточке корреспонденции будут суммироваться согласно своим значениям во вложениях. Поля на вкладке '''«Вложения»''' единицы корреспонденции заполнятся так:  [[Файл:vlog_9.png|center]]  После создания и редактирования нового шаблона становится возможным автоматическая загрузка заказов из файла Excel. Для этого в окне '''«Импорт из Excel»''', последовательно указываем тип шаблона для обработки реестра заказов в Excel, номер заказа и файл реестра. По нажатию на кнопку '''“Cтарт”''' происходит последовательная обработка строк из файла Excel, ячейки которой считываются в базу данных заказов программы. Процесс завершения обработки сопровождается информационным сообщением содержащим статистику обработки записей:  [[Файл:vlog_10.png|center]]  Из результата импорта видно, что программа обработала 6 записей из файла реестра Excel, которые были объеденены в 2 карточки корреспонденции согласно заданных в шаблоне условий.После этого мы можем перейти во вкладку '''«Адреса»''' где можно просмотреть те единицы корреспонденции, которые были импортированы в заказ (в данном случае это заказ №120340) и продолжить работу в программе:  [[Файл:vlog_11.png|center]] == Примечания == Примеры построения простых шаблонов рассмотрены в этой статье в целях обучения и для возможности самостоятельного создания шаблона пользователем. В случае необходимости создания сложного шаблона для клиента, который включает в себя сложные модификаторы формул, процедуры преобразования типов и множество прочих нюансов - следует обращаться с вопросами в техническую поддержку (желательно с файлом реестра Вашего клиента и описанием желаемых требований для его загрузки в систему КС2008). Любой шаблон может быть выгружен/загружен из системы и сохранен в виде внешнего файла (в формате XML) из контекстного меню '''"Сохранить в файл"/"Добавить из файла"''' в окне общего списка шаблонов системы (кнопка '''"Шаблоны"'''). Однако, при процедуре импорта/экспорта шаблона не копируется вкладка '''"Услуги"''', которая предназначена для загрузки дополнительных услуг из реестра. Это связано с тем, что в каждой системе порядок следования и название услуг могут отличаться. Настройки этой вкладки требуется однократно выполнять в ручном режиме после импорта шаблона. [[Файл:vlog_12.png|center]]  == Групповая загрузка файлов-реестров из папки ==[[Файл:Importfromfolder.png|thumb|250px|right|'''рис.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

Навигация