Автоматизация учёта заявок и контроля выполнения работ отделом информационных технологий ФГУЗ клинической больницы №8 ФМБА России

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

ДИПЛОМНЫЙ ПРОЕКТ НА ТЕМУ:

«Автоматизация учёта заявок и контроля выполнения работ отделом информационных технологий ФГУЗ клинической больницы № 8 ФМБА России»

Содержание

Введение

I. Специальная часть

1. Постановка задачи

2. Формализация

3. Описание среды программирования

3.1 Требования к техническому обеспечению

3.2 Требования к программному обеспечению

4. Методика разработки проекта

4.1 Алгоритмизация задачи

4.1.1 Описание алгоритма

4.1.2 Структурная схема

4.2 Программирование

4.3 Аномалии и защитное программирование

4.4 Тестирование и отладка

5. Анализ результатов решения

6. Инструкция пользователю

II. Экономическая часть

Заключение

Литература

Приложение

Введение

ФГУЗ КБ № 8 ФМБА России это многопрофильное медицинское учреждение, осуществляющее лечебно-профилактическую деятельность.

Отдел информационных технологий, обеспечивает работу всех структурных подразделений ФГУЗ КБ № 8 ФМБА России: осуществляет устранение технических неисправностей, производит замену устаревшего или вышедшего из строя оборудования ПК.

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

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

I. Специальная часть

1. Постановка задачи

Задача дипломного проекта разработать программное приложение «Автоматизация учёта заявок и контроля выполнения работ отделом информационных технологий ФГУЗ клинической больницы № 8 ФМБА России».

Разработанное программное приложение, согласно поставленной задачи, должно:

1. Формировать отчётные формы (с возможностью вывода отчётов на принтер и экспорта):

по справочникам,

по итогам работы отдела,

за определённый период времени,

по существующим или отсутствующим компонентам, необходимым для устранения неполадки.

2. Формировать заявку:

в каком отделе и что вышло из строя;

какой сотрудник отвечает за этот отдел и за данную неисправность;

есть ли возможность устранить данную неисправность и т. д.

3. Формировать запросы на основании составленных таблиц:

запрос по справочникам,

запрос по материалам,

различные запросы к БД,

конструктор запросов.

