Problem with layout of rendered subreports
Problem with layout of rendered subreports
Здравствуйте. Возникли следующие проблемы. Есть репорт-контейнер, внутри которого строятся сабрепорты. Сабрепорт включает в себя HeaderBand, DataBand и ReportSummaryBand. HeaderBand выводится на каждой странице, ReportSummaryBand выводится внизу страницы. Если DataBand сабрепорта содержит много данных и сабрепорт разбивается на несколько страниц, то
1. ReportSummaryBand печатается внизу первой страницы сабрепорта (должен на последней);
2. DataBand наезжает и перекрывает ReportSummaryBand;
3. HeaderBand выводится только на первой странице сабрепорта (должен на каждой).
Если выводить сабрепорт как самостоятельный репорт, а не внутри контейнера, то все строится правильно.
Проблема воспроизводится на последней пререлиз версии от 2012.08.07.
Я приатачил следующие файлы:
MainReport.mrt - репорт-контейнер;
SubReport.mrt - сабрепорт;
SubReportBatchResult_Incorrect.pdf - результат генерации 5 сабрепортов внутри репорта-контейнера;
SubReportSingleResult_Correct.pdf - результат генерации отдельного сабрепорта, как самостоятельного репорта, НЕ внутри репорта-контейнера.
Помогите, пожалуйста, решить эту проблему.
1. ReportSummaryBand печатается внизу первой страницы сабрепорта (должен на последней);
2. DataBand наезжает и перекрывает ReportSummaryBand;
3. HeaderBand выводится только на первой странице сабрепорта (должен на каждой).
Если выводить сабрепорт как самостоятельный репорт, а не внутри контейнера, то все строится правильно.
Проблема воспроизводится на последней пререлиз версии от 2012.08.07.
Я приатачил следующие файлы:
MainReport.mrt - репорт-контейнер;
SubReport.mrt - сабрепорт;
SubReportBatchResult_Incorrect.pdf - результат генерации 5 сабрепортов внутри репорта-контейнера;
SubReportSingleResult_Correct.pdf - результат генерации отдельного сабрепорта, как самостоятельного репорта, НЕ внутри репорта-контейнера.
Помогите, пожалуйста, решить эту проблему.
- Attachments
-
- MainReport.mrt
- Репорт-контейнер
- (4.36 KiB) Downloaded 220 times
-
- SubReport.mrt
- Сабрепорт
- (8.12 KiB) Downloaded 374 times
-
- SubReportBatchResult_Incorrect.pdf
- Результат генерации 5 сабрепортов внутри репорта-контейнера
- (68.64 KiB) Downloaded 291 times
-
- SubReportSingleResult_Correct.pdf
- Результат генерации отдельного сабрепорта, как самостоятельного репорта, НЕ внутри репорта-контейнера
- (52.78 KiB) Downloaded 253 times
Re: Problem with layout of rendered subreports
Здравствуйте.
Мы не смогли воспроизвести проблему без тестовых данных.
Попробуйте перестроить ваш отчёт и уйти от использования сабрепортов.
Спасибо.
Мы не смогли воспроизвести проблему без тестовых данных.
Попробуйте перестроить ваш отчёт и уйти от использования сабрепортов.
Спасибо.
Re: Problem with layout of rendered subreports
Здравствуйте.
Ниже приведен пример кода для заполнения репортов тестовыми данными.
Метод Incorrect_SubReportBatch_Button_Click строит 5 сабрепортов внутри репорта-контейнера (результат работы можно было видеть в файле SubReportBatchResult_Incorrect.pdf, приатаченном в предыдущем сообщении).
Метод Correct_SubReportSingle_Button_Click строит сабрепорт как самостоятельный репорт, НЕ внутри репорта-контейнера (результат - SubReportSingleResult_Correct.pdf).
Возможность редактирования отдельных репортов, и последующее их объединение в один общий репорт в качестве сабрепортов очень важны для нас. Наличие этого функционала повлияло на наш выбор в пользу вашего продукта. И, наверное, немного неправильно рекомендовать отказаться от использования функционала, который присутствует в продукте и должен работать.
Спасибо. Рассчитываем на вашу помощь.
Ниже приведен пример кода для заполнения репортов тестовыми данными.
Метод Incorrect_SubReportBatch_Button_Click строит 5 сабрепортов внутри репорта-контейнера (результат работы можно было видеть в файле SubReportBatchResult_Incorrect.pdf, приатаченном в предыдущем сообщении).
Метод Correct_SubReportSingle_Button_Click строит сабрепорт как самостоятельный репорт, НЕ внутри репорта-контейнера (результат - SubReportSingleResult_Correct.pdf).
Code: Select all
private void Incorrect_SubReportBatch_Button_Click(object sender, EventArgs e)
{
var mainReport = new StiReport();
mainReport.Load(@"Reports/MainReport.mrt");
var mainTable = CreateMainDataTable();
mainReport.RegData("MainDS", "MainDS", mainTable);
mainReport.GetSubReport += mainReport_GetSubReport;
mainReport.Show();
}
private void Correct_SubReportSingle_Button_Click(object sender, EventArgs e)
{
var testReport = new StiReport();
testReport.Load(@"Reports\SubReport.mrt");
var testTable = CreateSampleDataTable();
testReport.RegData("TestDS", "TestDS", testTable);
testReport.Show();
}
private void mainReport_GetSubReport(object sender, StiGetSubReportEventArgs e)
{
var subReport = new StiReport();
subReport.Load(@"Reports/SubReport.mrt");
var subTable = CreateSampleDataTable();
subReport.RegData("SubDS", "SubDS", subTable);
e.Report = subReport;
}
private static DataTable CreateMainDataTable()
{
var dataTable = new DataTable();
dataTable.Columns.Add("Column", typeof(int));
for (var i = 0; i < 5; i++)
{
var row = dataTable.NewRow();
row["Column"] = i;
dataTable.Rows.Add(row);
}
return dataTable;
}
private static DataTable CreateSampleDataTable()
{
var dataTable = new DataTable();
dataTable.Columns.Add("Column1", typeof(string));
dataTable.Columns.Add("Column2", typeof(int));
for (var i = 0; i < 70; i++)
{
var row = dataTable.NewRow();
row["Column1"] = "a" + i;
row["Column2"] = i;
dataTable.Rows.Add(row);
}
return dataTable;
}
Спасибо. Рассчитываем на вашу помощь.
Re: Problem with layout of rendered subreports
Здравствуйте.
Для внутренних подотчетов недавно была сделана доработка, и теперь заголовки выводятся корректно.
Для внешних подотчетов, к сожалению, нет простого решения проблемы. Но конкретно для вашего случая (когда на странице только один подотчет) можно включить следующее статическое свойство (будет доступно в следующем предрелизном билде):
Движок нашего продукта оптимизирован для работы с отчетами, в которых все бэнды расположены на основной странице. При этом достигается большой прирост скорости построения отчетов - от нескольких раз до десятков раз. Поэтому мы и советуем делать отчеты по возможности проще.
Спасибо.
Исправлено. Патч будет включен в следующий предрелизный билд.Alexey wrote:1. ReportSummaryBand печатается внизу первой страницы сабрепорта (должен на последней);
2. DataBand наезжает и перекрывает ReportSummaryBand;
По умолчанию все подотчеты строятся на страницах бесконечной высоты, поэтому все заголовки/подвалы выводятся только один раз.Alexey wrote:3. HeaderBand выводится только на первой странице сабрепорта (должен на каждой).
Для внутренних подотчетов недавно была сделана доработка, и теперь заголовки выводятся корректно.
Для внешних подотчетов, к сожалению, нет простого решения проблемы. Но конкретно для вашего случая (когда на странице только один подотчет) можно включить следующее статическое свойство (будет доступно в следующем предрелизном билде):
Code: Select all
StiOptions.Engine.RenderExternalSubReportsWithHelpOfUnlimitedHeightPages = false;
Подотчеты, как и вложенные контейнеры - это сложный функциональный элемент, а чем сложнее элементы, тем они медленнее работают и могут содержать большее количество багов.Alexey wrote:Возможность редактирования отдельных репортов, и последующее их объединение в один общий репорт в качестве сабрепортов очень важны для нас. Наличие этого функционала повлияло на наш выбор в пользу вашего продукта. И, наверное, немного неправильно рекомендовать отказаться от использования функционала, который присутствует в продукте и должен работать.
Движок нашего продукта оптимизирован для работы с отчетами, в которых все бэнды расположены на основной странице. При этом достигается большой прирост скорости построения отчетов - от нескольких раз до десятков раз. Поэтому мы и советуем делать отчеты по возможности проще.
Спасибо.
Re: Problem with layout of rendered subreports
Спасибо за подробные объяснения и исправления.
Re: Problem with layout of rendered subreports
Здравствуйте.
Мы всегда рады помочь. Обращайтесь, если возникнут ещё вопросы.
Спасибо.
Мы всегда рады помочь. Обращайтесь, если возникнут ещё вопросы.
Спасибо.
Re: Problem with layout of rendered subreports
Здравствуйте.
Сейчас работаю с версией от 2012.08.16. В ней описанные выше проблемы были решены. Спасибо большое!
Возник еще один вопрос. Ситуация та же: происходит генерация репорта, включающего в себя внешние сабрепорты. В сабрепорте у элемента Page задана граница. При построении сабрепортов внутри репорта-контейнера эта граница вокруг сабрепорта отсутствует. Если выводить сабрепорт как самостоятельный репорт, а не внутри контейнера, то граница есть.
Я приатачил файлы с репортами и результатами генерации. Ниже код для построения репортов. Посмотрите, пожалуйста, в чем там может быть дело.
Сейчас работаю с версией от 2012.08.16. В ней описанные выше проблемы были решены. Спасибо большое!
Возник еще один вопрос. Ситуация та же: происходит генерация репорта, включающего в себя внешние сабрепорты. В сабрепорте у элемента Page задана граница. При построении сабрепортов внутри репорта-контейнера эта граница вокруг сабрепорта отсутствует. Если выводить сабрепорт как самостоятельный репорт, а не внутри контейнера, то граница есть.
Я приатачил файлы с репортами и результатами генерации. Ниже код для построения репортов. Посмотрите, пожалуйста, в чем там может быть дело.
Code: Select all
private void Correct_SubReportSingle_Click(object sender, EventArgs e)
{
var testReport = new StiReport();
testReport.Load(@"Reports\SubReport_Border.mrt");
testReport.Show();
}
private void Incorrect_SubReportBatch_Click(object sender, EventArgs e)
{
var mainReport = new StiReport();
mainReport.Load(@"Reports/MainReport.mrt");
var mainTable = CreateMainDataTable();
mainReport.RegData("MainDS", "MainDS", mainTable);
mainReport.GetSubReport += mainReport_GetSubReport;
mainReport.Show();
}
private void mainReport_GetSubReport(object sender, StiGetSubReportEventArgs e)
{
var subReport = new StiReport();
subReport.Load(@"Reports\SubReport_Border.mrt");
e.Report = subReport;
}
private static DataTable CreateMainDataTable()
{
var dataTable = new DataTable();
dataTable.Columns.Add("Column", typeof(int));
for (var i = 0; i < 5; i++)
{
var row = dataTable.NewRow();
row["Column"] = i;
dataTable.Rows.Add(row);
}
return dataTable;
}
- Attachments
-
- MainReport.mrt
- Репорт-контейнер
- (4.36 KiB) Downloaded 368 times
-
- SubReport_Border.mrt
- Сабрепорт
- (3.46 KiB) Downloaded 373 times
-
- SubReportBatchResult_Incorrect.pdf
- Результат генерации 5 сабрепортов внутри репорта-контейнера
- (49.3 KiB) Downloaded 241 times
-
- SubReportSingleResult_Correct.pdf
- Результат генерации отдельного сабрепорта, как самостоятельного репорта, НЕ внутри репорта-контейнера
- (47.11 KiB) Downloaded 219 times
Re: Problem with layout of rendered subreports
Здравствуйте.
Из сабрепорта вставляется только содержимое страницы, а свойства страница беруться из мастер-отчёта.
В вашей ситуации надо установить границу у компонента "Вложенный отчёт".
Спасибо.
P.S.
Для рускоязычных клиентов у нас есть отдельный форум: http://forumru.stimulsoft.com/
Из сабрепорта вставляется только содержимое страницы, а свойства страница беруться из мастер-отчёта.
В вашей ситуации надо установить границу у компонента "Вложенный отчёт".
Спасибо.
P.S.
Для рускоязычных клиентов у нас есть отдельный форум: http://forumru.stimulsoft.com/