Конвертер из Rave

Как вы знаете, Embarcadero RAD Studio XE2 идёт вместе со специальной RAD версией FR VCL. Многие спрашивали нас: возможно ли конвертировать Rave отчёты (.rav файлы) в Fast отчёты (.fr3 файлы)? Это возможно, так как для этой цели был разработан конвертер.
Как конвертировать .rav файл

С точки зрения пользователя, для конвертирования .rav файла не нужно предпринимать никаких особых действий: нужно лишь нажать File > Open в меню дизайнера и выбрать .rav файл. Если вы разработчик и хотите узнать как добавить возможность импорта .rav файлов, то посмотрите этот код:

program RaveImport;

uses
frxClass,
frxDesgn,
ConverterRR2FR;

begin
TfrxReport.Create(nil).DesignReport;
end.

Как только эта программа будет запущена, появится дизайнер отчётов и диалог File > Open предложит выбрать .rav файлы наравне с .fr3 файлами. Заметьте, что для компиляции этой программы, вам нужно установить Rave или, хотя бы, сделать его .pas или .dcu файлы доступными для компилятора.

Какие Rave отчёты можно конвертировать

Конвертер поддерживает большинство компонентов которые могут появиться в Rave отчёте, включая соединения с базами данных. Те Rave компоненты которые не имеют прямых аналогов в FastReports, преобразуются в компоненты с наиболее сходным поведением. Ниже пример сложного Rave отчёта преобразованного в .fr3 файл:

Процесс импортирования

Когда вы нажимаете пункт меню File > Open и выбираете .rav файл, конвертер сперва проверяет сколько отчётов внутри этого файла. Если внутри несколько отчётов, а Rave позволяет хранить много отчётов в одном файле, то каждый отчёт будет конвертирован в отдельный .fr3 файл и конвертер предложит выбрать папку куда будут сохранены все эти .fr3 файлы:

После этого конвертер начинает обработку каждого отчёта и во время этого этапа, который может быть весьма долгим для больших .rav файлов с многочисленными отчётами внутри, появится вот такой прогресс-бар:

Как только все отчёты будут конвертированы, последний из них откроется в дизайнере:

Замечания

Некоторые старые версии Rave имеют определённые проблемы с загрузкой больших SQL запросов, которые могут привести к повреждению памяти и непредсказуемому поведению ковертора. Чтобы избежать этого, конвертер имеет свойство LoadQueries которое можно отключить, чтобы все SQL запросы были пропущены при конвертировании. Однако если конвертер скомпилирован с новым Rave, то таких проблем возникать не должно.

Ссылки

Эта тема обсуждается на нашем форуме вот здесь. Там вы сможете найти тестовую программу которая конвертирует .rav файлы. Оригинальная статья

Leave a comment