ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Лабораторные работы по CASEBERRY

2






Компания «Информационно-вычислительные Системы»

Технологический отдел

3, 4

Лабораторные работы по CASEBERRY

Раздел: Обучение








Технологический отдел

Лабораторные работы по CASEBERRY







Компания ИВС

г Пермь 614007 ул. Островского 65

Тел.: (3422) 385-207, 196-500 Факс: (3422) 196-510

e-mail: storm@ics.perm.su http://ics.perm.ru

Лабораторная работа №3 6

Лабораторная работа №3 6

Создание отдельных приложений пользователей 6

Создание отдельных приложений пользователей 6

Создание приложения для бухгалтера 9

Создание приложения для бухгалтера 9

Создание приложения для кладовщика 10

Создание приложения для кладовщика 10

Настройка кнопок на списковых формах 12

Настройка кнопок на списковых формах 12

Настройка панели инструментов формы редактирования 14

Настройка панели инструментов формы редактирования 14

Представления 15

Представления 15

Исправление диаграммы классов – добавление поля «Должность» в класс «Сотрудник» 17

Исправление диаграммы классов – добавление поля «Должность» в класс «Сотрудник» 17

Контрольные вопросы 17

Контрольные вопросы 17

Лабораторная работа №4 18

Лабораторная работа №4 18

Заполнение данными для проведения тестов 18

Заполнение данными для проведения тестов 18

Наложение ограничения на список сотрудников для выбора сотрудника, заполнившего заказ 18

Наложение ограничения на список сотрудников для выбора сотрудника, заполнившего заказ 18

Указание даты формирования заказа 21

Указание даты формирования заказа 21

Автоматическое вычисление цены товара в заказе 21

Автоматическое вычисление цены товара в заказе 21

Наложение ограничения на список выбираемых товаров в заказе: 25

Наложение ограничения на список выбираемых товаров в заказе: 25

Проверка количества товаров, указанного менеджером в заказе 26

Проверка количества товаров, указанного менеджером в заказе 26

Автоматическое получение списка товаров в накладной 26

Автоматическое получение списка товаров в накладной 26

Организация проверки наличия товара на складе при оформлении заказа 27

Организация проверки наличия товара на складе при оформлении заказа 27

Понятие бизнес-сервера 27

Понятие бизнес-сервера 27

Блокирование заказа, после перехода в состояние Оплачен 32

Блокирование заказа, после перехода в состояние Оплачен 32

Контрольные вопросы 32

Контрольные вопросы 32

Темы для самостоятельной работы 33

Темы для самостоятельной работы 33

Перспективы развития АСУ_Склад 33

Перспективы развития АСУ_Склад 33




Лабораторная работа №3

Создание отдельных приложений пользователей

Займёмся доработкой проектируемой системы в соответствии с требованиями. Сначала вернёмся к диаграмме прецедентов, и посмотрим, какие акторы должны вступать во взаимодействие с будущей системой.

  • Менеджер должен иметь возможность работать с товарами, заказами, складами и, пусть, со списком сотрудников. (Исправим в соответствии с этим новым требованием диаграмму прецедентов).

  • Бухгалтер должен работать с накладными.

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

В соответствии с определёнными выше правилами создадим классы со стереотипом «application».

