Использование формул

Оценить
(1 голос)
Пожалуй, наиболее распространенным типом формул являются числовые формулы, такие как формула Extended Price, которая рассматривалась выше. Числовые формулы могут столь простыми, как умножение значения поля базы данных на 1,1 для увеличения его значения на 10%, или же такими сложными, как операции вычисления, основанные на применении сложной математической статистики. Не существует специальных процедур, с помощью которых можно было бы объявить ту или иную формулу как “числовую” — формула возвращает такое значение просто в силу того, что этого требуют поля и операции, которые в ней используются. Например, показанная ниже формула Extended Price, перемножающая числовое поле и поле типа currency, в результате вернет…
Оценить
(1 голос)
Когда вы используете синтаксис Crystal, формула просто возвращает результаты выполнения своего последнего оператора. Если формула состоит всего лишь из одной операции, например, как в одном из предыдущих примеров, из операции умножения, формула возвращает результат умножения. Если формула состоит из нескольких операторов, разделенных точками с запятой, последний оператор определяет, ч го будет возвращено в отчет. Однако при использовании синтаксиса Basic не следует забывать о его небольшом отличии от любого Basic-подобного языка программирования, которым вам, возможно, доводилось пользоваться. В компьютерном языке вы обычно присваиваете значения переменным и далее постоянно применяете их в своем коде. Желая отобразить значение переменной на экране, вы можете…
Оценить
(0 голоса)
Formula = {Orders Detail.Unit Price} * {Orders Detail.Quantity} If {Customer.Region} = "CO" Then 1 Добавить 4.25% налога с продаж к заказам в штате Колорадо Formula = Formula * 1.0425 End If Здесь переменная Formula используется как обычная переменная (ее даже не нужно сначала объявить с помощью оператора Dim). Сначала мы применяем ее для вычисления расширенной цены. Затем мы включаем ее в оператор If для добавления налога с продаж к заказам в штате Колорадо. Если оператор If принимает значение true, то существующее значение переменной Formula умножается на 1.0425 для добавления 4,25%. Если оператор If принимает значение false, то последний оператор, который…
Оценить
(1 голос)
Иногда будут возникать ситуации, когда сказать, в каком именно порядке Crystal Reports будет вычислять операции в формуле, будет невозможно. Например, если требуется добавить налог на продажу к расширенной цене, вы могли бы воспользоваться следующей формулой, которая добавляет восьмипроцентный налог на продажу к расширенной цене заказа (уже подсчитанной в формуле ©Extended Price): {©Extended Price} + {©Extended Price} * .08 Вопрос о том, в каком порядке Crystal Reports будет вычислять эту формулу, имеет решающее значение. Будет ли сначала выполняться операция сложения, а потом — операция умножения, или же наоборот? Порядок вычисления операций очень сильно повлияет на возвращаемые результаты. Предположим, что значением Extended…
Оценить
(0 голоса)
Очень часто база данных содержит строки и текстовые данные, которых недостаточно для создаваемого отчета. Например, вам может потребоваться отсортировать почтовые индексы, однако база данных содержит их только как часть поля City State Zip. Либо может возникнуть необходимость в подготовке отчета для печати чеков, в которых суммы печатаются прописью с использованием числовых полей и полей денежных значений базы данных. Все это является примером применения формул, которые либо создают строки, либо манипулируют строковыми данными. Строки могут быть конкатенированы, или сцеплены вместе, с помощью знака + (плюс) или знака & (амперсанд). И хотя знак плюс означает также операцию сложения чисел, результаты будут зависеть…
Оценить
(0 голоса)
Crystal Reports может возвращать непонятные результаты для формул, столкнувшихся в базе данных с нолем, в котором содержится значение null (это специальное значение, обозначающее “пустое” значение, а не 0, если речь идет о числовом поле, или пустую строку, если речь идет о строковом/текстовом поле). То, будет база данных содержать значения null или нет, определяется несколькими факторами. В большинстве случаев это зависит от способа, которым база данных разрабатывается изначально. Если вы хотите избежать появления значений null в отчетах, знайте, что Crystal Reports позволяет преобразовать их сразу в формат значений по умолчанию (обычно для числовых полей значением по умолчанию является 0, а для…
Оценить
(2 голоса)
Очень важной функцией, которой вы будете часто пользоваться в строковых формулах, является функция ToText. Она служит для преобразования в строки других типов данных с целью их последующего использования в формулах конкатенации или операциях сравнения. Функцию ToText можно применять для преобразования в строки чисел, дат, значений времени и практически всех других типов данных. Эта функциональная возможность позволяет избегать проблем, подобных показанной на рис. 5.13. Такая проблема возникает из-за невозможности выполнения конкатенации числового поля со строковым литералом (или любой другой комбинацией несоответствующих ему типов данных). Чтобы преобразовать числовое поле или поле денежного типа в строку, которую можно было бы сцепить с другой…
Оценить
(0 голоса)
В более сложных отчетах может возникнуть желание сделать так, чтобы извлекались только какие-то определенные части строк (например, только первые инициалы имени). Crystal Reports содержит множество интересных функций для формул, которые позволяют справляться даже с еще более сложными требованиями, предполагающими извлечение “подстрок”. Например, рассмотренная выше функция ToWords может использоваться не только для печати чеков. При распечатке контрактов, документов по недвижимости или банковских платежных документов, к примеру, может возникнуть необходимость в том, чтобы число распечатывалось как в числовом, так и в текстовом формате, вроде: Срок действия данного контракта истекает через тридцать (30) дней. Ради этого примера представим, что данные, обозначающие число дней…
Оценить
(1 голос)
При составлении отчетов часто возникают ситуации, когда необходимо воспользоваться данными типа даты, времени или даты/времени. Большая часть современных персональных компьютеров и баз данных SQL поддерживают некоторые или все упомянутые типы данных. И хотя поля даты и времени не появляются в отчете в виде чисел (они часто включают другие символы и слова, в зависимости от того, как они отформатированы), на самом деле они хранятся в базе данных и в Crystal Reports как числа. В силу этого, над такими полями могут выполняться арифметические операции. Существуют также и соответствующие встроенные функции, которые возвращают только определенные части полей даты и времени и преобразуют другие…
Оценить
(0 голоса)
Когда Crystal Reports выполняет математические операции над полями, содержащими только дату, результат вычислений отображается в целых днях. Crystal Reports возвращает дробные части дня в тех случаях, когда указанные в формуле поля имеют тип даты/времени. Например, при вычитании поля типа даты, содержащего дату “1 мая, 2006”, из поля типа даты, содержащего дату “5 мая, 2006”, результатом будет целое число 4. Однако, если эти поля имеют тип даты/времени, и первое в качестве значения времени содержит значение, равное 12 часам дня (полдень), а второе — значение, равное 12 часам ночи (полночь), результатом будет дробное число 3,5. Таким образом, вычислить, например, какое количество времени…