Налаштування з'єднання з базою даних
Підключення звіту до програми
Зайве говорити, що бухгалтерії без звітів не буває. Який універсальна мова програмування не використовувався б при створенні бухгалтерських програм, майже завжди виникає потреба в окремому додатковому засобі - генераторі звітів. Генератор звітів може бути в більшій чи меншій мірі інтегрований з середовищем розробки основного додатки: він може поставлятися у вигляді окремого додатка або у вигляді набору компонентів. Правильний вибір генератора на етапі створення програми визначатиме не тільки важливі ергономічні якості додатку для кінцевого користувача, а й зручність створення, підключення нових звітів і оперативної модифікації існуючих. Якість програми тільки підвищиться, якщо ці дії можуть бути виконані не тільки розробником, а й силами служби супроводу замовника. У цій статті я хочу показати, як створювати звіти для будь-яких середовищ розробки, сумісних з технологією COM, за допомогою FastReport Studio.
Розглянемо це завдання на прикладі списку платежів абонентів за послуги ЖКГ. Нехай необхідно створити звіти «Список платежів за період» і «Розшифровка за видами платежів». Для того щоб кінцевий користувач побачив готовий звіт, розробник повинен виконати наступні кроки:
- Створити новий звіт.
- Підключити звіт до бази даних.
- Підключити звіт до програми.
створення звітів
Традиційний шлях - для кожного зі звітів намалювати свій шаблон. Але навіщо робити зайву роботу, якщо є можливість використовувати спадкування звітів. Почнемо зі створення універсального базового звіту, на основі якого будемо будувати інші звіти-нащадки. Створюємо новий звіт і розставляємо на ньому компоненти, як показано на малюнку:
Користувач повинен мати можливість десь ставити обмеження, наприклад період приходу платежу. Для цього в FastReport Studio є діалогові форми. Натиснемо на кнопку «Додати форму в звіт», цим ми додамо до звіту сторінку з діалогової формою. На форму базового звіту помістимо тільки найважливіше - період, а решта обмеження будемо додавати в міру необхідності в звітах-нащадках.
Тепер для базового звіту створимо з'єднання з базою даних. Додамо на форму компоненти «База даних ADO» і «Запит ADO».
Зв'яжемо «Запит ADO» з «База даних ADO» через властивість ConnectionName. А властивості ConnectionString компонента «База даних ADO» дамо значення:
Залишається зберегти базовий звіт з ім'ям BaseRepSt.fr3. Тепер можна приступити до створення звітів-нащадків. Почну зі звіту «Список платежів за період».
Для того щоб створити звіт-спадкоємець базового звіту, його необхідно покласти в каталог. FastReport Studio \ Bin. Після цього, вибравши «файл» - «новий ...», побачимо наступне вікно:
Для звіту «Список платежів» на діалоговій формі досить вписати найменування звіту, яке будемо передавати в звіт при натисканні на кнопку «Друк».
У успадкованих звіт додамо елементи «заголовок сторінки» і «дані 1 рівня». Звіт буде виглядати наступним чином:
У властивості SQL «Запиту ADO» напишемо текст запиту, який з двох таблиць вибере нам список платежів абонентів за зазначений місяць;
У властивості Params опишемо значення параметрів таким чином, щоб запит отримував їх значення з діалогової форми звіту.
Тепер наш звіт готовий.
Другим звітом-спадкоємцем базового звіту BaseRepSt.fr3 буде «Розшифровка за видами платежів». Оскільки звіт буде формуватися за видами платежів, то на діалогову форму я добавілю два TfrxCheckBoxControl, які дозволять формувати звіт по кожному з виду платежів разом або окремо.
Додамо на наш звіт-нащадок наступні елементи: «заголовок сторінки» і «дані 1 рівня», «заголовок групи» і «підвал групи». Звіт буде мати наступний вигляд:
На відміну від прикладу №1, в даному випадку необхідно змінювати умова запиту в залежності від параметрів, вибраних на діалогової формі. Створимо оброблювач натискання на кнопку «Друк» і впишемо в нього такий код:
Налаштування з'єднання з базою даних
Для підключення до бази даних в FastReport Studio використовується технологія OLE DB. Щоб створити з'єднання, необхідний встановлений в системі OLE DB Provider для баз Interbase / Firebird. Для кращого розуміння суті виконуваних дій, я зроблю невеликий теоретичне відступ.
Технологія OLE DB допускає два варіанти підключення:
Повернемося до прикладу. Створимо і відкриємо файл test_fb.udl. На сторінці «Постачальник даних» виберемо OLE DB Provider for InterBase:
На сторінці «Підключення» введемо шлях до бази даних (можна вводити як абсолютний, так і відносний шлях), ім'я, пароль, кодову сторінку, рівень ізоляції, як показано на малюнку:
На сторінці «Додатково» введемо тип клієнта:
На цьому настройка завершена. Перед натисненням «Ok» є можливість протестувати з'єднання за допомогою кнопки «Перевірити підключення» на сторінці «Підключення».
Підключення звіту до програми
Для використання звітів на комп'ютерах кінцевих користувачів щодо реєстрації компонента. Документація пропонує два способи реєстрації: або за допомогою виклику функції, що експортується DllRegisterServer з бібліотеки Redist \ FastReport3.dll, або командним рядком:
У прикладі я використовувала спосіб з викликом функції, що експортується. Оброблювач bbRegisterServerClick - реєстрація компонента, обробник bbUnregisterServerClick - видалення компонента.
Мовою С ++ метод для друку звіту матиме вигляд:
Натиснувши на кнопку друку звіту «Список платежів», отримаємо наступний результат:
Вид готового звіту «Розшифровка за видами платежів»:
Як видно з прикладів, отримати необхідний результат зовсім не складно.
- створення повністю готових до використання звітів дозволяє розробляти додаток на будь-якій мові програмування, сумісному з технологією COM;
- використання технології Microsoft ADO дозволяє працювати з будь-якими базами даних, для яких є OLE DB Provider або ODBC-драйвер.
- доступні всі переваги FastReport: спадкування, FastScript, діалогові форми і.пр. Для розробників, знайомих з FastReport, створення звітів в Studio не викличе практично серйозних проблем.
До статті додається архів example.zip з прикладами, описаними в статті.