Создать файл с шаблоном печатных форм

В АСР LANBilling все печатные формы — например, документы или отчёты — формируются по тому или иному шаблону. В системе уже есть основные шаблоны: счёт на оплату, акт, счёт-фактура, выгрузка в 1С, отчёт по списаниям и др.

Если вам не подходят существующие шаблоны, добавьте свои. Менеджер будет одинаково работать как со встроенными шаблонами, так и с добавленными.

В этой статье представлены примеры, которые помогут создать файл с шаблоном. Можно подготовить файл в трёх форматах: XML, HTML и PDF.

В качестве примера создадим шаблон для детализации услуг за месяц. Для работы понадобится программа XMLPad. В этой инструкции мы рассмотрим действия с шаблоном на примере файла testOrder.xml. Вы можете назвать свой шаблон иначе.

  1. В редакторе создайте форму шаблона. Строки вида %имя% используются в качестве идентификаторов переменных. При формировании счёта они будут заменены на реальные значения из вашей базы данных. В качестве уникального идентификатора документа выступает значение orders.order_id, дополненное слева нулями до десяти символов.

    Если в документе нужно напечатать штрихкод, используйте шрифт code39h. Согласно спецификации Code 39 команды «старт» и «стоп» обозначаются символом «*».

  2. Сохраните форму как Microsoft Word 2003 XML. В результате получится файл: testOrder0.xml.

  3. Откройте xml-файл с помощью XMLPad. Добавьте теги <!-- start_row --> и <!-- end_row -->.

    image

    Проверьте идентификаторы переменных. Теги могут сбиться и выглядеть, например, так:

    <w:t>%</w:t><w:t>serv</w:t><w:t>%</w:t>
    

    ``

    В этом случае приведите их к правильному виду:

    <w:t>%serv%</w:t>
    

    ``

    В результате получится готовый xml-шаблон testOrder.xml.

  4. Создайте файл testOrder.sql в кодировке UTF-8. Он нужен для подстановки значений из базы данных в переменные шаблона.

    На вход sql-файла подаётся параметр @ORDER_ID, который соответствует значению orders.order_id из базы данных.

    В документе можно вывести данные о менеджере, запустившем его формирование. Для этого используйте переменную @logged_person_id. Например, так:

    %man%:select fio from managers where person_id = @logged_person_i
    

    ``

  5. Скопируйте в директорию /usr/local/billing/templates два файла: testOrder.xml и testOrder.sql.

В качестве примера создадим шаблон для детализации услуг за месяц. Для работы понадобится программа OpenOffice или MSWord. В этой инструкции мы рассмотрим действия с шаблоном на примере файла testOrder.html. Вы можете назвать свой шаблон иначе.

  1. В редакторе создайте форму шаблона. Строки вида %имя% используются в качестве идентификаторов переменных. При формировании счёта они будут заменены на реальные значения из вашей базы данных. В качестве уникального идентификатора документа выступает значение orders.order_id, дополненное слева нулями до десяти символов.

    Если в документе нужно напечатать штрихкод, используйте шрифт code39h. Согласно спецификации Code 39 команды «старт» и «стоп» обозначаются символом «*».

  2. Сохраните форму как html-документ. В результате получится файл testOrder0.html.

  3. Откройте html-документ в любом текстовом редакторе. Добавьте теги <!-- start_row --> и <!-- end_row -->.

    Замените ссылку: вместо локального изображения testOrder0_html_m4276a87.gif нужно указать путь до внешней картинки, например https://docs.lanbilling.ru/files/add_template/logo.gif.

    Проверьте, что в заголовке установлена кодировка UTF-8.

    <META http-equiv="content-type" content="text/html"; charset=utf-8>
    

    ``

    Сохраните файл в кодировке UTF-8. В результате получится html-шаблон testOrder.html.

  4. Создайте файл testOrder.sql в кодировке UTF-8. Он нужен для подстановки значений из базы данных в переменные шаблона.

    На вход sql-файла подаётся параметр @ORDER_ID, который соответствует значению orders.order_id из базы данных.

    В документе можно вывести данные о менеджере, запустившем его формирование. Для этого используйте переменную @logged_person_id. Например, так:

    %man%:select fio from managers where person_id = @logged_person_i
    

    ``

  5. Скопируйте в директорию /usr/local/billing/templates два файла: testOrder.html и testOrder.sql.

В качестве примера создадим шаблон для счёта на оплату. Для работы понадобится любой текстовый редактор. В этой инструкции мы рассмотрим действия с шаблоном на примере файла inv_test.pdf. Вы можете назвать свой шаблон иначе.

  1. В редакторе создайте форму шаблона с помощью языка разметки HTML. Обратите внимание, содержимое шаблона нужно обернуть в тег <thtml></thtml>. Всё, что находится внутри этого тега, будет передано в php-переменную и преобразуется в формат pdf.

  2. Сохраните файл как pdf-документ. В результате получится файл inv_test.pdf. Обратите внимание, в примере дополнительно есть тег <qrtx></qrtx>. Он содержит данные для формирования QR-кода, передаваемые от sql-файла.

  3. Создайте файл inv_test.post, который нужен для обработки html-тегов в форме шаблона.

  4. Создайте файл inv_test.sql в кодировке UTF-8. Он нужен для подстановки значений из базы данных в переменные шаблона.

    На вход sql-файла подаётся параметр @ORDER_ID, который соответствует значению orders.order_id из базы данных.

    В отчёте можно вывести данные о менеджере, запустившем его формирование. Для этого используйте переменную @logged_person_id. Например, так:

    %man%:select fio from managers where person_id = @logged_person_i
    

    ``

  5. Скопируйте в директорию /usr/local/billing/templates три файла: inv_test.pdf, inv_test.post и inv_test.sql.

Далее нужно добавить шаблон в административном интерфейсе АСР LANBilling. После этого по нему можно будет формировать документы или отчёты. Примеры документов, созданных на основе тестовых шаблонов из инструкции: example.xml, example.html и example.pdf.