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

Материал из Меасофт
Версия от 09:37, 18 сентября 2012; Inna (обсуждение | вклад) (Новая страница: «Для импорта базы рассылки в формате MS Excel или DBF (а также любого другого формата, поддержи…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

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

Импорт из Excel.png

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

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

Описание языка формул:

  • Константы: константы бывают целочисленными, дробными и строковыми. Значения целочисленных и дробных констант указываются «как есть», а строковые – в одинарных кавычках. При этом, если внутри строковой константы встречается символ одинарной кавычки он должен быть задвоен, для указания интерпретатору того, что он не является признаком конца константы.
  • Логические операции: >, <, =, ! - Больше, меньше, равно, не равно.
  • Арифметические операции: +, -, *, /
  • Операция конкатенации строк: +

Условный оператор: IF(a,b,c) или IF(a,b) – В первом случае возвращает b, если a истинно (не равно нулю или пустой строке), иначе – c. Во втором случае – возвращает a, если оно истинно, иначе – b.

  • Функции:

UPCASE(s) – возвращает строку s в верхнем регистре.
LCASE(s) – возвращает строку s в нижнем регистре.
LEN(s) – возвращает количество символов в строке s.
POS(s, substr) – возвращает номер первого символа первого включения подстроки substr в строку s, возвращает 0, если включения подстроки отсутствуют.
PARAM(s, i) – возвращает i-й элемент строки s, разделенной запятыми на элементы.
LEFT(s, i) – возвращает i первых символов строки s.
RIGHT(s, i) – возвращает i последних символов строки s.
REPLACE(s, s1, s2) – возвращает строку s, в кот. все включения подстроки s1 заменены строкой s2 (не чувствительно к регистру).
REMSPACE(s) – возвращает сроку s без начальных и конечных запятых и пробелов, а также начальных точек.
INT(v) – возвращает значение типа “целое”, приводя вариантное значение v к числовому типу, а затем округляя его. В том числе используется как функция округления.
FLOAT(v) – возвращает значение типа “число”, приводя вариантное значение v к числовому типу, переводя в число цепочку символов до первого нецифрового символа (либо точки или запятой).
ROUNDUP(f) – округляет число f до ближайшего большего по модулю целого числа.
ROUNDDN(f) – округляет число f до ближайшего меньшего по модулю целого числа.
STR – возвращает значение типа “строка”, приводя вариантное значение v к строковому типу.
QUOTEDSTR(s) – квотирует строку s символом «’» (одинарная кавычка). Возвращает строку s, помещенную между квотирующими символами, при этом все вхождения в строку s квотирующего символа задваиваются.

MakeAddress(s) – возвращает значение, полученное путем преобразований адреса s для приведения его к внутреннему формату программы. В процессе преобразования до нескольких раз происходит замена буквосочетаний по таблице замены (ее редактирование доступно по нажатию кнопки «Автозамена»), поиск улиц по базе КЛАДР с точностью до одного знака, и некоторые другие операции, нацеленные на исправление ошибок в написании адреса.

ReplaceAddress(target, address) – Возвращает адрес последней доставки корреспонденции получателю target по адресу address от текущего клиента. При отсутствии такой доставки, возвращает address.

GetStationCode(s) – возвращает код станции метро, ассоциированный в системе с адресом s. В случае невозможности идентифицировать станцию метро – возвращает 1.

GetPrice – (в разработке) возвращает рассчитанное значение цены, на основе прайс-листа клиента и данных о корреспонденции.

GetKurierByStation(i) – возвращает код курьера, ассоциированного со станцией метро с кодом i.

GetNewNumber – Возвращает не занятый номер единицы корреспонденции в текущем заказе.

FileName – Возвращает имя загружаемого файла.

Recno – Возвращает номер текущей строки загружаемого файла (от первой загружаемой строки).

Reccount – Возвращает количество строк, найденных в файле (от первой загружаемой строки).

Field(table, id, field) – Возвращает значение поля field таблицы table, записи с идентификатором id. В случае отсутствия записи удовлетворяющей условиям, возвращает Null. Список таблиц можно получить, выполнив запрос (см. раздел «SQL-отчеты»)“show tables from courier”, а список полей таблицы можно получить, выполнив запрос “describe table”, где table – название таблицы (необходимо наличие прав администрирования).

Null – Возвращает пустое значение.

Да, True, Нет, False – константы, соответствующие булевым значениям.

A..Z – Ссылки на соответствующие столбцы загружаемого файла. Возможно использование как функции, с указанием целочисленного параметра – сдвига строки относительно текущей. Например d(-2) вернет значение столбца D на 2 строки выше текущей.

Также возможно использование в формуле ссылки на значение другого поля, просто указав его название (английское), при этом в случае возникновения цикличных ссылок они разрешаются путем возвращения пустого (или нулевого) значения поля, на котором образовался цикл.

Например:

Address=b      (полю «адрес» присваивается значение столбца “b”)
Station=GetStationCode(address)  (полю «код станции метро» присваивается рассчитанное значение кода метро из данных в поле        
«адрес»)
To_Kurier=GetKurierByStation(station) (полю «Выдать курьеру» присваивается значение, соответствующее коду станции метро,
присвоенному полю «код станции метро»)