Разработка облачных бизнес-приложений с использованием Visual Studio LightSwitch 2011

Создание отчетов с использованием расширения Office Integration Pack

Разбить на страницы
Показывать лекцию целиком

Отчеты используются для просмотра информации из таблиц и запросов в форматированном виде. LightSwitch не имеет встроенных средств построения отчета и разработчики рекомендуют использовать Microsoft SQL Server 2008 R2 Report Builder 3.0 для создания отчетов и reporting Service для их размещения.

Указанные средства являются достаточно тяжеловесными и для более простых ситуаций, когда к отчетам не предъявляется особых требований по интерактивности можно использовать Office Integration Pack и выводить отчеты в Microsoft Word и в Microsoft Excel.

Подключите Office Integration Pack используя Диспетчер расширений.

(рис 17.1)

Для подключения нажмите кнопку Загрузить. После установки расширения будет предложено перезагрузить LightSwitch. Необходимо выполнить эту операцию.

Затем открыть вкладку Расширения в окне свойств проекта и установить флажок рядом с названием Office Integration Pack. Расширение будет подключено.

(рис 17.2)

Office Integration Pack значительно расширяет стандартные возможности LightSwitch по экспорту информации в Excel. Можно заранее подготовить рабочую книгу с требуемым форматированием, а затем заполнить ее информацией из LightSwitch.

C использованием этой возможности реализуем вывод документа Ведомость экзамена.

Добавим новую таблицу ведомости и установим ее связи с таблицами Дисциплины и Группы.

(рис 17.3)

На основе этой таблицы создадим экран СозданиеВедомости с использованием шаблона Редактируемый экран сетки.

(рис 17.4)

Используя кнопку Добавить элемент данных добавьте на экран новый запрос на основе таблицы студенты.

(рис 17.5)

Перейдите в созданный запрос Студент и выберите кнопку Изменить запрос в редакторе добавьте фильтр

ГДЕ Группы.Id = ГруппыId

И создайте новый параметр ГруппыId

(рис 17.6)

Для параметра ГруппаId создайте локальное свойство с таким же именем и выполните привязку.

Перетащите созданный запрос в конструктор и создайте элемент Сетка данных Студенты.

(рис 17.7)

Затем на панель команд Сетки данных Ведомости добавьте новую кнопку Открыть ведомость и в контекстном меню этой кнопки выберите команду Изменить код Execute.

(рис 17.8)

Запишите в редакторе следующий код программы:

partial void ОткрытьВедомость_Execute()
  {
    // Write your code here.
    //добавление информации о студентах  
    List<String> names = new List<string>();
      names.Add("ФамилияСтудента");
      names.Add("ИмяСтудента");
      names.Add("ОтчествоСтудента");
 
    ГруппаId = Ведомости.SelectedItem.ГруппыItem.Id;
 
    OfficeIntegration.Excel.Export(Студенты, 
       @"K:\Users\Трегубов\Documents\Ведомость.xlsx", "Лист1", "B6", names);
    // сохранение и закрытие книги dynamic xl;
    xl = OfficeIntegration.Excel.GetExcel();
    xl.DisplayAlerts = 0;
    xl.ActiveWorkBook.Save();
    xl.quit();
    xl.DisplayAlerts = 1;
    // добавление информации о ведомости
    OfficeIntegration.Excel.Export(Ведомости, 
       @"K:\Users\Трегубов\Documents\Ведомость.xlsx", "Лист1", "b2");
    xl = null;
  }

Создайте в папке Мои документы файл Ведомость.xlsx с помощью программы Microsoft Excel. Оформите Лист один по образцу рисунка. Сохраните и закройте книгу.

(рис 17.9)

Запустите приложение и откройте экран Создание ведомости, выберите все данные ведомости:

(рис 17.10)

Рассмотрим создание простого отчета для его вывода в Microsoft Word. При этом используется также расширение Office Integration Pack.

Выведем в отчет оценки для выбранной группы.

Создадим новый экран с именем ОценкиПоДисциплинам на основе шаблона Экран со списком и подробными сведениями. В качестве данных выберите Дисциплины, а в качестве дополнительных данных Дисциплины ОценкиЗаСеместр.

(рис 17.11)

В открывшемся окне конструктора экрана добавьте кнопку ОткрытьВWord и откройте код этой кнопки, вызвав из контекстного меню команду Изменить код Execute.

(рис 17.12)

В коде программы запишите

 partial void ОткрытьВWord_Execute()
  {
    // Write your code here.
    OfficeIntegration.Word.Export(@"K:\Users\Трегубов\Documents\LightSwitch.docx",
         "Оценки", 1, true, ОценкиЗаСеместрCollection);
  }

Эта программа реализует один из способов вывода информации в Word с использованием метода Export.

Затем создайте файл шаблона Word, добавьте на него таблицу с шестью столбцами, выделите ее и на вкладке Вставка, определите, выделив таблицу, ее закладку – Оценки.

Сохраните созданный файл под именем LightSwitch.Docx.

(рис 17.13)

Запустите приложение, перейдите на экран Оценки По Дисциплинам, выберите дисциплину и нажмите кнопку Открыть В Word.

(рис 17.14)

Оценки будут перенесены в созданный нами файл и открыты в программе Microsoft Word.

(рис 17.15)

