Как вытaщить отчеты в дельфях из exe-шника?

Создай новый проект - DLL - в который поместишь свой отчет. Экспортируй из этой библиотеки какую-нибудь функцию (ExecuteReport, например), которая будет запускать этот отчет. Если для доступа к базе данных нужно будет использовать соединение с сервером, установленное в EXE, передай в качестве параметра ExecuteReport ссылку на соответствующий компонент TDatabase. Проинициализируй все TBDEDataSet, расположенные в DLL (установи свойства SessionName, DatabaseName значениями соответствующих свойств TDatabase, полученной из EXE). Порядок присвоения: СНАЧАЛА SessionName, ПОТОМ DatabaseName. От вроде и все.
Можно вот еще какой хак учинить...
Сделать в DLL свой TDataBase и поставить ссылки со всех внутренних компоненов на этот. Потом параметром к процедуре запуска передать не ссылку на TDataBase а значение его поля ConnectionID или что-то в этом роде. Сейчас точно не помню (RTFM Потом это значение можно присвоить соответствующему свойству внутреннего TDataBase и все буде хорошо Проверено...
В EXE:

ExecuteReport(MyDatabase);

В DLL:

function ExecuteReport(DB : TDatabase) : integer;
var
i : integer;
BDEDS : TBDEDataSet;
begin

for i := 0 to DataModule.ComponentCount - 1 do
if DataModule.Components[i] is TBDEDataSet then begin
BDEDS := DataModule.Components[i] as TBDEDataSet;
BDEDS.SessionName := DB.SessionName;
BDEDS.DatabaseName := DB.DatabaseName;
end;

.......

end;

TopList Rambler's Top100