Документація Database Tour Contents Index

Движок виразів

 

Движок виразів Database Tour Pro дозволяє виконувати Pascal-подібні вирази, які можуть бути вбудовані в динамічні елементи при експорті даних (наприклад, в налаштуваннях відповідності полів або при експорті до формату HTML з використанням шаблону HTML), а також у звітах.

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

Зауваження

1. Вирази та функції розраховуються "на льоту" перед їх виводом до цільового документу.

2. Назви функцій та операторів не залежні від регістру символів.

3. Параметри параметризованих функцій можуть бути як константами (літералами), так і виразами.

4. Строчкові літерали повинні братися в одинарні лапки. Якщо літерал містить одинарні лапки всередині, кожен з них повинен бути продубльований.

5. Багатострочкові літерали не дозволяються. Якщо потрібно передати великий текст в якості параметра, розбийте його на невеликі окремі строчки та з'єднайте їх за допомогою оператора +.

6. Параметри параметризованих функцій жорстко типізовані.

Неправильно
 dataset_field_val(1, Cust_Name)
Правильно
 dataset_field_val(1, 'Cust_Name')
Опис
  В цьому прикладі назва поля бази даних має тип String (Text), тому має братися в одинарні лапки.

7. Вираз повинен повертати одне значення.

Неправильно
 Назва книги: dataset_field_val(1, 'TITLE')
Правильно
 'Назва книги: ' + dataset_field_val(1, 'TITLE')
 Назва книги: <<<dataset_field_val(1, 'TITLE')>>>
Опис
 

Щоб вираз дав одне значення , потрібно, щоб число операндів у виразі типу String (Text) повинно дорівнювати числу операторів плюс один. Іншими словами, потрібно, щоб у виразі типу String (Text) між кожними двома операндами був один оператор.

Іншим рішенням є виділення динамічних частин виразу. В контексті звітів динамічні частини починаються трійкою відкритих трикутних дужок (<<<) і закриваються трійкою закритих трикутних дужок (>>>).

8. В деяких функціях є параметр StepNo (крок експорту). Він має значення лише при використанні в шаблонах HTML (див. далі), в усіх інших випадках поивнен бути 1.

Шаблон HTML може бути заповнений динамічними даними за більше ніж один крок. Накприклад, якщо ваш документ HTML містить кілька таблиць, які повинні бути заповнені даними з різних наборів даних, його можна заповнити лише за кілька кроків експорту (зазвичай один набір даних за один крок). Тому функції, пов'язані із базами даних, та деякі інші функції мають парметр StepNo. При експорті набору даних до HTML з використанням шаблону HTML також можливо вказати номер кроку експорту (по замовчанню це 1). Під час процедури експорту лише ті виразу будуть розраховані, де параметр StepNo функцій відсутній або співпадає з тим, що вказаний в опціях експорту. Наприклад, вираз database_field_val(2, 'payment_sum')/100 буде розрахований лише під час другого кроку експорту.

Поєдання різних StepNo в одному виразі (наприклад, database_field_val(1, 'total_sum') + database_field_val(2, 'payment_sum')) можливе, але вираз повинен бути написаний таким чином, щоб функції з меншим StepNo розраховувалися раніше.

Приклади коректних виразів:

12 + abs(sqrt(5) - 2)/3 Арифметичний вираз
25 - 5 >= 14 Логічний вираз
'File name: ' + dataset_field_val(1, 'FileName') Строчковий вираз
date + 4 Вираз д одає чотири дні до поточної дати. Коректний, оскільки дати сумісні з числами.
iif(length(Target_File_Name(1)) > 25, 'yes', 'no') Складний вираз

Приклади некоректних виразів:

