Редактирование шаблонов доступно путем нажатия на кнопку «Шаблоны…».<br />
Шаблон состоит из заголовка, который в себя включает название шаблона, номер первой загружаемой строки в файле, а также условие загрузки каждой конкретной строки (номер первой строки и условие загрузки может задаваться формулами), и строк описания значений, помещаемых в каждое конкретное поле базы данных адресов. Строка состоит из названия поля (кратко по-английски), описания (развернуто по-русски), значения по умолчанию, и значения. Если поле «значение» пустое – система использует значение поля «значение по умолчанию». Поля «значение» и «значение по умолчанию» описывают преобразования данных на внутреннем языке формул(описание языка приведено по ссылке http://wiki.courierexe.ru/index.php/Руководство_программиста).
Описание языка формул:<br />*Константы: константы бывают целочисленными, дробными и строковыми. Значения целочисленных и дробных констант указываются «как есть», а строковые – Пример импорта БД заказов в одинарных кавычках. При этом, если внутри строковой константы встречается символ одинарной кавычки он должен быть задвоен, для указания интерпретатору того, что он не является признаком конца константы.*Логические операции: >, <, =, ! - Больше, меньше, равно, не равно.*Арифметические операции: +, -, *, /*Операция конкатенации строк: +Условный оператор: IF(a,b,c) или IF(a,b) – В первом случае возвращает b, если a истинно (не равно нулю или пустой строке), иначе – c. Во втором случае – возвращает a, если оно истинно, иначе – b.*Функции:UPCASE(s) – возвращает строку s в верхнем регистре.<br />LCASE(s) – возвращает строку s в нижнем регистре.<br />LEN(s) – возвращает количество символов в строке s.<br />POS(s, substr) – возвращает номер первого символа первого включения подстроки substr в строку s, возвращает 0, если включения подстроки отсутствуют.<br />PARAM(s, i) – возвращает i-й элемент строки s, разделенной запятыми систему будет рассмотрен на элементыпримере построения шаблона с именем “Example”.<br />LEFT(s, i) – возвращает i первых символов строки sНа рисунке ниже изображено содержимое excel файла с заказами клиента.<br />RIGHT(s, i) Набор столбцов реестра – возвращает i последних символов строки s.<br />REPLACE(s, s1, s2) – возвращает строку s, в кот. все включения подстроки s1 заменены строкой s2 (не чувствительно к регистру).<br />REMSPACE(s) – возвращает сроку s без начальных типовой и конечных запятых и пробеловсодержит 13 полей, а также начальных точек.<br />INT(v) – возвращает значение типа “целое”, приводя вариантное значение v к числовому типу, а затем округляя его. В том числе используется как функция округления.<br />FLOAT(v) – возвращает значение типа “число”, приводя вариантное значение v к числовому типу, переводя в число цепочку символов до первого нецифрового символа (либо точки по желанию набор полей можно расширить или запятой).<br />ROUNDUP(f) – округляет число f до ближайшего большего по модулю целого числа.<br />ROUNDDN(f) – округляет число f до ближайшего меньшего по модулю целого числа.<br />STR – возвращает значение типа “строка”, приводя вариантное значение v к строковому типу.<br />QUOTEDSTR(s) – квотирует строку s символом «’» (одинарная кавычка). Возвращает строку s, помещенную между квотирующими символами, при этом все вхождения в строку s квотирующего символа задваиваютсяже сократить.<br />
MakeAddress(s) – возвращает значение, полученное путем преобразований адреса s для приведения его к внутреннему формату программы. В процессе преобразования до нескольких раз происходит замена буквосочетаний по таблице замены (ее редактирование доступно по нажатию кнопки «Автозамена»), поиск улиц по базе КЛАДР с точностью до одного знака, и некоторые другие операции, нацеленные на исправление ошибок в написании адреса[[Файл:Импорт из Excel.png]]
ReplaceAddressНа рисунке выше, поля столбцов по горизонтали нумеруются буквами латинского алфавита (targetA-M), addressоднако данное представление в пакете MS Office может отличаться от привычного - иметь цифровую нумерацию (R1C1). На рисунке ниже представлено меню настроек (включение/отключение) – Возвращает адрес последней доставки корреспонденции получателю target по адресу address от текущего клиентав программе Excel для стиля ссылок R1C1. При отсутствии такой доставкиДля работы с цифровым представлением столбцов excel - соответствие цифровой нумерации буквенной происходит путем простого преобразования: номер цифры = порядковому номеру буквы алфавита (1-‘a’, возвращает address2-‘b’, 3-‘c’ и т.д.)
GetStationCode(s) – возвращает код станции метро, ассоциированный в системе с адресом s. В случае невозможности идентифицировать станцию метро – возвращает 1[[Файл:Импорт из Excel.png]]
GetPrice – Примечание: Обработка программой реестра заказов из excel файла происходит с первой вкладки документа, поэтому таблица заказов должна находиться на первой вкладке. Редактирование старых и создание новых шаблонов доступно по нажатию на кнопку «Шаблоны…» в окне “Импорт из Excel”. Буквенные соответствия столбцов excel файла указаны напротив ячеек с названием. На рисунке ниже показано окно редактирования шаблона с именем “Example”. Для поля “Адрес получателя” указано значение с функцией MakeAddress(буква столбца с адресом из реестра в разработкеexcel файле) возвращает рассчитанное значение цены, на основе прайс-листа клиента . Функция MakeAddress(s) – помогает и позволяет синтактически более точно преобразовывать адрес получателя путем его многократного преобразования и приведения к внутреннему стандарту программы. Описание других полей интуитивно понятно и данных о корреспонденциине требует дополнительных комментариев.
GetKurierByStation(i) – возвращает код курьера, ассоциированного со станцией метро с кодом i[[Файл:Импорт из Excel.png]]
GetNewNumber – Возвращает не занятый номер единицы корреспонденции в текущем заказеНа рисунке ниже для двух полей периода времени доставки “c”-“до” производится автоматическое добавление символов разрядности минут “:00”, приводящее содержимое загружаемой ячейки excel к внутреннему стандарту программы. Дополнительно для поля “Поручение” производится автоматическое суммирование содержимого ячеек excel “i+l”, при этом содержимое двух ячеек дополнительно разделяется запятой с пробелом.
FileName – Возвращает имя загружаемого файла[[Файл:Импорт из Excel.png]]
Recno – Возвращает номер текущей строки загружаемого файла (от первой загружаемой строки)Каждое из полей в настройке шаблона соответствует определенному полю в карточке единицы корреспонденции, показанному на рисунке ниже. Заполнение полей шаблона “Example” происходит в соответствии со структурой и содержимым ячеек реестра в excel файле.
Reccount – Возвращает количество строк, найденных в файле (от первой загружаемой строки)[[Файл:Импорт из Excel.png]]
Field(table, id, field) – Возвращает значение поля field таблицы tableПосле создания и редактирования нового шаблона становится возможным автоматическая загрузка заказов из excel файла. Для этого в окне Импорт из Excel, записи с идентификатором id. В случае отсутствия записи удовлетворяющей условиямпоследовательно указываем тип шаблона для обработки реестра заказов в excel, возвращает Nullномер заказа и файл реестра. Список таблиц можно получитьПо нажатию на кнопку “Cтарт” происходит последовательная обработка строк excel файла, выполнив запрос (смячейки которой считываются в БД заказов программы “КС 2008”. раздел «SQL-отчеты»)“show tables from courier”, а список полей таблицы можно получить, выполнив запрос “describe table”, где table – название таблицы (необходимо наличие прав администрирования)Процесс завершения обработки сопровождается информационным сообщением содержащим статистику обработки записей.
Null – Возвращает пустое значение. Да, True, Нет, False – константы, соответствующие булевым значениям. A..Z – Ссылки на соответствующие столбцы загружаемого файла. Возможно использование как функции, с указанием целочисленного параметра – сдвига строки относительно текущей. Например d(-2) вернет значение столбца D на 2 строки выше текущей. Также возможно использование в формуле ссылки на значение другого поля, просто указав его название (английское), при этом в случае возникновения цикличных ссылок они разрешаются путем возвращения пустого (или нулевого) значения поля, на котором образовался цикл. Например[[Файл:{||<pre>Address=b (полю «адрес» присваивается значение столбца “b”)Station=GetStationCode(address) (полю «код станции метро» присваивается рассчитанное значение кода метро Импорт из данных в поле «адрес»)To_Kurier=GetKurierByStation(station) (полю «Выдать курьеру» присваивается значение, соответствующее коду станции метро,присвоенному полю «код станции метро»)</pre>||}Excel.png]]