Создаем шаблон документа на базе Excel

  • Создание шаблона печати Excel

    Добавлено: 01 марта 2016 г.

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

Шаблоны печати

В нашей программе вы можете создавать любые шаблоны печати. Например, вы можете выписывать счета, акты о выполненных работах, заполнять типовые договора, пользуясь данными из таблиц. В шаблоне печати задается общий вид документа и отмечается, куда в этом документе нужно вставить значения полей таблицы. Шаблоны печати в системе "Клиентская база" позволяют не только распечатывать документы, но и сохранять их в форматах rtf, odt (OpenOffice), docx (Word 2007), xls, pdf. На этом уроке мы научимся создавать шаблоны в формате xls (при создании шаблонов xls для нашей программы рекомендуем использовать Excel 2007).

Важно: На данный момент значения из подтаблиц могут некорректно отображаться в версии Microsoft Office 2013. Если Вы столкнулись с такой проблемой, попробуйте открыть сформированный файл в другом текстовом редакторе (например, Libre office или Open office).

Создание шаблонов печати на основе документа Excel

1. Сначала необходимо подготовить документ в программе Excel. Разместите в нем необходимый текст и таблицы. Места, куда должны будут подставляться значения из таблиц "Клиентской базы", оставьте пока пустыми. В документе так же можно использовать  изображения.

Важно: В шаблонах печати Excel можно использовать только изображения в формате "png", в противном случае изображения при печати выводиться не будут!

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

photo

 

2. Теперь в программе "Клиентская база" перейдем в "Настройки" — "Конфигурация".

3. Выберите категорию "Документы", затем перейдите в таблицу "Счет-фактура". Перед вами отобразится окно с настройками, здесь нажмите на кнопку "Шаблоны печати".

photo

4. Вы увидите список уже имеющихся шаблонов. Нажмите на кнопку "Добавить шаблон".

5. В окне "Создание шаблона" сначала нужно ввести имя шаблона. Затем выбрать формат шаблона. Выбираем "xls".


photo


6. Далее необходимо выбрать файл, с которым мы будем работать. Нажимаем "Загрузить".


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

photo

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

photo

Обратите внимание: вы можете использовать поля не только из текущей таблицы, например {Номер}, но и любые поля из связанных таблиц - они пишутся через точку, например, {На кого.Название}. 

Задайте ячейкам нужный формат, чтобы Excel корректно отображал данные. Например, ячейкам, в которых должен выводиться ИНН или КПП, лучше задать текстовый формат, т.к. Excel может воспринять номер ИНН как слишком большое число и выводить его некорректно.

8. После того, как мы разместили в xls файл все нужные поля, сохраняем его. Шаблон готов. Теперь нужно подгрузить заново готовый шаблон. Опять нажимаем "Выбрать файл", выбираем наш xls-файл, нажимаем "Загрузить". Наш шаблон с уже вставленными в него переменными загружен.

9. Теперь мы можем настроить ориентацию страниц шаблона: альбомную или книжную.

photo

После этого задаем размер страницы нашего шаблона, выбрав его из предустановленных и нажимаем на кнопку "Сохранить".  

photo

Примечание. В целях безопасности редактировать шаблоны печати с расширением xls могут только пользователи с правами администратора.

10. Распечатать в программе можно несколькими способами. Например, переходим в таблицу, выбираем запись. В режиме просмотра нажимаем кнопку "Дополнительно", открывается кнопка "Распечатать".  Или находясь в таблице отмечаем галочками одну или несколько нужных записей, а затем нажимаем на кнопку "Распечатать" на верхней панели.

photo

Выбираем наш шаблон печати. 

photo

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

photo

Используя наш список переменных, вы также можете свободно работать с данными из подтаблиц. Это часто бывает нужно при печати бухгалтерских документов, где используются позиции актов, позиции счетов и т. д. В случае если вы будете использовать в шаблоне переменные из подтаблицы, которая содержит несколько строк, то все значения, соответствующие основной записи при печати будут вставлены автоматически. Вот так будет выглядеть счет со скидками, распечатанный вместе с позициями:

photo

Функции для использования в xls-шаблонах

Шаблоны полей, условия, функции в ячейки xls-файла нужно вставлять в фигурных скобках, например, {Наша компания.Адрес}. Внутри фигурных скобок можно использовать круглые скобки, например, {(Сумма*(1+Наша компания. Ставка НДС/100))} 

ПрописьюДата(Дата) - предназначена для вывода даты прописью. Например: Если поле "Дата" имеет значение "21.11.12", функция Прописью(Дата) будет возвращать значение "21 ноября 2010г".


