В данной статье я попытаюсь описать пример, использования компонента RvCustomConnection в Delphi. Данный компонент, не всегда требуется в написании программы с применением отчетов в Rave. Но есть некоторые моменты, в которых применение этого компонента необходимо.Например. Есть некая форма отчета (шаблон), в которой основное содержание или данные, содержится в некой базе, но необходимы поля которые не требуется описывать в базе, и обязательны к выводу на печать. По сути, компонент RvCustomConnection присоединяет пользовательские данные, сгенерированные через события. Именно эти события описывает данная статья. Итак. Первым делом нам необходимо разместить все необходимые компоненты. А именно. RvProject. Ключевой компонент, осуществляющий доступ к визуальным отчетам, созданным с помощью Rave. RvSystem. Включает в себя стандартный принтер и предварительный просмотр. RvCustomConnection. Подсоединяет пользовательские данные (сгенерированные через события) к DirectDataViews, созданные с помощью визуального редактора Rave. Разместим два текстовых поля и одну кнопку на форме нашего приложения. (Edit1, Edit2, Button1). Далее нам нужно описать события (OnOpen, OnGetCols, OnGetRow); OnOpen. В этом событие мы определим количество необходимых полей. В нашем случае будет два поля. Code procedure TVSForm1.RvCustomConnectionOpen(Connection: TRvCustomConnection); begin Connection.DataRows:=2; end; OnGetCols. В этом событие, создаем поля (Text1, Text2) и определяем их параметры. Code procedure TForm1.RvCustomConnectionGetCols(Connection: TRvCustomConnection); begin Connection.WriteField('Text1',dtString,10,' Text1',''); Connection.WriteField('Text2',dtString,10,' Text2',''); end; OnGetRow. В данном событии передаем значения компонентов (Edit1, Edit2) в созданные поля. Данные Edit1 записываем в поле Text1, Edit2 в Text2 соответственно. Code procedure TForm1.RvCustomConnectionGetRow(Connection: TRvCustomConnection); begin Connection.WriteStrData('', Edit1.Text); Connection.WriteStrData('', Edit2.Text); end; В событии Button1Click кнопки Button1 следующий код: Code procedure TForm1.Button1Click(Sender: TObject); begin RvProject1.Execute; end; Далее запускаем визуальный редактор Rave двойным нажатием на компонент RvProject. Но перед тем, как что либо сделать в редакторе Rave, нам необходимо запустить наше приложение. Тем самым описанные события, сгенерируют поля, и они будут видны в редакторе. Теперь в самом редакторе, размещаем поля данных. Их у нас два. Для того, чтобы связать их с нашими данными нам необходимо создать связь с RvCustomConnection. См. рис. После этого. В менеджере проекта, должно появится следующие данные: см. рис. Далее сопоставим наши поля с данными, определив в параметрах полей значения DataField и DataView: Если все сделано верно, то результат должен получится как на рисунке ниже. |