Каким образом поменять строку коннекта для TfrxADODataBase, чтобы избежать появления сообщения об ошибке, если у пользователя строка коннекта отлична от строки коннекта, установленной разработчиком в шаблоне отчёта?
Question: Каким образом поменять строку коннекта для TfrxADODataBase, чтобы избежать появления сообщения об ошибке, если у пользователя строка коннекта отлична от строки коннекта, установленной разработчиком в шаблоне отчёта?
Answer:
Для реализации такой функциональности нужно запретить коннект при загрузке отчёта в событии TfrxReport.OnBeforeConnect var Form1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
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; |