By using this site you agree to the use of cookies for analytics and personalized content.
I agree Learn More
Статьи
Данные технические статьи охватывают широкий круг вопросов, связанных с различными особенностями Stimulsoft Reports. Интересные и полезные советы, подсказки, инструкции, фрагменты кода и др.

Share this post

Submit to FacebookSubmit to FacebookSubmit to TwitterSubmit to TwitterSubmit to GoogleSubmit to GoogleSubmit to LinkedInSubmit to LinkedInSubmit to VKSubmit to VK
Stimulsoft предоставляет встроенные компоненты, которые позволяют разработчику программно экспортировать свои отчеты во множество форматов документов. Исходя из моего опыта, пользователь обычно просит добавить кнопку экспорта на Web страницу или форму. Экспорт при помощи кода также обычно нужен в пакетных процессах работы с отчетами. Особенно когда отчеты должны формироваться по расписанию и отправлены по e-mail или сохранены на локальных дисках или загружены на sharepoint / ftp сервер. Ниже приведен список форматов, которые поддерживает Stimulsoft Reports.Net. При этом нет необходимости использовать COM компоненты или продукты других компаний.

В этой статье описано, как создать простой отчет с таблицей, вывести его на Web странице и вывести кнопку экспорта в PDF на Web странице, которая позволит пользователю открыть отчет в формате PDF. Для того, чтобы это сделать мне необходимо воспользоваться встроенными в генератор отчетов функциями экспорта.

Demo версию Stimulsoft Reports.Net можно скачать с сайта компании Стимулсофт: http://www.stimulsoft.com/ru/downloads
Необходимо проделать следующие шаги, чтобы создать кросс-отчет и экспортировать его в PDF, Word, Excel и другие форматы.


1. Поддерживаемые форматы экспортов
2. Настройки экспортов
3. Как добавить отчет на Web страницу
4. Как добавить новую связь в отчет
5. Как добавить Источник Данных в отчете
6. Как добавить Таблицу и Заголовок страницы в отчете
7. Как добавить отчет на Web страницу
8. Событие Page load
9. Экспорт отчета при помощи кнопки Export


1. Поддерживаемые форматы экспортов

  • PDF (Adobe Portable Document Format);
  • Microsoft XPS (XML Paper Specification);
  • HTML (HyperText Markup Language);
  • MHT;
  • Text;
  • Rich Text;
  • Microsoft Word 2007;
  • OpenDocument Writer;
  • Microsoft Excel;
  • Microsoft Excel XML;
  • OpenDocument Calc;
  • CSV (Comma-separated values);
  • dBase DBF (DataBase File);
  • XML (Extensible Markup Language);
  • BMP (Bitmap);
  • GIF (Graphics Interchange Format);
  • JPEG (Joint Photographic Experts Group);
  • PCX (Pacific Exchange);
  • PNG (Portable Network Graphics);
  • TIFF (Tagged Image File Format);
  • Windows Metafile.


2. Настройки экспортов

Stimulsoft Reports.Net имеет встроенную поддержку экспорта файла на диск, используя функцию ExportDocument для экземпляра объекта StiReport. Структура отчета также имеет класс StiReportResponse для экспорта, чтобы пользователи могли загружать файлы построенных отчетов в Web приложении. Ниже приведены некоторые свойства для экспорта отчетов.

1) Флажок openDialog:
Если флажок установлен в true, это приведет к тому, что пользователь будет вынужден загружать файл перед открытием. Если флажок установлен в false, то это позволит браузеру открыть приложение, необходимое для вывода отчета. Например, если формат экспорта PDF и флажок установлен в false, то откроется Abobe Reader® в браузере, если он установлен на компьютере клиента. Если флажок установлен в true, то отчет загрузится как файл, даже если Abobe Reader® установлен на компьютере клиента.

Пример:

StiReport oSR = stiBooksReport.GetReport(); //set the StiReport report object
StiReportResponse.ResponseAsPdf(this, oSR, false); // Export report to pdf and force user to download the file
StiReportResponse.ResponseAsPdf(this, oSR); // Export report to pdf and open Adobe Reader if available

На рисунке ниже показано, что произойдет, если флажок openDialog установлен в false. В данном случае PDF документ откроется в Acrobat Reader.

PDF opens in the embedded Acrobat Reader

На рисунке ниже показано, что произойдет, если флажок openDialog установлен в true. В этом случае отчет можно Открыть, Сохранить или Отменить операцию.

Open, Save or Cancel depending on the browser

2) StiPagesRanges
Если пользователь хочет определить, какие страницы нужно экспортировать, имеется возможность передачи объекта класса StiPagesRange, как параметра в функцию экспорта. С классом stiPagesRange пользователь может экспортировать только одну страницу или несколько страниц в зависимости от условия.

Пример:

StiReport oSR = stiBooksReport.GetReport(); //set the StiReport report object
StiPagesRange oSPR = new StiPagesRange(1); // Export page 1
StiReportResponse.ResponseAsPdf(this, oSR, false, oSPR); // Export report to pdf and open the file in browser

Export pages 1 to 10
StiReport oSR = stiBooksReport.GetReport(); //set the StiReport report object
StiPagesRange oSPR = new StiPagesRange("1-10"); // Export pages 1 to 10
StiReportResponse.ResponseAsPdf(this, oSR, false, oSPR); // Export report to pdf and open the file in browser

