Страница 1 из 1

SubReports

Добавлено: 22 янв 2008, 08:38
TVV
Здравствуйте
Ещё раз спасибо за отличный продукт!

Вопросик.

Объясните, пожалуйста, или скажите, где прочитать о :
- наследовании отчётов
- динамической настройке сабрепортов(те, можно-ли как-то разделять один субрепорт между несколькими репортами

интересует, возможно ли это вообще, плюс, если таки возможно, то какие-нибудь примеры

используем версию 2006.4
пока было достаточно, ошибки не критичны, вот и не обновлялись ;)

спасибо

SubReports

Добавлено: 22 янв 2008, 12:37
Edward
TVV писал(а):Здравствуйте
Ещё раз спасибо за отличный продукт!
спасибо за хорошие слова!
- наследовании отчётов
Описание работы с наследуемыми отчетами смотрите, пожалуйста, здесь:

http://forum.stimulsoft.com/Default.aspx?g=posts&t=316
[/quote]- динамической настройке сабрепортов(те, можно-ли как-то разделять один субрепорт между несколькими репортами[/quote]

Да, это возможно. Вы создаете отдельный отчет и используете его далее как подчиненный в коллекции SubReports основного отчета. Это получается как-бы составной отчет из абсолютно независимых отчетов.

Внешний SubRеport также может быть использован "многократно", т.е. как обычный отчет. Подробнее об этой функции, читайте здесь:

http://forum.stimulsoft.com/Default.aspx?g=posts&t=930


Если какие-то вопросы еще останутся после прочтения топиков, дайте знать, я вышлю Вам примеры использования этих возможностей.

Спасибо.

SubReports

Добавлено: 23 янв 2008, 04:48
TVV
Спасибо.
Изучаем :)

SubReports

Добавлено: 23 янв 2008, 06:42
TVV
Похоже, у нас таки очень старая версия :)

Reports.Report master = new Reports.Report();
master.RegData(dataSet);
master.Design();

StiReport.ReportType = typeof(Reports.Report);

Посмотрев на пример, я понял это так

StiReport report = new StiReport();
report.Load(edMainReport.Text);
report.Compile();

StiReport.ReportType = report.CompiledReport.GetType();

StiReport reportInherited = new StiReport();
reportInherited.Design(true);

не работает :(
отчёт стандартный, наследник Reports.Report

я попробовал второй вариант

...
report.MasterReport = masterReport.SaveToString();

и обнаружил, что у нас нету св-ва MasterReport...

напомню, версия 2006.4

-------------------------------
Сабрепорты

Я так понимаю, Subreports.Add позволяет добавить сабрепорты, которые будут печататься после основного
один за другим

у нас другая задача

сотня другая отчётом с одинаковыми pageheader-ами и pagefooter-ами
в хедере и футере может быть что угодно - тексты, картинки и т.д.
мне кажется, нам нужно именно наследование

если необходимо перейти на свежую версию, подскажите на какую?
нам нужна максимальная стабильность, скорость и ... наследование? :)


SubReports

Добавлено: 23 янв 2008, 08:18
TVV
В версии 2007.2

вариант с

report.MasterReport = masterReport.SaveToString();

работает.

StiReport.ReportType = report.CompiledReport.GetType(); - не работает. Видимо я что-то делаю не так :(

SubReports

Добавлено: 25 янв 2008, 15:06
Vital
в версии 2007.2

вариант с

report.MasterReport = masterReport.SaveToString();

работает.
Эта строка задает мастер отчет у указанного отчета, но если Вы создадите новый отчет в дизайнере он уже не будет использовать наследование.
StiReport.ReportType = report.CompiledReport.GetType(); - не работает. Видимо я что-то делаю не так :(
А эта строка как раз и заставляет дизайнер отчетов создавать нужный тип отчета (отчет должен быть сохранен для наследования).

Спасибо.