Функції в шаблонах документів: відмінності між версіями

Матеріал з Planfix
Перейти до: навігація, пошук
Немає опису редагування
Немає опису редагування
 
Рядок 2: Рядок 2:
|title=Функції в шаблонах документів
|title=Функції в шаблонах документів
|titlemode=append
|titlemode=append
|keywords=планфікс, Шаблони, документи, функції, шаблони документів функції в шаблонах документів, МНОЖИННЕЧИСЛО, МНОЖИННЕ, ЧИСЛОПРОПИСОМ, ДРОБОВАЧАСТИНА
|keywords=Planfix, документ, шаблони, документи
|description=Функції в шаблонах документів
|description=Функції в шаблонах документів
}}
}}
При автоматичному формуванні документів Word за [[Шаблони документів|шаблонами]] можуть застосовуватися функції. Вони спрощують відображення різних даних в документі, наприклад: автоматичний вивід суми прописом, відмінювання закінчення слів при підрахунку грошових одиниць або обчислення вартості замовлення за допомогою формул.
Функції можна використовувати при автоматичному форматуванні [[Шаблони документів|документів]] за допомогою шаблонів. Функції спрощують спосіб відображення даних у ваших документах. Наприклад, ви можете використовувати формули, щоб автоматично відображати числа словами або обчислювати вартість замовлення.
 
 
== Формули ==
== Формули ==
Щоб додати формулу в документ, використовуйте наступний синтаксис: '''<nowiki>%%%ФОРМУЛА%%%</nowiki>'''.
Щоб додати формулу до документа, використовуйте такий синтаксис: %%%'''FORMULA'''%%%.
 


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


Приклад:
Приклад:
<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>
<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({{DataTag.Service.Quantity}}*{{DataTag.Service.Cost}};".2f")%%%</nowiki></div>


У наведеному вище прикладі дані з аналітики "Service" додаються до формули за допомогою відповідних змінних. Два значення перемножуються, і результат — це вартість конкретної послуги або товару. Функція [[Функція TEXT|TEXT()]] форматує значення як зручний для читання рядок.
== Важливо ==
Наприклад:
*Формули мають бути записані в одному рядку й не можуть бути розбиті натисканням Enter. Якщо потрібно вставити перенесення рядка, використовуйте послідовність "\n".
:*Без перенесення рядка
:<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>
%%%IF({{Datatag.Service calculation.Service}}=""; ""; {{Datatag.Service calculation.Service}} + " - " + {{Datatag.Service calculation.Quantity}} + "  " + {{Datatag.Service calculation."Unit"}} + " (" + {{Datatag.Service calculation.Comment}} + ")" )%%%
</nowiki>
</div>


