Главная Случайная страница


Категории:

ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника






Отчет с единственной таблицей или запросом

Процедура создания отчета с одним источником данных выглядит следующим образом.

1. Создайте приложение Delphi, содержащее нужный НД (таблицу или запрос), компонент RvProject и компонент RvDataSetConnection. Вместо последнего можно использовать компонент RvTableConnection или RvQueryConnection в зависимости от типа НД. Во всех случаях компонент RvXXXXConnection нужно связать с НД с помощью свойства DataSet, Table или Query.

2. Вызовите утилиту Rave Designer, начните новый отчет (или проект отчета) и создайте в нем объект данных Direct Data View, связав его с компонентом RvXXXXConnection.

3. Вызовите мастера создания отчета (командой Tools > Simple Table) и с его помощью завершите начальное формирование отчета.

4. Если вас не устраивает отчет, созданный мастером, модифицируйте его – введите нумерацию страниц, включите графические компоненты, например эмблемы вашего предприятия, или создайте связанную с отчетом глобальную страницу и т. п.

5. Сохраните отчет в файле и вернитесь в среду Delphi.

6. Установите в свойство ProjectFile компонента RvProject ссылку на файл проекта. Для вызова окна просмотра объекта и/или для печати отчета предусмотрите в программе соответствующий интерфейсный элемент (кнопку или команду меню). В обработчике связанного с ним действия укажите оператор ProjectName.Execute, если отчет – единственный (умалчиваемый), или оператор ProjectName.ExecuteReport (’ReportName’) – если отчет не единственный в проекте и не умалчиваемый (ProjectName – имя компонента RvProject, ReportName – имя проекта).

В результате работы мастера будет создан отчет, содержащий единственную страницу (компонент Main Page), содержащую область просмотра данных DataView1Region с тремя полосами: DataView1TitleBand, DataView1Band и DataView1DataBand. Две первые полосы являются полосами заголовка отчета и заголовков полей. Они отличаются тем, что первая печатается только в начале отчета, а вторая – на каждой странице. Поэтому в редакторе важнейшего свойства полей BandStyle, определяющего положение полосы и ее наличие на странице при печати отчета, для первой установлены флажки Body Header и First, а для второй еще и флажок New Page. Если этот флажок снять, полоса напечатается только на первой странице. На любом из этих полей можно размещать компоненты вкладки Standard палитры компонентов Rave Designer.

Полоса данных DataView1DataBand повторяется столько раз, сколько записей содержит соответствующий НД. Если после полосы данных расположить ещё одну текстовую полосу (например, для нумерации страниц), она будет напечатана только в конце отчета. Чтобы вставить внизу или вверху каждой печатаемой страницы элементы оформления, их нужно располагать вне области просмотра данных. При этом, возможно, понадобится уменьшить вертикальный размер области.

Если не пользоваться услугами мастера, то действия должны быть такими.

1. Создайте в отчете связанный с данными объект отображения Direct Data View (если отчет связан с НД из приложения Delphi) или Driver Data View (отчет получает данные без помощи приложения Delphi).

2. На пустую страницу поместите надписи, графические изображения и другие элементы оформления с вкладок Drawing, Bar Code и Standard среды Rave Designer, которые должны печататься на каждой странице.

3. На страницу поместите компонент Region (вкладка Report). Его размеры и положение на странице должны быть такими, чтобы не закрывать оформительские элементы сверху, снизу или по бокам страницы.

4. Поместите на страницу полосы Band (вкладка Report) для заголовка отчета и названий полей. Каждая помещаемая в область заголовка полоса занимает весь ее горизонтальный размер. Для полосы заголовка отчета в редакторе свойства BandStyle должны быть установлены флажки Body Header и First, для полосы названий полей – флажки Body Header, First и New Page.

5. За полосами заголовка на страницу поместите полосу DataBand (вкладка Report). Своим свойством DataView она связывается с объектом отображения данных.