3) StiPdfExportSettings
Этот параметр позволяет устанавливать дополнительные свойства экспорта:;
a) Compression flag – Включить/Выключить компрессию PDF файла
b) Creator string – Установить имя приложения;
c) Image Quality – Установить качество изображения;
d) Image Resolution – Установить разрешение изображения;
e) Allow embedded fonts – Разрешить внедрение шрифтов в PDF;
f) Keywords – Ключевые слова;
g) Password – PDF пароль;
h) Digital Certificates – Включить/Выключить цифровую подписи и сертификаты;
i) Page Range – Диапазон страниц для экспорта.

4) StiExcelExportSettings
Этот параметр можно использовать при экспорте в Excel. Можно устанавливать следующие дополнительные свойства;
a) ExportDataOnly – Экспортировать только данные без форматирования и изображений;
b) ExportEachPageToSheet – Экспортировать каждую страницу шаблона отчета в новый лист Excel;
c) ExportObjectFormatting – Экспортировать форматирование для текста, изображений и других объектов;
d) ExportPageBreaks – Экспортировать перенос страницы для печати листов;
e) ImageQuality – Установить качество изображения;
f) ImageResolution – Установить разрешение изображения;
g) PageRange – Установить диапазон страниц для экспорта;
h) UseOnePageHeaderAndFooter – Использовать только один заголовок и подвал для целого листа;

На рисунке Export Data Only установлено в false.

Export Data only is set to false

Export Data Only установлено в true

Export Data only is set to true

3. Как добавить отчет на Web страницу

  • Перетащите StiWebReport из toolbox на Вашу Web страницу;
  • Щелкните на Стрелке, расположенной в верхнем правом углу StiWebReport1, чтобы показать задачи StiWebReport;
  • Щелкните на Design Report, чтобы открыть дизайнер отчета.

Add report to your web page

4. Как добавить новую связь в отчет

  • Щелкните закладку Dictionary справа в дизайнере отчетов;
  • Щелкните New Item и выберите New Connection;
  • Выберите SQL Connection и щелкните OK;
  • Напишите connection string для MS Access Books базы данных;
  • Щелкните кнопку Test, чтобы убедиться, что строка соединения правильная.

Add a new connection to the report
Add a new connection to the report

5. Как добавить Источник Данных в отчете

  • Щелкните на New Item на панели Dictionary и выберите New Data Source;
  • Выберите Данные из Sql Connection и щелкните Ok;
  • Напишите имя запроса Sales в поле Name;
  • Напишите SQL запрос в поле Query Text;
  • Щелкните Retrieve Columns, чтобы убедиться, что получены все требуемые колонки;
  • Щелкните Ok, чтобы увидеть источник данных Datasource в панели Dictionary;
  • Данный запрос использован в отчете;
  • Назовите источник данных, которое будет использовано в дальнейшем.

Select * from Books

Add a Data Source to the report
Add a Data Source to the report

6. Как добавить Таблицу и Заголовок страницы в отчете

  • Щелкните на источник данных AllBooks и перетащите его в отчет;
  • Щелкните на инструменте Text на тулбаре и щелкните на Заголовке страницы, чтобы вставить label;
  • Отформатируйте label по Вашим требованиям, он будет выводиться как заголовок для каждого отчета.

Add Table and Page Header to the report

7. Как добавить отчет на Web страницу

  • Постройте отчет при помощи Дизайнера отчетов и сохраните файл отчет в нужное место ;
  • Перетащите StiWebReport из toolbox на Web страницу;
  • Щелкните на Стрелку, расположенную в правом верхнем углу StiWebReport1, чтобы показать задачи StiWebReport;
  • Щелкните на Open Report from File;
  • Найдите свой отчет нажмите Open; отчет теперь загрузился из файла шаблона;
  • Добавьте кнопки для экспорта в PDF (ShowDialog стоит в false), экспорта в PDF, экспорта в Word и экспорта в Excel.

Add report to your web page

8. Событие Page load

  • Получите объект отчета из StiWebReport;
  • Присвойте отчет StiWebViewer, чтобы построить и вывести отчет.

protected void Page_Load(object sender, EventArgs e)
{
    if (stiRepViewerBooks.IsImageRequest) return; // ignore the page request if images are beign loaded for report viewer
    if (!IsPostBack)
    {
        stiRepViewerBooks.Report = stiBooksReport.GetReport(); //set the StiReport report object when page loads for the first time
    }
}


9. Экспорт отчета при помощи кнопки Export

  • Установите обработчик событий для каждой кнопки отчета в btnExport_Click;
  • Вызовите функцию экспорта StiReportResponse;
  • Чтобы экспортировать отчет нужно один раз нажать на кнопку Export и пользователь либо увидит окно прогресса экспорта либо нет. Это зависит от параметра ShowDialog метода ResponseAsPdf.

protected void btnExport_Click(object sender, EventArgs e)
{
    StiReport oSR = stiBooksReport.GetReport(); //set the StiReport report object
    oSR.Render(false);

    if (sender == btnExportPdfShowDialogIsfalse)
            StiReportResponse.ResponseAsPdf(this, oSR, false); // Export report as PDF with showDialog false
    if (sender == btnExportPdf)
            StiReportResponse.ResponseAsPdf(this, oSR); // Export report as PDF with showDialog true
    if (sender == btnExportWord)
            StiReportResponse.ResponseAsRtf(this, oSR); // Export report as a Word document
    if (sender == btnExportExcel)
            StiReportResponse.ResponseAsXls(this, oSR); // Export report as an Excel Sheet
}
TwitterTwitterFacebookFacebookRSSRSSLinked inLinked inYoutubeYoutubeStimulsoft BlogStimulsoft BlogViberViberWhatsAppWhatsAppSkypeSkypeTelegramTelegram