Функції в шаблонах документів

Матеріал з Planfix
Перейти до: навігація, пошук

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


Формули

Щоб додати формулу в документ, використовуйте наступний синтаксис: %%%ФОРМУЛА%%%.


ФОРМУЛА — це вираз для обчислення значення поля, таке ж як і в обчислюваному полі.

Приклад:

%%%TEXT({{Аналітика.Послуга.Кількість}}*{{Аналітика.Послуга.Вартість}};".2f")%%%


У прикладі вище інформація з аналітики «Послуга» за допомогою відповідних змінних потрапляє в формулу. Значення перемножуються, і обчислюється значення загальної суми конкретної послуги або товару. А за допомогою функції TEXT() отримане значення форматується в зручний для читання вид у вигляді рядка тексту.


Функції

У формулі шаблону документів можна використовувати всі стандартні функції Planfix. При цьому є 4 функції, які працюють тільки в шаблонах документів Word і текстових блоках:


Функція SUM

SUM() — це функція, яка сумує всі значення, отримані при обчисленні формули. Вона застосовується для кожного елемента множинної змінної.

Наприклад, у вас є аналітика «Послуга», і ви хочете в документі порахувати повну вартість всіх послуг. Для цього в документі вкажіть функцію:

SUM({{Аналітика.Послуга.Вартість}})


Щоб отримати повну вартість наданих послуг, які можуть надаватися кілька разів, необхідно вартість помножити на кількість, потім все сумувати. В результаті в документі вкажіть таку формулу:

SUM({{Аналітика.Послуга.Вартість}}*{{Аналітика.Послуга.Кількість}})


Зверніть увагу, функція SUM() може містити всередині себе будь-яку формулу, що складається з функцій.


Функція PLURAL

Використовується для відмінювання закінчення слова в залежності від числа, яке вказано перед ним в шаблоні документа.


Формат:

PLURAL(число; "текст1"; "текст2"; "текст3")


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

Наприклад, вам потрібно просклонювати слово «гривня». Дійте за наступним алгоритмом.

Спочатку просклоняйте потрібне слово з числами 1 і 21:

  • 1 гривня
  • 21 гривня

Значить першим параметром в функції замість "текст1" треба вказати слово «гривня».


Потім просклоняйте те ж слово з числами 2 і 123:

  • 2 гривні
  • 123 гривні

Значить другим параметром в функції замість "текст2" треба вказати слово «гривні».


Потім просклоняйте потрібне слово з числами 25 і 111:

  • 25 гривень
  • 111 гривень

Значить третім параметром в функції замість "текст3" буде слово «гривень».


В результаті в документі можна вказати таку функцію МНОЖИННЕЧИСЛО():

PLURAL(SUM({{Аналітика.Послуга.Вартість}}*{{Аналітика.Послуга.Кількість}}); "гривня"; "гривні"; "гривень")


Функція NUMBERASWORDS

Функція, результатом якої буде число прописом. Для пропису береться тільки ціла частина числа.


Формат: NUMBERASWORDS(число; СпосібВиводу; "мова")


Де:

  • число — число або формула
  • СпосібВиводу:
    • 0 — звичайний вивід
    • 1 — прописом в жіночому роді
    • 2 — прописом в чоловічому роді
    • 3 — прописом в середньому роді
    • 4 — прописом з великої літери в жіночому роді
    • 5 — прописом з великої літери в чоловічому роді
    • 6 — прописом з великої літери в середньому роді
  • мова
    • ""(порожньо) — використовується мова користувача, який формує документ
    • "ru" — російська
    • "en" — англійська
    • "uk" — українська


Наприклад, щоб відобразити в документі число прописом в чоловічому роді, використовуйте таку функцію:

NUMBERASWORDS(SUM({{Аналітика.Послуга.Вартість}}*{{Аналітика.Послуга.Кількість}}); 2; "ru")


Функція FRACTIONALPART

Відображає дробову частину числа з вказаною кількістю знаків після коми.


Формат: FRACTIONALPART (число; КількістьЗнаківПісляКоми)


Наприклад, щоб вивести в документі значення копійок для суми послуги, скористайтеся такою функцією:

FRACTIONALPART(SUM({{Аналітика.Послуга.Вартість}}*{{Аналітика.Послуга.Кількість}}); 2)


Функція відобразить 2 знаки після коми:

  • 176,03 — функція відобразить 3.
  • 15,15 — функція відобразить 15.
  • 16,156 — функція відрахує два знаки після коми, округлить отримане число і виведе 16.


Додатково


Перейти