6. На полосе DataBand расположите компоненты для отображения данных из отдельных полей НД. Каждый компонент через свойство DataView свяжите с объектом отображения данных, а в его свойстве DataField укажите отображаемое компонентом поле данных или выражение с участием полей и системных переменных.

 

Отчет главный-детальный

Отчет главный-детальный воспроизводит данные из одной записи главной таблицы и все записи связанной с ней дочерней таблицы. Таким отчетом будет накладная с указанием реквизитов заказчикаи перечняпоставляемой продукции.

Для подготовки отчетов главный-детальный в Rave Designer предусмотрен мастер, который вызывается командой Tools > Master/Detail Report. Для создания отчета главный-детальный без помощи мастера нужно выполнить следующие действия.

1. В приложении Delphi создайте два НД – главный и детальный. Между ними можно не устанавливать соответствующую реляционную связь, так как эта связь будет создана в проекте отчета.

2. Поместите в приложение два связных компонента RvXXXXConnection, с условием: если НД построен на запросе Query, связным должен быть компонент RvDataSetConnection (но не RvQueryConnection); если НД – таблица Таble, используется компонент RvTableConnection (но не RvDataSetConnection).

3. Создайте в проекте отчета два объекта данных типа Direct Data View, которые используют соответствующие связные компоненты.

4. На пустую вкладку Page Designer поместите компонент Region (вкладка Report) и назначьте ему нужные размеры. Полосы с данными можно поместить только на этот компонент, и они автоматически растянутся на всю его ширину. Таким образом, размеры компонента Region определяют размеры основной области отображения данных на странице отчета.

5. На компонент Region поместите компонент Band (вкладка Report), на нем разместите компоненты Text (вкладка Standard), с помощью которых создается заголовок отчета.

6. На компонент Region поместите компонент DataBand (вкладка Report) для отображения данных из главного НД. В его свойстве DataView укажите ссылку на соответствующий объект отображения Direct Data View. На полосе разместите компоненты Text и DataText для формирования поясняющих надписей и данных из полей главного НД. Компоненты DataText с помощью свойств DataView свяжите с объектом отображения, а в их свойства DataField поместите ссылки на нужные поля или выражения с участием полей и системных переменных.

7. На компонент Region поместите еще один компонент Band для формирования заголовков полей. В редакторе его свойства BandStyle установите флажок Body Header. На полосе разместите необходимые компоненты Text с названиями полей и, возможно, оформительские компоненты (например, расчерчивающие линии).

8. На компонент Region поместите еще один компонент DataBand для отображения данных из детального НД. Важный момент – правильная настройка этого компонента. В его свойство DataView поместите ссылку на детальный объект отображения данных, в свойство DataKey – ссылку на ключевое поле детального НД, в свойство MasterDataView – ссылку на объект отображения главного НД, в свойство MasterKey – ссылку на ключевое поле главного НД. Установка перечисленных свойств образует реляционную связь главный-детальный, поэтому задание этой связи в приложении Delphi не обязательно. В свойство ControllerBand поместите ссылку на полосу с данными из главного НД, в редакторе свойства BandStyle установите флажок Detail. На полосе разместите компоненты DataText для отображения отдельных полей детальных данных.

9. В располагающейся выше детальной полосы полосе заголовков полей в свойство ControllerBand поместите ссылку на детальную полосу.

10. Ниже детальной полосы при необходимости разместите полосу Band для оформления итоговой части перечисленных детальных данных. В редакторе свойства BandStyle этой полосы установите флажок Body Footer, а в свойства ControllerBand поместите ссылку на детальную полосу.

Значки в виде ромбиков и стрелок в левой части заголовков полос наглядно показывают подчиненность полос, устанавливаемую свойством ScrollerBand: если полоса подчинена другой, стрелка показывает на управляющую полосу; если полосе подчиняются другие полосы, ромбик в ней имеет такой же цвет, как и цвет указывающих на нее стрелок в подчиненных полосах.

Буквы и цифры в правой части соответствуют отмеченным флажкам в окне редактора свойства BandStyle. Эти отметки позволяют оценить подчиненность полос и последовательность их печати.

 