12 / target_file_name(1) Некоректне використання строчкової функції в арифметичному виразі (неспівпадіння типів)
concat(cos(dataset_field_val(1, 'FuncParam')), ' is larger') Некоректне використання дійсного числа в якості аргумента для функції конкатенації строчок. Тут повинно бути явне приведення типів за допомогою функції to_string.
5 <> False Некоректне порівняння числової та булевської констант
power(4) Не вистачає другого аргументу для функції power
iif(length(Target_File_Name(1) > 25, 'yes', 'no') Не вистачає правої дужки для функції length

Далі описуються оператори та функції движка виразів.

Оператори

Арифметичні. Працюють з числами та повертають числа (окрім оператора +, котрий може також використовуватися для конкатенації строчок).
+ Додавання чисел. Також може використовуватися для конкатенації строчокових операндів (як альтернатива функції concat).
- Віднімання чисел
* Множення чисел
/ Ділення чисел
^ Піднесення лівого операнда до степеня, вказаного правим операндом (як альтернатива функції power)
div Цілочисельне ділення. Це ділення, в якому дрібна частина відкидається.
mod Остача від ділення
Логічні. Працюють з булевськими константами та виразами, які повертають булевські значення, і повертають булевські True або False.
not Логічне НІ. Повертає False, якщо його єдиний операнд може бути перетворений до True; інакше повертає True.
and Логічне І. Повертає True, якщо обидва операнди True; інакше повертає False.
or Логічне АБО. Повертає True, якщо хоча б один операнд True; якщо обидва операнди False, повертає False.
xor Виключне АБО. Повертає True, якщо один операнд True,а інший False; інакше повертає False.
= Рівність
<> Нерівність
> Більше ніж
>= Більше ніж або дорівнює
< Менше ніж
<= Менше ніж або дорівнює

Функції

Використовуйте функції для обрахунку значень.

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

Пов'язані з базою даних

Інтерпретація параметра StepNo у цих функціях залежить від контексту, в якому функція використовується:

Контекст експорту до HTML з використанням шаблону. Шаблон HTML може заповнюватися даними за більше, ніж один крок. Наприклад, якщо ваш документ HTML містить кілька таблиць, що мають бути заповнені даними з різних наборів даних, то заповнити їх можна лише за кілька кроків експорту (як правило, один набір даних за один крок). Параметр StepNo якраз і вказує крок експорту, на якому дана функція має обчислюватися.

Контекст звітів. Параметр StepNo в цих функціях вказує крок (прохід), в якому функція має обчислюватися. Можливі значення: 1 або 2. Якщо цей параметр дорівнює 1, то відповідна функція обчислюватиметься безпосередньо при обробці виразу. Якщо ж він дорівнює 2, звіт буде формуватися в режимі двох проходів і відповідна функція обчислюватиметься лише на другому проході обробки звіту, тобто вже після того, як набір даних звіту досягне останнього запису. Використання функцій баз даних на другому проході зручне у випадках, наприклад, коли потрібно підсумки по звіту (групі) помістити на початку звіту (групи).

Загальні
dataset_row_number( StepNo Integer, GroupLevel Integer ): Integer

Використовується лише в контексті звітів. Повертає номер поточного запису в поточній групі вказаного GroupLevel.

GroupLevel (рівень групування) може мати наступні значення:

1. Група рівня 1;

2. Група рівня 2;

3. Група рівня 3;

0. Весь звіт;

-1. Поточна сторінка.

dataset_group_number( StepNo Integer, GroupLevel Integer ): Integer

Використовується лише в контексті звітів. Повертає номер поточноої групи вказаного GroupLevel.

GroupLevel (рівень групування) може мати наступні значення:

1. Група рівня 1;

2. Група рівня 2;

3. Група рівня 3;

0. Весь звіт (результатом буде завжди 1);

-1. Поточна сторінка (результатом буде номер поточної сторінки).

dataset_field_val( StepNo Integer, FieldName String ): <FieldType> Повертає значення поля FieldName з поточного набору даних. Тип значення, що повертається, залежить від типу поля.
dataset_param_val( StepNo Integer, ParamName String ): <ParamType> Повертає значення параметра ParamName (якщо поточний набір даних є параметризованим запитом). Тип значення, що повертається, залежить від типу параметра.
dataset_field_is_null( StepNo Integer, FieldName String ): Boolean Повертає True, якщо значення поля FieldName з поточного набору даних - null, і False в інших випадках.
dataset_nvl( StepNo Integer, FieldName String, SubstVal <FieldType> ): <FieldType> Повертає SubstVal, якщо значення поля FieldName з поточного набору даних - null, і значення поля в інших випадках. Тип SubstVal повинен бути сумісним з типом FieldName.
query_res( StepNo Integer, SqlText String ): <FieldType> Повертає результат запиту (з одним полем), вказаного текстом SqlText. Тип значення, що повертається, залежить від типу поля.

Статистичні (агрегатні)

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

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

GroupLevel використовується лише в звітах (1 - розраховується для рівня групування 1; 2 - розраховується для рівня групування 2; 3 - розраховується для рівня групування 3; 0 - розраховується для всього звіту; -1 - розраховується для поточної сторінки). В інших контекстах повинно бути 0.

Стандартні (подібні до агрегатних функцій SQL)
dataset_row_count( StepNo Integer, GroupLevel Integer ): Integer Повертає кількість записів (накопичувальну) поточного набору даних. Фактично, всередині циклу записів показує номер запису.
dataset_min( StepNo Integer, GroupLevel Integer, FieldName String ): Integer Повертає найменше значення в полі FieldName
dataset_max( StepNo Integer, GroupLevel Integer, FieldName String ): Integer Повертає найбільше значення в полі FieldName
dataset_sum( StepNo Integer, GroupLevel Integer, FieldName String ): Integer Сумує значення в полі FieldName
dataset_avg( StepNo Integer, GroupLevel Integer, FieldName String ): Integer Повертає середнє значення в полі FieldName
dataset_count( StepNo Integer, GroupLevel Integer, FieldName String ): Integer Повертає кількість непустих значень в полі FieldName

Умовні

Ці функції роблять те ж саме, що і стандартні статистичні функції, але з однієї суттєвою відмінністю: вони перевіряють умову Condition для кожного запису, і розраховують своє значення лише якщо ця умова повертає True. Параметр Condition цих функцій повинен задаватися як константа типу String (тобто повинен братися в одинарні лапки) або як детерміністичний строчковий вираз (див. нижче).

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

У звіті functions.dtt можна побачити багато прикладів, що ілюструють сказане.

dataset_row_count_ex( StepNo Integer, GroupLevel Integer, Condition String ): Integer
dataset_min_ex( StepNo Integer, GroupLevel Integer, FieldName String, Condition String ): Integer
dataset_max_ex( StepNo Integer, GroupLevel Integer, FieldName String, Condition String ): Integer
dataset_sum_ex( StepNo Integer, GroupLevel Integer, FieldName String, Condition String ): Integer
dataset_avg_ex( StepNo Integer, GroupLevel Integer, FieldName String, Condition String ): Integer
dataset_count_ex( StepNo Integer, GroupLevel Integer, FieldName String, Condition String ): Integer

Примітки

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

Якщо ж все-таки робите таке, то уникайте циклічних посилань в цих функціях, оскільки це може призвести до неочікуваних результатів виразів. Наприклад, використання поля FieldName всередині Condition є циклічним посиланням і не повинно застосовуватися.

Приклади коректних вживань умовних статистичних функцій:

dataset_sum_ex(1, 0, 'PaymentSum', 'dataset_field_val(1, ''CustNo'') > 1000')

(цей вираз буде підсумовувати значення поля PaymentSum, якщо значення поля CustNo більше від 1000)

dataset_count_ex(1, 0, 'CustNo', 'dataset_field_val(1, ''Paid'')')

(цей вираз поверне кількість значень поля CustNo, де значення булевського поля Paid дорівнює True)

dataset_sum_ex(1, 0, 'BillSum', 'dataset_sum_ex(1, 0, ''OldBillSum'', ''dataset_field_val(1, ''''CustNo'''') > 0'') > 0')

(цей вираз поверне суму значень поля BillSum, де умовна сума поля OldBillSum більша від 0)

Приклади некоректних вживань умовних статистичних функцій:

dataset_count_ex(1, 0, 'CustNo', 'yes')

(помилка: небулевська константа не може використовуватися як умова)

dataset_sum_ex(1, 0, 'BillSum', 'dataset_sum_ex(1, 0, ''OldBillSum'', ''dataset_sum_ex(1, 0, ''''BillSum'''', True) > 0'') > 0')

(помилка: циклічне посилання на поле BillSum)

Математичні

abs( x Numeric ): Numeric Повертає абсолютне значення числа x
frac( x Numeric ): Numeric Повертає дрібну частину числа x
int( x Numeric ): Numeric Повертає цілу частину числа x
round( x Numeric ): Numeric Повертає значення числа x, округлене до найближчого цілого
sqrt( x Numeric ): Numeric Повертає квадратний корінь з числа x
power( x Numeric, y Numeric ): Numeric Зводить число x до степеня y
exp( x Numeric ): Numeric Повертає експоненту числа x
ln( x Numeric ): Numeric Повертає натуральний логарифм числа x
cos( x Numeric ): Numeric Повертає косинус x, де x задається в радіанах
sin( x Numeric ): Numeric Повертає синус x, де x задається в радіанах
tan( x Numeric ): Numeric Повертає тангенс x, де x задається в радіанах
atan( x Numeric ): Numeric Повертає арктангенс x, тобто значення, чий тангенс дорівнює x

Дата і час

date: Date Повертає поточну дату
time: Time Повертає поточний час
add_date_time( x DateTime, y Numeric ): DateTime Додає y днів до дати/часу x. y може бути цілим або дійсним числом, наприклад, 2.5 означає 2 дні та 12 годин.
compare_date_time( Date1 DateTime, Date2 Numeric ): Numeric Повератє ціле число, що показує результат порівняння дати/часу Date1 та дати/часу Date2: 0, якщо Date1 = Date2; 1, якщо Date1 > Date2; -1, якщо Date1 < Date2.
date_time_diff( Date1 DateTime, Date2 DateTime ): Numeric Повертає різницю в днях (як дійсне число) між датою/часом Date1 та датою/часом Date2
format_date_time( x DateTime, Mask String ): String Форматує дату/час x, використовуючи маску Mask. Наприклад, для відображення лише поточного місяця, можна використовувати date в якості першого параметра та 'm' або 'mmmm' в якості другого.

Пов'язані з HTML (працюють в контексті екпорту до формату HTML)

doc_title: String Повертає заголовок документу HTML, який вказано в опціях експорту
target_file_name( StepNo Integer ): String Повертає повний шлях цільового файлу HTML, який вказано в опціях експорту. StepNo вказує номер кроку, в якому дана функція повинна бути розрахована (див. примітку 6 вище).

Пов'язані з файлами

file_created( FileName String ): DateTime Повертає дату і час, коли файл FileName було створено. В FileName повинен передаватися повний шлях.
file_last_modified( FileName String ): DateTime Повертає дату і час, коли файл FileName було востаннє модифіковано. В FileName повинен передаватися повний шлях.
file_last_accessed( FileName String ): DateTime Повертає дату і час, коли файл FileName востаннє відкривався. В FileName повинен передаватися повний шлях.
file_size( FileName String ): Numeric Повертає розмір файлу FileName в байтах. В FileName повинен передаватися повний шлях.
file_version( FileName String ): Numeric Повертає версію файлу FileName. В FileName повинен передаватися повний шлях.
extract_file_ext( FileName String ): String Витягує розширення файлу FileName (з крапкою)
extract_file_name( FileName String ): String Витягує назву файлу з повного шляху FileName
extract_file_dir( FileName String ): String Витягує шлях до файлу (без символу \ в кінці) з повного шляху FileName
extract_file_path( FileName String ): String Витягує шлях до файлу (з символом \ в кінці) з повного шляху FileName
file_exists( FileName String ): Boolean Повертає True, якщо файл FileName існує, і False в іншому випадку
dir_exists( DirectoryName String ): Boolean Повертає True, якщо директорія DirectoryName існує, і False в іншому випадку

Різне

to_number( x <AnyType> ): Numeric Перетворює x в число
to_string( x <AnyType> ): String Перетворює x в строчку (текст)
format_float( x Numeric, Mask String ): String Форматує число x, використовуючи маску Mask. Наприклад, щоб завжди відображувати дві цифри після десяткової точки, використовуйте '0.00' в якості другого параметра.
lpad( Str String, Count Numeric, Char String ): String Додає символи Char до строчки Str зліва. Count - кількість результуючих символів.
rpad( Str String, Count Numeric, Char String ): String Додає символи Char до строчки Str справа. Count - кількість результуючих символів.
iif( Condition Boolean, x <AnyType>, y <AnyType> ): <AnyType> Повертає x, якщо умова Condition дає True, або y в інакшому випадку
upper( Str String ): String Перетворює строчку Str до верхнього регістру
lower( Str String ): String Перетворює строчку Str до нижнього регістру
capitalize( Str String ): String Перетворює перші символи кожного слова строчці Str до верхнього регістру
pretty( Str String ): String Перетворює перший символ строчки Str до верхнього регістру, а всі інші - до нижнього
length( Str String ): Integer Повертає довжину (кількість символів) строчки Str
pos( SubStr String, Str String ): Integer Повертає позицію підстрочки SubStr в строчці Str
substr( Str String, Index Integer, Count Integer ): String Повертає підстрочку строчки Str, яка містить Count символів, починаючи з позиції Index
substr_count( Str String, SubStr String ): Integer Повертає кількість входжень підстрочки SubStr в строчці Str
trim( Str String ): String Відсікає ведучі та кінцеві пробіли і керуючі символи з строчки Str
trim_left( Str String ): String Відсікає ведучі пробіли і керуючі символи з строчки Str
trim_right( Str String ): String Відсікає кінцеві пробіли і керуючі символи з строчки Str
string_replace( Str String, SubStr Integer, NewSubStr Integer ): String Замінює всі підстрочки SubStr в тексті Str на NewSubStr
concat( Str1 String, Str2 Integer ): String Повертає строчку, що є результатом конкатенації строчок Str1 та Str2
ordinal_number( x Integer, Language String, Case Integer, Gender Integer ): String

Порядковий номер. Повертає оригінальне число і порядкове закінчення цілого x.

Language - мова, якою повинен бути представлений результат. Можливі значення: 'en-US' (American English), 'uk-UA' (Ukrainian).

Case - відмінок. Можливі значення: від 'A' да 'F' ('A' - називний, 'B' - родовий і т.д.).

Gender - рід. Можливі значення: 'M' (чоловічий), 'F' (жіночий), 'N' (середній).

Наприклад, ORDINALNUMBER(5, 'B', 'F') поверне 5-ї (тобто скорочене від "п'ятої").

quantitative_numeral( x Integer, Language String, Case Integer, Gender Integer ): String

Кількісний числівник. Повертає оригінальне число і кількісне закінчення для цілого x.

Language - мова, якою повинен бути представлений результат. Можливі значення: 'uk-UA' (Ukrainian).

Case - відмінок. Можливі значення: від 'A' да 'F' ('A' - називний, 'B' - родовий і т.д.).

Gender - рід. Можливі значення: 'M' (чоловічий), 'F' (жіночий), 'N' (середній).

Наприклад, ORDINALNUMBER(3, F, F) поверне 3-х (тобто скорочене від "трьох").

number_to_words( x Numeric, Language String, Options String ): String

Конвертує число x в його еквівалент прописом.

Language - мова, якою повинен бути представлений результат. Можливі значення: 'en-US' (American English), 'uk-UA' (Ukrainian).

Options - набір опцій, розділених символом |, кожна з яких записується у форматі OptionName=OptionValue.
Доступні опції:
- ShowZeroSubunits. Вказує, чи потрібно виводити дрібну частину, якщо вона дорівнює нулю. Можливі значення: True або False. Значення по замовчанню: False.
- ProcessSubunits. Вказує, чи потрібно перетворювати і дрібну частину в слова. Можливі значення: True або False. Значення по замовчанню: False.
- UnitsSubunitsSeparator. Вказує розділювач цілої та дрібної частини числа. Значення по замовчанню: пробіл.
- SubunitsDimension. Розмірність для дрібної частини числа. Значення по замовчанню: 2. Ця опція ігнорується, якщо ProcessSubunits дорівнює True.
- CurrencyCode. Вказує код валюти в форматі ISO 4217. Зараз підтримуються лише наступні коди валют: USD, EUR, UAH. Використання даної опції вказує інтерпретувати число як значення валюти і додавати назви валюти.
- Type. Вказує тип перетворення. Можливі значення: regular, fraction. У останньому випадку результат буде виглядати, наприклад, як ... цілих ... тисячних. Ця опція має значення лише якщо Language дорівнює 'uk-UA'.
- UnitsShortened. Вказує вживати скорочену назву основної одиниці валюти, якщо вона використовується (тобто, наприклад, грн. замість гривень). Ця опція має значення лише якщо Language дорівнює 'uk-UA'.
- SubunitsShortened. Вказує вживати скорочену назву розмінної одиниці валюти, якщо вона використовується (тобто, наприклад, коп. замість копійок). Ця опція має значення лише якщо Language дорівнює 'uk-UA'.

Приклади:

Вираз Результат
number_to_words( dataset_field_val(1, 'pay_sum'), 'uk-UA', 'UnitsSubunitsSeparator= and |CurrencyCode=UAH|SubunitsDimension=2|ShowZeroSubunits=true' )  
number_to_words( 3467.35, 'uk-UA', 'UnitsSubunitsSeparator= та |CurrencyCode=UAH|ShowZeroSubunits=true' ) три тисячі чотириста шістдесят сім гривень та 35 копійок
number_to_words( 3467.35, 'uk-UA', 'SubunitsDimension=4|ShowZeroSubunits=true' ) три тисячі чотириста шістдесят сім 3500

Пов'язані зі звітами (працюють лише в контексті звітів)

report_author: String Повертає ім'я автора звіту
report_changed_by: String Повертає ім'я модифікатора звіту
report_database_name: String Повертає назву бази даних для джерела даних звіту
report_dataset_name: String Повертає назву набору даних (назва таблиці або SQL-текст запиту) для джерела даних звіту
report_description: String Повертає опис звіту
report_file_name: String Повертає повний шлях до файлу шаблону звіту
page_left_margin: Integer Повертає ліве поле в пікселях
page_right_margin: Integer Повертає праве поле в пікселях
page_top_margin: Integer Повертає верхнє поле в пікселях
page_bottom_margin: Integer Повертає нижнє поле в пікселях
page_number: Integer Повертає номер поточної сторінки
page_count: Integer Повертає загальну кількість сторінок в звіті. Ця функція вимагає формування звіту в режимі двох проходів і може уповільнити форматування великих звітів. Не повинна використовуватися в якості параметра недетерміністичних функцій (наприклад, пов'язаних з базою даних).
page_height: Integer Повертає висоту сторінки в пікселях
page_width: Integer Повертає ширину сторінки в пікселях
internal_property( PropertyName String ): String

Повертає значення вказаної властивіості будь-якого компоненту звіту. Параметр PropertyName потрібно вказувати у формі ComponentName.PropertyName. Якщо префікс ComponentName. опущено, то буде використовуватися префікс Report..

Приклади:

internal_property('Report.Author') поверне ім'я автора звіту.

internal_property('PageWidth') поверне ширину сторінки в пікселях.

internal_property('Label12.Text') поверне текст компонента звіту Label12.

internal_property('DBText1.Left') поверне горизонтальну координату лівого краю компонента звіту DBText1 по відношенню до його батьківського компонента.

Застарілі функції для звітів

When converting expressions with obsolete functions from your old reports, please consider the rules at the top of this topic.

GROUPRECORDNUMBER Ця функція більше не підтримується. Замість цієї функції використовуйте dataset_row_number
NUMTOWORDS Ця функція більше не підтримується. Замість цієї функції використовуйте number_to_words
DATASETNAME Замість цієї функції використовуйте report_dataset_name
DATABASENAME Замість цієї функції використовуйте report_database_name
FILENAME Замість цієї функції використовуйте report_file_name
PAGEHEIGHT Замість цієї функції використовуйте page_height
PAGEWIDTH Замість цієї функції використовуйте page_width
LEFTMARGIN Замість цієї функції використовуйте page_left_margin
RIGHTMARGIN Замість цієї функції використовуйте page_right_margin
TOPMARGIN Замість цієї функції використовуйте page_top_margin
BOTTOMMARGIN Замість цієї функції використовуйте page_bottom_margin
PAGENUMBER Замість цієї функції використовуйте page_number
RECORDNUMBER Замість цієї функції використовуйте dataset_row_number
PAGERECORDNUMBER Замість цієї функції використовуйте dataset_row_number
GROUP1RECORDNUMBER Замість цієї функції використовуйте dataset_row_number
GROUP2RECORDNUMBER Замість цієї функції використовуйте dataset_row_number
GROUP3RECORDNUMBER Замість цієї функції використовуйте dataset_row_number
RECORDCOUNT Замість цієї функції використовуйте record_count
REPORTDESCRIPTION Замість цієї функції використовуйте report_description
REPORTAUTHOR Замість цієї функції використовуйте report_author
PAGECOUNT Замість цієї функції використовуйте page_count
MIN Замість цієї функції використовуйте dataset_min
MAX Замість цієї функції використовуйте dataset_max
SUM Замість цієї функції використовуйте dataset_sum
AVERAGE Замість цієї функції використовуйте dataset_avg
COUNT Замість цієї функції використовуйте dataset_count
MINEX Замість цієї функції використовуйте dataset_min_ex
MAXEX Замість цієї функції використовуйте dataset_max_ex
SUMEX Замість цієї функції використовуйте dataset_sum_ex
AVERAGEEX Замість цієї функції використовуйте dataset_avg_ex
COUNTEX Замість цієї функції використовуйте dataset_count_ex
FILESIZE Замість цієї функції використовуйте file_size
FIELDVAL Замість цієї функції використовуйте dataset_field_val
PARAMVAL Замість цієї функції використовуйте dataset_param_val
ISNULL Замість цієї функції використовуйте dataset_is_null
FIELDEXISTS Замість цієї функції використовуйте dataset_field_exists
NVL Замість цієї функції використовуйте dataset_nvl
QUERYRES Замість цієї функції використовуйте query_res
STR Замість цієї функції використовуйте to_string
TRIMLEFT Замість цієї функції використовуйте trim_left
TRIMRIGHT Замість цієї функції використовуйте trim_right
ORDINALNUMBER Замість цієї функції використовуйте ordinal_number
QUANTITATIVENUMERAL Замість цієї функції використовуйте quantitative_numeral
FILECREATED Замість цієї функції використовуйте file_created
FILELASTMODIFIED Замість цієї функції використовуйте file_last_modified
FILELASTACCESSED Замість цієї функції використовуйте file_last_accessed
EXTRACTFILENAME Замість цієї функції використовуйте extract_file_name
EXTRACTFILEEXT Замість цієї функції використовуйте extract_file_ext
EXTRACTFILEDIR Замість цієї функції використовуйте extract_file_dir
EXTRACTFILEPATH Замість цієї функції використовуйте extract_file_path
REPLACE Замість цієї функції використовуйте string_replace
ADDDATETIME Замість цієї функції використовуйте add_date_time
COMPAREDATETIME Замість цієї функції використовуйте compare_date_time
DATETIMEDIFF Замість цієї функції використовуйте date_time_diff
FORMATDATETIME Замість цієї функції використовуйте format_date_time
SUBSTRCOUNT Замість цієї функції використовуйте substr_count