Как программно подключить Fastreport к данным в Embarcadero Rad Studio
Задача:
1. Создать подключение к серверу.
2. Подключить ОТЧЁТ к источнику данных.
var
cnn : System.Data.Odbc.OdbcConnection;
begin
cnn := new System.Data.Odbc.OdbcConnection(cnnStr); // cnnStr - строка подключения
Накувыркался до посинения с WebReport1.Report.RegisterData(ds, 'ds');
В отчёте WebReport1 источник данных не инициализирован.
Хотелось бы увидеть рабочий кусок кода...
В дизайн-тайме всё работает...
В дизайн-тайме пробовал создать SqlDataSource и подключить к нему отчёт, - всё работает...
НО КАК ЭТО ОСУЩЕСТВИТЬ ПРОГРАММНО???
var
sds : System.Web.UI.WebControls.SqlDataSource;
begin
sds := new System.Web.UI.WebControls.SqlDataSource('{SQL Server}', cnnStr, 'select * from division');
ДАЛЬШЕ КАК ЗАРЕГИСТРИРОВАТЬ ИСТОЧНИК ДАННЫХ - ПОЛНЫЙ ВАКУУМ...
1. Создать подключение к серверу.
2. Подключить ОТЧЁТ к источнику данных.
var
cnn : System.Data.Odbc.OdbcConnection;
begin
cnn := new System.Data.Odbc.OdbcConnection(cnnStr); // cnnStr - строка подключения
Накувыркался до посинения с WebReport1.Report.RegisterData(ds, 'ds');
В отчёте WebReport1 источник данных не инициализирован.
Хотелось бы увидеть рабочий кусок кода...
В дизайн-тайме всё работает...
В дизайн-тайме пробовал создать SqlDataSource и подключить к нему отчёт, - всё работает...
НО КАК ЭТО ОСУЩЕСТВИТЬ ПРОГРАММНО???
var
sds : System.Web.UI.WebControls.SqlDataSource;
begin
sds := new System.Web.UI.WebControls.SqlDataSource('{SQL Server}', cnnStr, 'select * from division');
ДАЛЬШЕ КАК ЗАРЕГИСТРИРОВАТЬ ИСТОЧНИК ДАННЫХ - ПОЛНЫЙ ВАКУУМ...
Комментарии
Заработало так:
var
sc : System.Data.SqlClient.SqlConnection;
da : System.Data.SqlClient.SqlDataAdapter;//SqlDataAdapter;
ds : DataSet;
begin
sc := new System.Data.SqlClient.SqlConnection('строка подключения');
sc.Open;
da := new System.Data.SqlClient.SqlDataAdapter('select * from division',sc);
ds := new DataSet('ds');
da.Fill(ds);
TestFR.Report.RegisterData(ds);
ВАРИАНТ 1:
var
sc : System.Data.SqlClient.SqlConnection;
da : System.Data.SqlClient.SqlDataAdapter;
ds : DataSet;
begin
sc := new System.Data.SqlClient.SqlConnection('Server=имя сервера;Database=имя БД;Uid=user;Pwd=пароль;');
sc.Open;
da := new System.Data.SqlClient.SqlDataAdapter('select * from division', sc);
ds := new DataSet('division');
da.Fill(ds);
TestFR.Report.RegisterData(ds.Tables[0], 'division');
TestFR.Report.GetDataSource('division').Enabled := true;
ВАРИАНТ 2:
var
sc : System.Data.SqlClient.SqlConnection;
da : System.Data.SqlClient.SqlDataAdapter;
dt : DataTable;
begin
sc := new System.Data.SqlClient.SqlConnection('Server=имя сервера;Database=имя БД;Uid=user;Pwd=пароль;');
sc.Open;
da := new System.Data.SqlClient.SqlDataAdapter('select * from division', sc);
dt := new DataTable('division');
da.Fill(dt);
TestFR.Report.RegisterData(dt, 'division');
TestFR.Report.GetDataSource('division').Enabled := true;