Задача реализована в среде VS2005(Visual C#. Net), СУБД MS SQL сервер 2005 с возможностью работы в ОС Windows XP и Server 2003.

2. Формализация

Для построения необходимо провести формализацию задачи, являющуюся необходимым этапом разработки задачи и заключающуюся в построении структуры таблиц для хранения информации, схемы их взаимосвязей и описания алгоритмов обработки.

Была разработана информационная схема:

рис. 1.

Разработка проекта реализации задачи выполняется в несколько этапов и начинается с анализа той информации, которая является выходной (формы и отчеты для Access). Только после выяснения структуры и состава этой информации, формулировки запросов для получения отчетов можно сделать вывод о структуре и составе таблиц данных. Необходимым этапом формализации задачи является нормализация базы данных, которая, по сути, представляет собой процесс оптимизации хранения и использования информации в таблицах.

Наиболее часто используется приведение к третьей нормальной форме (3NF). В результате устраняется избыточность данных и упрощается процесс изменения структуры БД.

Сначала производится приведение к первой нормальной форме (1NF) — каждой таблице назначается первичный ключ, обеспечивающий уникальность ключевой записи. Здесь же удаляются все повторяющиеся группы (точнее создается новая таблица для повторяющихся групп).

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

И, наконец, в 3NF все поля каждой таблицы непосредственно связаны с полем первичного ключа и не зависят от других полей. На практике это делается следующим образом — любое поле не связанное с полем первичного ключа, необходимо перенести в отдельную таблицу.

При разработке структуры данных рассматриваемой задачи изначально подразумевалось следование 3NF. В Access существует мастер анализа таблиц, позволяющий еще более упростить этот процесс.

На следующем этапе уточняется структура полей в таблицах, и определяются правила ввода.

Затем происходит возврат к проектированию запросов для форм и отчетов, проектируются собственно входные и выходные формы и отчеты.

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

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

Взаимосвязь между таблицами показана в схеме данных:

Рис. 2.

3. Описание среды программирования

Программный продукт «Автоматизация учёта заявок и контроля выполнения работ отделом информационных технологий ФГУЗ клинической больницы № 8 ФМБА России» разработан на VS 2005(Visual C#. Net) с использованием MS SQL 2005.

В Microsoft Access для обработки данных ваших таблиц используется мощный язык SQL (Structured Query Language — Структурированный язык запросов). Используя его, можно выделить из одной или нескольких таблиц необходимую для решения конкретной задачи информацию.

Access значительно упрощает задачу обработки данных. Чтобы заставить Microsoft Access решать ваши задачи, вам совершенно не требуется знать язык SQL.

SQL является, прежде всего, информационно-логическим языком, предназначенным для описания, изменения и извлечения данных, хранимых в реляционных базах данных. SQL нельзя назвать языком программирования.

Изначально, SQL был основным способом работы пользователя с базой данных и позволял выполнять следующий набор операций:

создание в базе данных новой таблицы;

добавление в таблицу новых записей;

изменение записей;

удаление записей;

выборка записей из одной или нескольких таблиц (в соответствии с заданным условием); а, также, изменение структур таблиц. Со временем, SQL усложнился -- обогатился новыми конструкциями, обеспечил возможность описания и управления новыми хранимыми объектами (например, индексы, представления, триггеры и хранимые процедуры) -- и стал приобретать черты, свойственные языкам программирования. Каждое предложение SQL -- это запрос или обращение к базе данных, которое приводит к изменению в базе данных. В соответствии с тем, какие изменения происходят в базе данных, различают следующие типы запросов:

запросы на создание или изменение в базе данных новых или существующих объектов (при этом в запросе описывается тип и структура создаваемого или изменяемого объекта);

запросы на получение данных;

запросы на добавление новых данных (записей)

запросы на удаление данных;

обращения к СУБД.

Основным объектом хранения реляционной базы данных является таблица, поэтому все SQL-запросы -- это операции над таблицами. В соответствии с этим, запросы делятся на

запросы, оперирующие самими таблицами (создание и изменение таблиц);

запросы, оперирующие с отдельными записями (или строками таблиц) или наборами записей.

Каждая таблица описывается в виде перечисления своих полей (столбцов таблицы) с указанием

типа хранимых в каждом поле значений;

связей между таблицами (задание первичных и вторичных ключей);

информации, необходимой для построения индексов.

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

вставка новой строки;

изменение значений полей строки или набора строк;

удаление строки или набора строк.

Самый главный вид запроса -- это запрос, возвращающий (пользователю) некоторый набор строк, с которым можно осуществить одну из трёх операций:

просмотреть полученный набор;

изменить все записи набора;

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

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

Язык SQL представляет собой совокупность

операторов;

инструкций;

и вычисляемых функций.

3.1 Требования к техническому обеспечению

Требования для сервера

Минимальные требования:

-Процессор Pentium с частотой 600 МГц:

-ОЗУ 512 Мб;

-Свободное место на жестком диске 1 Гб.

Рекомендуемые требования:

-Процессор с частотой 1 ГГц:

-ОЗУ 1 Гб.

3.2 Требования к программному обеспечению

Сервер:

Для нормальной работы программы необходимо наличие на компьютере операционной системы из серии WINDOWS XP и Server 2003 и MS SQL Server 2005, а также. Net Framework 2.0 и выше.

Клиент:

Microsoft WINDOWS 2000 или выше.

4. Методика разработки программы

4.1 Алгоритмизация задачи

4.1.1 Описание алгоритма

База данных «Автоматизация учёта заявок и контроля выполнения работ отделом информационных технологий ФГУЗ клинической больницы № 8 ФМБА России» создавалась с самого начала MS SQL Server 2005.

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

В ходе разработки программного продукта были созданы следующие таблицы:

автоматизация учёт заявка алгоритм

Таблица № 1 «Журнал заявок»

Имя поля

Тип данных

Размер поля

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

Id-записи — ключевое поле

Счётчик

Длинное целое

Да

Id_заявки

Числовое

Длинное целое

Да

ФИО_предъявителя_заявки

Текстовое

50

Да

Должность_предъявителя_заявки

Текстовое

50

Да

Телефон_предъявителя_заявки

Числовое

Длинное целое

Да

Е-mail_предъявителя_заявки

Текстовое

50

Да

Адрес_предъявителя_заявки

Текстовое

50

Да

Id_вида_работ

Числовое

Длинное целое

Да

Дата_поступления_заявки

Дата/время

-

Да

Id_места_установки (отдела)

Числовое

Длинное целое

Да

Id_сотрудника_ОИТ

Числовое

Длинное целое

Да

Id_материала_для установки/замены

Числовое

Длинное целое

Да

Id_причины_отказа

Числовое

Длинное целое

Да

Id_срочности_замены

Числовое

Длинное целое

Да

Дата_исполнения_заявки

Дата/время

-

Да

Таблица № 2 «Справочник вида работ»

Имя поля

Тип данных

Размер поля

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

Id_вида_работ — ключевое поле (мастер подстановки в таблицу журнал заявок)

Числовое

Длинное целое

Да

Вид_работы

Текстовое

50

Да

Примечание

Текстовое

50

Да

Таблица № 3 «Справочник заявок»

Имя поля

Тип данных

Размер поля

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

Id_заявки — ключевое поле (мастер подстановки в таблицу журнал заявок)

Числовое

Длинное целое

Да

Проблема

Тестовое

50

Да

Примечание

Текстовое

50

Да

Таблица № 4 «Справочник мест установки»

Имя поля

Тип данных

Размер поля

Обязательное

поле

Id_места_установки (отдела) — ключевое поле (мастер подстановки в таблицу журнал заявок)

Числовое

Длинное целое

Да

ФИО_начальника_отдела

Текстовое

50

Да

Телефон

Числовое

Длинное целое

Да

Адрес

Текстовое

50

Да

Таблица № 5 «Справочник по материалам»

Имя поля

Тип данных

Размер поля

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

Id_материала_для установки/замены — ключевое поле (мастер подстановки в таблицу журнал заявок)

Числовое

Длинное целое

Да

Наименование_материала

Текстовое

50

Да

Примечание

Текстовое

50

Да

Таблица № 6 «Справочник по срочности замены»

Имя поля

Тип данных

Размер поля

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

Id_срочности_замены — ключевое поле (мастер подстановки в таблицу журнал заявок)

Числовое

Длинное целое

Да

Срочность_замены

Текстовое

50

Да

Примечание

Текстовое

50

Да

Таблица № 7 «Справочник причин отказа»

Имя поля

Тип данных

Размер поля

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

Id_причины_отказа — ключевое поле (мастер подстановки в таблицу журнал заявок)

Числовой

Длинное целое

Да

Причина_отказа

Текстовый

50

Да

Необходимый_материал

Текстовый

50

Да

Цена

Денежный

-

Да

Таблица № 8 «Справочник сотрудников отдела информационных технологий»

Имя поля

Тип данных

Размер поля

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

Id_сотрудника_ОИТ — ключевое поле (мастер подстановки в таблицу журнал заявок)

Числовой

Длинное целое

Да

ФИО

Текстовый

50

Да

Должность

Текстовый

50

Да

Телефон

Числовой

Длинное целое

Да

E — mail

Текстовый

50

Да

Адрес

Текстовый

50

Да

Программа имеет следующие формы:

Форма «Автоматизация учёта заявок и контроля выполнения работ ОИТ» — является главной формой данного проекта. При помощи вкладки меню, которая расположено на этой форме, открывает формы, содержащие интересующую нас информацию.

Форма «Журнал заявок».

Форма «Журнал заявок» нужна для просмотра, редактирования, добавления информации о предъявителях и исполнителях заявок, а так же о причинах неполадок и их решений.

Форма «Журнал заявок» содержит кнопки такие как: переходы по записям, добавить запись, удалить запись, сохранить запись.

Форма содержит в себе следующую информацию:

Id-записи;

Id-заявки;

ФИО_предъявителя_заявки;

Должность_предъявителя_заявки;

Телефон_предъявителя_заявки;

E-mail_предъявителя_заявки;

Адрес_предъявителя_заявки;

Id вида работ;

Дата поступления заявки;

Id-места установки (отдела);

Id-сотрудника ОИТ;

Id-материала для установки/замены;

Id-причины отказа;

Id-срочности замены;

Дата исполнения заявки.

Форма «Новая запись в журнале заявок».

Форма «Новая запись» нужна для редактирования, добавления информации о причинах поступления заявки, необходимых материалов для замены/установки, причин отказа и т. д.

Форма «Новая запись» содержит кнопки: сохранить запись.

Форма содержит в себе следующую информацию:

Id-записи;

Id-заявки;

ФИО_предъявителя_заявки;

Должность_предъявителя_заявки;

Телефон_предъявителя_заявки;

E-mail_предъявителя_заявки;

Адрес_предъявителя_заявки;

Id вида работ;

Дата поступления заявки;

Id-места установки (отдела);

Id-сотрудника ОИТ;

Id-материала для установки/замены;

Id-причины отказа;

Id-срочности замены;

Дата исполнения заявки.

Форма «Справочник заявок».

Форма «Справочник заявок» нужна для просмотра, редактирования, добавления информации о заявках (поломках, выхода из строя и замены устаревшего оборудования).

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

Форма содержит в себе следующую информацию:

Id-заявки;

Проблема (неполадка);

Примечание.

Форма «Справочник материалов».

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

Содержит кнопки: переходы по записям, добавить запись, удалить запись, сохранить запись, новая запись.

Форма содержит в себе следующую информацию:

Id-материала для установки/замены;

Наименование материала;

Примечание.

Форма «Новая запись в справочнике по материалам».

Форма «Новая запись в справочнике по материалам» нужна для

внесения новых сведений о материале и новых материалов, которых не было в списке.

Содержит кнопки: сохранить и удалить запись.

Форма содержит в себе следующую информацию:

Id-материала для установки/замены;

Наименование материала;

Примечание.

Форма «Справочник вида работ».

Форма «Справочник вида работ» нужна, как перечень возможных работ, которые выполняются отделом информационных технологий.

Содержит кнопки: переходы по записям, добавить запись, удалить запись, сохранить запись, новая запись.

Форма содержит в себе следующую информацию:

Id-вида работ;

Вид работы;

Примечание.

Форма «Новая запись в справочнике вида работ».

Форма «Новая запись в справочнике вида работ» нужна для создания новой информации о виде работ, которого нет в списке предполагаемых работ.

Содержит кнопки: сохранить и удалить.

Форма содержит в себе следующую информацию:

Id-вида работ;

Вид работы;

Примечание.

Форма «Справочник мест установок».

Форма «Справочник мест установок» является перечнем медицинских учреждений, относящихся к отделу информационных технологий.

Содержит кнопки: переходы по записям, добавить запись, удалить запись, сохранить запись, новая запись.

Форма содержит в себе следующую информацию:

Id-места установки (отдела);

ФИО начальника отдела;

Телефон;

E-mail;

Адрес.

Форма «Новая запись в справочнике мест установок».

Форма «Новая запись в справочнике мест установок» нужна для добавления нового места установки, адреса медицинского учреждения и начальника отделения.

Содержит кнопки: сохранить и удалить.

Форма содержит в себе следующую информацию:

Id-места установки (отдела);

ФИО начальника отдела;

Телефон;

E-mail;

Адрес.

Форма «Справочник сотрудников ОИТ».

Форма «Справочник сотрудников ОИТ» нужна для просмотра, добавления данных о сотрудниках отдела информационных технологий.

Содержит кнопки: переходы по записям, добавить запись, удалить запись, сохранить запись, новая запись.

Форма содержит в себе следующую информацию:

Id-сотрудника ОИТ;

ФИО;

Должность;

Телефон

E-mail;

Адрес.

Форма «Новая запись в справочнике сотрудников ОИТ».

Форма «Новая запись в справочнике сотрудников ОИТ» нужна для добавления записи о новом сотруднике или изменения данных о уже имеющемся.

Содержит кнопки: сохранить и удалить.

Форма содержит в себе следующую информацию:

Id-сотрудника ОИТ;

ФИО;

Должность;

Телефон

E-mail;

Адрес.

Форма «Справочник причин отказа».

Форма «Справочник причин отказа» нужна для просмотра и добавления записи о причине отказа и её устранения.

Содержит кнопки: переходы по записям, добавить запись, удалить запись, сохранить запись, новая запись.

Форма содержит в себе следующую информацию:

Id-причины отказа;

Причина отказа;

Необходимый материал;

Цена.

Форма «Новая запись в справочнике причин отказа».

Форма «Новая запись в справочнике причин отказа» нужна для внесения причины отказа, информации о которой нет в справочнике.

Содержит кнопки: сохранить и удалить.

Форма содержит в себе следующую информацию:

Id-причины отказа;

Причина отказа;

Необходимый материал;

Цена.

Форма «Справочник по срочности замены».

Форма «Справочник по срочности замены» нужна для просмотра, редактирования и добавления записи по срочности замены.

Форма содержит в себе следующую информацию:

Id-срочности замены;

Срочность замены;

Примечание.

Также программа содержит отчеты:

Отчет «Отчёт по временным периодам получения заявок»

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

Отчет «Отчет по временным периодам исполнения заявок»

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

Отчет «Отчет по потребности в материалах»

С помощью этого отчета можно просмотреть и распечатать информацию о необходимых материалах, и имеются ли они в наличии.

Отчёт «Диаграмма по затраченным средствам»

С помощью этого отчёта — диаграммы можно посмотреть, сколько средств было затрачено на приобретение необходимого материала, и подвести итог: какие материалы являются чаще заменяемыми.

4.1.2 Структурная схема

рис. 3.

4.2 Программирование

В соответствии со структурной схемой, приведенной в пункте 4.1.2. в представленной программе разработаны программные модули на SQL Server и на Microsoft Visual Studio 2005. Тексты программных модулей приведены в пункте V. «Приложение».

4.3 Аномалии и защитное программирование

Таблица № 9.

Описание аномалии

Реакции на аномалию

Способ защиты

Попытка перехода к следующей записи после окончания списка

Ввод текстового сообщения без изменения структуры

Автоматически защищено с помощью Access

Ввод в числовые поля текстовых значений

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

Защищено с помощью Access автоматически

Ввод в поля дата/время и денежные поля текстовых значений

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

Защищено с помощью Access автоматически

4.4 Тестирование и отладка

На отладку и тестирование программ приходится около 50% общей стоимости разработки программного обеспечения.

Тестирование — это процесс выполнения программы с целью обнаружения в ней ошибок. Такое определение цели стимулирует поиск ошибок в программах. Отсюда также ясно, что «удачным» тестом является такой, на котором выполнение программы завершилось с ошибкой. Напротив, «неудачным можно назвать тест, не позволивший выявить ошибку в программе.

Отладка — исправление ошибок, найденных с помощью тестирования.

Основные принципы организации тестирования:

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

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

по тем же соображениям организация — разработчик программного обеспечения не должна «единолично» его тестировать (должны существовать организации, специализирующиеся на тестировании программных средств);

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

необходимо тщательно подбирать тест не только для правильных (предусмотренных) входных данных, но и для неправильных (непредусмотренных);

при анализе результатов каждого теста необходимо проверять, не делает ли программа того, что она не должна делать;

следует сохранять использованные тесты (для повышения эффективности повторного тестирования программы после ее модификации или установки у заказчика);

тестирования не должно планироваться исходя из предположения, что в программе не будут обнаружены ошибки (в частности, следует выделять для тестирования достаточные временные и материальные ресурсы);

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

следует всегда помнить, что тестирование — творческий процесс, а не относиться к нему как к рутинному занятию.

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

Хотя программа прошла тестирование успешно, в ней, тем не менее, могут содержаться ошибки, т.к.

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

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

5. Анализ результатов решения

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

Все найденные ошибки были успешно устранены.

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

6. Инструкция пользователю

Общие сведения о программе «Автоматизация учёта заявок и контроля выполнения работ отделом информационных технологий ФГУЗ клинической больницы № 8 ФМБА России».

Данный программный продукт разработан для более эффективной и быстрой работы с информацией о заявках и их предъявителях, сотрудниках отдела информационных технологий, а так же для быстрого и удобного формирования и обработки данных, вносимых в журнал заявок.

Программа позволяет:

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

Просматривать и обрабатывать данные, вносимых в журнал заявок;

Формировать статистическую отчетность о результатах работы отдела информационных технологий;

Достоинства программы «Автоматизация учёта заявок и контроля выполнения работ отделом информационных технологий ФГУЗ клинической больницы № 8 ФМБА России»:

удобство и простота в эксплуатации (минимальные навыки работы пользователя на ПК);

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

небольшой объём занимаемой памяти на HDD.

После запуска программного приложения на экране появится форма «Автоматизация учёта заявок и контроля выполнения работ ОИТ», которая выглядит следующим образом:

Рис. 4.

На панели меню представлены четыре вкладки. При выборе меню «Главная форма» мы можем перейти на форму «Журнал заявок». При выборе вкладки «Справочник» мы можем перейти на следующие формы: «Справочник заявок», «Справочник по материалам», «Справочник вида работ», «Справочник мест установок», «Справочник сотрудников ОИТ», «Справочник причин отказа», «Справочник по срочности замены». При выборе вкладки «Отчёт» мы можем открыть и просмотреть, а также распечатать следующие отчёты: «Отчёт по временным периодам поступления заявок», «Отчёт по временным периодам исполнения заявок», «Отчёт по потребности в материалах», «Отчёт по затраченным средствам», «Отчёт-диаграмма». При выборе вкладки «Помощь» можно получить «Справку», вкладку «О программе», а также открыть и просмотреть «Информационную схему».

«Главная форма»

При нажатии на главной форме вкладки меню «Главная форма» мы можем просмотреть форму «Журнал заявок»:

Рис. 5.

Форма «Журнал заявок»

Рис. 6.

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

Форма «Новая запись в журнале заявок»

Рис. 7.

После заполнения формы мы нажимаем на кнопочку, обновить, и запись добавляются в «Журнал заявок».

Нажав на вкладку «Справочник» мы видим:

Рис. 8.

Форма «Справочник заявок»

Рис. 9.

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

Форма «Справочник по материалам»

Рис. 10.

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

Форма «Новая запись в справочнике материалов»

Рис. 11.

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

Форма «Справочник вида работ»

Рис. 12.

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

Форма «Новая запись в справочнике вида работ»

Рис. 13.

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

Форма «Справочник мест установок».

Рис. 14.

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

Форма «Новая запись в справочнике мест установок»

Рис. 15.

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

Форма «Справочник сотрудников ОИТ»

Рис. 16.

Вы можете просматривать данные о сотрудниках ОИТ, нажав на копки, добавить нового врача, нажав на кнопку, удалить, нажав на кнопку и сохранить внесенные изменения,.

Форма «Новая запись в справочнике сотрудников ОИТ»

Рис. 17.

С помощью этой формы мы можем вводить новые данные в ручную. После заполнения формы мы нажимаем на кнопочку, обновить, и запись добавляются в «Справочник сотрудников ОИТ».

Форма «Справочник причин отказа»

Рис. 18.

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

Форма «Новая запись в справочнике причин отказа»

Рис. 19.

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

Форма «Справочник срочности замены»

Рис. 20.

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

Нажав на вкладку «Отчёт» мы видим:

Рис. 21.

Отчёт «По временным периодам поступления заявок»

Рис. 22.

Отчёт «По временным периодам исполнения заявок»

Рис. 23.

Отчёт «По потребности в материалах»

Рис. 24.

Отчёт «Диаграмма по затраченным средствам»

Нажав на вкладку «Помощь» мы видим:

Рис. 26.

Справка имеет вид:

Форма «О программе» имеет вид:

Рис. 28.

Схема имеет следующий вид и позволяет пользователю просмотреть информационную схему потока данных:

II. Экономическая часть

Экономический эффект заключается в экономии рабочего времени сотрудника за счет внедрения программного продукта «Автоматизация учёта заявок и контроля выполнения работ отделом информационных технологий ФГУЗ клинической больницы № 8 ФМБА России». При расчёте экономии с необходимостью учитываются следующие виды работ:

составление записей в журнале заявок;

поиск и составление информации о предъявителях заявок и их исполнителях;

составление отчетных документов;

редактирование данных.

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

Расчет затрат на разработку.

Распределение трудоемкости по стадиям разработки:

Таблица 1.

Этап разработки

Содержание работ

Трудоёмкость

час.

Постановка задачи

Предпроектное обследование.

Разработка, согласование и утверждение технико-экономического обоснования.

10

Технический

проект

Уточнение структуры и формы представления входных и выходных данных.

Разработка алгоритма решения задачи. Разработка структуры программы.

Разработка плана мероприятий по разработке и внедрению ПП.

Разработка пояснительной записки. Согласование и утверждение технического проекта.

55

Рабочий

проект

Написание программы на языке программирования.

Первичная отладка программы.

Тестирование.

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

85

Документооборот

Разработка программной документации. Подготовка к сдаче программы и программной документации

30

ИТОГО:

180часов

Расчет затрат разработчика программного продукта:

Коэффициент сложности задачи с — характеризует относительную сложность программы по отношению к так называемой типовой задаче, сложность которой принята равной единице (величина с лежит в пределах от 0,5 до 1,5). Для моего программного продукта сложность задачи берем 1,1; т.к. данный программный продукт не является сложным.

c = 1,1 — (коэффициент сложности программы)

Коэффициент коррекции программы p — увеличение объема работ за счет внесения изменений в алгоритм или программу по результатам уточнения постановок (величина р лежит в пределах от 0,1 до 0,5). Оптимальным в данном проекте является среднее значение коэффициента коррекции, соответствующие p =0,4, что объясняется неоднократными доработками и корректировками программы, связанные с неточным описанием программы со стороны заказчика.

p = 0,4 — коэффициент коррекции программы в ходе разработки.

Коэффициент увеличения затрат труда b, вследствие недостаточного описания задачи, в зависимости от сложности задачи принимается от 1 до 1,5. В связи с тем, что данная задача, потребовала уточнения и больших доработок, примем b = 1,4.

Коэффициент квалификации разработчика k определяется в зависимости от стажа работы и составляет:

для работающих до двух лет — 0,8;

от трех лет до пяти лет — 1,0;

от пяти до восьми — 1,2;

более восьми лет -1,5.

Поскольку стажа работы по специальности у меня нет, возьмем k= 0,8.

Оклад программиста фирмы равен 12 000 рублей (З/П). С учётом использования коэффициентов заработной платы основная заработная плата разработчика программного продукта составит:

З/П осн. = оклад *c*(p+1)*b*k = 12 000 руб. * 1,1 * (1 + 0,4)*1,4*0,8 =20 697,6 руб. в месяц.

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

Страховые взносы берутся в размере 34% от основной и дополнительной заработной платы:

ФО=З/п осн *34%=20 697,6 *34%=7037,18р. в месяц.

Итоговая заработная плата за весь период разработки программного продукта (180−10 = 170 ч.) составит:

З/П общ = З/П осн + страховые взносы*170 / 176ч = 20 697,6 + 7037,18 * 180 / 176 = 27 894,72 за весь период разработки программного продукта.

Величина Оплаты труда сотрудника составит:

ЗП сум. = З/П осн+ Страховые взносы = 20 697,6 + 7037,18 = 27 734,78 руб.

Содержание и эксплуатация вычислительной техники

Свт = См-ч * Число часов отладки

где См-ч — стоимость машино-часа.

Для расчета часов отладки суммируем время 3 последних глав таблицы № 1: технический проект + рабочий проект + документация и внедрение.

Число часов отладки = 55час. + 85 час. + 30 час. = 170 час.

Стоимость машино-часа рассчитывается, как сумма составляющих:

(Ст-ть_эл_эн_в_год+Аморт в_год+Затраты_на_ремонт_за_год)/Фвт

где Фвт — действительный фонд времени работы вычислительного комплекса.

Стоимость 1 КВТ/час электроэнергии составляет: 5 руб.

Один компьютер потребляет в среднем 300 Вт в час.

За год оплата за электроэнергию, потребляемую одной ЭВМ, составляет:

8 ч. * 22 дня * 12 мес. * 0,3 КВт/ч. *5 руб. = 3168 руб.

Программный продукт разрабатывался на компьютере, который является собственностью ОФ ГОУ «Математический колледж». Т.к. до этого он уже использовался по назначению в течение более 4-х лет, мы не будем производить расчет амортизации, т.к. срок полезного использования компьютера составляет 4 года.

ПК был приобретен в декабре месяце 2007 года. Стоимость компьютера составляет 21 500 руб.

Стоимость ремонта ЭВМ= 21 500 * 5% = 1075 руб.

В год компьютер работает 2 112 часов, на его ремонт уходит 5% времени, значит, окончательное время работы компьютера 2 006 часов в год.

Стоимость машинного- часа равна:

(3168 + 1075) / 2006 = 2,12 руб.

Содержание и эксплуатация вычислительного комплекса на время разработки программного продукта составляет:

170 час. * 2,12 руб. = 3604 руб.

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

Затраты на разработку программного продукта приведены в таблице 2.

Таблица 2.

Наименование расходов

Затраты, руб.

1

Общая заработная плата

27 894,72 руб.

2

Страховые взносы

7037,18 руб.

3

Содержание и эксплуатация вычислительного комплекса.

3604 руб.

4

Программное обеспечение

0 руб.

ИТОГО:

38 535,9 руб.

Экономический эффект

Задача: узнать годовую экономию затрат; период окупаемости продукта.

Рассчитаем экономический эффект, получаемый за счет экономии рабочего времени сотрудника на введение необходимых данных после внедрения программного продукта.

Для ведения расчетов введем следующие обозначения:

Т1- время, затрачиваемое сотрудниками на поиск и составление информации до внедрения программного продукта;

Т2- время, затрачиваемое на поиск и составление после внедрения программного продукта.

До внедрения программы на то чтобы найти нужную информацию о предъявителе заявки, составить запись на прием, в день сотрудник в среднем тратил около 30 мин:

Т1 = 30 мин.

Количество выполняемых операций сотрудником отдела информационных технологий равно 10.

После внедрения программы время сократится, и будет составлять 20 мин. за счет автоматизации поиска необходимой информации о предъявителе заявки и записи всей необходимой информации в журнал заявок:

Т2 = 20мин.

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

Т=Т1-Т2=10 минут =0,166

Теперь рассчитаем стоимость работы сотрудника автоматизируемого рабочего места. В месяц сотрудник работает (8 часов*22 рабочих дня) 176 часов.

Размер оклада сотрудника составляет 12 000 рублей.

Стоимость 1 часа (Р), рассчитывается следующим образом:

Р=12 000 / 176 = 68,18 руб.

Учтем страховые взносы, которые берем в размере 34% = 0,34

Рфо = (12 000*0,34)/ 176=23,18

Рсумм = Р + Рфо = 68,18 + 23,18 = 91,36 руб. /час

Эту сумму сотрудник зарабатывает в 1 час работы.

Расчет годового экономического эффекта.

Перемножим выигранное время, количество операций, количество рабочих дней в месяце и на количество рабочих месяцев

?Тгод = (0,166*10)*22*12 = 438,24 часа.

Рассчитаем, сколько составит годовая экономия при внедрении программного продукта:

Годовая экономия средств =?Тгод* Рсумм = 438,24*91,36=40 037,6 руб/год

Экономический эффект составляет величину, равную годовой экономии средств за вычетом затрат.

Экономический эффект = 40 037,6 — 38 535,9 = 1501,7руб/год

Теперь посчитаем, через какой промежуток времени окупится программный продукт:

Т= затраты/годовая экономия средств =38 535,9/40 037,6 = 0,962 года

Данный программный продукт окупится менее чем за год. Это нормальный срок окупаемости для автоматизации учёта заявок и контроля выполнения работ отделом информационных технологий.

Заключение

В изложенной дипломной работе на тему «Автоматизация учёта заявок и контроля выполнения работ отделом информационных технологий ФГУЗ клинической больницы № 8 ФМБА России» была реализована задача разработки программного обеспечения, которое:

автоматизирует учёт получения и исполнения заявок;

упрощает работу отдела информационных технологий (формирование, заполнение и обработка сведений в журнале заявок с помощью разработанного ПО);

хранение и сортировка (по дате, исполнителю, предъявителю и т. п.) необходимой информации;

формирует отчетные формы.

Разработанная программа полностью соответствует п. 1. «Постановка задачи».

Была произведена экономическая оценка эффективности от внедрения программного продукта. Срок окупаемости составляет 0,96 года.

Литература

Гончаров А. Ю. — Access 2003. Самоучитель с примерами — М.: КУДИЦ-ОБРАЗ, 2004.

Нильсен Пол., SQL Server 2005. Библия пользователя. «И.Д. Вильямс», 2008

Браст Эндрю Дж., Форте С Разработка приложений на основе Microsoft SQL Server 2005., Microsoft Press, 2009

Т.А. Павловская — С# Программирование на языке высокого уровня. Учебник для вузов. -СПб. :Питер, 2007

Фролов А.В., Фролов Г. В. Язык С#: Самоучитель. — М. Диалог-МИФИ, 2010

Гуннерсон Э. -Введение в С#. Библиотека программиста. — СПб. :Питер, 2012

Приложение

Автоматизация учёта заявок и контроля выполнения работ ОИТ

using System;

using System. Collections. Generic;

using System. ComponentModel;

using System. Data;

using System. Drawing;

using System. Text;

using System. Windows. Forms;

namespace Главная_форма

{

public partial class Form1: Form

{

public Form1()

{

InitializeComponent ();

}

private void журналЗаявокToolStripMenuItem_Click (object sender, EventArgs e)

{

Form2 aa = new Form2();

aa. Show (this);

}

private void заявокToolStripMenuItem_Click (object sender, EventArgs e)

{

Form4 hh = new Form4();

hh. Show ();

}

private void поМатериаламToolStripMenuItem_Click (object sender, EventArgs e)

{

Form6 ii = new Form6();

ii. Show ();

}

private void видаРаботToolStripMenuItem_Click (object sender, EventArgs e)

{

Form7 jj = new Form7();

jj. Show ();

}

private void местУстановокToolStripMenuItem_Click (object sender, EventArgs e)

{

Form8 kk = new Form8();

kk. Show ();

}

private void сотрудниковОИТToolStripMenuItem_Click (object sender, EventArgs e)

{

Form9 ll = new Form9();

ll. Show ();

}

private void причинОтказаToolStripMenuItem_Click (object sender, EventArgs e)

{

Form10 mm = new Form10();

mm. Show ();

}

private void срочностиЗаменыToolStripMenuItem_Click (object sender, EventArgs e)

{

Form17 nn = new Form17();

nn. Show ();

}

private void оПрограммеToolStripMenuItem_Click (object sender, EventArgs e)

{

AboutBox1 lk = new AboutBox1();

lk. ShowDialog ();

}

private void поВременнымПериодамПолученияЗаявокToolStripMenuItem_Click (object sender, EventArgs e)

{

Form19 ROX = new Form19();

ROX. Show ();

}

private void поВременнымПериодамИсполненияЗаявокToolStripMenuItem_Click (object sender, EventArgs e)

{

Form20 kol = new Form20();

kol. Show ();

}

private void поПотребностиВМатериалахToolStripMenuItem_Click (object sender, EventArgs e)

{

Form21 lom = new Form21();

lom. Show ();

}

private void диаграммаToolStripMenuItem_Click (object sender, EventArgs e)

{

Form22 pol = new Form22();

pol. Show ();

}

private void справкаToolStripMenuItem_Click (object sender, EventArgs e)

{

Help. ShowHelp (null, @"Справочка. chm");

}

private void схемаToolStripMenuItem_Click (object sender, EventArgs e)

{

Help. ShowHelp (null, @"СХЕМА. doc");

}

}

}

private void журнал_заявокBindingNavigatorSaveItem_Click (object sender, EventArgs e)

{

this. Validate ();

this. журнал_заявокBindingSource. EndEdit ();

this. журнал_заявокTableAdapter. Update (this. СХЕМАSQLDataSet. Журнал_заявок);

}

public void UpdateDataGrid ()

{

СХЕМАSQLDataSet. Clear ();

this. журнал_заявокTableAdapter. Fill (this. СХЕМАSQLDataSet. Журнал_заявок);

}

private void Form2_Load (object sender, EventArgs e)

{

// TODO: This line of code loads data into the 'сХЕМАSQLDataSet. Журнал_заявок' table. You can move, or remove it, as needed.

this. журнал_заявокTableAdapter. Fill (this. СХЕМАSQLDataSet. Журнал_заявок);

}

private void toolStripButton1_Click (object sender, EventArgs e)

{

Form3 bb = new Form3();

bb. ShowDialog (this);

}

}

}

public partial class Form3: Form

{

public Form3()

{

InitializeComponent ();

}

private void button2_Click (object sender, EventArgs e)

{

Close ();

}

private void button1_Click (object sender, EventArgs e)

{ СХЕМАSQLDataSetTableAdapters. QueriesTableAdapter StopedProcedure = new Главная_форма. СХЕМАSQLDataSetTableAdapters. QueriesTableAdapter (); StopedProcedure. AddMagazine (iD_заявкиTextBox. Text, Convert. ToString (фИО_предъявителя_заявкиTextBox. Text), Convert. ToString (должность_предъявителя_заявкиTextBox. Text), Convert. ToInt32(телефон_предъявителя_заявкиTextBox. Text), Convert. ToString (e_mail_предъявителя_заявкиTextBox. Text), Convert. ToString (адрес_предъявителя_заявкиTextBox. Text), Convert. ToString (iD_вида_работTextBox. Text), Convert. ToDateTime (дата_поступления_заявкиDateTimePicker. Text), Convert. ToString (iD_места_установкиTextBox. Text), Convert. ToString (iD_сотрудника_ОИТTextBox. Text), iD_материала_для_установкиTextBox. Text. ToString (), Convert. ToString (iD_причины_отказаTextBox. Text), Convert. ToString (iD_срочности_заменыTextBox. Text), Convert. ToDateTime (дата_исполнения_заявкиDateTimePicker. Text));

Form2 aa = (Form2)this. Owner;

aa. UpdateDataGrid ();

}

private void button3_Click (object sender, EventArgs e)

{

Form7 jj = new Form7();

jj. ShowDialog (this);

}

private void button4_Click (object sender, EventArgs e)

{

Form8 kk = new Form8();

kk. ShowDialog (this);

}

private void button5_Click (object sender, EventArgs e)

{

Form9 ll = new Form9();

ll. ShowDialog (this);

}

private void button6_Click (object sender, EventArgs e)

{

Form6 ii = new Form6();

ii. ShowDialog (this);

}

private void button7_Click (object sender, EventArgs e)

{

Form10 mm = new Form10();

mm. ShowDialog (this);

}

private void button8_Click (object sender, EventArgs e)

{

Form11 nn = new Form11();

nn. ShowDialog (this);

}

private void button9_Click (object sender, EventArgs e)

{

Form18 ol = new Form18();

ol. ShowDialog (this);

}

}

public partial class Form4: Form

{

public Form4()

{

InitializeComponent ();

}

private void справочник_заявокBindingNavigatorSaveItem_Click (object sender, EventArgs e)

{

this. Validate ();

this. справочник_заявокBindingSource. EndEdit (); this. справочник_заявокTableAdapter. Update (this. сХЕМАSQLDataSet. Справочник_заявок);

}

private void Form4_Load (object sender, EventArgs e)

{

// TODO: This line of code loads data into the 'сХЕМАSQLDataSet. Справочник_заявок' table. You can move, or remove it, as needed.

this. справочник_заявокTableAdapter. Fill (this. сХЕМАSQLDataSet. Справочник_заявок);

}

}

}

public partial class Form10: Form

{

public Form10()

{

InitializeComponent ();

}

private void справочник_причин_отказаBindingNavigatorSaveItem_Click (object sender, EventArgs e)

{

this. Validate ();

this. справочник_причин_отказаBindingSource. EndEdit (); this. справочник_причин_отказаTableAdapter. Update (this. сХЕМАSQLDataSet. Справочник_причин_отказа);

}

private void Form10_Load (object sender, EventArgs e)

{

// TODO: This line of code loads data into the 'сХЕМАSQLDataSet. Справочник_причин_отказа' table. You can move, or remove it, as needed. this. справочник_причин_отказаTableAdapter. Fill (this. сХЕМАSQLDataSet. Справочник_причин_отказа);

}

private void справочник_причин_отказаDataGridView_CellMouseClick (object sender, DataGridViewCellMouseEventArgs e)

{

int row = this. справочник_причин_отказаDataGridView. CurrentCellAddress. Y;

Form3 bb = (Form3)this. Owner;

bb. iD_причины_отказаTextBox. Text = this. справочник_причин_отказаDataGridView. Rows[row]. Cells[1]. Value. ToString ();

Close ();

}

private void toolStripButton1_Click (object sender, EventArgs e)

{

Form16 nb = new Form16();

nb. ShowDialog (this);

}

public void DataGridView4_Refresh ()

{ сХЕМАSQLDataSet. Clear (); this. справочник_причин_отказаTableAdapter. Fill (this. сХЕМАSQLDataSet. Справочник_причин_отказа);

}

}

}

public partial class Form15: Form

{

public Form15()

{

InitializeComponent ();

}

private void button2_Click (object sender, EventArgs e)

{

Close ();

}

private void button1_Click (object sender, EventArgs e)

{

СХЕМАSQLDataSetTableAdapters. QueriesTableAdapter StopedProcedure = new Главная_форма. СХЕМАSQLDataSetTableAdapters. QueriesTableAdapter (); StopedProcedure. AddSotrudnik (Convert. ToInt32(iD_сотрудника_ОИТTextBox. Text), фИОTextBox. Text. ToString (), должностьTextBox. Text. ToString (), Convert. ToInt32(телефонTextBox. Text),

e_mailTextBox. Text. ToString (), адресTextBox. Text. ToString (), Convert. ToInt32(отвечает_за_неисправности_отделовTextBox. Text));

Form9 ll = (Form9)this. Owner;

ll. DataGridView3_Refresh ();

}

}

}

public partial class Form17: Form

{

public Form17()

{

InitializeComponent ();

}

private void справочник_по_срочности_заменыBindingNavigatorSaveItem_Click (object sender, EventArgs e)

{ this. Validate ();

this. справочник_по_срочности_заменыBindingSource. EndEdit (); this. справочник_по_срочности_заменыTableAdapter. Update (this. сХЕМАSQLDataSet. Справочник_по_срочности_замены); }

private void Form17_Load (object sender, EventArgs e)

{ // TODO: This line of code loads data into the 'сХЕМАSQLDataSet. Справочник_по_срочности_замены' table. You can move, or remove it, as needed. this. справочник_по_срочности_заменыTableAdapter. Fill (this. сХЕМАSQLDataSet. Справочник_по_срочности_замены);

}

}

public partial class Form22: Form

{

public Form22()

{

InitializeComponent ();

}

private void Form22_Load (object sender, EventArgs e)

{

this. reportViewer1. RefreshReport ();

}

}

}

ПоказатьСвернуть
Заполнить форму текущей работой