Как экспортировать отчёт без разбиения на стрницы?

отредактировано 08:29 Раздел: FastReport .NET
Есть отчёт, состоящий из PageHeaderBand, DataBand и PageFooterBand.
На PageHeaderBand печатается шапка таблицы, на PageFooterBand - номер страницы.
Пользователь получает этот отчёт либо в PDF - версия для печати, либо в XML - для последующего редактирования его в Excel.

При экспорте в PDF разбиение отчёта на страницы с печатью шапки таблицы вверху каждого листа и номера страницы внизу - вещь необходимая. Но при экспорте в Excel мне нужно вывести шапку таблицы только один раз, а номера страниц не выводить вообще.

Мой вопрос, как программно перед экспортом в Excel убрать из отчёта PageHeaderBand со всех страниц, кроме первой.
Или, что также решит мою проблему, как программно указать, что страница имеет бесконечную высоту.

Экспорт в Excel у меня осуществляется следующим образом:

protected void Page_Load(object sender, EventArgs e)
{
if(Page.ClientQueryString == "excel")
{
WebReport1.Prepare();
XMLExport export = new XMLExport();
MemoryStream stream = new MemoryStream();
WebReport1.Report.Export(export, stream);
WebReport1.Report.Dispose();
Response.Clear();
Response.ContentType = "text/xml";
Response.AddHeader("content-length", stream.Length.ToString());
Response.BinaryWrite(stream.ToArray());
Response.Flush();
stream.Close();
Response.End();
}
}
До выполнения WebReport1.Prepare() WebReport.Report есть null
Указание размера бумаги после WebReport1.Prepare()

ReportPage page = WebReport1.Report.FindObject("Page1") as ReportPage;
page.PaperHeight = 3000; // большое число

ни на что не влияет.

Комментарии

  • отредактировано 08:29
    Здравствуйте,

    Экспорт можно сделать и без использования WebReport.

    if(Page.ClientQueryString == "excel")
    {
    Report report = new Report();
    report.Load(...);
    report.RegisterData(...);
    (report.FindObject("Page1") as ReportPage).PaperHeight = 3000; //в мм

    XMLExport export = new XMLExport();
    MemoryStream stream = new MemoryStream();
    report.Export(export, stream);
    ...

  • отредактировано October 2011
    Здравствуйте, AlexTZ

    Спасибо за ответ.
    AlexTZ написал: »
    Экспорт можно сделать и без использования WebReport.
    Да, но сам то отчёт хранится в WebReport1.ReportResourceString
    AlexTZ написал: »
    Report report = new Report();
    report.Load(...);
    Можно загрузить отчёт не из FRX-файла, а из WebReport1.ReportResourceString ?

    Впрочем, свою проблему я уже решил через StartReport

    protected void WebReport1_StartReport(object sender, EventArgs e)
    {
    if(Page.ClientQueryString == "excel")
    {
    ReportPage page = WebReport1.Report.FindObject("Page1") as ReportPage;
    page.PaperHeight = 3000;
    PageFooterBand footer = WebReport1.Report.FindObject("PageFooter1") as PageFooterBand;
    footer.Delete();
    }
    }

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

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