Настроим приложение для менеджера:

      • Откроем диаграмму, полученную автоматически с помощью быстрого прототипирования (АСУ_Склад):


          • Настроим приложение АСУ_Склад в соответствии с требованиями, предъявляемыми к приложению для менеджера. Для этого сначала откроем окно с настройками:



              • В окне добавления форм указываем все необходимые контейнеры для запуска:

                  • После добавления указываем правильные заголовки:

                      • В конце сохраняем настройки контейнеров запуска, нажав на «ОК» и закрываем с сохранением окно редактирования свойств класса АСУ_Склад.

                      • Переименуем класс «АСУ_Склад» в «Менеджер»


                      Создание приложения для бухгалтера

                          • Нарисуем новый класс и назовём его Бухгалтер. В качестве стереотипа для нового класса выберем «application»

                              • Откроем окно с настройками контейнеров запуска для приложения «Бухгалтер» и настроим, как показано ниже:

                                  • Сохраняем настройки;

                                  • Укажем строку соединения с базой в конфигурации приложения:

                                      • Сохраним всё.

                                      Создание приложения для кладовщика

                                          • Нарисуем новый класс

                                              • Настроим, как показано ниже

                                                  • Укажем строку соединения с базой (смотри, как это делалось с приложением «Бухгалтер»)

                                                  • Сохраним.


                                                  Настройка кнопок на списковых формах

                                                  Все списковые формы имеют панель инструментов:

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


                                                  На этой форме можно отредактировать операции, которые доступны для списка. Изменения вступят в силу после перегенерации-перекомпиляции форм.

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

                                                  Из доступных операций есть только сохранение и печать:

                                                  Представления

                                                  Представление необходимо для того, чтобы указать, какие именно атрибуты видны на формах и как они называются на формах, а какие — нет1.

                                                  Рассмотрим, как можно изменить состав представления и названия на формах.

                                                  Чтобы поля в списковых формах и на формах редактирования назывались красиво (например, «Код товара», а не «КодТовара»), нам нужно исправить соответствующие значения в представлениях классов объектов данных.


                                                  Итак, откроем свойства класса Товар на диаграмме Сущности:

                                                  Здесь мы видим два представления, созданные автоматически при быстром прототипировании. Первое представление оканчивается на «L», это значит, что оно будет применяться для отображения объектов на списковой форме (listform). Второе представление имеет на конце имени букву «E», что говорит о применении данного представления при создании формы редактирования (editform). Если в приложении используются печатные формы, то представления для них рекомендуется называть так, чтобы на конце имени была буква «P» (printform).

                                                  Для того чтобы отредактировать представление, нажмём на кнопку «…» в поле Properties

                                                  Откроется окно со свойствами:

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

                                                  В соответствии с приведённым примером исправьте заголовки атрибутов для всех представлений всех классов (чтобы слова были раздельно, а с заглавной буквы было бы только первое слово).


                                                  Исправление диаграммы классов – добавление поля «Должность» в класс «Сотрудник»

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

                                                  Также нужно изменить представления С_СотрудникL и С_СотрудникE так, чтобы атрибут «Должность» попал в них.

                                                  Перегенерируем объекты и приведём в соответствие базу данных.

                                                  Контрольные вопросы

                                                  1. С какой целью созданы приложения для разных пользователей?

                                                  2. Какие основные настройки надо указать при создании класса со стереотипом «application»?

                                                  3. Что такое представление?

                                                  4. Какие шаги нужно произвести, чтобы изменения на диаграмме классов стали заметными в приложении?

                                                  Лабораторная работа №4

                                                  Заполнение данными для проведения тестов

                                                  Чтобы проводить эксперименты с программой, заполните несколько объектов класса Товар:


                                                  Откроем сгенерированный проект АСУ_СкладаМенеджерМенеджер.csproj и добавим в один Solution остальные проекты для удобства программирования. Сохраним наш solution как «АСУ_СкладаМенеджерМенеджер.sln» .

                                                  Наложение ограничения на список сотрудников для выбора сотрудника, заполнившего заказ

                                                  У нас в списке сотрудников находятся сотрудники с различными должностями, а нам нужно вывести только менеджеров (чтобы избежать неправильного ввода со стороны пользователя системы). В терминологии CASEBERRY кнопка, которая вызывает список для выбора, называется лукапом (LookUp).

                                                  Итак, для того, чтобы указать ограничение, откроем код независимой формы редактирования для объектов класса заказ (С_ЗаказE.cs). Учтём сразу то, что нам понадобится работать со сборкой ICSSoft.STORMNET.FunctionalLanguage.dll, поэтому подключим её сразу.