У прикладі вище інформація з аналітики «Послуга» за допомогою відповідних змінних потрапляє в формулу. Значення перемножуються, і обчислюється значення загальної суми конкретної послуги або товару. А за допомогою функції [[Функція TEXT| TEXT()]] отримане значення форматується в зручний для читання вид у вигляді рядка тексту.
:*З перенесенням рядка
:<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>%%%IF({{Datatag.Service calculation.Service}}=""; ""; {{Datatag.Service calculation.Service}} + " - " + {{atatag.Service calculation.Quantity}} + "  " + {{{Datatag.Service calculation."Unit"}} + "</nowiki><span style="color:red;">\n</span> <nowiki>(" + {{Datatag.Service calculation.Comment}} + ")" )%%%</nowiki></div>


*Змінні у формулі не можна форматувати (наприклад, жирним або курсивом).
*Якщо ви хочете, щоб результат формули відображався жирним, застосуйте форматування до всієї формули, включно з процентними символами.


== Функції ==
== Функції ==
У формулі шаблону документів можна використовувати всі стандартні [[Функції|функції]] Planfix. При цьому є 4 функції, які працюють тільки в шаблонах документів Word і [[Змінні в тексті|текстових блоках]]:
Усі функції, доступні у формулах шаблонів документів:
*[[#Функція SUM|SUM()]]
*[[#The SUM function| SUM()]]
*[[#Функція PLURAL|PLURAL()]]
*[[#The PLURALFORM Function| PLURALFORM()]]
*[[#Функція NUMBERASWORDS|NUMBERASWORDS()]]
*[[#The NUMBERASWORDS function|NUMBERASWORDS()]]
*[[#Функція FRACTIONALPART|FRACTIONALPART()]]
*[[#The FRACTIONALPART function|FRACTIONALPART()]]
 


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


Наприклад, у вас є аналітика «Послуга», і ви хочете в документі порахувати повну вартість всіх послуг. Для цього в документі вкажіть функцію:
Наприклад, у вас є аналітика "Service", і ви хочете розрахувати загальну вартість усіх послуг у документі. Використовуйте таку функцію:
<nowiki>SUM({{DataTag.Service.Cost}})</nowiki>


  <nowiki>SUM({{{Data tag.Послуга.Вартість}})</nowiki>
Щоб отримати загальну вартість наданих послуг, потрібно помножити вартість послуги на кількість її замовлень. Ось формула, яку слід використовувати в документі:
  <nowiki>SUM({{DataTag.Service.Cost}}*{{DataTag.Service.Quantity}}))</nowiki>


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


Щоб отримати повну вартість наданих послуг, які можуть надаватися кілька разів, необхідно вартість помножити на кількість, потім все сумувати. В результаті в документі вкажіть таку формулу:
== Функція PLURALFORM ==
 
Використовується для додавання суфікса до слова або заміні самого слова, якщо це неправильна форма іменника, залежно від числа, вказаного перед ним у шаблоні документа.
<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>
 
 
Зверніть увагу, функція SUM() може містити всередині себе будь-яку формулу, що складається з функцій.
 
 
== Функція PLURAL ==
Використовується для відмінювання закінчення слова в залежності від числа, яке вказано перед ним в шаблоні документа.  
 


Формат:
Формат:
  PLURAL(число; "текст1"; "текст2"; "текст3")
  PLURALFORM (number; "text1"; "text2";)
 
 
В залежності від обчисленого значення числа функція підбере один з трьох параметрів. Параметри необхідно вказати в строгій послідовності, яка підбирається за алгоритмом.
 
Наприклад, вам потрібно просклонювати слово «гривня». Дійте за наступним алгоритмом.
 
Спочатку просклоняйте потрібне слово з числами 1 і 21:
*1 гривня
*21 гривня
 
Значить першим параметром в функції замість "текст1" треба вказати слово «гривня».
 


Потім просклоняйте те ж слово з числами 2 і 123:
Залежно від обчисленого значення number функція вибирає один із двох параметрів. Параметри повинні бути вказані в суворому порядку згідно з алгоритмом.
*2 гривні
*123 гривні


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


Спочатку напишіть потрібне слово з числом 1:
*1 dollar


Потім просклоняйте потрібне слово з числами 25 і 111:
Це означає, що першим параметром у функції має бути слово "dollar" замість "text1".
*25 гривень
*111 гривень


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


Це означає, що другим параметром у функції має бути слово "dollars" замість "text2".


В результаті в документі можна вказати таку функцію МНОЖИННЕЧИСЛО():
Нарешті, можна вказати таку функцію PLURALFORM() у документі: <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>PLURALFORM(SUM({{Datatag.Service.Cost}}*{{Datatag.Service.Quantity}}); "dollar"; "dollars")</nowiki></div>
<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>
 
 
== Функція NUMBERASWORDS ==
Функція, результатом якої буде число прописом. Для пропису береться тільки ціла частина числа.


== Функція NUMBERASWORDS ==
Це функція, яка повертає число словами. Записується лише ціла частина числа.


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


Де:
*'''number''' — число або формула
*'''Output''' — визначає, як буде відображено числівник (від 0 до 6)
*'''language''' — рядок, що вказує мову виводу. Якщо порожній (""), використовується мова користувача, який генерує документ.


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


*Німецька ("de")
**0 — за замовчуванням (нейтрально за родом)
**1 — запис у жіночому роді
**2 — запис у чоловічому роді
**3 — запис у середньому роді
**4 — з капіталізацією, жіночий рід
**5 — з капіталізацією, чоловічий рід
**6 — з капіталізацією, середній рід


Наприклад, щоб відобразити в документі число прописом в чоловічому роді, використовуйте таку функцію:
*Французька ("fr")
<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>
**0 — за замовчуванням (кількісний числівник)
**1 — запис у жіночому роді
**2 — запис у чоловічому роді
**4 — з капіталізацією, жіночий рід
**5 — з капіталізацією, чоловічий рід


Наприклад, щоб відобразити число словами в документі, використайте таку функцію:
<nowiki>NUMBERASWORDS(SUM({{DataTag.Service.Cost}}*{{DataTag.Service.Quantity}}); 2; "en")</nowiki>


== Функція FRACTIONALPART ==
== Функція FRACTIONALPART ==
Відображає дробову частину числа з вказаною кількістю знаків після коми.
Ця функція відображає дробову частину числа. Ви можете вказати кількість цифр після десяткової крапки, які потрібно показати.
 


Формат:
Формат:
FRACTIONALPART (число; КількістьЗнаківПісляКоми)
<nowiki>FRACTIONALPART(number; NumberOfDigitsAfterDecimal)</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>FRACTIONALPART(SUM({{{Data tag.Послуга.Вартість}}*{{{Data tag.Послуга.Кількість}}); 2)</nowiki></div>
 
 
Функція відобразить 2 знаки після коми:
*176,03 — функція відобразить 3.
*15,15 — функція відобразить 15.
*16,156 — функція відрахує два знаки після коми, округлить отримане число і виведе 16.
 


== Додатково ==
Наприклад, щоб вивести кількість центів для вартості послуги в документі, використовуйте таку функцію:
*[[Функції| Список операцій і функції, які підтримуються в Planfix]]
<nowiki>FRACTIONALPART(SUM({{DataTag.Service.Cost}}*{{DataTag.Service.Quantity}}); 2)</nowiki>


Ця функція відображає дві цифри після десяткової крапки:
*176.03 — функція повертає 3.
*15.15 — функція повертає 15.
*16.156 — функція округлює перші два десяткові знаки до 16.


== Перейти ==
== Перейти ==
*[[Шаблони документів]]
*[[Шаблони документів]]
*[[Документи]]
*[[Функції]]
*[[Опис можливостей]]

Поточна версія на 01:46, 1 грудня 2025

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

Формули

Щоб додати формулу до документа, використовуйте такий синтаксис: %%%FORMULA%%%.

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

Приклад:

%%%TEXT({{DataTag.Service.Quantity}}*{{DataTag.Service.Cost}};".2f")%%%

У наведеному вище прикладі дані з аналітики "Service" додаються до формули за допомогою відповідних змінних. Два значення перемножуються, і результат — це вартість конкретної послуги або товару. Функція TEXT() форматує значення як зручний для читання рядок.

Важливо

Наприклад:

  • Формули мають бути записані в одному рядку й не можуть бути розбиті натисканням Enter. Якщо потрібно вставити перенесення рядка, використовуйте послідовність "\n".
  • Без перенесення рядка
%%%IF({{Datatag.Service calculation.Service}}=""; ""; {{Datatag.Service calculation.Service}} + " - " + {{Datatag.Service calculation.Quantity}} + " " + {{Datatag.Service calculation."Unit"}} + " (" + {{Datatag.Service calculation.Comment}} + ")" )%%%
  • З перенесенням рядка
%%%IF({{Datatag.Service calculation.Service}}=""; ""; {{Datatag.Service calculation.Service}} + " - " + {{atatag.Service calculation.Quantity}} + " " + {{{Datatag.Service calculation."Unit"}} + "\n (" + {{Datatag.Service calculation.Comment}} + ")" )%%%
  • Змінні у формулі не можна форматувати (наприклад, жирним або курсивом).
  • Якщо ви хочете, щоб результат формули відображався жирним, застосуйте форматування до всієї формули, включно з процентними символами.

Функції

Усі функції, доступні у формулах шаблонів документів:

Функція SUM

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

Наприклад, у вас є аналітика "Service", і ви хочете розрахувати загальну вартість усіх послуг у документі. Використовуйте таку функцію:

SUM({{DataTag.Service.Cost}})

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

SUM({{DataTag.Service.Cost}}*{{DataTag.Service.Quantity}}))

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

Функція PLURALFORM

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

Формат:

PLURALFORM (number; "text1"; "text2";)

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

Наприклад, потрібно відмінювати слово "dollar". Дотримуйтесь алгоритму:

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

  • 1 dollar

Це означає, що першим параметром у функції має бути слово "dollar" замість "text1".

Потім напишіть слово з числом 2:

  • 2 dollars

Це означає, що другим параметром у функції має бути слово "dollars" замість "text2".

Нарешті, можна вказати таку функцію PLURALFORM() у документі:

PLURALFORM(SUM({{Datatag.Service.Cost}}*{{Datatag.Service.Quantity}}); "dollar"; "dollars")

Функція NUMBERASWORDS

Це функція, яка повертає число словами. Записується лише ціла частина числа.

Формат:

NUMBERASWORDS(number; Output; "language")

Де:

  • number — число або формула
  • Output — визначає, як буде відображено числівник (від 0 до 6)
  • language — рядок, що вказує мову виводу. Якщо порожній (""), використовується мова користувача, який генерує документ.

Мови та їхні Output режими:

  • Англійська ("en")
    • 0-3 — за замовчуванням (кількісний числівник)
    • 4-6 — за замовчуванням з капіталізацією
  • Німецька ("de")
    • 0 — за замовчуванням (нейтрально за родом)
    • 1 — запис у жіночому роді
    • 2 — запис у чоловічому роді
    • 3 — запис у середньому роді
    • 4 — з капіталізацією, жіночий рід
    • 5 — з капіталізацією, чоловічий рід
    • 6 — з капіталізацією, середній рід
  • Французька ("fr")
    • 0 — за замовчуванням (кількісний числівник)
    • 1 — запис у жіночому роді
    • 2 — запис у чоловічому роді
    • 4 — з капіталізацією, жіночий рід
    • 5 — з капіталізацією, чоловічий рід

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

NUMBERASWORDS(SUM({{DataTag.Service.Cost}}*{{DataTag.Service.Quantity}}); 2; "en")

Функція FRACTIONALPART

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

Формат:

FRACTIONALPART(number; NumberOfDigitsAfterDecimal)

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

FRACTIONALPART(SUM({{DataTag.Service.Cost}}*{{DataTag.Service.Quantity}}); 2)

Ця функція відображає дві цифри після десяткової крапки:

  • 176.03 — функція повертає 3.
  • 15.15 — функція повертає 15.
  • 16.156 — функція округлює перші два десяткові знаки до 16.

Перейти