Группирующий отчет

Группирующими называют отчеты, в которых вся информация разделяется на группы данных, объединенных каким-то общим признаком. Например, список книг, упорядо­ченный по издательствам. Правила создания группирующих отчетов можно найти в работе [8].

 

7.5. Пример создания отчетов в приложении Sale

В качестве примера рассмотрим процедуру создания трех простых отчетов, основанных на таблице Zakazcik и запросах по неоплаченным накладным. Откроем модуль данных dmSaleUnit. Добавим на форму модуля данных компонент RvDataSetConnection1 для организации связи первого отчета с таблицей базы данных. Выберем для свойства DataSet компонента значение Zakazcik.

Добавим на форму модуля данных компонент RvQueryConnection1 для организации связи второго отчета с первым запросом (частично и полностью оплаченные накладные). Выберем для свойства Query компонента значение Query1. Добавим на форму компонент RvQueryConnection2 для организации связи третьего отчета со вторым запросом (неоплаченные накладные). Выберем для свойства Query компонента значение Query2. Сохраним все сделанные изменения.

Спроектируем внешний вид первого отчета. Для этого вызовем визуальный Rave-проектировщик Rave Visual Designer командой Tools > Rave Designer.

Дадим команду File > New Data Object (Файл > Новый объект данных) и в окне типов связи (рис. 44) выберем строку Direct Data View (Прямой обзор данных).

 
 

Рис. 44. Выбор типа связи

 

 
 

В следующем окне (рис. 45) будет предложено выбрать соединения с СУБД, доступные на данный момент в среде Delphi. В первом случае это связь RvDataSetConnection1. Теперь структуру установленной связи (она получила название DataView1) можно посмотреть в правой части Rave-редактора.

Рис. 45. Структура связи с СУБД

 

Подготовим табличную форму отчета с помощью мастера. Для этого выполним команду Tools > Report Wizards > Simple Table и выберем в диалоговом окне название объекта DataView1. В следующем окне будет предложено отметить поля таблицы, которые желательно видеть в отчете.

На следующих этапах работы мастеразаданные поля можно будет отсортировать, ввести название отчета, указать границы печатаемой страницы и задать шрифты различных разделов. После нажатия кнопки Generate отчет будет создан и размещен в центре виртуальной страницы. Отредактируем шаблон отчета вручную (заголовки, положение колонок, разделяющие линии и т. д.).

Созданный шаблон с отчетом (Rave-проект) следует сохранить в папке C:\ Sale с помощью стандартной команды File > Save с названием, например, RaveProject1. Файл проекта получит расширение .rav. Список доступных отчетов можно посмотреть в правом окне в элементе Report Library. Пока там доступен отчет Report1.

Создадим шаблон второго отчета командой File > New Report. Выберем связь RvQueryConnection1. Cтруктуру установленной связи (DataView2) можно посмотреть в правой части Rave-редактора. Спроектируем с помощью мастеравнешний вид второго отчета. Сохраним созданный шаблон отчета (Report2) в том же проекте RaveProject1.

Создадим шаблон третьего отчета командой File > New Report. Выберем связь RvQueryConnection2. Cтруктуру установленной связи (DataView3) можно посмотреть в правой части Rave-редактора. Спроектируем с помощью мастеравнешний вид третьего отчета. Сохраним созданный шаблон отчета (Report3) в том же проекте RaveProject1.

Печать отчетов будет осуществляться выбором необходимых элементов контекстных меню соответствующих форм. Вернемся в Delphi, откроем модуль fmZakUnit и добавим на форму компонент RvProject1 (Rave-Проект). Свойство Project File (Файл проекта) настроим на подготовленный файл C:\ Sale \ RaveProject1. Затем добавим на форму компонент PopupMenu1. В свойстве PopupMenu формы FZak выберем PopupMenu1. Щелкнем на компоненте PopupMenu1 и в его контекстном меню выберем пункт Menu Designer. Для первого элемента меню (объект N1) в свойстве Caption укажем – «Печать отчета». Напишем процедуру обработки события OnClick для этого элемента меню:

