Stimulsoft Reports Designer.Web – сохранение на стороне сервера

В данном уроке я покажу как просто сохранять отчет на стороне сервера, созданный и отредактированный в Stimulsoft Reports Designer.Web.Stimulsoft Reports имеет дизайнер отчетов для Web, который предоставляет полный набор возможностей для редактирования отчетов в web браузере. Благодаря компоненту Designer.Web конечные пользователи могут редактировать отчеты согласно их требованиям и сохранять их локально или на сервере. Лучшая часть Designer.Web это разработка drag and drop.

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

Среди возможностей Stimulsoft Reports Designer.Web можно выделить следующие:
1) Независимая платформа (работает под управлением Adobe Flash®)
2) Применение функции Drag and drop при редактировании отчетов
3) Опция сохранения отчета на web сервере или на компьютере пользователя
4) Очень полезен для внесения небольших изменений в отчет самим пользователем.
5) Прекрасное решение при командой разработке, когда группа разработчиков работает удаленно
Дополнительные ресурсы по изучению возможностей Stimulsoft Reports Designer.Web доступны здесь
Видео уроки - http://www.stimulsoft.com/ReportsDesignerWebVideos.aspx.
Документация - http://www.stimulsoft.com/Documentation/SRDesignerWebUserManual.En.Pdf.zip.
Загрузить последнюю версию можно здесь - http://www.stimulsoft.com/Downloads.aspx.
Данные для примера отчета взяты из AdventureWork sample database, предоставленные компанией Microsoft.
В данной статье я подробно опишу как просто использовать дизайнер отчетов для Web.

1. Как добавить StiWebDesigner и другие элементы управления на web страницу
2. Как показать список при загрузке страницы
3. Как выбрать отчет из списка
4. Как показать web дизайнер отчетов
5. Как редактировать выбранный отчет
6. Как сохранить файл отчета на сервере
7. Как создать новый отчет и просмотреть его


1. Как добавить StiWebDesigner и другие элементы управления на web страницу
• Перетащите StiWebDesinger из панели интрументов на Вашу web страницу
• Добавьте Listbox, чтобы показать список отчетов
• Добавьте StiWebViewer для пользователей, чтобы просмотра отчета, выбранного из списка, пользователями 
• Добавьте Textbox, чтобы возможно было ввести название нового отчета
• Добавьте кнопки для создания нового отчета и редактирования существующeго



2. Отображение списка отчетов при загрузке страницы
• Копируем все файлы отчетов в папку с отчетами.
• Находим все файлы в папке с отчетами, которые имеют расширение “*.mrt”.
• Вызоваем функцию refreshReportsList в событии PageLoad при первой загрузке страницы.

    protected void Page_Load(object sender, EventArgs e)
   {
    if (!IsPostBack)
   }
   // Show list of all reports
   refreshReportsList();
       }
   }
   private void refreshReportsList()
    {
       // Find all files with extension .mrt
       string[] reports = Directory.GetFiles(Server.MapPath("Reports"), "*.mrt");
       // Clear reports list
       lstReports.Items.Clear();

       // Loop through all files found and each file to reports list
       foreach (string reportpath in reports)
       {
       string filename = reportpath.Substring(reportpath.LastIndexOf("\\") + 1);
       lstReports.Items.Add(new ListItem(filename, reportpath));
       }
    }


3. Отображение отчета при выборе его из списка отчетов 
• Добавляем обработчик событий onclick для listbox
• Создаем объект класса StiReport
• Загружаем отчет в соответствии с путем к файлу из выбранного списка
• Указываем соответствующее свойство к источнику отчета для просмотрщика отчетов StiWebViewer
   <asp:ListBox ID="lstReports" runat="server" AutoPostBack="True" Width="100%" OnSelectedIndexChanged="lstReports_SelectedIndexChanged">
   </asp:ListBox>
   protected void lstReports_SelectedIndexChanged(object sender, EventArgs e)
       {
          if (lstReports.SelectedIndex > -1)
       {
          // Load report from the file path given in the selected item
          StiReport oReport = new StiReport();
          oReport.Load(lstReports.SelectedValue);
          // Set report viewer's source to the loaded report
          StiWebViewer1.Report = oReport;
       }
   }


4. Запуск web дизайнера отчетов
• Добавим обработчик событий onclick для кнопки “Design New Report”
• Если отчет уже существует, то загружаем файл отчета и разрешаем пользователям редактировать отчет
• Если отчет еще не существует, то новый файл отчета будет создан по имени файла
protected void btnDesignNewReport_Click(object sender, EventArgs e)
    {
       StiReport oNewRep = new StiReport();

       // Check if a report with the same name already exists
       string[] files = Directory.GetFiles(Server.MapPath("Reports"), txtNewReportName.Text + ".mrt");

       if (files.Length == 0)
       {
          // If the report deos not exist then set the report name
          oNewRep.ReportName = txtNewReportName.Text;
       }
       else
       {
          // If the report already exists then load the report into the designer
          oNewRep.Load(files[0]);
       }

          StiWebDesigner1.Design(oNewRep);
    }

5. Редактирование выбранного отчета
• Добавим обработчик событий onclick для кнопки “Edit Selected Report”
• Проверим выбрал ли пользователь отчет?
• Загружаем файл отчета в соответствии с выбранным значением пути к файлу
• Передаем наш объект отчета web дизайнеру 
   protected void btnEditReport_Click(object sender, EventArgs e)
       {
          if (lstReports.SelectedIndex > -1)
          {
             // Load the selected file
             StiReport oReport = new StiReport();
             oReport.Load(lstReports.SelectedValue);
             StiWebDesigner1.Design(oReport);
          }
       }


6. Сохранение файла отчета на сервере
• При нажатии пользователем кнопки "Сохранить", в StiWebDesigner срабатывает OnSaveReport событие
• Добавим обработчик событий для OnSaveReport которое принимает StiSaveReportEventArgs как аргумент
<cc2:StiWebDesigner ID="StiWebDesigner1" runat="server" OnSaveReport="StiWebDesigner1_SaveReport" />
• Получаем объект отчета в событии как аргумент
• Сохраняем отчет в нужную директорию с именем отчета, которое мы получили 
• Обновляем список отчетов
   protected void StiWebDesigner1_SaveReport(object sender, Stimulsoft.Report.Web.StiWebDesigner.StiSaveReportEventArgs e)
       {
          StiReport oRep = e.Report;
          e.Report.Save(Server.MapPath("Reports\\" + oRep.ReportName + ".mrt"));
          refreshReportsList();
    }

7. Создадим новый отчет и просмотрим его
• Нажмем иконку “Start debugging” в Visual Studio или кнопку “F5”
• Укажем имя для отчета, который мы хотим создать
• Пусть отчет называется “Hello World”
• Нажимаем Design New Report
• Нажмем на иконку Save, чтобы сохранить файл отчета на сервере
• Нажмем на иконку Menu и затем нажмем exit, чтобы вернуться к списку отчетов
• Нажмите F5, чтобы обновить список отчетов
• Теперь можно выбрать только что созданный отчет из списка отчетов, чтобы его просмотреть



Примечание:
1) Save As используется для загрузки отчета на локальный диск пользователя
2) Save используется, чтобы сохранить отчет на стороне сервера

Автор статьи Chirag Nirmal и его linkedin профайл http://www.linkedin.com/in/chiragn


Опубликовал admin
6 Ноя, Пятница 2009г.



Программирование для чайников.