Фільтрація записів в звітах Crystal Reports 11.5, фільтрація на рівні запиту і засобами Select Expert, застосування формул для налаштування фільтрації
У більшості випадків в звіті потрібні не всі дані з джерела, а тільки деякі. В цьому випадку в звіті потрібно налаштувати фільтрацію (аналогічно конструкції WHERE в мові SQL).
Фільтрацію в звітах Crystal Reports можна реалізувати двома способами.
Перший спосіб - вбудувати фільтрацію у вигляді конструкції WHERE в запит SQL. який буде передаватися на джерело даних. Зазвичай при цьому використовуються параметри (див. Розділ 10), щоб забезпечити можливість вибирати різні значення. А для того, щоб користувачеві зручніше було вибирати, зазвичай йому ще на рівні додатку, з якого викликається звіт, надається графічна форма зі списками, текстовими полями, календарями і іншими елементами графічного інтерфейсу. Такий підхід буде розглянуто в модулі про інтеграцію звітів Crystal Reports з додатками.
Другий спосіб - використовувати можливості Crystal Reports для фільтрації даних в звіті. Як і у випадку з сортуванням даних, в більшості ситуацій Crystal Reports автоматично змінить запит SQL. додавши в нього конструкцію WHERE. але краще (особливо при роботі з рідкими джерелами даних) контролювати Crystal Reports. щоб не зіткнутися з фільтрацією вже в готовому звіті, після скачування інформації з бази даних.
Налаштування фільтрації засобами Crystal Reports проводиться за допомогою Select Expert або Selection Formulas в меню Report.
Відкрити Select Expert можна за допомогою:
· Меню Report | Select Expert;
· Кнопки Select Expert;
· Контекстного меню для поля;
· В експертів створення звітів - вкладки Select.
Далі вибирається потрібне поле, вибирається необхідний оператор і вказується для нього умова. Якщо порівняння поле з умовою дає True, то поле виводиться в звіті. Додаткові умови - через вкладку New, кілька вкладок об'єднуються як AND (логічне І).
Можна вказувати діапазон даних: оператор In the Period і далі - вибрати необхідний діапазон. Дуже часто використовується для дат.
Для оператора Like можна використовувати два підстановлювальних символу: * означає "невизначену кількість символів". - один будь-який символ.
У деяких ситуаціях вбудовані оператори не підходять (наприклад, треба показати все для Англії і плюс замовлення більше 10 000 доларів) - в таких ситуаціях формулу потрібно писати вручну. приклад:
Чутливість до регістру в умови фільтра - в залежності від того, чи встановлена вона на джерелі.
Перемикач Group Selection - дозволяє застосувати фільтр до груп, а не до кінцевих записам у звіті.
Рекомендується, якщо є можливість, застосовувати фільтр для тих полів, які проіндексовані на джерелі.