Самостоятельное задание

  • Создайте экран для экспорта информации о преподавателях в Microsoft Excel.
  • Создайте экран для экспорта данных о дисциплинах в Microsoft Word.
  • Страницы:

    Отчеты используются для просмотра информации из таблиц и запросов в форматированном виде. LightSwitch не имеет встроенных средств построения отчета и разработчики рекомендуют использовать Microsoft SQL Server 2008 R2 Report Builder 3.0 для создания отчетов и reporting Service для их размещения.

    Указанные средства являются достаточно тяжеловесными и для более простых ситуаций, когда к отчетам не предъявляется особых требований по интерактивности можно использовать Office Integration Pack и выводить отчеты в Microsoft Word и в Microsoft Excel.

    Подключите Office Integration Pack используя Диспетчер расширений.

    (рис 17.1)

    Для подключения нажмите кнопку Загрузить. После установки расширения будет предложено перезагрузить LightSwitch. Необходимо выполнить эту операцию.

    Затем открыть вкладку Расширения в окне свойств проекта и установить флажок рядом с названием Office Integration Pack. Расширение будет подключено.

    (рис 17.2)

    Office Integration Pack значительно расширяет стандартные возможности LightSwitch по экспорту информации в Excel. Можно заранее подготовить рабочую книгу с требуемым форматированием, а затем заполнить ее информацией из LightSwitch.

    C использованием этой возможности реализуем вывод документа Ведомость экзамена.

    Добавим новую таблицу ведомости и установим ее связи с таблицами Дисциплины и Группы.

    (рис 17.3)

    На основе этой таблицы создадим экран СозданиеВедомости с использованием шаблона Редактируемый экран сетки.

    (рис 17.4)

    Используя кнопку Добавить элемент данных добавьте на экран новый запрос на основе таблицы студенты.

    (рис 17.5)

    Перейдите в созданный запрос Студент и выберите кнопку Изменить запрос в редакторе добавьте фильтр

    ГДЕ Группы.Id = ГруппыId
    

    И создайте новый параметр ГруппыId

    (рис 17.6)

    Для параметра ГруппаId создайте локальное свойство с таким же именем и выполните привязку.

    Перетащите созданный запрос в конструктор и создайте элемент Сетка данных Студенты.

    (рис 17.7)

    Затем на панель команд Сетки данных Ведомости добавьте новую кнопку Открыть ведомость и в контекстном меню этой кнопки выберите команду Изменить код Execute.

    (рис 17.8)

    Запишите в редакторе следующий код программы:

    partial void ОткрытьВедомость_Execute()
      {
        // Write your code here.
        //добавление информации о студентах  
        List<String> names = new List<string>();
          names.Add("ФамилияСтудента");
          names.Add("ИмяСтудента");
          names.Add("ОтчествоСтудента");
     
        ГруппаId = Ведомости.SelectedItem.ГруппыItem.Id;
     
        OfficeIntegration.Excel.Export(Студенты, 
           @"K:\Users\Трегубов\Documents\Ведомость.xlsx", "Лист1", "B6", names);
        // сохранение и закрытие книги dynamic xl;
        xl = OfficeIntegration.Excel.GetExcel();
        xl.DisplayAlerts = 0;
        xl.ActiveWorkBook.Save();
        xl.quit();
        xl.DisplayAlerts = 1;
        // добавление информации о ведомости
        OfficeIntegration.Excel.Export(Ведомости, 
           @"K:\Users\Трегубов\Documents\Ведомость.xlsx", "Лист1", "b2");
        xl = null;
      }
    

    Создайте в папке Мои документы файл Ведомость.xlsx с помощью программы Microsoft Excel. Оформите Лист один по образцу рисунка. Сохраните и закройте книгу.

    (рис 17.9)

    Запустите приложение и откройте экран Создание ведомости, выберите все данные ведомости:

    (рис 17.10)

    Рассмотрим создание простого отчета для его вывода в Microsoft Word. При этом используется также расширение Office Integration Pack.

    Выведем в отчет оценки для выбранной группы.

    Создадим новый экран с именем ОценкиПоДисциплинам на основе шаблона Экран со списком и подробными сведениями. В качестве данных выберите Дисциплины, а в качестве дополнительных данных Дисциплины ОценкиЗаСеместр.

    (рис 17.11)

    В открывшемся окне конструктора экрана добавьте кнопку ОткрытьВWord и откройте код этой кнопки, вызвав из контекстного меню команду Изменить код Execute.

    (рис 17.12)

    В коде программы запишите

     partial void ОткрытьВWord_Execute()
      {
        // Write your code here.
        OfficeIntegration.Word.Export(@"K:\Users\Трегубов\Documents\LightSwitch.docx",
             "Оценки", 1, true, ОценкиЗаСеместрCollection);
      }
    

    Эта программа реализует один из способов вывода информации в Word с использованием метода Export.

    Затем создайте файл шаблона Word, добавьте на него таблицу с шестью столбцами, выделите ее и на вкладке Вставка, определите, выделив таблицу, ее закладку – Оценки.

    Сохраните созданный файл под именем LightSwitch.Docx.

    (рис 17.13)

    Запустите приложение, перейдите на экран Оценки По Дисциплинам, выберите дисциплину и нажмите кнопку Открыть В Word.

    (рис 17.14)

    Оценки будут перенесены в созданный нами файл и открыты в программе Microsoft Word.

    (рис 17.15)

    Самостоятельное задание

  • Создайте экран для экспорта информации о преподавателях в Microsoft Excel.
  • Создайте экран для экспорта данных о дисциплинах в Microsoft Word.
  • Вернуться к учебному плану