Додавання формул і функцій у програмі InfoPath 2010
Застосовується до
Формули дають змогу отримати більше можливостей від створених правил, ніж за допомогою основних попередньо визначених правил. Наприклад, формули використовуються для обчислення поточної або майбутньої дати або навіть об'єднання тексту.
У цій статті
Огляд
Формула – це вираз XPath (xml Path Language), який складається зі значень, полів або груп, функцій і операторів, які використовуються для обчислення та відображення інших значень. За допомогою формули можна створити нове значення для поля та відобразити це значення в елементі керування, зв'язаному з цим полем. Формули можна використовувати в такий спосіб:
Обчислити математичне значення на основі значень, указаних під час створення шаблону, або на основі значень, введених користувачем під час заповнення шаблону форми.
Виконайте правило на основі значення, яке обчислюється за допомогою формули.
Відображення тексту лише для читання, який обчислюється з інших елементів керування або відображає значення іншого елемента керування.
Функція – це вираз, який повертає значення на основі результатів обчислення. Значення, які використовуються у функціях, називаються аргументами. Крім деяких функцій InfoPath, можна використовувати стандартні функції XPath 1.0, які входять до складу InfoPath. Функції складаються з трьох таких частин:
- Ім'я Ім'я функції зазвичай натякає на дію, яку виконуватиме функція.
- Повернуте значення Результат функції.
- Аргументи Значення, які використовуються функцією для обчислення.
Для повернення значення функції можуть знадобитися аргументи. Якщо для функції потрібні аргументи, потрібно знати, скільки аргументів потрібно та тип даних кожного аргументу. Функція не працюватиме, якщо вказано неправильне число або тип обов'язкових аргументів.
На зображенні нижче показано зв'язок між функціями, виразами та формулами.
Додавання елемента керування обчислюваним значенням
За допомогою елемента керування обчислюваним значенням можна відображати лише для читання текст, відображати значення іншого елемента керування у формі та створювати формули на основі виразів XPath. Наприклад, якщо ви розробляєте шаблон форми відстеження витрат, можна додати елемент керування обчислюваним значенням, щоб відобразити загальну суму введених витрат.
Примітка.
Елемент керування обчислюваним значенням відображає лише дані та не зберігає їх, тому слід використовувати елемент керування обчислюваним значенням, лише якщо не потрібно зберігати його значення або посилатися на нього в іншій формулі.
У шаблоні форми розмістіть курсор у місці, де потрібно вставити елемент керування.
На вкладці Основне в групі Елементи керування клацніть елемент керування обчислюваним значенням .
У діалоговому вікні Вставлення обчислюваного значення виконайте одну з таких дій:
Щоб ввести текст або вираз XPath безпосередньо в елемент керування обчислюваним значенням, введіть у поле XPath .
Щоб вставити формулу, натисніть кнопку Редагувати формулу
, а потім введіть потрібну формулу в текстове поле Формула , даючи змогу використовувати такі елементи за потреби:- Щоб вставити поле або групу у формулу, натисніть кнопку Вставити поле або групу, клацніть поле або групу в діалоговому вікні Вибір поля або групи та натисніть кнопку OK.
- Щоб вставити функцію у формулу, натисніть кнопку Вставити функцію, виберіть її в діалоговому вікні Вставлення функції та натисніть кнопку OK.
Якщо для функції потрібні параметри, виберіть функцію в діалоговому вікні Вставлення функції , натисніть кнопку OK, а потім у тексті Формули двічі клацніть місце, де вказано, і виберіть потрібний параметр, перш ніж натиснути кнопку OK. - Щоб вставити у формулу значення або математичний оператор, введіть значення або символ математичної операції в полі Формула .
Математичні оператори включають додавання (+), віднімання (-), множення (*) і ділення (/).
Математичні формули зазвичай залежать від цілих або десяткових значень як аргументів. Щоб уникнути пустих значень у формулі, на вкладці Файл натисніть кнопку Параметри форми , а потім виберіть додатково та переконайтеся, що вибрано параметр Обробляти пусті значення як нульові .
Додавання формули до елемента керування
Хоча для відображення результатів формули можна використовувати елемент керування обчислюваним значенням, ви не обмежуєтеся використанням обчислюваного елемента керування значенням. За допомогою формули також можна встановити значення за замовчуванням для інших елементів керування, наприклад текстових полів. Існує два способи встановити стандартне значення елемента керування. Ви можете використовувати статичне стандартне значення, просто ввівши потрібне значення в полі Значення діалогового вікна Поле або Властивості групи або за допомогою формули, щоб задати значення поля за замовчуванням на основі інших значень форми. Щоб установити стандартне значення поля на основі формули, виконайте такі дії:
Виберіть елемент керування, до якого потрібно додати формулу, а потім у розділі Засоби керування на вкладці Властивості в групі Властивості натисніть кнопку Значення за промовчанням.
Натисніть кнопку Вставити формулу
поруч із полем Value ( Значення ).Введіть потрібну формулу в текстове поле Формула , за потреби вибравши такі формули:
Щоб вставити поле або групу у формулу, натисніть кнопку Вставити поле або групу, клацніть поле або групу в діалоговому вікні Вибір поля або групи та натисніть кнопку OK.
Щоб вставити функцію у формулу, натисніть кнопку Вставити функцію, виберіть її в діалоговому вікні Вставлення функції та натисніть кнопку OK.
Якщо для функції потрібні параметри, виберіть функцію в діалоговому вікні Вставлення функції , натисніть кнопку OK, а потім у тексті Формули двічі клацніть місце, де вказано, і виберіть потрібний параметр, перш ніж натиснути кнопку OK.Щоб вставити у формулу значення або математичний оператор, введіть значення або символ математичної операції в полі Формула .
Математичні оператори включають додавання (+), віднімання (-), множення (*) і ділення (/).Порада.
Математичні формули зазвичай залежать від цілих або десяткових значень як аргументів. Щоб уникнути пустих значень у формулі, на вкладці Файл натисніть кнопку Параметри форми, а потім виберіть додатково. Переконайтеся, що вибрано параметр Обробляти пусті значення як нульові .
Щоб змінити формулу як формулу XPath, установіть прапорець Редагувати XPath (додатково), який змінить формулу на версію виразу XPath формули.
Щоб перевірити правильність синтаксису формули, натисніть кнопку Перевірити формулу . Якщо формула містить помилки:
Натисніть кнопку Докладно в діалоговому вікні корпорація Майкрософт InfoPath , щоб переглянути помилки у формулі. Нижче наведено кілька варіантів вирішення цих помилок.
- Якщо у формулі використовується функція, переконайтеся, що для функції використовуються правильні аргументи. Для деяких функцій потрібні поля або групи, а для інших функцій потрібні вказані значення як аргументи.
- За потреби видаліть і введіть формулу ще раз, щоб переконатися, що її введено правильно.
- Натисніть кнопку OK.
- Якщо потрібно оновити стандартне значення поля під час змінення значень, установіть прапорець Оновлювати значення під час переобчислення формули . У такому разі натисніть кнопку OK, а потім у розділі Знаряддя для елементів керування на вкладці Властивості в групі Властивості натисніть кнопку Властивості елемента керування. Перейдіть на вкладку Дисплей і встановіть прапорець Лише для читання .
Використання формули в правилі
Ви можете використовувати формулу для керування мовою під час визначення умов під час перевірки, форматування або правил дії . Для цього в діалоговому вікні Умова під час призначення правила елементу керування або шаблону форми натисніть кнопку Використовувати формулу з третього розкривного списку.
Функції дати й часу
addDays
Додає дні до дати або дати й часу.
Синтаксис
addDays(дата;дні)
| Аргумент | Опис |
|---|---|
| date | Кількість днів у другому аргументі додається до дати в цьому аргументі. Цей аргумент може бути типом даних "Дата (дата)" або "Дата й час" (dateTime). |
| дн. | Кількість днів, які потрібно додати до дати в першому аргументі. Цей параметр має бути цілим числом (цілим числом) типу даних. Якщо в цьому аргументі використовується від'ємне число, повернуте значення буде попередньою датою. |
Приклад
Потрібно, щоб поле в шаблоні форми містить дату в 60 днів від сьогоднішньої дати. Шаблон форми містить поле fldToday із сьогоднішньою датою як стандартне значення. Щоб обчислити нову дату за допомогою цієї функції, скористайтеся такою формулою в новому полі дати:
addDays(fldToday, 60)
addSeconds
Додає секунди до часу або дати й часу.
Синтаксис
addSeconds(time;seconds)
| Аргумент | Опис |
|---|---|
| time | Значення дати й часу або значення часу, яке є посиланням на інше поле в шаблоні форми або результат функції дати або часу, наприклад now() або today(). Кількість секунд у другому аргументі додається до часу в цьому аргументі. Цей аргумент може бути типом даних "Дата (дата)" або "Дата й час" (dateTime). Якщо це тип даних "Час", буде повернуто тип даних "Час". Якщо це тип даних "Дата", буде повернуто тип даних "Дата й час". |
| Секунд | Кількість секунд, яку потрібно додати до значення дати й часу або значення часу в першому аргументі. Поле в цьому параметрі має бути цілим числом (цілим числом). Якщо в цьому аргументі використовується від'ємне число, повернуте значення – це попередня дата й час або попередній час. |
Приклад
Шаблон форми містить поле fldCurrentTime, яке використовує поточний час як стандартне значення, а друге поле, у якому у формулі використовується функція addSeconds, для відображення часу в 120 секундах від поточного часу. Щоб обчислити нове значення часу за допомогою цієї функції, введіть таку формулу в другому полі:
addSeconds(fldCurrentTime, 120)
Нво
Повертає поточну системну дату й час.
Якщо потрібно повернути лише поточну дату, скористайтеся функцією today.
Синтаксис
now()
Ця функція не використовує аргументи.
Приклад
Щоб отримати дату й час створення форми на основі шаблону форми, використовуйте таку формулу в полі:
now()
сьогодні
Повертає поточну системну дату. Для полів дати списку SharePoint використовуйте функцію now().
Якщо потрібно повернути дату й час, скористайтеся функцією Now.
Синтаксис
today()
Ця функція не використовує аргументи.
Приклад
Щоб отримати дату створення форми на основі шаблону форми, скористайтеся такою формулою в полі:
today()
Функції полів
count
Рахує кількість екземплярів поля або групи.
Синтаксис
count(поле)
| Аргумент | Опис |
|---|---|
| поле | Ім'я повторюваного поля або повторюваної групи, яку потрібно підрахувати у формі. |
Приклад
Ви створюєте шаблон форми, форми якого використовуватимуться постачальниками для звітування про свої продукти та запаси. Шаблон форми містить повторювану групу grpProduct для продуктів, надісланих постачальником. Кожна група містить відомості про продукт і його рівень запасів. Коли постачальник додає продукт до форми на основі цього шаблону форми, infoPath створює новий екземпляр повторюваної групи.
Шаблон форми містить поле у джерелі даних, яке містить кількість товарів, надісланих постачальником. Щоб автоматично підрахувати кількість товарів, надісланих постачальником, тобто кількість екземплярів повторюваної групи grpProduct, у полі "Товари" використовуйте таку формулу:
count(grpProduct)
Останній
Повертає останній екземпляр повторюваного поля або групи.
Примітка.
Якщо ви створюєте шаблон форми, сумісний із браузером, ця функція не відображається в списку Функції в діалоговому вікні Вставлення функції.
Синтаксис
field_name[last()]
Хоча сама функція не має обов'язкових параметрів, цю функцію можна використовувати як предикат для вказаного імені поля.
Приклад
Ви створюєте шаблон форми, який заповнять постачальники, щоб повідомити про свої запаси продуктів. Шаблон форми має зв'язок даних із веб-службою, яка має метод, який перевіряє, чи виконано відомості про продукт для всіх товарів від постачальника. Для цього методу потрібен останній товар у списку товарів, надісланих постачальником.
Відомості про продукт зберігаються в різних полях повторюваної групи з іменем grpProduct. Коли постачальник додає продукт до форми, infoPath додає нову повторювану групу з назвою grpProduct. Якщо постачальник повідомляє про кілька товарів, джерело даних форми міститиме кілька екземплярів повторюваної групи grpProduct.
Щоб переконатися, що ви надсилаєте правильні відомості до веб-служби, додайте поле, яке міститиме відомості про останній товар у групі товарів від постачальника. Щоб настроїти це поле для автоматичного отримання останнього продукту, використайте таку формулу як значення за замовчуванням для останнього поля продукту:
grpProduct[last()]
local-name (локальне ім'я)
Повертає локальне ім'я поля або групи.
Примітка.
- Якщо аргумент є повторюваним полем або повторюваною групою, функція повертає значення першого повторюваного поля або повторюваної групи.
- Коли користувач заповнює форму браузера, формула, яка використовує цю функцію, надсилає дані форми на сервер, щоб отримати повернуте значення для цієї функції.
Синтаксис
local-name(поле)
| Аргумент | Опис |
|---|---|
| поле | Ім'я поля, атрибут локального імені якого потрібно повернути. |
Приклад
Ви створюєте шаблон форми, який використовується для застосунків для дозволів. Шаблон форми має зв'язок даних із методом у веб-службі. Для цього методу потрібне значення атрибута local-name поля для номера ліцензії підрядника. Ім'я поля номера ліцензії – fldLicenseNumber.
У вас є поле, яке міститиме значення атрибута локального імені. Щоб автоматично отримати значення атрибута локального імені поля номера ліцензії, використайте таку формулу як значення за промовчанням для поля, яке міститиме значення атрибута локального імені:
local-name(fldLicenseNumber)
назва
Повертає ім'я та префікс простору імен поля або групи.
Примітка.
- Якщо аргумент є повторюваним полем або повторюваною групою, функція повертає ім'я та префікс першого повторюваного поля або повторюваної групи у формі.
- Коли користувач заповнює форму на основі шаблону форми з підтримкою браузера, формула, яка використовує цю функцію, надсилає дані форми на сервер, щоб отримати повернуте значення для цієї функції.
Синтаксис
name(поле)
| Аргумент | Опис |
|---|---|
| поле | Ім'я поля, префікс простору імен та ім'я якого потрібно повернути. |
Приклад
Ви створюєте шаблон форми, який використовується для застосунків для дозволів. Шаблон форми має зв'язок даних із методом у веб-службі. Для цього методу потрібен атрибут назви поля для номера ліцензії підрядника. Ім'я поля номера ліцензії – fldLicenseNumber.
У вас є поле, яке міститиме значення атрибута name. Щоб автоматично отримати значення атрибута name, використайте таку формулу як стандартне значення для поля:
name(fldLicenseNumber)
namespace-uri
Повертає повний простір імен поля або групи.
Примітка.
- Якщо аргумент – це набір полів або груп, функція повертає простір імен першого поля або групи у формі.
- Коли користувач заповнює форму браузера, формула, яка використовує цю функцію, надсилає дані форми на сервер, щоб отримати повернуте значення для цієї функції.
Синтаксис
namespace-uri(поле)
| Аргумент | Опис |
|---|---|
| поле | Ім'я поля, URI простору імен якого потрібно отримати. |
Приклад
Ви створюєте шаблон форми, який використовується для застосунків для дозволів. Шаблон форми надсилає дані до веб-служби. Щоб обробити дані з форми на основі шаблону форми, веб-служба потребує URI простору імен із певного поля елемента в джерелі даних. Поле в шаблоні форми, яке містить дані URI простору імен, називається fldComplete.
У вас є поле, яке міститиме URI простору імен поля елемента. Щоб автоматично отримати URI простору імен, використайте таку формулу як значення за промовчанням для поля, яке міститиме URI простору імен:
namespace-uri(fldComplete)
Позиції
Повертає індекс (або положення) поля або групи відносно інших полів або груп у тій самій батьківській групі.
Примітка.
Ця функція недоступна в шаблонах форм браузера.
Синтаксис
position()
Приклад
Ви створюєте шаблон форми, який заповнять постачальники, щоб повідомити про свої запаси продуктів. Відомості про продукт зберігаються в полях повторюваної групи. Повторювана група прив'язана до повторюваної таблиці, яка дає змогу постачальнику додавати нові або переглядати наявні відомості про продукт.
У першому стовпці повторюваної таблиці потрібно відобразити номер рядка в текстовому полі. Щоб автоматично відображати номер рядка, коли постачальник додає новий товар до повторюваної таблиці, використовуйте значення за замовчуванням для текстового поля за такою формулою:
position()
Математичні функції
Формули, які містять математичні функції, зазвичай вимагають аргументів із цілими або десятковими значеннями. Щоб переконатися, що аргументи мають ціле число або десяткове значення, а не null-значення, натисніть кнопкуПараметри> форми файлу>Додатково, а потім переконайтеся, що встановлено прапорець Обробляти пусті значення як нульові.
Ср
Обчислює середнє числових значень у полі повторюваної групи.
Примітка.
Повторюване поле має бути числовим типом даних і входити до групи.
Синтаксис
avg(поле)
| Аргумент | Опис |
|---|---|
| поле | Імена повторюваного поля в групі, для якої потрібно обчислити середнє значення. |
Приклад
Ви створюєте шаблон форми, форми якого використовуватимуться постачальниками для звітування про свої продукти та запаси. Шаблон форми містить повторюване поле fldPrice, яке входить до повторюваної групи, що містить дані про кожен товар, який продається постачальником. Групу прив'язано до елемента керування повторюваною таблицею.
У шаблоні форми є поле, яке міститиме середню ціну всіх продуктів, які продається цим постачальником. Щоб обчислити середню ціну, використовуйте в полі таку формулу для середньої ціни:
avg(fldPrice)
Логічні
Повертає значення true, якщо поле або група існує. В іншому разі повертає значення false.
Це поверне значення true, навіть якщо елемент керування, пов'язаний із полем, видалено, але поле все одно існує.
Синтаксис
boolean(поле)
| Аргумент | Опис |
|---|---|
| поле | Повторюване поле або повторювана група для перевірки цією функцією. |
Приклад
Ви створюєте шаблон форми, який постачальники використовуватимуть для звітування про свої запаси продуктів. Відомості про продукт зберігаються в різних полях повторюваної групи з іменем grpProduct. Кожна повторювана група містить поля з відомостями про кожен товар. Якщо постачальник надає відомості про сім товарів, форма міститиме сім повторюваних груп.
Повторювана група прив'язана до елемента керування повторюваною таблицею, який дає змогу постачальнику додавати нові або переглядати наявні відомості про продукт. Постачальник може додавати або видаляти рядки з повторюваної таблиці.
Якщо користувач видалить усі рядки в повторюваній таблиці, потрібно відобразити діалогове вікно. Поле до джерела даних, яке містить слово "істина", додається, якщо елемент керування повторюваної таблиці має принаймні один рядок і слово "false", якщо елемент керування повторюваної таблиці не містить рядків.
Ви налаштовуєте правило в елементі керування повторюваної таблиці, щоб відобразити діалогове вікно, якщо значення в полі хибне. Щоб автоматично визначити, чи містить повторювана таблиця принаймні один рядок, скористайтеся такою формулою, як значення за промовчанням для поля містить слово "true" або "false":
boolean(grpProduct)
Стелі
Округлює число до найближчого більшого цілого.
Синтаксис
стель(число)
| Аргумент | Опис |
|---|---|
| number | Ім'я поля з числовим значенням. |
Приклад
Ви розробляєте шаблон форми звіту про витрати для своєї компанії. Витрати надсилаються веб-службі з параметром, який приймає лише цілі числа. Суму витрат, надіслану для цього параметра, потрібно округлити до вищого цілого значення. Сума витрат зберігається в полі з іменем fldExpenseAmount, а ціле значення зберігається в іншому полі. Щоб обчислити більше ціле значення, використовуйте таку формулу як стандартне значення для іншого поля:
ceiling(fldExpenseAmount)
Якщо користувач створює форму на основі шаблону форми та вводить 145,87 у полі fldExpenseAmount, значення в полі, яке містить формулу, буде 146.
Вив.
Повертає значення поля або групи. Другий аргумент визначає вираз, який потрібно обчислити для поля або групи. Зазвичай функція eval вкладено у функцію, яка працює в полі або групі, наприклад сума або середнє.
Синтаксис
eval(поле;вираз)
| Аргумент | Опис |
|---|---|
| поле | Ім'я поля або групи, значення яких буде оцінено виразом у другому аргументі. |
| вираз | Вираз, який буде застосовано до першого аргументу. Вираз може бути функцією XPath або виразом, узятим у подвійні лапки (" "). |
Приклад
Ви розробляєте шаблон форми звіту про витрати для своєї компанії. Шаблон форми містить поле fldTotal, яке містить суму витрат. Поле fldTotal входить до повторюваної групи grpExpenses. Інше поле прив'язане до текстового поля, яке містить суму всіх витрат. Щоб відобразити суму всіх витрат, коли користувач вводить суму витрат, скористайтеся такою формулою в полі загальних витрат:
eval(grpExpenses;sum(fldTotal))
false
Повертає значення false.
Синтаксис
false()
Ця функція не використовує аргументи.
Приклад
Ви створюєте шаблон форми, форми якого використовуватимуть підрядники, щоб подати заявку на отримання дозволів на будівництво. Шаблон форми має два розділи: один розділ для контактної інформації та інший розділ для отримання відомостей, пов'язаних із дозволом на будівництво. При заповненні цієї форми підрядникам потрібно буде повністю заповнити розділ контактної інформації, перш ніж вони зможуть заповнити розділ дозволу на будівництво.
Для цього потрібно створити правило для встановлення значення логічного поля значення false, якщо одне з полів у розділі контактної інформації пусте. Логічне поле значення може мати логічне значення true або логічне значення false. Ви також налаштовуєте умовне форматування, щоб приховати елемент керування розділу, який містить відомості про дозвіл на будівництво, якщо значення логічного поля хибне.
Щоб приховати елемент керування розділом, який містить поля для відомостей про дозвіл на будівництво, настройте правило для запуску цієї функції в логічному полі, якщо одне з полів у розділі контактної інформації пусте.
Підлоги
Округлює число до найближчого меншого цілого.
Синтаксис
floor(число)
| Аргумент | Опис |
|---|---|
| number | Ім'я поля з числовим значенням. |
Приклад
Ви розробляєте шаблон форми звіту про витрати для своєї компанії. Витрати надсилаються веб-службі, яка використовує параметр, який приймає лише цілі числа. Суму витрат, надіслану для цього параметра, потрібно округлити до меншого цілого значення. Сума витрат зберігається в полі з іменем fldExpenseAmount, а ціле значення зберігається в іншому полі. Щоб обчислити менше ціле значення, використовуйте таку формулу як стандартне значення для іншого поля:
floor(fldExpenseAmount)
Макс
Повертає найбільше число в полі або групі.
Синтаксис
max(field)
| Аргумент | Опис |
|---|---|
| поле | Повторюване поле в групі або полі повторюваної групи, для якої потрібно знайти найбільше значення. |
Приклад
Ви створюєте шаблон форми, форми якого використовуватимуться постачальниками, щоб повідомити про свої запаси продуктів. Шаблон форми містить повторювану групу, яка містить кілька полів, які містять дані про продукти постачальників. Поле fldPrice у повторюваній групі містить ціну товару.
Інше поле в джерелі даних шаблону форми міститиме найвищу ціну всіх продуктів, проданих цим постачальником. Щоб повернути найвищу ціну, скористайтеся такою формулою в полі найвищої ціни:
max(fldPrice)
Хв
Повертає найменше число в полі або групі.
Синтаксис
min(поле)
| Аргумент | Опис |
|---|---|
| поле | Повторюване поле в групі або полі повторюваної групи, для якої потрібно знайти найбільше значення. |
Приклад
Ви створюєте шаблон форми, форми якого використовуватимуться постачальниками, щоб повідомити про свої запаси продуктів. Шаблон форми містить повторювану групу з кількома полями, які містять дані про продукти постачальників. Поле fldPrice у повторюваній групі містить ціну товару.
Інше поле в джерелі даних шаблону форми міститиме найнижчу ціну всіх продуктів, проданих цим постачальником. Щоб повернути найнижчу ціну, скористайтеся такою формулою в полі з найнижчою ціною:
min(fldPrice)
не
Повертає значення true, якщо логічне значення має значення false або null. Повертає значення false, якщо логічне значення має значення true або не null.
Синтаксис
not(boolean_value)
| Аргумент | Опис |
|---|---|
| boolean_value | Поле з логічним типом даних. |
Приклад
Ви створюєте шаблон форми, форми якого використовуватимуть підрядники, щоб подати заявку на отримання дозволів на будівництво. У шаблоні форми є один розділ контактної інформації, а інший – відомості, пов'язані з дозволом на будівництво. При заповненні цієї форми підрядникам потрібно буде повністю заповнити розділ контактної інформації, перш ніж вони зможуть заповнити розділ дозволу на будівництво.
Для цього потрібно створити правило, яке задає логічному полю значення false, якщо одне з полів у розділі контактної інформації залишається пустим. Поле логічного значення може мати логічне значення true або логічне значення false. Потім скористайтеся тією ж формулою, щоб приховати елемент керування розділом, який містить відомості про дозвіл на будівництво, якщо значення логічного поля хибне. Щоб установити це правило, скористайтеся такою формулою, щоб установити для логічного поля значення false:
not(true())
кількість – обов’язковий параметр.
Перетворює значення на число.
Функція повертає значення NaN, якщо значення аргументу не можна перетворити на число.
Синтаксис
number(значення)
Опис аргументу
значенняЦе поле зі значенням, яке потрібно перетворити на число.
Приклад
Ви створюєте шаблон форми, форми якого використовуватимуть підрядники, щоб подати заявку на отримання дозволів на будівництво. Шаблон форми містить розділ, у якому підрядник може ввести свою бізнес-адресу. Щоб переконатися, що підрядник вводить припустиму адресу, скористайтеся зв'язком даних із веб-службою, яка може перевірити адресу. Якщо адресу перевірено, підрядник може надіслати форму до бази даних SQL. База даних SQL використовує текстове поле як для номера адреси, так і для назви вулиці. Веб-служба вимагає, щоб номер адреси був числовим типом даних і що назва вулиці була текстовим типом даних.
Щоб надіслати дані як до веб-служби, так і до бази даних SQL, адреса має зберігатися як два різні типи даних:
- Щоб надіслати адресу до веб-служби, потрібно вказати числовий тип даних, а назва вулиці – текстовий.
- Щоб надіслати адресу до бази даних SQL, адреса та назва вулиці мають бути текстовим типом даних.
Ви також хочете, щоб підрядник ввів свою адресу лише один раз. Щоб перетворити адресу на правильні типи даних і переконатися, що підрядник вводить свою адресу лише один раз, шаблон форми містить поле fldAddressNumber для введення номера адреси та іншого поля для введення назви вулиці. Обидва поля налаштовано як текстові типи даних.
Щоб надіслати номер адреси до веб-служби, потрібно перетворити дані в полі fldAddressNumber (збережені як текстовий тип даних) на числовий тип даних. Значення номера адреси, перетвореного на числовий тип даних, зберігається в іншому полі, у яке настроєно зберігання числових типів даних.
Щоб перетворити номер адреси з текстового типу даних на числовий тип даних, як значення за замовчуванням для поля fldAddressNumber використовуйте таку формулу:
number(fldAddressNumber)
nz
Повертає поле або групу з усіма пустими полями, заміненими на нуль (0).
Синтаксис
nz(поле)
| Аргумент | Опис |
|---|---|
| поле | Поле, яке потрібно перевірити на наявність значення. |
Приклад
Ви створюєте шаблон форми, який заповнять постачальники, щоб повідомити про свої запаси продуктів. Постачальник надішле свої запаси продуктів до веб-служби через форму на основі шаблону форми. Метод веб-служби вимагає, щоб усі елементи, які містять числові дані, мали числове значення. Веб-служба відхиляє форму, яка містить пустий числовий елемент.
Шаблон форми містить поле fldAvailability, яке містить число, яке відповідає здатності постачальника надавати цей продукт. Постачальник може ввести число в цьому полі. Щоб постачальник міг надіслати форму на основі шаблону форми до веб-служби та автоматично встановити для поля значення нуль, якщо постачальник не введе число, як значення за замовчуванням для цього поля використайте таку формулу:
nz(fldAvailability)
Круглий
Округлює число до найближчого цілого числа.
Якщо не ціле значення перебуває наполовину між двома округленими цілими значеннями, повертається наступне найбільше ціле значення.
Синтаксис
round(число)
| Аргумент | Опис |
|---|---|
| number | Поле з числом, яке округлюється за допомогою цієї формули. |
Приклад
Ви створюєте шаблон форми, форми якого використовуватимуться постачальниками, щоб повідомити про свої запаси продуктів. Шаблон форми містить повторювану групу з кількома полями, які містять дані про продукти постачальників. Одне з полів, які називаються fldPrice, у повторюваній групі містить ціну товару.
Шаблон форми має зв'язок даних для надсилання до веб-служби. Метод веб-служби вимагає округлення кожної ціни до цілого значення. Щоб надіслати відповідне значення методу веб-служби, додайте до джерела даних повторюване поле. У цьому полі використовується така формула, щоб округлити ціну в полі fldPrice до цілого значення:
round(fldPrice)
Сума
Повертає суму всіх полів у полі або групі. Кожне поле спочатку перетворюється на числове значення.
Синтаксис
sum(поле)
| Аргумент | Опис |
|---|---|
| поле | Ім'я поля в повторюваній групі або повторюване поле в групі, значення якої буде додано. Щоб додати поля з двох різних груп, використовуйте оператор об'єднання (|) для відокремлення аргументів. Наприклад: sum(ім'я поля 1 | ім'я поля 2). |
Приклад
Ви розробляєте шаблон форми звіту про витрати. Шаблон форми містить групу, яка містить елементи витрат. Кількість кожного елемента зберігається в полі з іменем fldExpenseAmount. Групу прив'язано до повторюваної таблиці, у якій кожен елемент витрат відображається як рядок. Шаблон форми містить елемент керування "текстове поле", у якому відображаються загальні витрати. Щоб відобразити загальні витрати, елемент керування "Текстове поле" містить таку формулу:
sum(fldExpenseAmount)
true
Повертає значення "істина".
Синтаксис
true()
Ця функція не використовує аргументи.
Приклад
Ви створюєте шаблон форми, форми якого використовуватимуть підрядники, щоб подати заявку на отримання дозволів на будівництво. Шаблон форми містить один розділ контактної інформації, а інший – відомості, пов'язані з дозволом на будівництво. При заповненні цієї форми підрядникам потрібно буде повністю заповнити розділ контактної інформації, перш ніж вони зможуть заповнити розділ дозволу на будівництво.
Для цього потрібно створити правило, яке задає логічному полю значення true, якщо всі поля в розділі контактної інформації містять дані. Логічне поле значення може мати логічне значення true або false. Якщо значення логічного поля істинне, відображається елемент керування розділу, який містить відомості про дозвіл на будівництво.
Щоб відобразити елемент керування розділом, який містить відомості про дозвіл на будівництво, потрібно настроїти правило для запуску цієї функції в логічному полі, якщо всі поля в розділі контактної інформації містять дані.
Текстові функції
concat (конкат)
Об'єднує два або більше полів текстових рядків в один текстовий рядок.
Синтаксис
concat(текст1;текст2;...)
| Аргумент | Опис |
|---|---|
| текст1 | Поле, яке містить текст, який потрібно об'єднати в один рядок тексту з текстом аргументу2. |
| текст2, ... | Руда або більше додаткових полів, які містять текст, який потрібно поєднати з попереднім полем. Розділяйте текстові поля крапкою з комою. |
Приклад
Ви створюєте шаблон форми, який містить поле з іменем fldFirstName, і поле з іменем fldLastName. Додайте наведену нижче формулу до третього поля, щоб вона містила текст "Цю форму заповнено прізвищем <імені><>".:
concat("Цю форму заповнено", fldFirstName, " ", fldLastName, ".")
Примітка.
Будь-який фактичний текст, введений як текстовий аргумент, включно з пробілами або розділовими знаками, потрібно вставляти в лапки (").
Містить
Повертає значення true, якщо перше поле або текстовий рядок містить друге. В іншому разі повертає значення false.
Синтаксис
contains(within_text, find_text)
| Аргумент | Опис |
|---|---|
| Текст_перегляду | Поле, яке містить текст для пошуку. |
| Шук_текст | Поле, яке містить текст або текст, узятий у подвійні лапки (" ") для пошуку в першому аргументі. |
Приклад
Ви створюєте шаблон форми з трьома текстовими полями. Перший із них дозволить користувачу ввести довгий обсяг тексту в першому елементі керування текстом під назвою fldText. Другий із них дозволить користувачу ввести короткий сегмент тексту та отримає ім'я fldFindText. Третє текстове поле порівнюватиме друге текстове поле з першим і вказуватиме, чи знайдено значення в другому полі в першому полі, і відобразить результат. Значенням за промовчанням буде така формула:
contains(fldText;fldFindText)
normalize-space
Видаляє пробіли з текстового рядка.
Примітка.
Це призведе до видалення будь-яких пробілів на початку, у кінці та повторення з поля з текстовим типом даних.
Синтаксис
normalize-space(text)
| Аргумент | Опис |
|---|---|
| текст | Текст, який містить пробіли на початку, у кінці або в кінці, які потрібно видалити. Візьміть текст у подвійні лапки (" "). |
Приклад
Ви створюєте шаблон форми, який містить поле з іменем fldText (зв'язане з елементом керування "текстове поле"). Щоб нормалізувати будь-який текст, введений у першому полі, і відобразити значення в першому полі без зайвого пробілу, додайте друге поле з такою формулою як стандартне значення:
normalize-space(fldText)
починається з
Повертає значення true, якщо перше поле або текстовий рядок починається з другого. В іншому разі повертається значення false.
Синтаксис
starts-with(текст; start_text)
| Аргумент | Опис |
|---|---|
| текст | Ім'я поля, яке містить текст для пошуку. Розділяйте аргументи крапкою з комою. |
| start_text | Текст для пошуку на початку поля, указаного в першому аргументі. Цей аргумент може бути полем або текстом, узятим у подвійні лапки (" "). |
Приклад
Ви створюєте шаблон форми з трьома текстовими полями. Перший із них дозволить користувачу ввести довгий обсяг тексту в першому елементі керування текстом під назвою fldText. Другий із них дозволить користувачу ввести короткий сегмент тексту та отримає ім'я fldFindText. Третє текстове поле порівнюватиме друге текстове поле з першим і вказуватиме, чи починається значення в першому полі зі значенням у другому полі, і відображатиме результат. Значенням за промовчанням буде така формула:
starts-with(fldText, fldFindText)
рядок
Перетворює значення на текстовий рядок.
Синтаксис
string(значення)
| Аргумент | Опис |
|---|---|
| значення | Поле, яке містить значення для перетворення на текст. |
Приклад
Ви створюєте шаблон форми, форми якого використовуватимуть підрядники, щоб подати заявку на отримання дозволів на будівництво. Шаблон форми містить розділ, у якому підрядник може ввести свою робочу адресу. Щоб переконатися, що підрядник вводить припустиму адресу, шаблон форми має зв'язок даних із веб-службою, яка може перевірити адресу. Якщо адресу перевірено, підрядник може надіслати форму до бази даних SQL. База даних SQL використовує текстове поле для адреси вулиці. Веб-служба вимагає, щоб номер адреси був числовим типом даних і що назва вулиці була текстовим типом даних.
Щоб надіслати дані як до веб-служби, так і до бази даних SQL, адреса має зберігатися в двох різних типах даних:
- Щоб надіслати адресу до веб-служби, потрібно вказати числовий тип даних.
- Щоб надіслати адресу до бази даних SQL, адреса та назва вулиці мають бути текстовим типом даних.
Ви також хочете, щоб підрядник ввів свою адресу лише один раз. Щоб перетворити адресу на правильні типи даних і переконатися, що підрядник вводить свою адресу лише один раз, форма містить поле для введення номера адреси з іменем fldAddressNumber та інше поле для введення назви вулиці. Поле fldAddressNumber – це числовий тип даних, а поле назви вулиці – це текстовий тип даних.
Щоб надіслати повну адресу (номер адреси та назву вулиці) до бази даних SQL, потрібно об'єднати значення в полі fldAddressNumber і полі назви вулиці в одне значення текстового типу даних. Спочатку потрібно перетворити числові дані в полі fldAddressNumber, у якому дані зберігаються як числові дані, на текстовий тип даних. До джерела даних додається поле, яке міститиме повну адресу як текстовий тип даних.
Щоб перетворити текстові дані в полі fldAddressNumber на текстовий тип даних, щоб використовувати веб-службу, потрібно настроїти інше поле, яке міститиме номер адреси як текстовий тип даних. Щоб перетворити номер адреси з числового типу даних на текстовий, як значення за замовчуванням для цього поля використовуйте таку формулу:
string(fldAddressNumber)
довжина рядка
Повертає кількість символів у текстовому рядку.
Синтаксис
string-length(text)
| Аргумент | Опис |
|---|---|
| текст | Поле, значення якого є текстом, який потрібно підрахувати. |
Приклад
Ви створюєте шаблон форми, який містить поле з іменем fldText, зв'язане з елементом керування "текстове поле". Шаблон форми містить друге поле, яке використовується для підрахунку кількості символів, введених у першій формі. Для цього друге поле міститиме таку формулу як значення за замовчуванням:
string-length(fldText)
Підрядок
Повертає певну частину текстового рядка. Другий аргумент визначає початкову позицію, а третій аргумент визначає кількість символів, які потрібно включити.
Синтаксис
substring(текст; start_position; char_count)
| Аргумент | Опис |
|---|---|
| текст | Поле з текстовим типом даних або текстом, узятим у подвійні лапки (" "). Функція шукає цей текст і повертає всі символи з позиції, указаної в другому аргументі, до кількості символів, указаних у третьому аргументі, або в кінці тексту залежно від того, що відбувається першим. |
| start_position | Початкова позиція тексту, який потрібно отримати з першого аргументу. Цей аргумент має бути цілим числом або посиланням на поле, настроєні для зберігання цілих числових (цілих) типів даних. |
| char_count | Кількість символів, які потрібно отримати, починаючи з початкової позиції, указаної в другому аргументі. Цей аргумент має бути цілим числом або посиланням на поле, настроєні для зберігання цілих числових (цілих) типів даних. |
Приклад
Ви створюєте шаблон форми, який містить такі поля та елементи керування:
- Поле fldText, зв'язане з елементом керування текстовим полем. Це поле містить текст, який шукає функція.
- Поле fldStartingPosition, зв'язане з елементом керування текстовим полем. Це поле настроєно як ціле числове значення типу даних. Поле містить початкову позицію функції.
- Поле fldNumberOfCharacters, прив'язане до елемента керування "текстове поле". Це поле настроєно як ціле числове значення типу даних. Поле містить кількість символів, які повертає функція.
- Елемент керування "Текстове поле", який відображає результати функції. Елемент керування "Текстове поле" містить таку формулу:
substring(fldText, fldStartingPosition, fldNumberOfCharacters)
Якщо користувач введе фразу "Цю форму створено на основі шаблону форми InfoPath". у першому текстовому полі, а потім 4 у другому та 16 у третьому, четверте текстове поле міститиме слово "s form was creat".
вкладений рядок після
Повертає текст у першому текстовому рядку після першого екземпляра другого текстового рядка.
Синтаксис
substring-after(текст; find_text)
| Аргумент | Опис |
|---|---|
| текст | Поле з текстовим типом даних або текстом, узятим у подвійні лапки (" "). Функція шукає текст у цьому аргументі, а потім повертає всі символи, які слідують за текстом у другому аргументі. |
| Шук_текст | Текст для пошуку в тексті першого аргументу. Текст може бути значенням у полі з текстовим типом даних або текстом, узятим у подвійні лапки (" "). Функція шукає текст у першому аргументі для цього тексту, а потім повертає всі символи, які слідують за текстом цього аргументу. |
Приклад
Ви створюєте шаблон форми, який містить такі поля та елементи керування:
- Поле fldText, зв'язане з елементом керування текстовим полем. Це поле містить текст, який шукає функція.
- Поле з іменем fldSubstringText, прив'язане до елемента керування "текстове поле". Це поле містить текст, який є другим аргументом функції.
- Елемент керування "Текстове поле", який відображає результати функції. Елемент керування "Текстове поле" містить таку формулу:
substring-after(fldText, fldSubstringText)
Якщо користувач введе фразу "Цю форму створено на основі шаблону форми InfoPath". у полі fldText і "InfoPath" у другому, третій елемент керування "текстове поле" міститиме "шаблон форми".
вкладений рядок перед
Повертає текст у першому текстовому рядку перед першим екземпляром другого текстового рядка.
Синтаксис
substring-before(текст; find_text)
| Аргумент | Опис |
|---|---|
| текст | Поле з текстовим типом даних або текстом, узятим у подвійні лапки (" "). Функція шукає текст у цьому аргументі, а потім повертає всі символи перед текстом у другому аргументі, find_text. |
| Шук_текст | Значення, яке потрібно знайти в текстовому аргументі. Це може бути значення в полі з текстовим типом даних або текст, узятий у подвійні лапки (" "). Функція шукає текст у першому аргументі (тексті) для цього тексту, а потім повертає всі символи перед текстом у цьому аргументі. |
Приклад
Ви створюєте шаблон форми з такими полями та елементами керування:
- Поле fldText, зв'язане з елементом керування текстовим полем. Це поле містить текст, який шукає функція.
- Поле з іменем fldSubstringText, прив'язане до елемента керування "текстове поле". Це поле містить текст, який є другим аргументом функції.
- Aa text box control that shows the results of the function. Елемент керування "Текстове поле" містить таку формулу:
substring-before(fldText, fldSubstringText)
Якщо користувач введе фразу "Цю форму створено на основі шаблону форми InfoPath". у полі fldText і "створено" у другому, тоді третій елемент керування "текстове поле" міститиме "Ця форма була".
переклад
Повертає перший текстовий рядок із кожним символом у другому текстовому рядку, заміненим символом у відповідній позиції в третьому текстовому рядку.
Синтаксис
translate(текст;find_chars;replace_chars)
| Аргумент | Опис |
|---|---|
| текст | Ім'я поля, яке містить текст, символи якого буде замінено. Розділяйте аргументи крапкою з комою. |
| find_chars | Символ або значення поля з текстовим типом даних, які буде замінено символами в третьому аргументі. Розділяйте аргументи крапкою з комою. |
| replace_chars | Символ або значення поля з текстовим типом даних, які замінять кожен екземпляр символу в другому аргументі. |
Приклад
Ви створюєте шаблон форми, форми якого використовуватимуть підрядники, щоб подати заявку на отримання дозволів на будівництво. Шаблон форми містить розділ, у якому підрядник може ввести свою робочу адресу. Розділ містить поле з іменем fldStreetAddress, прив'язане до елемента керування текстовим полем, в якому підрядник може ввести свою адресу вулиці.
Щоб переконатися, що підрядник вводить дійсну адресу, у вас є зв'язок даних із веб-службою, яка може перевірити адресу. Для веб-служби потрібні символи нижнього регістру в адресі.
Щоб перетворити будь-який символ верхнього регістра у поштовій адресі в нижньому регістрі, додайте до джерела даних інше поле, яке міститиме поштову адресу, перетворену на символи нижнього регістра. Стандартне значення цього поля містить таку формулу:
translate(fldStreetAddress, ABCDEFGHIJKLMNOPQRSTUVWXYZ, abcdefghijklmnopqrstuvwxyz)
Функції URL-адреси
SharePointListUrl (Url-адреса списку SharePoint)
Повертає адресу списку SharePoint або бібліотеки форм, де розміщено форму (лише InfoPath 2010).
Синтаксис
SharePointListUrl()
Ця функція не використовує аргументи.
Приклад
Ви створюєте шаблон форми для списку SharePoint і хочете додати посилання на розташування, у якому розміщено список, наприклад "http://sharepointserver/site/list/". Для цього додайте елемент керування гіперпосиланням і встановіть для нього значення Лише для читання, а потім установіть стандартне значення поля, з яким зв'язано елемент керування таким чином:
SharePointListUrl()
Примітка.
Якщо шаблон форми не розміщено на сервері SharePoint, функція SharePointListUrl() поверне лише "http://sharepointserver/site/list/".
SharePointServerRootUrl (Url-адреса сервера SharePointServerRootUrl)
Повертає адресу сервера SharePoint, на якому розміщено форму (лише InfoPath 2010).
Синтаксис
SharePointServerRootUrl()
Ця функція не використовує аргументи.
Приклад
Ви створюєте шаблон форми для списку SharePoint і хочете додати посилання на корінь сервера SharePoint, на якому розміщено список, наприклад "http://sharepointserver/site/list/". Для цього додайте елемент керування гіперпосиланням і встановіть для нього значення Лише для читання, а потім установіть стандартне значення поля, з яким зв'язано елемент керування таким чином:
SharePointServerRootUrl()
Примітка.
Якщо шаблон форми не розміщено на сервері SharePoint, функція SharePointListUrl() поверне лише "http://sharepointserver/site/list/".
SharePointCollectionUrl (Url-адреса)
Повертає адресу колекції сайтів SharePoint, де розміщено форму (лише InfoPath 2010).
Синтаксис
SharePointCollectionUrl()
Ця функція не використовує аргументи.
Приклад
Ви створюєте шаблон форми для списку SharePoint і хочете додати посилання на колекцію сайтів сервера SharePoint, на якому розміщено список, наприклад "http://sharepointserver/sitecollection/". Для цього додайте елемент керування гіперпосиланням і встановіть для нього значення Лише для читання, а потім установіть стандартне значення поля, з яким зв'язано елемент керування таким чином:
SharePointCollectionUrl()
Примітка.
Якщо шаблон форми не розміщено на сервері SharePoint, функція SharePointListUrl() поверне лише "http://sharepointserver/sitecollection/".
SharePointSiteUrl (Url-адреса сайту SharePoint)
Повертає адресу сайту SharePoint, де розміщено форму (лише InfoPath 2010).
Синтаксис
SharePointSiteUrl()
Ця функція не використовує аргументи.
Приклад
Ви створюєте шаблон форми для списку SharePoint і хочете додати посилання на сайт SharePoint, на якому розміщено список, наприклад "http://sharepointserver/site/". Для цього додайте елемент керування гіперпосиланням і встановіть для нього значення Лише для читання, а потім установіть стандартне значення поля, з яким зв'язано елемент керування таким чином:
SharePointSiteUrl()
Примітка.
Якщо шаблон форми не розміщено на сервері SharePoint, функція SharePointListUrl() поверне лише "http://sharepointserver/site/".
Функція userName
Ім'я користувача
Повертає ім'я користувача, який заповнює форму (корпорація Майкрософт InfoPath 2007 і пізніших версій).
Примітка.
Якщо користувач заповнює форму в браузері, ім'я користувача отримується з Microsoft Windows SharePoint Services 3.0 або новішої версії.
Синтаксис
userName()
Ця функція не використовує аргументи.
Приклад
Ви розробляєте шаблон форми звіту про витрати для своєї компанії. Компанія, що здійснює вашу кредитну картку, надсилає записи про витрати працівників в електронному вигляді до бази даних, яку веде ваша компанія. Щоб отримати записи про витрати для працівника, у базі даних потрібне ім'я користувача працівника, який заповнює форму на основі шаблону форми.
Щоб зберегти ім'я користувача працівника, додайте поле до джерела даних шаблону форми. Також можна створити зв'язок даних запиту, який використовує значення цього поля в запиті, щоб отримати витрати.
Щоб працівник заповнював звіт про витрати, використовується правильне ім'я користувача, зв'яжіть поле з елементом керування текстовим полем. Щоб відобразити ім'я користувача, який створює форму на основі цього шаблону форми, використовуйте таку формулу як стандартне значення поля, зв'язаного з елементом керування текстовим полем:
userName()