Пошаговое руководство. Создание приложения Vision Clinic

В этом пошаговом руководстве демонстрируется весь процесс создания приложений в Visual Studio LightSwitch.При создании приложения для фиктивного офтальмологического центра будут использованы многие возможности LightSwitch.Приложение предоставляет возможности для планирования встреч и создания счетов.

Обязательные компоненты

Загрузите PrescriptionContoso из MSDN Code Gallery базы данных.

Шаги

  • Создание проекта

    Создайте проект приложения.

  • Определение таблиц

    Добавьте сущности пациента, счета и сведений о счете.

  • Создание списка выбора

    Создайте список значений.

  • Определение отношения

    Привяжите связанные таблицы.

  • Добавление другой сущности

    Добавьте сущность назначенных приемов.

  • Создание экрана

    Создайте экран для отображения пациентов.

  • Запуск приложения

    Запустите приложение и введите данные.

  • соединиться с базой данных

    Подключитесь к внешней базе данных.

  • Внесение изменений в сущности

    Измените сущности продуктов и скидок по продуктам.

  • Создание экрана списка и сведений

    Создайте экран для отображения продуктов.

  • Изменение макета экрана

    Измените макет экрана списка продуктов.

  • Внесение изменений во время выполнения

    Внесите изменения в работающее приложение.

  • Создание запроса

    Создайте параметризованный запрос и привяжите его к экрану.

  • Добавление вычисляемого поля

    Создайте вычисляемое поле и добавьте его на экран.

  • Создание отношения между базами данных

    Создайте виртуальную связь между сущностями в различных базах данных.

  • Создание экрана счетов

    Создайте экран для отображения счетов.

  • Изменение экрана счетов

    Измените макет экрана счетов в работающем приложении.

  • Добавление логики экрана

    Создайте код для вычисления дат.

  • Добавление дополнительных вычисляемых полей

    Создайте дополнительные вычисляемые поля и добавьте их на экран счетов.

  • Развертывание приложения

    Опубликуйте приложение как двухуровневое настольное приложение.

Создание проекта

Первым шагом при создании приложения LightSwitch является создание проекта.

