Передача значений полей параметров

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

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

Поскольку вы можете управлять как выбором записей отчета, так и формулами отчета во время выполнения из самого VB-приложения, особой необходимости использовать поля параметров с интегрированным отчетом нет, в отличии от ситуации, когда речь идет об автономном отчете, созданном с помощью обычного пакета Crystal Reports. Однако если вы используете RDC для предоставления внешнего файла .RPT другим пользователям Crystal Reports, не имеющим доступа к вашему специализированному приложению, тогда вам может понадобиться определить значения полей параметров в своем коде.

В этой ситуации, чтобы поработать с параметрами, используйте коллекцию Paramet erFieldDef initions объекта Report. Как и в случае с формулами, эта коллекция содержит объекты ParameterFieldDef inition, по одному для каждого определенного в отчете поля параметра. Так же, как и в случае с формулами, соответствующие члены коллекции можно найти по индексам: их нумерация начинается с единицы и соответствует порядку, в котором поля параметров добавлялись в отчет. Извлечь поле параметра, указав в качестве индекса его имя, нельзя (если только вы не используете циклы или метод GetltemByName, о которых мы рассказывали ранее в этой главе, когда говорили о полях формул).

RDC предлагает для определения передаваемого отчету значения поля параметра использовать метод AddCurrentValue объекта ParameterFieldDef inition. Этот метод передает полю параметра отчета одно значение. Поскольку отчет может содержать поля параметров, предполагающие ввод нескольких значений, вы можете выполнять метод AddCurrentValue (например, в цикле, отыскивающем в элементе управления типа списка указанные значения) столько раз, сколько нужно, чтобы заполнить это поле параметра значениями.

Хотя в отчете, включенном в пример приложения (который доступен на сайте издательства), для изменения цвета раздела подробностей используется прямое форматирование, применяемое во время события Format (о котором более подробно будет рассказываться чуть позже в этой главе), он все равно является примером отчета, в котором могло бы присутствовать поле параметра. Если бы в нем применялось условное форматирование, следующий код прекрасно подошел бы для передачи значения в поле параметра:

' Определение значения параметра

' Альтернативный метод - отформатировать раздел подробностей

' в Visual Basic

If txtHighlight = "" Then Report.ParameterFields(1).AddCurrentValue (0)

Else

Report.ParameterFields(1).AddCurrentValue (Val(txtHighlight))

End If 'txtHighlight = ""

Здесь если текстовое поле не содержит данных, параметру присваивается значение 0. Это следует учитывать, поскольку поле параметра в отчете имеет числовой формат. Если в это поле передать пустую строку, то во время работы отчета может возникнуть ошибка времени выполнения. Кроме того, поскольку метод AddCurrentValue выполняется как минимум один раз, и в поле параметра передается значение, то во время выполнения отчета пользователь больше не сможет ввести значение.

Совет. Объектная модель RDC поддерживает все функциональные возможности полей параметров Crystal Reports, такие как значения диапазонов, множественные значения и маски редактирования. В оперативной справочной системе для разработчика отыщите раздел “ParameterFieldDefinition Object” (“Объект ParameterFieldDef inition”). Там вы найдете подробное описание данного объекта, а также описание доступных для работы с полями параметров методов.

Работа с группами отчета
Условное форматирование и форматирование разделов
Событие Format
Выбор пункта назначения вывода
Изменение источника данных во время выполнения

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


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