Поддержка Report.NET в RAD Studio 2007

Обсуждение Stimulsoft Reports.NET
Ответить
ks_adm
Сообщения: 4
Зарегистрирован: 16 сен 2008, 03:35
Откуда: KRASNODAR

Поддержка Report.NET в RAD Studio 2007

Сообщение ks_adm »

Есть ли какая-нибудь возможность подключить Report.NET сборку к Delphi.NET? Дело в том, что в отличие от предыдей Studio 2006, 2007-ая не поддерживает WinForms и получить визуальные компоненты Report.Net не представляется возможным.простой установкой в Net.Framework 2. Можно как нибудь их установить в панель визуальных компонентов или как создать динамически на форме VCL для NET Report.Design и подключение к базе данных, желательно пояснить кодом?

Спасибо.
Edward
Сообщения: 930
Зарегистрирован: 09 июн 2006, 12:23

Поддержка Report.NET в RAD Studio 2007

Сообщение Edward »

Здравствуйте.

Совсем необязательно располагать компонент StiReport на форме для обеспечения его работы.

простейшие команды позволят вызывать просмотр и редактирование отчета, чего в большинстве случаев будет достаточно:

Код: Выделить всё

StiReport report = new StiReport();
report.Load("reportTemplate.mrt");
report.Design();
report.Show();
Спасибо.
ks_adm
Сообщения: 4
Зарегистрирован: 16 сен 2008, 03:35
Откуда: KRASNODAR

Поддержка Report.NET в RAD Studio 2007

Сообщение ks_adm »

Спасибо, Эдвард!

Я понимаю, что ваш продукт для VS, а не для CodeGear RAD Studio и, похоже, проблема связана с последней. Я пробовал тестировать Report.NET под BDS 2006 (Net.Framework 1.1.), там поддерживаюся WinForms и обнаружил странную вещь: на С# на WinForms приложении всё строится на ура. На Delphi.Net на таком же приложении вылетают странные ошибки при компиляции, не находятся ADODB.dll, все сборки вашего продукта, какие-то вообще непонятные библиотеки m.dll, VisualBasic.dll и так далее, хотя в режиме дизайнера все работает нормально и можно строить шаблон отчета. В Rad Studio 2007 WinForms приложения не поддерживаются и нет C#, единственное, что есть для NET - это фирменная обертка вокруг Net.Framework 2 разработчика для Delphi.Net и, понятно, что подключить визуальные компоненты не получается. Если просто подключить namespace в секции use и, соответственно, создать рефренс на Stimulsoft.Report.dll, то написав код на Delphi, аналогичный вашему, получаю добро компилятора
procedure TForm1.Button1Click(Sender: TObject);
var Rep:StiReport;
begin
Rep.load('rep.mrt');
Rep.Design;
Rep.Show;
end;
Приложение запускается, но при нажатии командной кнопки сообщение:
Object reference not set to an instance of an object
Т.е. нет базовых проинициализированных свойств, которые по умолчанию установлены в object inspector (в VS они называются Properties). Какие свойства нужно проинициализировать, и какие значения им присвоить по умолчанию?

Подскажите, пожалуйста, кто знает.

Спасибо заранее.
Vital
Сообщения: 647
Зарегистрирован: 09 июн 2006, 12:23

Поддержка Report.NET в RAD Studio 2007

Сообщение Vital »

ks_adm писал(а):Здравствуйте,
procedure TForm1.Button1Click(Sender: TObject);
var Rep:StiReport;
begin
Rep.load('rep.mrt');
Rep.Design;
Rep.Show;
end;

А где создается объект отчета? На какой строке происходит ошибка?

Спасибо.
ks_adm
Сообщения: 4
Зарегистрирован: 16 сен 2008, 03:35
Откуда: KRASNODAR

Поддержка Report.NET в RAD Studio 2007

Сообщение ks_adm »

В режиме компиляции/сборки ошибок нет. При нажатии на кнопку создается переменная Rep с типом stiReport. Пока всё нормально. Далее любая строка Rep.Show либо Rep.Design приводит к вышеотмеченному сообщению. Похоже, что на C# строка StiReport report = new stiReport() еще и инициализирует объект, а на Delphi var Rep:stiReport похоже только создает переменную тира stiReport и не инициализирует, не знаю почему. В компиляторе при компиляции появляется сообщение, что Rep должна быть инициализирована, но не критичное, просто предупреждение. Но в режиме рантайм оно похоже становится критичным при вызове метода on_click
Edward
Сообщения: 930
Зарегистрирован: 09 июн 2006, 12:23

Поддержка Report.NET в RAD Studio 2007

Сообщение Edward »

Да, безусловно необходимо явно вызвать инициализацию переменной.

В C# это Stimulsoft.Report.StiReport report = new Stimulsoft.Report.stiReport().

Каким - то образом нужно вызвать этот конструктор и для переменной Rep.

Спасибо.
ks_adm
Сообщения: 4
Зарегистрирован: 16 сен 2008, 03:35
Откуда: KRASNODAR

Поддержка Report.NET в RAD Studio 2007

Сообщение ks_adm »

Начало положено!
procedure TForm1.Button1Click(Sender: TObject);
var Rep:stiReport;
begin
Rep:= stiReport.Create; //инициализация
Rep.Load('test.mrt');
Rep.Design;
Rep.Show;
end;
Всем спасибо.
Ответить