Каким образом поменять строку коннекта для TfrxADODataBase, чтобы избежать появления сообщения об ошибке, если у пользователя строка коннекта отлична от строки коннекта, установленной разработчиком в шаблоне отчёта?

Question: Каким образом поменять строку коннекта для TfrxADODataBase, чтобы избежать появления сообщения об ошибке, если у пользователя строка коннекта отлична от строки коннекта, установленной разработчиком в шаблоне отчёта?

Answer:

Для реализации такой функциональности нужно запретить коннект при загрузке отчёта в событии TfrxReport.OnBeforeConnect

var Form1: TForm1; Connect: Boolean; 
implementation

{$R *.dfm}

procedure
TForm1.FormCreate(Sender: TObject);
begin

Connect:=False;
frxReport1.LoadFromFile('C:\test.fr3');
Connect:=True;
TfrxADODataBase(frxReport1.FindObject('ADODatabase1')).Connected := False;
TfrxADODataBase(frxReport1.FindObject('ADODatabase1')).DatabaseName := 'Provider=Microsoft.Jet.OLEDB.4.0; User ID=Admin; Data Source=C:\Program Files\FastReports\FastReport 4\Demos\Main\demo.mdb';
TfrxADODataBase(frxReport1.FindObject('ADODatabase1')).Connected := True;
frxReport1.ShowReport();
end
;
procedure
TForm1.frxReport1BeforeConnect(Sender: TfrxCustomDatabase; var Connected: Boolean);
begin
if
not Connect then
Connected:=False;
end;