Как программно подключить Fastreport к данным в Embarcadero Rad Studio

отредактировано 00:37 Раздел: FastReport .NET
Задача:

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');

ДАЛЬШЕ КАК ЗАРЕГИСТРИРОВАТЬ ИСТОЧНИК ДАННЫХ - ПОЛНЫЙ ВАКУУМ... :)

Комментарии

  • отредактировано 00:37
    Спасибо за быстрый ответ :) дорыл сам...

    Заработало так:

    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);
  • отредактировано 00:37
    Если кому интересно, программно работает в двух вариантах (Embarcadero Rad Studio):

    ВАРИАНТ 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;

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.