Функції в шаблонах документів: відмінності між версіями
Aliona (обговорення | внесок) Немає опису редагування |
Aliona (обговорення | внесок) Немає опису редагування |
||
(Не показано одну проміжну версію цього користувача) | |||
Рядок 15: | Рядок 15: | ||
Приклад: | Приклад: | ||
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>%%% | <div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>%%%TEXT({{Data tag.Послуга.Кількість}}*{{{Data tag.Послуга.Вартість}};".2f")%%%</nowiki></div> | ||
Рядок 34: | Рядок 34: | ||
Наприклад, у вас є аналітика «Послуга», і ви хочете в документі порахувати повну вартість всіх послуг. Для цього в документі вкажіть функцію: | Наприклад, у вас є аналітика «Послуга», і ви хочете в документі порахувати повну вартість всіх послуг. Для цього в документі вкажіть функцію: | ||
<nowiki>SUM({{ | <nowiki>SUM({{{Data tag.Послуга.Вартість}})</nowiki> | ||
Щоб отримати повну вартість наданих послуг, які можуть надаватися кілька разів, необхідно вартість помножити на кількість, потім все сумувати. В результаті в документі вкажіть таку формулу: | Щоб отримати повну вартість наданих послуг, які можуть надаватися кілька разів, необхідно вартість помножити на кількість, потім все сумувати. В результаті в документі вкажіть таку формулу: | ||
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>SUM({{ | <div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>SUM({{{Data tag.Послуга.Вартість}}*{{{Data tag.Послуга.Кількість}})</nowiki></div> | ||
Рядок 79: | Рядок 79: | ||
В результаті в документі можна вказати таку функцію МНОЖИННЕЧИСЛО(): | В результаті в документі можна вказати таку функцію МНОЖИННЕЧИСЛО(): | ||
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>PLURAL(SUM({{ | <div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>PLURAL(SUM({{{Data tag.Послуга.Вартість}}*{{{Data tag.Послуга.Кількість}}); "гривня"; "гривні"; "гривень")</nowiki></div> | ||
Рядок 108: | Рядок 108: | ||
Наприклад, щоб відобразити в документі число прописом в чоловічому роді, використовуйте таку функцію: | Наприклад, щоб відобразити в документі число прописом в чоловічому роді, використовуйте таку функцію: | ||
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>NUMBERASWORDS(SUM({{ | <div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>NUMBERASWORDS(SUM({{{Data tag.Послуга.Вартість}}*{{{Data tag.Послуга.Кількість}}); 2; "ru")</nowiki></div> | ||
Рядок 120: | Рядок 120: | ||
Наприклад, щоб вивести в документі значення копійок для суми послуги, скористайтеся такою функцією: | Наприклад, щоб вивести в документі значення копійок для суми послуги, скористайтеся такою функцією: | ||
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>FRACTIONALPART(SUM({{ | <div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>FRACTIONALPART(SUM({{{Data tag.Послуга.Вартість}}*{{{Data tag.Послуга.Кількість}}); 2)</nowiki></div> | ||
Поточна версія на 09:53, 2 жовтня 2023
При автоматичному формуванні документів Word за шаблонами можуть застосовуватися функції. Вони спрощують відображення різних даних в документі, наприклад: автоматичний вивід суми прописом, відмінювання закінчення слів при підрахунку грошових одиниць або обчислення вартості замовлення за допомогою формул.
Формули
Щоб додати формулу в документ, використовуйте наступний синтаксис: %%%ФОРМУЛА%%%.
ФОРМУЛА — це вираз для обчислення значення поля, таке ж як і в обчислюваному полі.
Приклад:
У прикладі вище інформація з аналітики «Послуга» за допомогою відповідних змінних потрапляє в формулу. Значення перемножуються, і обчислюється значення загальної суми конкретної послуги або товару. А за допомогою функції TEXT() отримане значення форматується в зручний для читання вид у вигляді рядка тексту.
Функції
У формулі шаблону документів можна використовувати всі стандартні функції Planfix. При цьому є 4 функції, які працюють тільки в шаблонах документів Word і текстових блоках:
Функція SUM
SUM() — це функція, яка сумує всі значення, отримані при обчисленні формули. Вона застосовується для кожного елемента множинної змінної.
Наприклад, у вас є аналітика «Послуга», і ви хочете в документі порахувати повну вартість всіх послуг. Для цього в документі вкажіть функцію:
SUM({{{Data tag.Послуга.Вартість}})
Щоб отримати повну вартість наданих послуг, які можуть надаватися кілька разів, необхідно вартість помножити на кількість, потім все сумувати. В результаті в документі вкажіть таку формулу:
Зверніть увагу, функція SUM() може містити всередині себе будь-яку формулу, що складається з функцій.
Функція PLURAL
Використовується для відмінювання закінчення слова в залежності від числа, яке вказано перед ним в шаблоні документа.
Формат:
PLURAL(число; "текст1"; "текст2"; "текст3")
В залежності від обчисленого значення числа функція підбере один з трьох параметрів. Параметри необхідно вказати в строгій послідовності, яка підбирається за алгоритмом.
Наприклад, вам потрібно просклонювати слово «гривня». Дійте за наступним алгоритмом.
Спочатку просклоняйте потрібне слово з числами 1 і 21:
- 1 гривня
- 21 гривня
Значить першим параметром в функції замість "текст1" треба вказати слово «гривня».
Потім просклоняйте те ж слово з числами 2 і 123:
- 2 гривні
- 123 гривні
Значить другим параметром в функції замість "текст2" треба вказати слово «гривні».
Потім просклоняйте потрібне слово з числами 25 і 111:
- 25 гривень
- 111 гривень
Значить третім параметром в функції замість "текст3" буде слово «гривень».
В результаті в документі можна вказати таку функцію МНОЖИННЕЧИСЛО():
Функція NUMBERASWORDS
Функція, результатом якої буде число прописом. Для пропису береться тільки ціла частина числа.
Формат:
NUMBERASWORDS(число; СпосібВиводу; "мова")
Де:
- число — число або формула
- СпосібВиводу:
- 0 — звичайний вивід
- 1 — прописом в жіночому роді
- 2 — прописом в чоловічому роді
- 3 — прописом в середньому роді
- 4 — прописом з великої літери в жіночому роді
- 5 — прописом з великої літери в чоловічому роді
- 6 — прописом з великої літери в середньому роді
- мова
- ""(порожньо) — використовується мова користувача, який формує документ
- "ru" — російська
- "en" — англійська
- "uk" — українська
Наприклад, щоб відобразити в документі число прописом в чоловічому роді, використовуйте таку функцію:
Функція FRACTIONALPART
Відображає дробову частину числа з вказаною кількістю знаків після коми.
Формат:
FRACTIONALPART (число; КількістьЗнаківПісляКоми)
Наприклад, щоб вивести в документі значення копійок для суми послуги, скористайтеся такою функцією:
Функція відобразить 2 знаки після коми:
- 176,03 — функція відобразить 3.
- 15,15 — функція відобразить 15.
- 16,156 — функція відрахує два знаки після коми, округлить отримане число і виведе 16.
Додатково