Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

fast report в dll [D5, D7, IB6.x, MSSQL]


Dust ©   (2007-06-14 10:37:00) 

Есть проект на D7 с отчётом в FR 2.5 есть необходимость переработать его в dll. Отчёт на экране не отображается (молча).
Ктонибудь сталкивался с подобной проблемой? Подскажите решение.


Dust   (2007-06-14 13:15:00) [1]

2 Bless
Спасибо, именно в этом и была причина.

А вообще - не выкидывать в таких случаях исключений и возвращать True из Prepare -  чистой воды свинство и индусский код.


Bless   (2007-06-14 12:44:00) [2]


> Единственное, пожалуй, что остаётся - я гружу форму отчёта
> из файла.


А не может быть в этом все дело?

кусок
rep.LoadFromFile('1.frf');
rep.ShowReport;

поведет себя как ты и описываешь, если файла '1.frf' нет в текущейдиректории.

Если подставить в  LoadFromFile() полный путь к файлу, все остается по-прежнему?


Dust   (2007-06-14 12:27:00) [3]

нет, окно превью не показывается вообще.
(*
library dllWeeklyReport;

uses
 windows,
 OLE2 in '..\..\..\..\Source\Rtl\Win\Ole2.pas',
 SysUtils,
 Classes,
 Forms,
 Unit1 in 'Unit1.pas' {Form1},
 Unit2 in 'ConnectionDlg\Unit2.pas' {ConnectionADODlg};

function MainFunc(const Whandle : dword):BOOL; stdcall;
begin
MessageBox (0, 'Create1', 'App', MB_OK);
CoInitialize (nil);
Form1 := TForm1.CreateParented(Whandle);
// Form1.ParentWindow := Whandle;
Form1.Show();
// Result := Bool(Form1.ShowModal());
// FreeAndNil (Form1);
// CoUninitialize();
end;
{$R *.res}
exports
 MainFunc name 'MainFunc';
begin
end.
*)

program dllWeeklyReport;

uses
 Forms,
 Unit1 in 'Unit1.pas' {Form1},
 Unit2 in 'ConnectionDlg\Unit2.pas' {ConnectionADODlg};

{$R *.res}

begin
 Application.Initialize;
 Application.CreateForm(TForm1, Form1);
 Application.Run;
end.

во втором варианте, показанном выше (program dllWeeklyReport) отчёт отображается. Пробовал различные варианты - Form1 - модальная, немодальноая parenthandle =0 или окно предыдущего окна. Application.Handle = 0 или Application.Handle вызывающего проекта.
Остаётся загадкой в чём разница между проектом из Demos и моим отчётом. Единственное, пожалуй, что остаётся - я гружу форму отчёта из файла.


Сергей М.   (2007-06-14 12:02:00) [4]


> Отчёт на экране не отображается


В смысле на вызов ShowReport нет никакой видимой реакции ? Так что ли следует истолковывать это самое "молча" ? Или все-таки preview-окно показывается, но его содержимое - "белый лист" ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо