Скачать 0.69 Mb.
|
3.3 Реализация интерфейса системыПри разработке использовался фреймворк KemsuWeb, который состоит из следующих классов: контроллера запросов, XML-анализатора, утилит, адаптеров команд и фасадов. Анализатор производит разбор и анализ запрошенных файлов, параметров запроса, переменных сессии и т.д., используя, где это необходимо, различные утилиты и фасады. Утилиты выполняют стандартные вспомогательные операции. Адаптеры команд производят различные действия, зависящие от команд из запрошенного файла. Фасады обеспечивают простой доступ к подсистемам информационной системы. Управлением потоком выполнения занимается контроллер запросов. При старте web-сервера происходит инициализация пакета KemsuWeb: считывание и загрузка данных о допустимых переменных сессии для каждого web-приложения, инициализация пулов соединений с СУБД, а также подготовка окружения для взаимодействия с подсистемой защиты. Типичный процесс выполнения выглядит следующим образом (на примере команды получения данных от СУБД). Клиент посылает запрос на web-сервер (вводит URL в web-браузере). Контроллер запросов находит XML-файл по указанному URL (если такого файла нет, вместо него используется файл 404.htm со стандартным сообщением – "Файл не найден"), извлекает параметры запроса, настраивает нужным образом новый экземпляр анализатора и передает ему управление. Анализатор «проходит» по структуре XML-файла, и, если встречает специальные команды, которые необходимо выполнить за первый «проход» (префикс req, пространство имен http://www.kemsu.ru/xml-request), создает экземпляр соответствующего адаптера и передает ему управление. Адаптер берет соединение из пула (имя соединения указывается в команде) и выполняет запрос (SQL-выражение либо вызов хранимой процедуры). Полученный результат оформляется как XML-фрагмент, который возвращается анализатору вместе с потоком управления. После того, как процесс анализа XML завершается, управление возвращается контроллеру. Контроллер отправляет полученный результат (преобразованный XML) на второй «проход»: XSLT-преобразование. XSLT преобразовывает XML в XHTML, оставляя обычные XHTML-конструкции без изменений. При этом XSLT (main.xsl) может встретить команды «второго прохода» (префикс res, пространство имен http://www.kemsu.ru/xml-response), которые анализируются и выполняются специальным XSLT (default.xsl). Также в основном XSLT могут встречаться запросы к шаблонам структуры приложения для формирования меню, отображения пути к текущей позиции в приложении и т.д. (информация о структуре приложения и функции для доступа к ее элементам хранятся в файле tree.xsl). В XML также могут присутствовать команды «первого прохода» для взаимодействия с подсистемой защиты (через соответствующий фасад). Это необходимо для разграничения доступа к определенным функциям приложения в зависимости от полномочий клиентов. С помощью команд 1 прохода, таких как Рисунок 13. Пакет KemSUWEB Ну так а где непосредственно описание реализации интерфейса конкретной системы? Хотя бы структура файлов и каталогов? 3.4 Интерфейс системыПри входе в систему в меню, расположенном слева, доступны два пункта: «Администрирование» и «Заявки». Блок «Администрирование» предназначен для работы с метаданными классов объектов и самими объектами системы. Блок «Заявки» предназначен непосредственно для работы с заявками разных типов и денежным лимитом. Рассмотрим подробнее каждый из блоков. После перехода по ссылке «меню» «Администрирование» для работы с метаданными необходимо выбрать следующий пункт «меню» - «Метаданные». На Рис. 14 показано древовидное отображение классов объектов и их метаданных. Каждое метаданное можно редактировать, удалить, так же можно создать новое (Рис. 15). Удаление какого-либо метаданного влечет за собой удаление зависимых от него метаданных. Рисунок 14. Дерево метаданных Для добавления нового метаданного объекта необходимо нажать на кнопку «+» как показано на Рис. 15: Рисунок 15. Добавление нового метаданного После чего необходимо ввести данные о метаданном (рис.16): Рисунок 16. Добавление нового метаданного «TYPE_ID» - тип нашего будущего метаданного, если выбрано значение «Ссылка», то необходимо в полях «LINK_TABLE_ID» и «MET_LINK_ID» ввести соответственно название таблицы и ID класса, на которые ссылаемся. Для изменения существующего метаданного необходимо нажать (рис.17-18): Рисунок 17. Редактирование метаданного При изменении метаданного отображается его старое название и прочие данные. Рисунок 18. Редактирование метаданного Для работы со значениями объектов системы из пункта «Администрирование» необходимо перейти в «Значения». Там так же как и в «Метаданных» расположено дерево, но уже значений. С помощью него можно добавлять, просматривать, редактировать и удалять значения объектов. Так как объекты разных классов имеют разное количество метаданных, то и при работе с объектами разных классов отображаются относящиеся к ним метаданные. На Рис. 19 показано добавление нового объекта класса «Компьютер». Рисунок 19. Добавление нового экземпляра класса «Компьютер» Здесь можно увидеть, что, например, поля «Назначение» и «Стоимость» типа «строка» и «число» соответственно, а поля «Процессор» и «Видеокарта» содержат в себе ссылки на другие объекты. В данном случае это объекты классов «Процессор» и «Видеокарта». При переходе к пункту меню «Заявки» возникает следующее меню, в котором можно выбрать работу с одним из двух типом заявок, а также с денежным лимитом. Подсистема «Заявки на закупку» является ключевой в системе. С помощью нее ответственные от подразделения могут создавать новые заявки от доступных им подразделений. При создании необходимо выбрать тип заявки: Рисунок 20. Выбор типа заявки После этого генерируются поля для выбранного типа заявки, причем инициалы подающего заявку получаются автоматически из системы защиты, подразделения отображаются те, к которым имеется доступ: Рисунок 21. Поля заявки на закупку техники При добавлении новых строк заявки внизу отображаются ранее поданные: Рисунок 22. Поля заявки на закупку техники После подачи заявки ей присваивается статус «В обработке». Ответственный от подразделения может посмотреть все поданные заявки от доступных ему подразделений. При изменении статуса заявки она перемещается в «Утвержденные» либо «Отклоненные». Утверждение заявки осуществляется по позициям, т.е. выбранные позиции остаются в заявке, а остальные удаляются, после этого заявке присваивается статус «Утверждена». Рисунок 23. Заявки, находящиеся на рассмотрении Из утвержденных заявок комиссия по закупкам может составить сводную заявку от подразделения, выбрав нужные заявки. Рисунок 24. Сводная заявка |