ПрописьюМесяц(Дата) - предназначена для вывода месяца прописью. Например: Если поле "Дата" имеет значение "21.11.12", функция ПрописьюМесяц(Дата) будет возвращать значение "ноября". 

 ДатаЧисло(Дата) - возвращает значение числа. Например: Если поле "Дата" имеет значение "21.11.12", функция ДатаЧисло(Дата) будет возвращать значение "21".


ДатаМесяц(Дата) - возвращает значение месяца. Например: Если поле "Дата" имеет значение "21.11.12", функция ДатаМесяц(Дата) будет 
возвращать значение "11".


ДатаГод(Дата) - возвращает значение года. Например: Если поле "Дата" имеет значение "21.11.12", функция ДатаМесяц(Дата) будет возвращать значение "2012".


ЧислоФормат(Шаблон поля) - возвращает число с двумя знаками после запятой с округлением. Например, ЧислоФормат(3.068) возвращает 3,07.

ЧислоФормат(Шаблон поля,n) - возвращает число с n-знаками после запятой с округлением. Например, ЧислоФормат(3.068,1) возвращает 3,1.

ЧислоФормат(Шаблон поля,n,1) - возвращает число с n-знаками после запятой с округлением и с разделением разрядов. Например, ЧислоФормат(35200.068,2,1) возвращает 35 200,07.


ПрописьюРублей(Шаблон поля) - возвращает значение числа прописью в рублях и копейках. Например, ПрописьюРублей(3.068) возвращает "три рубля 07 копеек".

ПрописьюРублей(Шаблон поля,'', 'none') - возвращает значение числа прописью в рублях без копеек. Например, ПрописьюРублей(3.23, '', 'none') возвращает "три рубля".

Имя_Подтаблицы.НомерСтроки - возвращает значение номера строки в подтаблице. Например, если нужно вывести в табличном виде все строки подтаблицы "Позиции Счета", то в ячейке, в которой должен выводиться номер строки, нужно прописать {Позиции Счета.НомерСтроки}.

КоличествоСтрок('Имя_подтаблицы') - возвращает значение количества строк в подтаблице. Например, если после распечатанных в табличном виде позиций счета необходимо вывести общее количество строк, то в ячейке нужно прописать: Всего наименований {КоличествоСтрок('Позиции счета')}

Кроме того, там где это уместно, можно использовать функции Excel и задавать формат ячеек.

Задание условий

 Условия в ячейках xls-файла можно добавить с помощью краткой записи условного оператора if php.

Cинтаксис краткой записи условного оператора if:

expression ? true_value : false_value

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

Например:
{(Наша компания.Ставка НДС && Наша компания.НДС включен в стоимость == 'Да'?(Позиции счет-фактуры.Цена*(1-(Наша компания.Ставка НДС/(100+Наша компания.Ставка НДС)))):Позиции счет-фактуры.Цена)}

Возможность печати многостраничных документов

Начиная с версии 2.0.1 в программе "Клиентская база" появилась возможность печати многостраничных документов. Для создания такого шаблона нужно проделать те же действия, которые описаны выше в пункте "Создание шаблонов печати на основе документа Excel". Однако документ, который необходимо будет подготовить перед созданием шаблона будет иметь другой вид:

Нужно добавить в шаблон четыре новых листа, чтобы общее количество листов в документе составило 5.

  • Лист №1 - это лист, где будет содержаться тело шаблона. Назовем его, например, "Body";
  • Лист №2 - это лист, где будет указываться общий заголовок всего документа. Назовем его "Header";
  • Лист №3 - это лист, где будет указывается общий подвал шаблона. Назовем его "Footer";
  • Лист №4 - это лист, где будет указываться заголовок отдельно взятой страницы. Назовем его "Table header";
  • Лист №5 - это лист, где будет указываться подвал отдельно взятой страницы. Назовем его "Table footer".

 

Важно: Порядок листов, указанных здесь нарушать нельзя. это приведет к некорректной печати шаблонов. 

Распределим все данные по листам шаблона. После распределения, загрузим шаблон обратно в программу и на выходе мы получим шаблон, скомпонованный из листов документа. Например, компоновка при печати шаблона на два листа будет происходить следующим образом:

  • Лист №2
  • Лист №4
  • Лист №1
  • Лист №5
  • Лист №4
  • Лист №1
  • Лист №5
  • Лист №3 

или так

  • Header;
  • Table header;
  • Body;
  • Table footer;
  • Table header;
  • Body;
  • Table footer;
  • Footer.

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

photo

