Создание нового отчета с помощью кода

Оценить
(0 голоса)

Чтобы создать новый отчет с помощью кода, необходимо выполнить те же действия, что и для создания отчета в интерактивном режиме во включенном в RDC конструкторе ActiveX или в автономной копии Crystal Reports:

1.   Создайте новый отчет.

2.   Выберите таблицы базы данных и, если необходимо, свяжите их.

3.   Добавьте поля, текстовые объекты, растровые изображения и другие объекты в различные разделы отчета.

4.   Добавьте все необходимые группы.

5.   Добавьте промежуточные и итоговые суммы.

6.   Отформатируйте объекты так, как вам нравится.

7.   Отобразите отчет в Report Viewer, распечатайте его на принтере или сохраните его как внешний файл .RPT.

Для выполнения каждого из этих действий объектная модель RDC предлагает соответствующие методы и свойства. Сначала вы должны добавить в свое приложение библиотеку RDC Report Creation. Для этого выберите в меню Project пункт References и установите отметку рядом с элементом Crystal Reports ActiveX Designer Design and Run-Time Library 11.0 (CRAXDDRT.DLL). И, если вы будете просматривать готовый отчет в Report Viewer, добавьте в свое приложение также и библиотеку Crystal ActiveX Report Viewer Library 11.0, выбрав в меню Project пункт Components и установив отметку рядом с соответствующим элементом.

Совет. Пример приложения Report Creation API можно найти на Web-сайте издательства. Код, приводимый далее в этой главе в качестве примера, был взят именно из этого приложения.

Далее объявите объекты Application и Report точно так же, как делали бы это для приложений; которые используют существующие внешние файлы .RPT. Взгляните на следующий фрагмент кода:

Public Application As New CRAXDDRT.Application Public Report As CRAXDDRT.Report

Обратите внимание на ссылки на комбинированную библиотеку времени проектирования/времени выполнения (CRAXDDRT). Это не что иное, как подготовка к использованию компонента Embeddable Report Designer (который более подробно будет описываться чуть позже в этой главе). Если вы не планируете использовать этот компонент, и будете создавать весь свой отчет в коде, можете указать только библиотеку времени выполнения — CRAXDRT. DLL.

Первое новое действие — это присвоение объекта переменной объекта Report. Ранее вы либо присваивали этой переменной существующий объект конструктора ActiveX, либо использовали метод OpenReport объекта Application для присвоения внешнего файла .RPT. Теперь, однако, вы будете создавать новый отчет “с нуля”. Для выполнения этой задачи объект Application предоставляет метод NewReport:

' Создание нового пустого отчета Set Report = Application.NewReport

Как и при создании нового отчета “с нуля” в конструкторе ActiveX или Crystal Reports, вы должны выбрать для отчета метод доступа к данным (соединение с данными) и таблицы базы данных. В Report Creation API (RCAPI) это подразумевает выполнение тех же самых действий. Следующий фрагмент кода иллюстрирует, как объекту Report назначается соединение ADO с использованием таблицы Orders из источника данных ODBC Xtreme Sample Database. Строка соединения ADO устанавливает это соединение (предполагается, что В проект была добавлена библиотека Microsoft ActiveX Data Objects, и что объекты ADOConnection и ADOCommand уже были объявлены ранее, в разделе Declarations):

' Установка соединения с данными

Set ADOConnection = New ADODB.Connection

ADOConnection.Open "Provider=MSDASQL;Persist Security Info=False;

Data Source=Xtreme Sample Database 11;Mode=Read"

' Создание нового экземпляра объекта команды ADO Set ADOCommand = New ADODB.Command Set ADOCommand.ActiveConnection = ADOConnection ADOCommand.CommandText = "Orders"

ADOCommand.CommandType = adCmdTable

' добавление в отчет источника данных(таблицы XTREME Orders Table)

Report.Database.AddADOCommand ADOConnection, ADOCommand

На заметку! Колонка данной книги не позволяет представить аргумент метода ADOConnection. Орел, не разбивая его на части. Обратите внимание на то, что в фактическом приложении строка аргумента для метода Open представлена в виде одной целой строки.

На данный момент у вас имеется начало отчета, а именно — присвоенный переменной объект Report и соединение с данными. Если бы вы сейчас открыли этот отчет в конструкторе Crystal Reports или передали объект Report в конструктор Embeddable Report Designer, то обнаружили бы пустой отчет, но окно проводника Field Explorer было бы заполнено полями из таблицы Orders базы данных Xtreme Sample Database. Вы затем смогли бы перетащить нужные поля в различные разделы отчета. Далее Report Creation API требует добавить в разделы отчета объекты. Взгляните на следующий фрагмент кода, взятые ий приложения-примера RDC Report Creation API:

Report.Sections(1).AddTextObject "FedEx Order Detail", 6000, 400

Эта строка кода добавляет в раздел заголовка отчета, в точке 6000/400, текстовый объект, содержащий текст “FedEx Order Detail”. Данный код использует методы, расположенные на несколько уровней ниже в иерархии объектов RDC. Метод AddTextOb j ect доступен ниже отдельного объекта Section в коллекции Sections (в данном случае это первый элемент в коллекции Sections) под объектом Report.

Форматирование заголовка
Сохранение отчета
Использование конструктора Embeddable Report Designer
Обзор распространения
Вопросы, касающиеся баз данных

Добавить комментарий


Защитный код
Обновить