|
|
|
|
|
Пример использования компонента RvCustomConnection в Delphi |
В данной статье я попытаюсь описать пример, использования компонента RvCustomConnection в Delphi. Данный компонент, не всегда требуется в написании программы с применением отчетов в Rave. Но есть некоторые моменты, в которых применение этого компонента необходимо. |
Delphi
5117
05.01.2010
|
|
|
Построение отчетов в Rave Reports событие OnDecodeimage |
Данное событие вызывается, когда Rave нуждается в преобразовании данных картинки в битмап для печати. Обычно это встречается в компонентах TRvRenderPrinter или TRvRenderPreview, но может также определено и в компоненте TRvSystem. |
Delphi
2813
05.01.2010
|
|
|
Построение отчетов в Rave Reports событие OnBeforePrint |
Событие OnBeforePrint возникает сразу перед началом задания на печать. Это может быть полезно для инициализации элементов не связанных с базой данных, таких как указатели записей таблици. Так же событие может быть полезным для установки элементов отчета, которые должны быть установлены перед началом (такие как размер бумаги и ориентация). |
Delphi
3372
05.01.2010
|
|
|
Построение отчетов в Rave Reports событие OnOpen |
Событие OnOpen возникает при инициализации сессии данных. В этом событие можно открыть файлы данных, инициализировать переменные или же сохранить текущее состояние данных для события OnRestore, которое возникает при закрытии сессии данных. |
Delphi
4113
05.01.2010
|
|
|
Построение отчетов в Rave Reports событие OnGetRow |
Использование события OnGetRow для получения данных. Событие OnGetRow вызывается для получения данных для текущей строки. Существует несколько методов для записи данных в специальные буферы используемые Rave. Порядок и типы записываемых полей должны быть такими же, как полученные определения полей в событии OnGetCols. |
Delphi
2996
05.01.2010
|
|
|
Динамически создаваемые псевдонимы |
Использование псевдонима для доступа к базе данных обеспечивает независимость программы от размещения данных в системе, позволяет размещать программу работы с данными и базу данных на разных дисках компьютера, в том числе и на сетевом. |
Delphi
3838
05.01.2010
|
|
|
Буферизация |
При задании операций ввода/вывода мы никак не касались типов файлов, но ведь не все устройства можно рассматривать одинаково с точки зрения стратегии буферизации. Например, для ostream, подключенного к символьной строке, требуется буферизация другого вида, нежели для ostream, подключенного к файлу. С этими проблемами можно справиться, задавая различные буферные типы для разных потоков в момент инициализации (обратите внимание на три конструктора класса ostream). Есть только один набор операций над этими буферными типами, поэтому в функциях ostream нет кода, их различающего. Однако функции, которые обрабатывают переполнение сверху и снизу, виртуальные. Этого достаточно, чтобы справляться с необходимой в данное время стратегией буферизации. Это также служит хорошим примером применения виртуальных функций для того, чтобы сделать возможной однородную обработку логически эквивалентных средств с различной реализацией. |
C++
3699
05.01.2010
|
|
|
|
|
|