Создание проекта

  1. В меню Windows Пуск выберите пункт Visual Studio 2012.

    Откроется конструктор LightSwitch.

  2. В меню Файл выберите команду Создать проект.

    Откроется диалоговое окно Новый проект.

  3. В списке Установленные шаблоны выберите узел LightSwitch.

  4. В центральной области выберите значение Приложение LightSwitch (VB) или Приложение LightSwitch (C#).

  5. В поле Имя введите «Vision Clinic» и нажмите кнопку ОК.

    Откроется окно Конструктор офтальмологического центра, а необходимые папки для проекта будут добавлены в окно Обозреватель решений.

    Проект Vision Clinic

Определение таблиц

В LightSwitch таблицы называются сущностями; они моделируют объект, который представляют данные, в данном случае пациента.В приложениях LightSwitch используется модель «формы по данным», то есть применяются формы или экраны, в которых отображаются данные из одного или нескольких источников.LightSwitch включает внутреннюю базу данных, которая может использоваться для хранения данных приложения.В следующем шаге предстоит создать таблицу базы данных для хранения информации о пациентах.

Создание сущности пациента

  1. В окне Конструктор офтальмологического центра нажмите кнопку Создать новую таблицу.

    Откроется конструктор данных, а в разделе Источники данных в Solution Explorer отобразится узел Table1Items.

  2. В окне Свойства выберите свойство Имя и введите значение «Пациент», а затем нажмите клавишу ВВОД.

    Имя в строке заголовка в конструкторе данных изменится на «Пациент», а имя в обозревателе решений изменится на «Пациенты».

  3. В столбце Имя щелкните пункт <Добавить свойство>, введите «FirstName», а затем нажмите клавишу ВВОД.

    Обратите внимание, что соответствующий тип данных, String, отображается в столбце Тип, а флажок Обязательный установлен.Пациент должен иметь имя.

  4. Щелкните пункт <Добавить свойство> в столбце Имя и введите значение «LastName».

  5. Щелкните пункт <Добавить свойство> в столбце Имя и введите значение «Street».

  6. Щелкните пункт <Добавить свойство> в столбце Имя и введите значение «Street2».

  7. Снимите флажок в столбце Обязательный.

    Вторая строка адреса улицы является необязательной.

  8. Щелкните пункт <Добавить свойство> в столбце Имя и введите значение «City».

  9. Щелкните пункт <Добавить свойство> в столбце Имя и введите значение «State».

  10. Щелкните пункт <Добавить свойство> в столбце Имя и введите значение «Zip».

  11. Щелкните пункт <Добавить свойство> в столбце Имя и введите значение «PrimaryPhone».

  12. В раскрывающемся списке в столбце Тип выберите PhoneNumber.

    PhoneNumber — это настраиваемый бизнес-тип, представляющий общий шаблон для ввода и форматирования телефонных номеров.

  13. Снимите флажок в столбце Обязательный.

  14. Щелкните пункт <Добавить свойство> в столбце Имя и введите значение «SecondaryPhone».

  15. В раскрывающемся списке в столбце Тип выберите PhoneNumber.

  16. Снимите флажок в столбце Обязательный.

  17. Щелкните пункт <Добавить поле> в столбце Имя и введите значение «Email».

  18. В столбце Тип выберите EmailAddress из раскрывающегося списка.

    EmailAddress — то бизнес-тип, представляющий корректный формат адреса электронной почты.

  19. Снимите флажок в столбце Обязательный.

  20. Щелкните пункт <Добавить свойство> в столбце Имя и введите значение «PolicyNumber».

  21. В окне Свойства выберите свойство Максимальная длина и введите значение 12.

    Это не позволит пользователям вводить номер полиса, состоящий более чем из 12 знаков.

    Сущность Patient

  22. В меню Файл выберите команду Сохранить все, чтобы сохранить работу.

Далее предстоит создать еще две сущности для отображения счета и позиций строк счета.

Создание сущностей счета и InvoiceDetail

  1. В обозревателе решений щелкните узел Data Sources.В меню Проект выберите команду Добавить таблицу.

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

  2. В окне Свойства выберите свойство Имя.Введите значение Invoice и нажмите клавишу ВВОД.

  3. В столбце Имя щелкните пункт <Добавить свойство>.Введите значение InvoiceDate и нажмите клавишу ВВОД.

  4. В раскрывающемся списке в столбце Тип выберите DateTime.

  5. В столбце Имя щелкните пункт <Добавить свойство>.Введите значение InvoiceDue и нажмите клавишу ВВОД.

  6. В раскрывающемся списке в столбце Тип выберите DateTime.

  7. Снимите флажок в столбце Обязательный.

  8. В столбце Имя щелкните пункт <Добавить свойство>.Введите значение InvoiceStatus и нажмите клавишу ВВОД.

  9. В раскрывающемся списке в столбце Тип выберите Integer.

  10. В столбце Имя щелкните пункт <Добавить свойство>.Введите значение ShipDate и нажмите клавишу ВВОД.

  11. В раскрывающемся списке в столбце Тип выберите DateTime.

    Сущность Invoice

  12. В обозревателе решений щелкните узел Data Sources.В меню Проект выберите команду Добавить таблицу.

  13. В окне Свойства выберите свойство Имя. Введите значение «InvoiceDetail», а затем нажмите клавишу ВВОД.

  14. В столбце Имя щелкните пункт <Добавить свойство>. Введите значение «Quantity», а затем нажмите клавишу ВВОД.

  15. В раскрывающемся списке в столбце Тип выберите Integer.

  16. Щелкните пункт <Добавить свойство> в столбце Имя и введите значение «UnitPrice».

  17. В раскрывающемся списке в столбце Тип выберите Money.

    Money — это еще один пользовательский бизнес-тип, который отображает валюту и корректно определяет ее формат.

    Сущность InvoiceDetails

  18. В меню Файл выберите команду Сохранить все, чтобы сохранить работу.

Создание списка выбора

В следующем шаге предстоит создать список выбора для сущности Invoice.Список выбора позволяет предоставить пользователю фиксированный набор значений для выбора.

Создание списка выбора

  1. В обозревателе решений дважды щелкните элемент Счета-фактуры.

  2. В конструкторе данных выберите поле InvoiceStatus.

  3. В окне Свойства щелкните ссылку Список выбора.

    Диалоговое окно со списком выбора

    Открывается диалоговое окно Список выбора.

  4. В диалоговом окне Список выбора введите следующие значения, а затем нажмите кнопку ОК.

    Значение

    Отображаемое имя

    0

    Активно

    1

    Уплаченный

    2

    Просроченный

    Если это поле отображается на экране, пользователю будет предоставлен раскрывающийся список, содержащий три введенные значения Отображаемое имя.

  5. В меню Файл выберите команду Сохранить все, чтобы сохранить работу.

Определение отношения

В следующем шаге будут определены отношения между сущностями Пациент, Счет и InvoiceDetail.

Определение отношений

  1. В обозревателе решений дважды щелкните элемент Счета-фактуры.

  2. На панели инструментов конструктора данных нажмите кнопку Отношения.

    Открывается диалоговое окно Добавление нового отношения.

  3. В диалоговом окне Добавление нового отношения выберите столбец Кому в строке Имя:.Выберите Пациент и нажмите кнопку ОК.

    Между сущностями Patient и Invoice создается отношение "один ко многим"; пациент может иметь несколько счетов.

  4. На панели инструментов конструктора данных нажмите кнопку Отношения.

    Открывается диалоговое окно Добавление нового отношения.

  5. В диалоговом окне Добавление нового отношения выберите столбец Кому в строке Имя:, а затем выберите значение InvoiceDetail.

  6. Выберите столбец От в строке Кратность:, а затем выберите значение Один.

  7. Выберите столбец До в строке Кратность: и выберите значение Многие, а затем нажмите кнопку ОК.

    Между сущностями Invoice и InvoiceDetail создается отношение "один ко многим"; счет может иметь несколько позиций счета.

    Связь между Invoice и InvoiceDetail

  8. В меню Файл выберите команду Сохранить все, чтобы сохранить работу.

Создание сущности назначения

В следующем шаге предстоит добавить еще одну сущность, которая должна представлять посещение врача, а затем добавить отношение и список выбора.

Добавление сущности посещения врача

  1. В обозревателе решений щелкните узел Data Sources, а затем в меню Проект выберите команду Добавить таблицу.

  2. В окне Свойства измените значение поля Имя на Посещение врача.

  3. В конструкторе данных щелкните пункт <Добавить свойство> в столбце Имя и введите значение AppointmentTime.

  4. В раскрывающемся списке в столбце Тип выберите DateTime.

  5. Щелкните пункт <Добавить свойство> в столбце Имя и введите значение AppointmentType.

  6. В столбце Тип выберите из раскрывающегося списка Short Integer.

  7. Щелкните пункт <Добавить свойство> в столбце Имя и введите значение DoctorNotes.

  8. Примите тип по умолчанию, Строка, и снимите флажок Обязательный.

  9. На панели инструментов конструктора данных нажмите кнопку Отношения.

  10. В диалоговом окне Добавление нового отношения выберите столбец Кому в строке Имя:.Выберите Пациент и нажмите кнопку ОК.

    Между сущностями Patient и Appointment создается отношение "один ко многим"; пациент может иметь несколько назначенных приемов.

  11. В конструкторе данных выберите поле AppointmentType.

  12. В окне Свойства щелкните ссылку Список выбора.

    Открывается диалоговое окно Список выбора.

  13. В диалоговом окне Список выбора введите следующие значения, а затем нажмите кнопку ОК.

    Значение

    Отображаемое имя

    0

    Ежегодный

    1

    Повторный визит

    2

    Экстренный случай

    Сущность Appointment

  14. В меню Файл выберите команду Сохранить все, чтобы сохранить работу.

Создание экрана

В следующем шаге предстоит создать экран для отображения списка пациентов.

Создание экрана

  1. В обозревателе решений щелкните узел Экраны, а затем в меню Проект выберите команду Добавить экран.

    Открывается диалоговое окно Добавление нового экрана.

  2. Выберите Экран редактирования сетки в списке Выбор шаблона экрана.

  3. В текстовом поле Имя экрана введите PatientList.

  4. Выберите раскрывающийся список Данные экрана, а затем выберите Пациенты.Нажмите кнопку ОК.

    Определение экрана PatientList

    Откроется конструктор экрана с отображением иерархического представления макета экрана.

  5. В меню Файл выберите команду Сохранить все, чтобы сохранить работу.

Запуск приложения и ввод данных

Приложение создано и готово к работе.В следующем шаге предстоит запустить приложение и ввести определенные данные.

Запуск приложения

  1. Нажмите клавишу F5 для запуска приложения.

  2. В работающем приложении выберите экран PatientList и нажмите кнопку + … (добавление).

    Откроется диалоговое окно Добавление нового пациента.

  3. Введите данные для нового пациента.В поле Электронная почта введите недопустимое значение, например john#example.com.

    Недопустимый адрес электронной почты

    При перемещении из поля появляется красная граница.Бизнес-тип EmailAddress имеет встроенные правила проверки, которые позволяют выявить адрес электронной почты с недопустимым форматом.

  4. Исправьте ошибку, завершите ввод данных и нажмите кнопку ОК.

    Кнопка Сохранить на панели инструментов приложения станет доступна.

  5. Нажмите кнопку добавления +….Добавьте данные для второго пациента и нажмите кнопку ОК.

  6. Нажмите кнопку Сохранить для сохранения данных.

    Теперь можно изменять порядок столбцов в сетке PatientList и выполнять сортировку по любому столбцу.

  7. Нажмите кнопку Закрыть, расположенную в правом верхнем углу окна работающего приложения, чтобы вернуться в режим конструктора.

  8. В меню Файл выберите команду Сохранить все, чтобы сохранить работу.

соединиться с базой данных

В следующем шаге предстоит подключиться к внешней базе данных, содержащей сведения о продукте.

ПримечаниеПримечание

Перед выполнением этого шага потребуется загрузить и установить базу данных PrescriptionContoso.Базы данных можно загрузить с MSDN Code Gallery.Следуйте инструкциям в файле Install.htm для установки базы данных.

Подключение к источнику данных

  1. В обозревателе решений выберите узел Источники данных.

  2. В меню Проект выберите команду Добавить источник данных.

    Открывается мастер подключения источника данных.

  3. В мастере подключения источников данных выберите элемент База данных, а затем нажмите кнопку Далее.

    Откроется диалоговое окно Выбор источника данных.

    ПримечаниеПримечание

    Если подключение к базе данных в LightSwitch уже установлено, это диалоговое окно не появляется и следующий шаг можно пропустить.

  4. В диалоговом окне Выбор источника данных выберите Microsoft SQL Server и нажмите кнопку Продолжить.

    Появится диалоговое окно Свойства подключения.

  5. В диалоговом окне Свойства подключения введите значения в следующую таблицу и нажмите кнопку ОК.

    Поле

    Значение

    Имя сервера

    (localdb)\v11.0

    Вход на сервер

    Использование проверки подлинности Windows

    Выберите или введите имя базы данных

    C:\Temp\PrescriptionContoso.mdf

    Свойства подключения

    Откроется страница мастера Выбор объектов базы данных.

  6. Разверните узел Таблицы.

  7. Выберите таблицы Продукт и ProductRebate, а затем нажмите кнопку Готово.

    Источник данных C_TEMP_PRESCRIPTIONCONTOSO_MDFData добавляется в проект, а для полей Продукты и ProductRebates создаются сущности.

  8. В обозревателе решений щелкните правой кнопкой мыши C_TEMP_PRESCRIPTIONCONTOSO_MDFData, нажмите кнопку Переименовать, затем введите PrescriptionContoso.

  9. В меню Файл выберите команду Сохранить все, чтобы сохранить работу.

Изменение сущностей «Продукты» и «ProductRebate».

В следующем шаге предстоит сделать определенные изменения в сущностях «ProductRebate» и «Продукты».

Изменение сущностей «Продукты» и «ProductRebate»

  1. В обозревателе решений дважды щелкните узел ProductRebates.

  2. Выберите поле Скидка и измените значение поля Тип на Денежный.

  3. В обозревателе решений дважды щелкните узел Продукты.

  4. В конструкторе данных выберите поле MSRP и измените значение поля Тип на Денежный.

  5. Выберите поле ProductImage и измените значение поля Тип на Изображение.

  6. В меню Файл выберите команду Сохранить все, чтобы сохранить работу.

Создание экрана списка и сведений

В следующем шаге предстоит создать экран для отображения сведений о продукте.

Создание экрана списка и сведений

  1. В обозревателе решений выберите узел Экраны.В меню Проект выберите команду Добавить экран.

  2. В диалоговом окне Добавление нового экрана выберите шаблон Экран списка и сведений в списке Выбор шаблона экрана.

  3. В поле Имя экрана введите ProductList.

  4. Раскройте список Данные экрана и выберите PrescriptionContoso.Products.

  5. В списке Дополнительные данные для включения установите флажки Сведения о продукте и ProductRebates продукта и нажмите кнопку ОК.

Изменение макета экрана

В следующем шаге предстоит изменить макет экрана ProductList.

Настройка макета

  1. В конструкторе экрана выберите узел Макет -строки | Сведения о продукте в дереве содержимого экрана.

  2. В раскрывающемся списке Макет -строки выберите значение Изображение и текст.

  3. Выберите в раскрывающемся списке следующие значения для каждого поля узла Изображение и текст:

    Поле

    Значение

    (PICTURE)

    Изображение продукта

    (TITLE)

    Название продукта

    (SUBTITLE)

    MSRP

    (DESCRIPTION)

    Описание

    Макет изображения и текста

  4. Нажмите клавишу F5 для запуска приложения и просмотра результатов.

  5. В работающем приложении выберите меню ProductList для отображения на экране.

    Оставьте приложение открытым.В следующем шаге предстоит внести изменения в работающем приложении.

Внесение изменений в работающем приложении

В следующем шаге предстоит изменить экран Список продуктов в работающем приложении.

Настройка экрана во время выполнения

  1. На экране Список товаров, нажмите кнопку Экран конструктора в нижнем правом углу.

  2. В левой области выберите узел Сетка данных | Скидки по продуктам.

  3. В окне Свойства измените значение свойства Отображаемое имя на Скидки Contoso.

    Это имя также меняется в окне приложения.

  4. Выберите поле MSRP, а затем измените значение свойства Описание на Рекомендованная цена до скидки.

    Настройка времени разработки

  5. Нажмите кнопку Сохранить, чтобы вернуться в работающее приложение и просмотреть изменения.Наведите курсор на поле MSRP, чтобы просмотреть описание.

  6. Нажмите кнопку Закрыть, расположенную в правом верхнем углу окна работающего приложения, чтобы вернуться в режим конструктора.

  7. В меню Файл выберите команду Сохранить все, чтобы сохранить работу.

Создание запроса

В следующем шаге предстоит создать параметризованный запрос и привязать его к экрану.

Создание параметризованного запроса

  1. В Обозревателе решений выберите узел Products.В меню Проект выберите команду Добавить запрос.

    Открывается конструктор запросов.

  2. В окне Свойства выберите поле Имя и введите значение RelatedProducts.

  3. В Конструкторе запросов нажмите кнопку Добавить фильтр.

    Условие фильтра будет добавлено в раздел Фильтр.

  4. Во втором раскрывающемся списке выберите значение Категория.

  5. В четвертом раскрывающемся списке выберите элемент Параметр.

  6. В пятом раскрывающемся списке щелкните значение Добавить.

    Новый Parameter с именем Category и типом String добавляется в раздел Параметры.

    Запрос RelatedProducts

  7. В обозревателе решений дважды щелкните узел ProductList, чтобы открыть конструктор экрана.

  8. На панели инструментов конструктора экрана нажмите кнопку Добавить элемент данных.

    Открывается диалоговое окно Добавление элемента данных.

  9. В диалоговом окне Добавление элемента данных выберите пункт Запрос.В столбце Имя выберите PrescriptionContoso.RelatedProducts и нажмите кнопку ОК.

    В левой области появится узел RelatedProducts.

  10. Выберите узел Категория в разделе Параметры запроса.

  11. В окне Свойства выберите свойство Привязка параметра и введите Products.SelectedItem.Category.

  12. В центральной области разверните узел Добавить ниже узла DataGrid | Скидки Contoso и выберите пункт Связанные продукты.

    Добавление связанных продуктов

  13. Нажмите клавишу F5 для запуска приложения и просмотра результатов.

    Откройте экран Список продуктов. В нем отображается список связанных продуктов для каждого выбранного продукта.

  14. Нажмите кнопку Закрыть, расположенную в правом верхнем углу окна работающего приложения, чтобы вернуться в режим конструктора.

  15. В меню Файл выберите команду Сохранить все, чтобы сохранить работу.

Добавление вычисляемого поля

В следующем шаге предстоит добавить поле, которое использует вычисляемое значение.Вычисленное значение будет отражать цену продукта после применения суммы скидки.

Добавление вычисляемого поля

  1. В обозревателе решений дважды щелкните узел сущности Продукты.

  2. В конструкторе данных щелкните пункт <Добавить свойство>.Введите CurrentPrice, а затем нажмите кнопку Вкладка.

  3. В раскрывающемся списке в столбце Тип выберите Money.

    В окне Свойства в разделе Общие по умолчанию выбрано свойство Вычисляемое.

  4. В окне Свойства щелкните по ссылке Изменить метод.

    Откроется окно Редактор кода; в нем будет отображаться метод CurrentPrice_Compute.

  5. Добавьте в обработчик событий следующий код:

    Dim rebates As Decimal
        For Each item In ProductRebates
            If item.RebateStart <= Date.Today And item.RebateEnd >= Date.Today Then
                rebates = rebates + item.Rebate
            End If
        Next
    
        result = Me.MSRP - rebates
    
    decimal rebates = default(decimal);
    
    
                foreach (var item in ProductRebates)
                {
                    if (item.RebateStart <= System.DateTime.Today && item.RebateEnd >= System.DateTime.Today)
                    {
                        rebates += item.Rebate.Value;
                    }
                }
    
                result = this.MSRP - rebates;
    

    Код для вычисления текущей цены

  6. В меню Файл выберите команду Сохранить все, чтобы сохранить работу.

В следующем шаге предстоит добавить вычисляемое поле на экран «ProductList».

Добавление вычисляемого поля на экран

  1. В обозревателе решений дважды щелкните узел экрана ProductList.

  2. В левой области конструктора экрана выберите узел CurrentPrice и перетащите его ниже узла (Описание) | Описание в центральной области.

    Текущая цена после перетаскивания

  3. Нажмите клавишу F5 для запуска приложения и просмотра результатов.

  4. На экране ProductList измените поле Скидка или MSRP.Значение поля CurrentPrice пересчитывается.Нажмите кнопку Закрыть, чтобы вернуться в режим конструктора.

  5. Нажмите кнопку Закрыть, расположенную в правом верхнем углу окна работающего приложения, чтобы вернуться в режим конструктора.

  6. В меню Файл выберите команду Сохранить все, чтобы сохранить работу.

Создание отношения между базами данных

В следующем шаге предстоит создать виртуальное отношение между сущностями в двух разных базах данных и отобразить данные из двух разных источников на одном экране «Список и сведения».

Создание отношения между базами данных

  1. В обозревателе решений дважды щелкните узел сущности InvoiceDetails.

  2. В конструкторе данных нажмите кнопку Отношения на панели инструментов.

  3. В диалоговом окне Добавление нового отношения выберите поле Имя в столбце Кому, а затем выберите значение Продукт.

    В нижней части диалогового окна появится новый раздел.Отображаются связанные поля в обеих сущностях.При необходимости можно заменить связанные поля другими полями с тем же типом данных или определить несколько связанных полей в качестве ключей.

    Межбазовая связь

  4. Нажмите кнопку ОК, чтобы сохранить связь.

    Новое отношение отображается пунктирной линией в конструкторе.Это означает, что подразделения находятся в разных источниках данных, в этом случае InvoiceDetails — из внутренней базы данных, а Products — из базы данных PrescriptionContoso.

  5. В меню Файл выберите команду Сохранить все, чтобы сохранить работу.

Создание экрана для отображения счетов

В следующем шаге предстоит создать экран для отображения счетов.

Создание экрана

  1. В обозревателе решений выберите узел Экраны.В меню Проект выберите команду Добавить экран.

  2. В диалоговом окне Добавление нового экрана выберите шаблон Экран списка и сведений в списке Выбор шаблона экрана.

  3. В текстовом поле Имя экрана введите InvoiceScreen.

  4. Выберите раскрывающийся список Данные экрана, а затем выберите значение Счета.

  5. В списке Дополнительные данные для включения выберите значение Сведения о счете и InvoiceDetails счета, а затем нажмите кнопку ОК.

    Макет InvoiceScreen

  6. Разверните узел Строка сетки данных | Сведения о счете.Выберите узел Продукт | Код продукта и удалите его.

  7. Чтобы изменить порядок полей, щелкните узел UnitPrice и перетащите его под узел Продукт.

  8. Нажмите клавишу F5 для запуска приложения.В меню выберите команду Экран счета, чтобы открыть этот экран.

  9. В области Счета-фактуры нажмите кнопку добавления +….

    Введите некоторые данные счета.Обратите внимание, что поле InvoiceStatus содержит раскрывающийся список значений, а поле Пациент – кнопку, которая открывает диалоговое окно, содержащее список пациентов.

  10. В области Сведения о счете нажмите кнопку +... (добавление).

    Введите данные детализации счета.Обратите внимание, что поле Продукт содержит раскрывающийся список продуктов из базы данных PrescriptionContoso.

  11. Нажмите кнопку Сохранить, чтобы сохранить данные счета.

  12. Оставьте приложение открытым.В следующем шаге предстоит внести изменения в работающем приложении.

Изменение экрана счетов

В следующем шаге предстоит внести определенные изменения на экране «Счета» в работающем приложении.

Изменение экрана в работающем приложении

  1. На экране Экран счета нажмите кнопку Дизайн экрана в правом верхнем углу.

  2. В левой области выберите узел Список | Счета.Выберите DataGrid в раскрывающемся списке Список.

  3. Выберите узел Пациент.При помощи стрелки Вверх в левом поле поместите его над узлом Дата счета.

    Настроенный экран Invoice

  4. Нажмите кнопку Сохранить, чтобы вернуться в работающее приложение и просмотреть изменения.

  5. Нажмите кнопку Закрыть, расположенную в правом верхнем углу окна работающего приложения, чтобы вернуться в режим конструктора.

  6. В меню Файл выберите команду Сохранить все, чтобы сохранить работу.

Определение логики экрана

В следующем шаге предстоит добавить код для определения логики по умолчанию для дат счетов.

Определение логики экрана

  1. В обозревателе решений дважды щелкните узел сущности Счета.

  2. В конструкторе данных щелкните раскрывающийся список Создание кода на панели инструментов.Щелкните ссылку Invoice_Created.

    Откроется редактор кода, в котором будет отображаться метод Invoice_Created.

  3. В методе Invoice_Created добавьте следующий код, чтобы задать поведение по умолчанию для дат:

    InvoiceDate = Date.Today
    InvoiceDue = Date.Today.AddDays(30)
    ShipDate = Date.Today.AddDays(3)
    
    InvoiceDate = System.DateTime.Today;
    InvoiceDue = System.DateTime.Today.AddDays(30);
    ShipDate = System.DateTime.Today.AddDays(3);
    
  4. В обозревателе решений дважды щелкните узел сущности Счета.

  5. В конструкторе данных выберите поле InvoiceDate.

  6. Щелкните раскрывающийся список Создание кода на панели инструментов, а затем щелкните ссылку InvoiceDate_Changed.

  7. В методе InvoiceDate_Changed добавьте следующий код, чтобы обновлять даты при изменении InvoiceDate:

    InvoiceDue = InvoiceDate.AddDays(30)
    ‘ If the ShipDate is earlier than the new InvoiceDate, update it.
    If ShipDate < InvoiceDate Then
        ShipDate = InvoiceDate.AddDays(2)
    End If
    
    InvoiceDue = InvoiceDate.AddDays(30); 
        // If the ShipDate is earlier than the new InvoiceDate, update it
    if (ShipDate < InvoiceDate)
        {
            ShipDate = InvoiceDate.AddDays(2);
        }
    
  8. В обозревателе решений дважды щелкните узел InvoiceDetails.

  9. В конструкторе данных выберите поле Продукт, щелкните раскрывающийся список Создание кода на панели инструментов, а затем щелкните ссылку Product_Changed.

  10. В редакторе кода добавьте следующий код для установки единицы цены и количества по умолчанию:

    UnitPrice = Product.CurrentPrice
    Quantity = 1
    
    UnitPrice = Product.CurrentPrice;
    
    Quantity = 1;
    
  11. Нажмите клавишу F5 для запуска приложения и просмотра изменений.

    Откройте экран Счет и добавьте новый счет.Поля даты, цены и количества были автоматически обновлены.

  12. Нажмите кнопку Сохранить, чтобы сохранить изменения.

  13. Нажмите кнопку Закрыть, расположенную в правом верхнем углу окна работающего приложения, чтобы вернуться в режим конструктора.

  14. В меню Файл выберите команду Сохранить все, чтобы сохранить работу.

Добавление дополнительных вычисляемых полей

В следующем шаге предстоит добавить вычисляемые поля «Промежуточный итог», «Налог» и «Итого» в сущности InvoiceDetails и Счета.

Добавление вычисляемых полей

  1. В обозревателе решений дважды щелкните узел сущности InvoiceDetails.

  2. В конструкторе данных щелкните пункт <Добавить свойство>. Введите SubTotal, а затем щелкните Вкладка.

  3. В раскрывающемся списке в столбце Тип выберите Money.

  4. В окне Свойства в разделе Общие свойства установите флажок IsComputed.

  5. Щелкните ссылку Изменить метод.

    Откроется окно Редактор кода; в нем будет отображаться метод SubTotal_Compute.

  6. Добавьте следующий код для вычисления SubTotal:

    result = Quantity * UnitPrice
    
    result = Quantity * UnitPrice;
    
  7. В обозревателе решений дважды щелкните узел сущности Счета.

  8. В конструкторе данных щелкните пункт <Добавить свойство>. Введите Налог, а затем щелкните Вкладка.

  9. В раскрывающемся списке в столбце Тип выберите Money.

  10. В окне Свойства установите флажок IsComputed.

  11. Щелкните ссылку Изменить метод.

    Откроется редактор кода, в котором будет отображаться метод Tax_Compute.

  12. Замените метод Tax_Compute следующим кодом для вычисления значения Tax:

    Private Sub Tax_Compute(ByRef result As Decimal)
        Result =  GetSubTotal() * 0.095
    End Sub
    Protected Function GetSubTotal() As Decimal
        GetSubtotal = 0
        For Each item In InvoiceDetails
            GetSubTotal = GetSubTotal + item.SubTotal
        Next
    End Function
    
    partial void Tax_Compute(ref decimal result)
        {
            result = GetSubTotal() * (decimal)0.095;
        }
    protected decimal GetSubTotal()
        {
            return this.InvoiceDetails.Sum(i => i.SubTotal);
        }
    
  13. В обозревателе решений дважды щелкните узел сущности Счета.

  14. В конструкторе данных щелкните пункт <Добавить свойство>.Введите Итого, а затем нажмите кнопку Вкладка.

  15. В раскрывающемся списке в столбце Тип выберите Money.

  16. В окне Свойства установите флажок IsComputed.

  17. Щелкните ссылку Изменить метод.

    Откроется редактор кода, в котором будет отображаться метод Total_Compute.

  18. Добавьте следующий код для вычисления Tax:

    result = GetSubTotal() + Tax
    
    result = GetSubTotal() + Tax;
    
  19. В меню Файл выберите команду Сохранить все, чтобы сохранить работу.

В следующем шаге предстоит добавить новые поля на экране Счета.

Добавление полей на экран

  1. В обозревателе решений дважды щелкните узел экрана InvoiceScreen.

  2. В центральной области выберите и разверните узел Макет -строки | Сведения о счете.

  3. Разверните раскрывающийся список Добавить и выберите значение Налог.

    Поле Налог добавляется в раздел Вертикальный стек | InvoiceDetails.

  4. Снова выберите раскрывающийся список Добавить, а затем выберите поле Итого.

  5. Нажмите клавишу F5 для запуска приложения и просмотра результатов.

    Откройте экран Экран счета.Теперь для каждой строки счета отображаются поля Налог и Итого.

  6. Нажмите кнопку Дизайн экрана для перехода в режим настройки.

  7. В левой области выберите и разверните узел Строка сетки данных | Сведения о счете.

  8. В раскрывающемся списке Добавить выберите элемент Промежуточный итог.

  9. Нажмите кнопку Сохранить для сохранения изменений.Поле SubTotal теперь отображается в сетке Сведения о счете.

    Обновленный экран Invoice

  10. Нажмите кнопку Закрыть, расположенную в правом верхнем углу окна работающего приложения, чтобы вернуться в режим конструктора.

  11. В меню Файл выберите команду Сохранить все, чтобы сохранить работу.

Развертывание приложения

В следующем шаге предстоит развернуть приложение как 2-уровневое приложение для настольных систем.

Публикация 2-уровневого приложения для настольных систем

  1. В обозревателе решений выберите узел Офтальмологический центр, а затем в меню Построение нажмите кнопку Опубликовать офтальмологический центр.

    Откроется мастер публикации приложений LightSwitch.

  2. Убедитесь, что на странице приветствия мастера публикации LightSwitch выбран параметр Рабочий стол, а затем нажмите кнопку Далее.

  3. Убедитесь, что на странице Службы приложений выбран параметр Локальный, а затем нажмите кнопку Далее.

  4. На странице Выбор настроек публикации выберите поле Выберите место размещения файлов приложения и введите C:\Publish.

  5. В разделе Как опубликовать базу данных по умолчанию? выберите параметр Опубликовать сейчас непосредственно в базе данных и нажмите кнопку Далее.

  6. На странице База данных приложения LightSwitch – подключение к базе данных SQL примите значения строки подключения по умолчанию и нажмите кнопку Далее.

  7. На странице Установка необходимых компонентов примите параметры по умолчанию, а затем нажмите кнопку Далее.

  8. На странице Другие сведения о подключении примите параметры по умолчанию, а затем нажмите кнопку Опубликовать.

  9. В проводнике Windows перейдите в каталог C:\Publish и дважды щелкните файл Setup.exe, чтобы установить приложение на локальном компьютере.

    ПримечаниеПримечание

    Чтобы установить приложение на другом компьютере, скопируйте содержимое папки публикации и всех ее вложенных папок.Перед установкой необходимо выполнить шаги, описанные в файле Install.htm, который можно найти в папке публикации.

  10. Если откроется диалоговое окно Установка приложения – предупреждение о безопасности, нажмите кнопку Установить.

    Приложение «Офтальмологический центр» будет установлено и запущено.

    Завершенное приложение

  11. Введите данные и убедитесь, что приложение работает должным образом.

    СоветСовет

    Для повторного запуска приложения «Офтальмологический центр» его можно открыть в меню Пуск.

На этом пошаговое руководство по приложению для офтальмологического центра завершается.Вы получили общее представление обо всей процедуре создания приложения LightSwitch.

В этом пошаговом руководстве продемонстрированы основные возможности LightSwitch; однако при помощи LightSwitch можно решать более сложные и разнообразные задачи.Перед построением собственных приложений можно ознакомиться с дополнительными возможностями в документации по продукту.

См. также

Основные понятия

Интерактивный учебник по LightSwitch

Visual Studio LightSwitch

Другие ресурсы

Начало работы с LightSwitch