Домой л.р.7 - Разработка отчетов в Rave Reports 5.0


 ==== Описание проекта. === 
Работа проделана большая, но сделано не все...

0. Скачайте нужный Вам вариант
 базы данных (все БД содержат одни и те же таблицы). 
Для работы проекта необходима BDE.

1. Вначале выбрать псевдоним (алиас):
   - kassa4 - связан с БД в папке BD_kassa
  Бд содержит проверку значений, индексы, проверку 
ссылочной целостности - все это в БД, т е на уровне BDE.

   - kassa5 - связан с БД в папке BD_kassa5
  Нет проверок, индексов, проверок целостности, но есть
пароли. Основной среди них: krolik

   - kassa_ - связан с БД в папке BD_kassa_  
  Нет проверок, индексов, проверок целостности, нет паролей.
2. Затем - выбрать отчет, щелкнуть "Выдать отчет ..."
3. В результате в папке появляются отчеты .ndr,
кнопка "Прочесть" читает их. Прочтенный файл можно:
  - просмотреть. При этом доступны настройки
  - записать отчет в форматах: .html, .rtf, .pdf

============= Отчет по лаб 7: =============
В среде Rave Reports 5.0 созданы 3 отчета:

1. Отчет _Lekarstva - отчет по одной таблице
Lek_List

2. Отчет _Kategor_Lekar - отчет по двум связанным
таблицам. Master: табл. Kategorii, Detail: табл Lek_List.
Вычисляются: минимальная и максимальная цена лекарств
для каждой категории.
 
3. Отчет _Lek_Ostatki. Данные получены от компонента
TQuery, SQL которого содержит:
      Select Ostatok, Nazvan1, Nazvan2, Nazvan3 
      from Lek_list, Sklad
      where Sklad.Lek_Id = Lek_List.Lek_Id
      order by Ostatok 
то есть отчет содержит список лекарств и остатков 
этих лекарств на складе.

4. Продемонстрировать использование двух способов соединения
 с источником данных (соединение через драйвер Rave Reports и
 соединение через компонент Rave Reports и компонент набора 
 данных в приложении Delphi).
  -  соединение через драйвер Rave Reports: отчет Clients,
 работает нормально.
  - соединения через компоненты TRvTableConnection - отчеты
 _Lekarstva, _Kategor_Lekar,
  TRvQueryConnection - отчет _Lek_Ostatki.

5. Продемонстрировать использование компонентов управления 
отчетами вкладки Rave среды Delphi.
  - В проекте работает вывод отчета следующим образом:
     - одновременно с предварительным просмотром отчет
      сохраняется в файле .ndr
     - из этого файла отчет прочитывается компонентами RvRender:
        - Preview,
        - HTML
        - RTF
        - PDF
      -----------------------------
      Однако при этом имеются недочеты:
       - компонент Preview показывает только 1-ю страницу
       - HTML - последнюю страницу
       - RTF - Обрезает некоторые слова справа.
       - PDF - неверный шрифт.
     ------------------ 
      В Интете есть мнение, что эта версия Rave Reports 5.0
     дефектная и рекомендуется обновление на
     http://se-ed.net/thaidelphicc/xml/updatepack/ 
     Однако этот сайт на ужасном языке, трудно разобраться.
     Именно этой ссылки нет. 
     ( вопрос 27089 Круглый стол, http://www.delphikingdom.com )

============= Примечания, заметки: ===================

1. Справка Делфи по Rave часто не соответствует факту.
Подлинный список свойств и методов объектов Rave можно
получить из автозавершения, в редакторе.
Мануалы можно прочесть на сайте А.Подгорецкого
(www.podgoretsky.com) или в drkb.
Интересная статья об изучении объектов Rave есть на
delphimaster.ru (Работа с отчетами Rave Report в режиме RunTime,
автор - Турушев Виталий). 
Искать решения проблем можно на официальном сайте разработчика.
Одна из проблем:
http://www.nevrona.com/Default.aspx?tabid=101
-------------

2.Оказывается, свойствам объектов Rave Reports 
нужно больше внимания. При просмотре примеров -
см св-ва, выделенные жирным (и другие - тоже)

 - чтобы в отчете появились данные из таблицы,
нужно в объекте DataBAnd запонить св-во DataView
(выбрать из списка доступных)

3. Форма с объектами TRv**Connection (Делфи - проект)
должна быть включена в проект Делфи
(Project|Add to Project), чтобы работал просмотр отчетов
 в среде Rave.

4. Чтобы Band2 печатался на каждой странице, нужно:
  -  BandStyle= [B1P] (т е Body Header+First+NewPage)
  - Controller Band = Band с данными.
  - Controller Band (заголовка) = Band с данными.

==== Пример: Master-Detail ==========
Источники данных (в примере):
 - Master: CustomerDV <- (на форме:) CustomerCXN <- CustomerTable 
 - Detail: OredersDV  <- (на форме:) OrdersCXN   <- OrdersTable

----------  для лаб7: -----------------
1********
Источники данных:
 - Master: KategorDV  <- (на форме:) KategorCXN  <- tabKategor 
( Перед добавлением KategorDV таблицу tabKategor сделать активной ) 
 - Detail: LekarDV    <- (на форме:) LekarCXN <- tabLekar
( Перед добавлением ... таблицу ... сделать активной )
2********
Удобно копировать настроенные объекты DataText, Text (Ctrl-C, Ctrl-V)
3***** 
Программа может выбирать алиасы. При этом в табл. Lek_List 
последняя запись содержит признак алиаса: метка алиаса4,5,_
Пароль к алиасам 4,5 присвоен свойству компонента Session.

Screens

Rave Reports 5.0

Rave Reports 5.0

Rave Reports 5.0

Rave Reports 5.0

Rave Reports 5.0

Rave Reports 5.0

Rambler's Top100
Hosted by uCoz