Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Отчеты к базам данных для пользователей: Crystal Reports 11.5
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

5.3 Поля выражений SQL  (SQL Expression Fields)

Поля выраженний SQL (SQL Expression Fields) в Crystal Reports 11.5, преимущества применения

В Crystal Reports предусмотрен специальный вид формул: поля выражений SQL (SQL Expression Fields). Точно так же, как и обычные формулы, поля выражений SQL возвращают значение, которое потом может быть использовано в отчете напрямую, в других формулах или, например, для фильтрации данных. Главное отличие полей выражений SQL от обычных формул заключается в том, что вычисление значений производится не в Crystal Reports, а на сервере баз данных. Фактически данное выражение SQL встраивается в отчет и передается на сервер баз данных.

Главный выигрыш, который получается при использовании SQL Expression Fields — выигрыш в производительности при работе с большими отчетами и использование специализированных возможностей серверов баз данных (поскольку выражение передается на сервер "как есть", вы можете использовать любые возможности, разрешенные на сервере баз данных.

Представим себе следующий пример. Предположим, что со всех поступлений с заказчиков нам нужно заплатить налог в 6 %. При этом нам нужно выбрать всех заказчиков, с поступлений от которых был заплачен налог больше, чем в 10000$.

Конечно, мы можем добавить соответствующие поля в отчет и использовать обычные формулы Crystal Reports. Но если отчет большой (а вычисления сложные), то обычно правильнее будет использовать в отчете поля выражений SQL.

Создать в нашем случае поле выражения SQL можно так же, как и поле обычной формулы: в окне Field Explorer необходимо щелкнуть правой кнопкой мыши по контейнеру SQL Expression Fields и в контекстном меню выбрать New (Новый). Затем нужно ввести имя формулы (например, SqlExpr1) и нажать на кнопку OK. Откроется привычное окно редактора формул (правда, с ограниченным набором встроенных функций и операторов — только тех, которые допускаются в стандартном языке SQL).

Нам потребуется перетащить поле Last Year Sales из таблицы Customers и умножить его на 0,06. Итоговый код нашего выражения SQL может выглядеть так:

`Customer`.`Last Year's Sales`*0.06

Сразу отметим, что имена полей выглядят в выражениях SQL совсем не так, как в обычных формулах Crystal Reports. Это связано с тем, что используется SQL-совместимый синтаксис.

После создания выражения SQL в запросе синтаксис запроса SQL в отчете изменится. Например, если до этого мы получали с сервера баз данных только имя заказчика, то запрос мог выглядеть так:

SELECT `Customer Name` FROM Customer

Теперь же он может выглядеть так:

SELECT `Customer Name`, (`Last Year's Sales` * 0.06) FROM `Customer`

Если мы используем созданное поле SQL Expression Field для других целей в нашем отчете, например, для фильтрации записей (см. следующий модуль), то запрос может измениться и дальше. Например, если мы настроим фильтр, чтобы показывать в отчете только тех заказчиков, налог от поступлений с которых был выше 10000 $, то запрос может выглядеть как

SELECT `Customer Name`, (`Last Year's Sales` * 0.06)  FROM `Customer`

WHERE (`Last Year's Sales` * 0.07)>10000

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 

 
© 2004-2016, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru