Практическое руководство. Просмотр отчета служб отчетов SQL Server в LightSwitch
LightSwitch не имеет встроенных функций создания отчетов, но можно использовать службы SQL Server Reporting Services для создания и просмотра отчетов из приложения LightSwitch. Отчеты отображаются в окне браузера, из которого их можно распечатать и экспортировать в несколько форматов файлов.
С помощью служб SQL Server Reporting Services можно создавать и развертывать отчеты организации, и управлять ими, а также расширять и настраивать функциональные возможности создания отчетов. Даже при отсутствии полной версии SQL Server, можно создавать отчеты с помощью RTM-версии Microsoft SQL Server2008 R2 Express with Advanced Services, которые можно загрузить бесплатно.
Просмотр отчета
В окне Обозреватель решений откройте контекстное меню узла проекта Клиент и выберите команду Добавить ссылку.
В диалоговом окне Добавить ссылку разверните узел Сборки, выберите узел Платформа, установите флажок System.Windows.Browser и нажмите кнопку ОК.
В окне Обозреватель решений откройте контекстное меню нужного экрана и выберите команду Открыть.
В конструкторе экрана разверните узел Панель команд экрана, выберите узел Добавить, затем Создать кнопку.
В диалоговом окне Добавление кнопки выберите переключатель Новый метод, укажите имя создаваемой кнопки и нажмите кнопку ОК.
В конструкторе экрана откройте контекстное меню новой кнопки и выберите Изменить код Execute.
В окне Редактор кода добавьте следующие операторы Imports или using:
Imports Microsoft.LightSwitch.Threading Imports System.Runtime.InteropServices.Automation
using Microsoft.LightSwitch.Threading; using System.Runtime.InteropServices.Automation;
Добавьте следующий код, открывающий отчет, заменив Uri URL-адресом отчета, а ViewReport — именем кнопки.
Private Sub ViewReport_Execute() Dispatchers.Main.BeginInvoke( Sub() ' Provide the URL for the report that you want to view Dim uri As New Uri("https://www.contoso.com/ReportServer/Pages/ReportViewer.aspx?%2fReportName&rs:Command=Render") If (AutomationFactory.IsAvailable) Then ' This is a desktop app, so shell to the default browser Dim shell = AutomationFactory.CreateObject("Shell.Application") shell.ShellExecute(uri.ToString) ElseIf (Not System.Windows.Application.Current.IsRunningOutOfBrowser) Then ' This is a web app, so navigate to the page System.Windows.Browser.HtmlPage.Window.Navigate(uri, "_blank") End If End Sub) End Sub
private void ViewReport_Execute() { Dispatchers.Main.BeginInvoke(() => { // Provide the URL for the report that you want to view Uri uri = new Uri("https://www.contoso.com/ReportServer/Pages/ReportViewer.aspx?%2fReportName&rs:Command=Render"); if ((AutomationFactory.IsAvailable)) { // This is a desktop app, so shell to the default browser dynamic shell = AutomationFactory.CreateObject("Shell.Application"); shell.ShellExecute(uri.ToString()); } else if ((!System.Windows.Application.Current.IsRunningOutOfBrowser)) { // This is a web app, so navigate to the page System.Windows.Browser.HtmlPage.Window.Navigate(uri, "_blank"); } }); }
Отчет открывается в новом окне браузера.
Совет
Можно создать URL-адрес отчета, включающий параметры отчета, пароли, формат отображения и многое другое.Дополнительные сведения см. в разделе Доступ по URL-адресу.
См. также
Другие ресурсы
Службы SQL Server Reporting Services
Службы Reporting Services в выпуске SQL Server Express with Advanced Services