Давайте разберем создание сложного многостраничного документа на примере шаблона ТОРГ-12. Мы хотим, чтобы при печати накладной она выглядела следующим образом:

 photo

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

 photo

Итак, в качестве заголовка документа мы отмечаем то, что будет в начале первой страницы документа и больше нигде повторяться не будет. Шаблон этой части должен быть расположен на листе №2 — Header.

 photo

В качестве подвала документа мы выделяем то, что будет в самом конце последней страницы документа. Шаблон этой части должен быть расположен на листе №3 — Footer.

 photo

Далее выделяем заголовок таблицы — это та часть, которая должна быть напечатана на каждой странице документа, содержащей данные. То есть, если у нас будет много позиций по накладной, то часть из них будут перенесены на вторую страницу, в начале которой тоже должен стоять заголовок таблицы с названиями столбцов. Шаблон этой части должен быть расположен на листе №4 - Table header.

 photo

Теперь давайте посмотрим на окончание (подвал) таблицы (на рисунке выделен фиолетовый цветом), которая должна быть также на каждой странице, но в отличие от заголовка располагаться не до, а сразу же после основной части. В примере с шаблоном печати по форме ТОРГ-12 это одна строка итога. Шаблон этой части должен быть расположен на листе №5 - Table footer.

 photo

Затем обратим внимание на ту часть, которая является основной. В нашем примере - это непосредственно сами позиции накладной. На каждой странице эти данные будут обрамлены сверху той частью, которая помещена в лист "Table header", а снизу той частью, которая размещена в листе "Table footer". Шаблон этой части должен быть расположен на листе №1 - Body. Данные из этой части дублироваться не будут.

Примечание: Указанные названия для листов в файле шаблона выбраны для удобства, вы можете их переименовать, если это необходимо. На печать шаблона это не повлияет.

 photo

Скачать или посмотреть шаблон готового многостраничного документа из нашего примера Вы всегда можете в нашей демонстрационной версии по следующей ссылке - http://demo.clientbase.ru/forms.php?table=53&mode=print&admin&form=200&edit

Функции для использования в многостраничных xls-шаблонах

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

Печать.СтрНомер — предназначена для вывода номера страницы документа.
CуммаПоПолюНаСтраницеМинусНДС(Сумма,Отправитель.НДС включен в стоимость,Отправитель.Ставка НДС) — предназначена для вывода суммы по столбцу данных за вычетом НДС, считает сумму для конкретной страницы.
- Сумма - название поля, по которому необходимо посчитать сумму;
- Отправитель.НДС включен в стоимость - название поля, в котором содержатся данные о том включен НДС в стоимость или нет, по нему система определяет нужно ли вычитать из суммы ставку НДС;
- Отправитель.Ставка НДС - название поля со значением ставки НДС в процентах, необходимо для подсчета и вычета.
CуммаПоПолюНаСтраницеНДС(Сумма,Отправитель.НДС включен в стоимость,Отправитель.Ставка НДС) — предназначена для вывода суммы НДС по значениям на конкретной странице.
- Сумма - название поля, по которому необходимо посчитать сумму
- Отправитель.НДС включен в стоимость - название поля, определяющее вычитать ли сумму НДС из стоимости (должно быть Да или Нет), если он включен или если НДС не включен в стоимость, то сумма должна остаться неизменной.
- Отправитель.Ставка НДС - название поля со значением для вычета в процентах
CуммаПоПолюНаСтранице(Сумма) — предназначена для вывода суммы по выбранному полю
- Сумма - название поля, по которому необходимо посчитать сумму

Примечание: Функции, которые считают суммы по странице нельзя помещать в какой-либо другой лист, кроме Листа № 5 — Table footer.   


Давайте разберем их применение также на примере ТОРГ-12:

photo

Примечание: Если необходимо добавить шаблон печати, в котором на каждой странице документа будут повторяться верхняя (заголовок) и нижняя (подвал) части, то в файле шаблона достаточно оставить три листа: Лист №1 — Body, Лист №2 — Header и Лист №3 — Footer. Однако, в таком шаблоне нельзя использовать функции расчета по странице. Теперь если включить параметр "Разрыв строк", то в случае многостраничного документа шапка и подвал будут напечатаны на каждой странице. Если параметр "Разрыв строк" не включить, то шапка будет только на первом листе, а подвал только на последнем.

Есть вопросы? Задайте их на форуме!
Нужна помощь? Оставьте заявку в техподдержку.
comments powered by HyperComments

+ сегодня

компаний уже выбрали Клиентскую базу!
Узнайте, почему.

  • компания
  • компании
  • компаний
  • выбрала
  • выбрали
  • выбрали