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

Матеріал з Planfix
Перейти до: навігація, пошук
Немає опису редагування
Немає опису редагування
 
(Не показано 5 проміжних версій цього користувача)
Рядок 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>%%%ТЕКСТ({{Аналітика.Послуга.Кількість}}*{{Аналітика.Послуга.Вартість}};".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({{Data tag.Послуга.Кількість}}*{{{Data tag.Послуга.Вартість}};".2f")%%%</nowiki></div>




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




Рядок 24: Рядок 24:
У формулі шаблону документів можна використовувати всі стандартні [[Функції|функції]] Planfix. При цьому є 4 функції, які працюють тільки в шаблонах документів Word і [[Змінні в тексті|текстових блоках]]:
У формулі шаблону документів можна використовувати всі стандартні [[Функції|функції]] Planfix. При цьому є 4 функції, які працюють тільки в шаблонах документів Word і [[Змінні в тексті|текстових блоках]]:
*[[#Функція SUM|SUM()]]
*[[#Функція SUM|SUM()]]
*[[#Функция МНОЖЕСТВЕННОЕЧИСЛО|МНОЖИННЕЧИСЛО()]]
*[[#Функція PLURAL|PLURAL()]]
*[[#Функция ЧИСЛОПРОПИСЬЮ|ЧИСЛОПРОПИСОМ()]]
*[[#Функція NUMBERASWORDS|NUMBERASWORDS()]]
*[[#Функція FRACTIONALPART|FRACTIONALPART()]]
*[[#Функція FRACTIONALPART|FRACTIONALPART()]]


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


  <nowiki>SUM({{Аналітика.Послуга.Вартість}})</nowiki>
  <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({{Аналітика.Послуга.Вартість}}*{{Аналітика.Послуга.Кількість}})</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>SUM({{{Data tag.Послуга.Вартість}}*{{{Data tag.Послуга.Кількість}})</nowiki></div>




Рядок 45: Рядок 45:




== Функція МНОЖИННЕЧИСЛО ==
== Функція PLURAL ==
Використовується для відмінювання закінчення слова в залежності від числа, яке вказано перед ним в шаблоні документа.  
Використовується для відмінювання закінчення слова в залежності від числа, яке вказано перед ним в шаблоні документа.  




Формат:
Формат:
  МНОЖИННЕЧИСЛО(число; "текст1"; "текст2"; "текст3")
  PLURAL(число; "текст1"; "текст2"; "текст3")




Рядок 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>МНОЖИННЕЧИСЛО(СУМА({{Аналітика.Послуга.Вартість}}*{{Аналітика.Послуга.Кількість}}); "гривня"; "гривні"; "гривень")</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(число; СпосібВиводу; "мова")




Рядок 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>ЧИСЛОПРОПИСОМ(СУМА({{Аналітика.Послуга.Вартість}}*{{Аналітика.Послуга.Кількість}}); 2; "ru")</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>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({{Аналітика.Послуга.Вартість}}*{{Аналітика.Послуга.Кількість}}); 2)</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>FRACTIONALPART(SUM({{{Data tag.Послуга.Вартість}}*{{{Data tag.Послуга.Кількість}}); 2)</nowiki></div>





Поточна версія на 09:53, 2 жовтня 2023

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


Формули

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


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

Приклад:

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


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


Функції

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


Функція SUM

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

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

SUM({{{Data tag.Послуга.Вартість}})


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

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


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


Функція PLURAL

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


Формат:

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


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

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

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

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

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


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

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

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


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

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

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


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

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


Функція NUMBERASWORDS

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


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


Де:

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


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

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


Функція FRACTIONALPART

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


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


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

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


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

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


Додатково


Перейти