Числовые формулы

Оценить
(1 голос)

Пожалуй, наиболее распространенным типом формул являются числовые формулы, такие как формула Extended Price, которая рассматривалась выше. Числовые формулы могут столь простыми, как умножение значения поля базы данных на 1,1 для увеличения его значения на 10%, или же такими сложными, как операции вычисления, основанные на применении сложной математической статистики. Не существует специальных процедур, с помощью которых можно было бы объявить ту или иную формулу как “числовую” — формула возвращает такое значение просто в силу того, что этого требуют поля и операции, которые в ней используются. Например, показанная ниже формула Extended Price, перемножающая числовое поле и поле типа currency, в результате вернет тип данных currency:

(Orders_Detail.Unit price) * (Orders_Detail.Quantity)

В основном в числовых формулах используются математические операции, такие как знак плюс (для сложения), знак минус (для вычитания), символ звездочки (для умножения) и символ косой черты (для деления). Однако возможно вы также захотите воспользоваться и встроенными функциями, которые предоставляет Crystal Reports, или пользовательскими функциями, которые создадите сами или попросите создать кого-то другого. Все эти функции будут доступны для выбора в окне Function Tree (что касается пользовательских функций, их, возможно, сначала потребуется добавить в отчет из репозитория; для получения более подробной информации по этому вопросу обратитесь в главу 17). Двойной щелчок на функции приведет к тому, что ее имя появится в текстовом поле Formula, а курсор будет помещен между открывающей и закрывающей скобками. После этого вы можете либо вручную ввести аргументы для функции, либо дважды щелкнуть на других полях или формулах в дереве Field Tree, чтобы добавить их в качестве аргументов.

Например, если в отчете имеется группа, и вы хотите включить в формулу промежуточную сумму для этой группы, следует воспользоваться функцией Sum. Вы обнаружите, что фактически доступны три функции Sum — с одним, двумя и тремя аргументами. Вот несколько примеров:

Sum( (Orders .Orser Amount) ) возвращает сумму всех объемов заказов в масштабах всего отчета.

Sum({Orders.Orser Amount},{Customer.Region})

возвращает сумму всех объемов заказов в масштабах группы регионов, для которой вычисляется эта формула. Если данная формула вычислялась в группе “Colorado” (Колорадо), то она возвратит промежуточную сумму заказов только для штата Колорадо.

Sum ({Orders .Orser Amount}, {Orders .Order Date}, "weekly”)

возвращает промежуточную сумму заказов для группы заказов на текущую дату, вычисляя промежуточную сумму заказов за неделю. Обратите внимание на то, что третий аргумент соответствует периодам времени, которые доступны, когда группа создается на основе поля даты. (Вопросы создания групп на основе полей типа даты рассматривались в главе 3.)

Следовательно, вы могли бы вычислить объем каждого заказа в процентах по отношению к промежуточной сумме по региону, воспользовавшись операцией % и функцией Sum следующим образом:

({Orders.Order Amount} % Sum({Orders.Order Date},{Customer.Region})

Для вычисления всех промежуточных сумм предусмотрены встроенные функции, такие как функции вычисления среднего значения, промежуточной суммы, Р-того ироцентиля и так далее (см. главу 3). Развернув категорию арифметических функций (Arithmetic) в дереве Function Tree, вы также найдете функции для вычисления остатков, определения абсолютного значения и округления чисел.

Переменная Formula в синтаксисе Basic
Вычисление расширенной цены
Старшинство операций
Строковые формулы
Решение вопроса со значениями NULL

Добавить комментарий


Защитный код
Обновить