procedure TFZak.N1Click(Sender: TObject);

begin

RvProject1.ExecuteReport('Report1');

end;

В нем происходит обращение к методу ExecuteReport компонента RvProject, по которому строится и вызывается для просмотра и печати указанный отчет.

Откроем модуль fmQuery1Unit и добавим на форму компонент RvProject1. Свойство Project File настроим на файл C:\ Sale \ RaveProject1. Затем добавим на форму компонент PopupMenu1. В свойстве PopupMenu формы FQuery1 выберем PopupMenu1. Щелкнем на компоненте PopupMenu1 и в его контекстном меню выберем пункт Menu Designer. Для первого элемента меню (объект N1) в свойстве Caption укажем – «Печать отчета». Напишем процедуру обработки события OnClick для этого элемента меню:

procedure TFQuery1.N1Click(Sender: TObject);

begin

RvProject1.ExecuteReport('Report2');

end;

Откроем модуль fmQuery2Unit и добавим на форму компонент RvProject1. Свойство Project File настроим на файл C:\ Sale \ RaveProject1. Затем добавим на форму компонент PopupMenu1. В свойстве PopupMenu формы FQuery2 выберем PopupMenu1. Щелкнем на компоненте PopupMenu1 и в его контекстном меню выберем пункт Menu Designer. Для первого элемента меню (объект N1) в свойстве Caption укажем – «Печать отчета». Напишем процедуру обработки события OnClick для этого элемента меню:

procedure TFQuery2.N1Click(Sender: TObject);

begin

RvProject1.ExecuteReport('Report3');

end;

 
 

Во время работы приложения отчет можно вывести на печать, в файл или просмотреть перед выводом (рис. 46).

Рис. 46. Просмотр отчета перед выводом на печать

 

Экспорт отчета в файл

Экспорт отчета в файл того или иного формата необходим, когда созданный в программе отчет требуется переслать партнеру. В окне предварительного просмотра отчета по умолчанию можно сохранить отчет только в специфичном для технологии формате NDR или в виде последовательности поступающих на принтер команд в формате PRN. Ни тот, ни другой формат нельзя считать приемлемым.

В технологии Rave Reports имеется возможность экспортировать отчет в файлы наиболее распространенных форматов HTML, PDF (для просмотра с помощью утилиты Acrobat Reader), RTF и TXT. Для реализации этой возможности нужно поместить на форму приложения (или в модуль данных) соответствующие компоненты TRvRenderXXX из вкладки Rave.После этого в окне предварительного просмотра достаточно щелкнуть на кнопке сохранения файла и выбрать нужный формат в раскрывающемся списке Тип файла.Для русскоязычных отчетов прекрасные по качеству документы дает формат HTML. Отчет, сохраненный в этом формате, можно просмотреть и напечатать с помощью стандартного браузера Windows.

 

СОЗДАНИЕ СправочнОЙ системЫ

 

Приложение должно обеспечивать доступ к справочной системе, содержащей исчерпывающую информацию о том, как работать с этим приложением.

Справочная система программ, работающих в Windows, в том числе и справочная система Delphi, представляет собой набор файлов определенной структуры, используя которые программа Winhelp, являющаяся составной частью Windows, выводит справочную информацию по запросу пользователя.

Основным элементом справочной системы являются HLP-файлы, в которых находится справочная информация. В простейшем случае справочная система программы может представлять собой один HLP-файл.

Создать справочную систему (HLP-файл) можно, например, при помощи поставляемой вместе с Delphi программы Microsoft Help Workshop. Исходным материалом для создания HLP-файла является текст справочной информации, представленный в виде RTF-файла.

Процесс создания справочной системы (HLP-файла) включает два этапа:

1. Подготовка справочной информации (создание файла документа справочной информации).

2. Преобразование файла справочной информации в файл справочной системы.

 

Последнее изменение этой страницы: 2016-08-28

lectmania.ru. Все права принадлежат авторам данных материалов. В случае нарушения авторского права напишите нам сюда...