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

 

Оглавление


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

.Формирование исходных отношений

2.1Выявление информационных объектов БД и определение требований целостности к данным

.2Выявление множеств сущностей и их атрибутов и требований целостности данных

.3Выявление связей множеств сущностей и их характеристик

.4Построение результирующей ER диаграммы

.5Формирование отношений на основе ER моделирования и их нормализация

.6Даталогическое проектирование

.7Разработка сценариев работы информационной системы

.8Определение архитектуры системы

.9Уточнение состава и содержания сценариев

.10Разработка механизмов реализации сценариев серверной компоненты

3.Разработка клиентских компонент

3.1Выбор средства реализации клиентского приложения

.2Определение состава формы

.3Организационное проектирование

Список используемой литературы



1.Разработка технического задания. Формулировка концепции системы


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

Информационная система должна обеспечитьсистематизацию данных о сотрудниках, заявках, проектах, а также повышение управляемости этими данными (сбор, хранение, поиск).Это приведет к сокращению времени на ведение отчётной документации, что позволит вести гибкий контроль по выполненным проектам.

Функционирование системы предполагает использование компьютера выступающего в роли сервера, под управлением операционной системы Windows Server 2008 R2 , а так же иных клиентских машин предприятия.

Аппаратное обеспечение:

·Сервер (ЦП - AMD Athlon™ II X4, 3.3ГГц, ОЗУ - 4 Гб);

·Клиентские машины (AMD Athlon X2 Dual-Core, 2.6ГГц, ОЗУ - 4Гб).

Все компьютеры объединены в локальную сеть с пропускной способностью 1Гбит/с.

Функциональные требования:

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

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

·вывести названия всех заказов и сотрудников;

·вывести все организации с номерами заявок, которые они подали;

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

·ввод соответствующей информации может осуществляться вручную или с помощью запросов администратором БД;

Нефункциональные требования:

·объем информации - система должна хранить информацию о 30-50 заявках, больше не требуется, так как после 3х месяцев со дня выполнения заявки она удаляется, а сам проект по этой заявке заносится в архив головного офиса; а также система должна хранить информацию о 100 -150 сотрудниках предприятия;

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

·скорость ввода или изменения уже существующих данных должна составлять не более 5 минут;

·время отклика системы на запрос должно составлять примерно 2-3 с.

·удобство использования - дружественный, интуитивно понятный пользовательский интерфейс.

Необходимотакже обеспечить возможность вывода той или иной информации непосредственно в MicrosoftWord.

Требования информационной безопасности - при входе в систему необходимо пройти процедуру авторизации для получения возможности чтения или изменения данных.

Архитектура разрабатываемой информационной системы - архитектура клиент-сервера. Данную архитектуру осуществляет СУБД MSSQLServer 2008. Использование данной СУБД обеспечит следующие функции:

?обеспечивает целостность БД;

?обеспечивает быстрое восстановление после различных сбоев (аппаратных и программных);

?обеспечивает резервное копирование;

?обеспечивает высокую надежность работы;

?обеспечивает высокую производительность.



2.Формирование исходных отношений


.1Выявление информационных объектов БД и определение требований целостности к данным


В процессе разработки БД были выделены следующие информационные объекты из предметной области:

·договор;

·данные о заказчике;

·даныне о заявке;

·путевые листы;

Требования целостности:

·к договору относятся - данные о заявке, организация-заявитель, путевой лист.

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

·к заказу оттносятся - данные о заказе.


.2Выявление множеств сущностей и их атрибутов и требований целостности данных


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

Данные о заказчике - информация о контрагентах работающих с фирмой. Характеризуется: номером (обязательный численный атрибут), полным названием организации (символьный атрибут), Ф.И.О главы организации (символьный атрибут), контактным телефоном (численный атрибут, адресом (символьный атрибут)

Данные о заявке - данные подаваемые контрагентом о покупке. Характеризуется: номером договора (обязательный численный атрибут), номером заявки (численный атрибут), сроком выполнения (тип дата), суммой сделки (численный атрибут), типом продукта (символьный атрибут), количеством выбранного продукта (численный атрибут).

Ассортимент - товары предлагаемые предприятием. Характеризуется: названием продукта (символьный тип), жирностью (численный тип), стандартом по которому произведён продукт (символьный атрибут),

Путевка - путевой лист, указывает машину и водителя доставляющего заказ. Характеризуется: номером путёвки (обязательный численный тип), номером водителя (численный тип), номером транспортного средства (численный тип). Машины - транспортные средства которыми располагает предприятие. Характеризуется: номер транспортного средства (обязательный численный тип), госномер машины (численный тип), вместимость машины (численный тип). Водители - водители работающие на предприятии. Характеризуется: именем (символьный тип), фамилией (символьный тип), номером водителя (обязательный численный тип), контактными телефоном (численный тип).

·с объектомдоговор может быть связан один и более данные о заказчике;

·с объектом данные о заявке может быть связан один и более продуктов из ассортимента;

·с объектом путёвка должна быть связана один и более водителейи машин;


2.3Выявление связей множеств сущностей и их характеристик.


Договор - данные о заказчике- связь "многие к одному". Одна организация может прислать несколько заявок на выполнение.

Связь договор - заявка - связь "один к одному". По одной заявке заключается один договор.

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

Связь водитель - путёвка - связь "многие к одному". Один водитель может выполнять несколько заказов.

Связь машина - путёвка - связь "многие к одному". Одна машина может выполнять несколько заказов.


.4Построение результирующей ER диаграммы



2.5Формирование отношений на основе ER моделирования и их нормализация


Отношения, которые отражает ER диаграмма, отвечают требованиям нормализации трех основных форм, а именно:

·нет неключевых атрибутов, зависящих от части сложного ключа;

·нет зависимостей неключевых атрибутов от других неключевых атрибутов.


2.6Даталогическое проектирование.


Таблица заявок (dogovor)


Атрибуты [id_dogovora], [id_zakazchika], [id_pytevki] -численный тип.


Таблица организаций-заявителей (dan_o_zakazchike)

информационный датологический клиентский приложение

Атрибут [id_zakazchika]- численный тип, является первичным ключом. Атрибуты [ima_org], [glava_org], [asress] - строковый тип. [telefon] - численный тип.


Таблица отделов (dan_o_zayavke)


Атрибут [id_dogovora]- целочисленный тип, является первичным ключом. Атрибуты [tip_prodykta]-строковый тип. Атрибуты [kolichstvo], [symma_za_raboty] -численный тип. Атрибут [srok_vipoln] - тип дата.


Таблица данных о заявке (assortiment)


Атрибут [tip_prodykta]- обязательный строковый тип, является первичным ключом. Атрибуты [standart], [naiminovanie]-строковый тип.Атрибут [zhirnost] - численный тип.


Таблица проектов (pytevka)


Атрибут [id_pytevki] - обязательный численный атрибут, является первичным ключом. Атрибуты [id_voditela], [id_trsr] - численный тип.



Таблица сотрудников (sotrudniki)


Атрибут [id_trsr]- строковый тип, является первичным ключом. Атрибут[nomer] - строковый тип. Атрибут [vmestimost] - целочисленный тип.


Таблица типов работ (tip_rabot)


Атрибут [id_voditela] -численный тип, является первичным ключом. Атрибуты [ima], [fam] - строковый тип. Атрибут [kont_telefon] - численный тип.


.7Разработка сценариев работы информационной системы


Для выполнения каждого функционального требования выделим по отдельному сценарию.

üСценарий поиска информации заявке и её содержании:

Пользователь вводит номер заявки, после чего система находит информацию о заявке, а именно - срок выполнения заявки, сумму полученную за работу, тип и количество заказанного продукта. Из таблицы assortimentсистема берёт полное название продукта.

üСценарий поиска подробной информации о договорах:

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

üСценарий поиска информации о путевом листе:

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

üСценарий вывода списка всех организаций и заявок, поданных этими организациями:

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

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

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

üСценарий для каскадного удаления данных из таблиц договор, и связанными с ней таблицами данные о заявке и путевом листе.

при удалении заявки из таблицы "dogovor" система произведёт поиск связанных с нейданныхв таблицах "pytevka" и "dan_o_zayavke", после чего выполнит их удаление.

üСценарий, ограничивающий длину номера от 5 до 12 цифр:

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

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

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


2.8Определение архитектуры системы


В составе разрабатываемой системы выделяются:клиентская и серверная компонента.

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

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


2.9Уточнение состава и содержания сценариев


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

üСценарий поиска информации заявке и её содержании:

Для функционирования данного сценария необходимо при вызове процедуры ввести номер заявки(в качестве параметра процедуры), для которого необходимо вывести имеющаюся информацию. Номер будет помещено в переменную, которая сравнивается со значением столбца [id_dogovora] таблицы dan_o_zayavke. При совпадении значений будет произведен запрос к таблицам dan_o_zayavke, assortiment объединенным с помощью join, и будут выбраны значения, которые связаны с этим названием. Информациябудетвыведенаввидетаблицы.

?необходимые исходные данные: номер заявки;

?не возвращает значений; выводит на экран интересующую информацию (информацию о заявке, и выбранном в ней продукте);

?выполняет выборку из таблиц "dan_o_zayavke", "assortiment"интересующих данных.

üСценарий поиска подробной информации о договорах::

Для функционирования данного сценария не нужны начальные параметры, система на основе столбца id_dogovoraтаблицы dogovor формирует набор информации о данном договоре включающий в себя информацию о заявке, информацию о путевом листе, транспорте и водителе выполняющем данный заказ и заказчике. Таблица dan_o_zakazchikeобъединяется с поомщью leftjoin, остальные таблицы соединяются с помощью обычного join.

?необходимые исходные данные: отсутствуют;

?не возвращает значений; выводит на экран интересующую информацию (всю информацию о договоре);

?выполняет выборку из таблиц "dogovor", "dan_o_zakazchike", "dan_o_zayavke", "assortiment", "pytevka", "mashini", "voditeli".

üСценарий вывода списка всех отделов и сотрудников этих отделов:

Для функционирования данного сценария не нужно каких-либо начальных данных, так как эта процедура реализована в виде курсора. При выполнении курсора система методом перебора выбирает каждого заказчика, и находит все договоры связанные с ним. Как только договоры, относящиеся к текущему заказчику, выбраны, система берет следующегоконтрагента и производит точно такие же операции. Причем контрагенты отдела определяются по таблицеdan_o_zakazchike,связанной с таблицей id_dogovoracпомощью joinпо атрибуту [id_zakazchka]. В итоге вся выбранная информация будет выведена в виде списка.

?необходимые исходные данные: отсутствуют;

?не возвращает значений; выводит на экран помимо текста названия заказчиков и их договоров;

?выполняет выборку из таблиц "dan_o_zakazchike", "id_dogovora"

üСценарий поиска подробной информации о заявке:

Для функционирования данного сценария необходимо при вызове процедуры ввести номер заявки(будет выступать в качестве параметра процедуры), для которого необходимо вывести всю информацию. Номер заявки будет помещен в переменную. При помощи join будут объединены таблицы zayavki, dannie_o_zayavke, proekti,tip_rabot. После чего происходит сравнение значений столбца [Номер_заявки] таблицы zayavki и значения переменной. При совпадении значений будет выбрана информация находящаяся в объединённых таблицах и связанная с совпавшим номером заявки(значением переменной). Информация будет выведена в виде таблицы.

?необходимые исходные данные: номер заявки;

?не возвращает значений; выводит на экран интересующую информацию (название заявки, дата заявки, организация-заявитель, срок выполнения, название проекта по заявке, стадия готовности проекта, тип работ по проекту);

?выполняет выборку из таблиц "zayavky", "dannie_o_zayavke", "proekti", "tip_rabot"интересующих данных.

üСценарий поиска информации о путевом листе

Для функционирования данного сценария необходимо при вызове процедуры ввести номер путевого листа(выступает в качестве параметра процедуры), по которому необходимо интересующую информацию . Номер путевого листа будет помещено в переменную. При помощи join будут объединены таблицы mashini. После чего происходит сравнение значений столбца [id_trsr] таблицы mashini и значения переменной.При помощи join будут объединены таблицы voditeli. После чего происходит сравнение значений столбца [id_voditela] таблицы voditeli и значения переменной При совпадении значений будет выбрана информация находящаяся в объединённых таблицах и связанная с совпавшимпутевым листом(значением переменной). Информация будет выведена в виде таблицы.

·необходимые исходные данные: номер путевого листа;

·не возвращает значений; выводит на экран интересующую информацию (номер путевого листа, и подробную информацию о транспортном средстве и водителе работающем по этому путевому листу);

·выполняет выборку из таблиц "pytevka", "mashini", "voditeli"интересующих данных.

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

Данный сценарий реализуем в виде тригера, который будет срабатывать в том случае, если мы попытаемся сохранить в качестве значения суммы за выполнение работы отрицательное число. То есть, когда мы записываем сумму за работу в столбец [symma_za_raboty] таблицы dan_o_zayavke, он подставляется в переменную ограничевающего триггера и проверяется на корректность. Если введенная сумма положительная, то она сохраняется, в противном случае срабатывает триггер и выводится окно ошибки, содержащие описание причины её возникновения.

üСценарий на каскадное удаление таблиц реализуется в виде триггера.

При удалении какой либо строки из таблицы dogovorтриггер проводит удаление строк из других таблиц. Данные из таблицы dan_o_zayavkeудаляются на основе соответствия колонки id_dogovora. Данные из таблицы pytevkaудаляются на основе соответствия значений колонок id_pytevki.

üСценарий, ограничивающий длину номера от 5 до 12 цифр:

Данный сценарий реализуем в виде тригера, который будет срабатывать в том случае, если мы попытаемся сохранить в качестве значения номера телефона некорректный номер. То есть, когда мы записываем номер телефона в столбецtelefon таблицы dan_o_zakazchiken (аналогично для столбца kont_telefon таблицы) он подставляется в переменную ограничевающего триггера и проверяется на корректность. Если в номере от 5 до 12 цифр номер сохраняется, в противном случае срабатывает тригер и выводится окно ошибки, содержащие описание причины её возникновения.

üСценарий, производящий заполнение таблицы pytevka:

Для функционирования данного сценария необходимо при вызове процедуры ввести три переменные: номер новой заявки, номер водителя и номер транспортного средства(будут выступать в качестве параметров процедуры). Все данные почещаются в определенные переменные. При помощисовместного использования функций insert и valuesданные в таблицу поступают из переменных которые заполнил пользоваетль.

?необходимые исходные данные: номер путевого лист, номер машины, номер водителя;

?выполняет вставку значений в таблицу "pytevka".


2.10Разработка механизмов реализации сценариев серверной компоненты


üСоздадим хранимую процедуру, которая будет производить поиск информации о заявке:


USE [KURSOV]

/****** Object: StoredProcedure [dbo].[vibor_zakaza] Script Date: 01/14/2012 22:33:07 ******/_NULLSON_IDENTIFIERON[dbo].[vibor_zakaza] @id_dog intdan_o_zayavke.*, assortiment.naiminovanie from_o_zayavke join assortiment on dan_o_zayavke.tip_prodykta = assortiment.tip_prodykta

where @id_dog = dan_o_zayavke.id_dogovora


Пример выполнения процедуры:



Результат:



üСоздадим хранимую процедуру, которая будет выводить всю информацию о договоре.


USE [KURSOV]

/****** Object: StoredProcedure [dbo].[viborALL] Script Date: 01/14/2012 22:34:53 ******/_NULLSON_IDENTIFIERON[dbo].[viborALL]dogovor.id_dogovora, dan_o_zakazchike.*, dan_o_zayavke.*,.*, mashini.*, voditeli.*leftjoin dan_o_zakazchike on dogovor.id_zakazchika = dan_o_zakazchike.id_zakazchikadan_o_zayavke on dan_o_zayavke.id_dogovora = dogovor.id_dogovoraassortiment on assortiment.tip_prodykta = dan_o_zayavke.tip_prodyktapytevka on pytevka.id_pytevki = dogovor.id_pytevkimashini on mashini.id_trsr = pytevka.id_trsr

join voditeli on voditeli.id_voditela = pytevka.id_voditela


Результат:



üСоздадим курсор, который будет выводить контрагентов и все сделанные им заявки


declare @zay nvarchar(50), @zay1 nvarchar(50), @ima nvarchar(50), @ima1 nvarchar(50)cur cursorforselect dan_o_zakazchike.ima_org, dogovor.id_dogovoradan_o_zakazchike join dogovor on dogovor.id_zakazchika = dan_o_zakazchike.id_zakazchikaima_orgcurcur into @ima, @zay@ima1 = @ima@zay1 = @zay@@FETCH_STATUS= 0cur into @ima, @zay@ima1 = @ima@zay1 = @zay1 +','+ @zay'организация '+@ima1+' подала заявки '+ @zay1@ima1=@ima@zay1=@zay'организация '+@ima1+' подала заявки '+ @zay1curcur


Результат:



üСоздадим курсор, который будет выводить информацию о путёвке:


USE [KURSOV]

/****** Object: StoredProcedure [dbo].[vibor_voditela] Script Date: 01/14/2012 22:39:58 ******/_NULLSON_IDENTIFIERON[dbo].[vibor_voditela] @id_pyt intpytevka.id_pytevki, mashini.*, voditeli.*fulljoin mashini on pytevka.id_trsr = mashini.id_trsrvoditeli on pytevka.id_voditela = voditeli.id_voditela@id_pyt = pytevka.id_pytevki

Пример выполненияvibor_voditela14


Результат:



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


USE [KURSOV]

/****** Object: StoredProcedure [dbo].[dobav2] Script Date: 01/14/2012 22:43:10 ******/_NULLSON_IDENTIFIERON[dbo].[dobav2] @id_pytevki int,@id_voditela int, @id_trsr intpytevka(id_pytevki ,id_voditela , id_trsr)(@id_pytevki ,@id_voditela , @id_trsr)*from pytevka wherepytevka.id_pytevki=@id_pytevki


Пример выполнения:


exec dobav219,4,6


Результат:



üТриггер, препятствующий вводу отрицательной суммы.



USE [KURSOV]

/****** Object: Trigger [dbo].[o_dengax] Script Date: 01/14/2012 22:44:58 ******/_NULLSON_IDENTIFIERON[dbo].[o_dengax][dbo].[dan_o_zayavke] FORINSERT@@ROWCOUNT=1@summ real@summ=symma_za_raboty from inserted@summ<0tranВведеное число должно быть положительнмым


Результат при некорректном вводе суммы:




üТриггер, удаляющий проекты и данные о заявке при удалении связанной с ними заявки.


USE [KURSOV]

/****** Object: Trigger [dbo].[ydal] Script Date: 01/14/2012 22:46:34 ******/_NULLSON_IDENTIFIERON[dbo].[ydal][dbo].[dogovor];dogovorid_dogovora in(select id_dogovora from deleted)dan_o_zayavkeid_dogovora in(select id_dogovora from deleted)pytevkaid_pytevki in(select id_pytevki from deleted)


üТриггер, ограничивающий ввод номеров телефонов.


USE [KURSOV]

/****** Object: Trigger [dbo].[nomera_org] Script Date: 01/14/2012 22:51:13 ******/_NULLSON_IDENTIFIERON[dbo].[nomera_org][dbo].[dan_o_zakazchike] forinsert@@ROWCOUNT=1@Telefon int@Telefon=telefon from inserted@Telefon<5 or @Telefon>12@Telefon<500Диапазон номера телефона от 5 до 12'@Telefon>600Диапазон номера телефона от 5 до 12'




.Разработка клиентских компонент


.1Выбор средства реализации клиентского приложения


В качестве языка программирования клиентского интерфейса выбран объектно-ориентированный язык C# (в качестве IDE использовалась MicrosoftVisualStudio 2010). Для доступа к данным использовалась технология ADO.Net.


.2Определение состава формы


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



1. Диаграмма состава форм.

Основное окно клиентского приложения приведено на рисунке 2. Оно позволяет перейти по вкладкам на закладку с интересующей таблицей, поиск данных или отчет с последующим выводом в Word. Внизу формы расположены два элемента fillToolStrip для быстрого поиска информации. Вверху расположена панель элементов TopToolStripPanel, при помощи которой можно производить операции по вставке, обновлению и удалению строк в БД.


Рисунок 2. Окно клиентского приложения.


При запуске клиентского приложения, в первую очередь, загружается первая форма (Рис.2). Данные из таблиц БД загружаются в DataGridView - представляющий собой элемент данных в виде таблицы. Загрузка данных в таблицы осуществляется посредством специального объекта ADO.Net - Тable Adapter. Исходный код для загрузки формы представлен ниже:


privatevoidForm1_Load(objectsender, EventArgse)

{

// TODO: данная строка кода позволяет загрузить данные в таблицу "kURSOVDataSet.viborALL". При необходимости она может быть перемещена или удалена..viborALLTableAdapter.Fill(this.kURSOVDataSet.viborALL);

// TODO: данная строка кода позволяет загрузить данные в таблицу "kURSOVDataSet.dan_o_zakazchike". При необходимости она может быть перемещена или удалена..dan_o_zakazchikeTableAdapter.Fill(this.kURSOVDataSet.dan_o_zakazchike);

// TODO: данная строка кода позволяет загрузить данные в таблицу "kURSOVDataSet.voditeli". При необходимости она может быть перемещена или удалена..voditeliTableAdapter.Fill(this.kURSOVDataSet.voditeli);

// TODO: данная строка кода позволяет загрузить данные в таблицу "kURSOVDataSet.mashini". При необходимости она может быть перемещена или удалена..mashiniTableAdapter.Fill(this.kURSOVDataSet.mashini);

// TODO: данная строка кода позволяет загрузить данные в таблицу "kURSOVDataSet.assortiment". При необходимости она может быть перемещена или удалена..assortimentTableAdapter.Fill(this.kURSOVDataSet.assortiment);

// TODO: данная строка кода позволяет загрузить данные в таблицу "kURSOVDataSet.pytevka". При необходимости она может быть перемещена или удалена..pytevkaTableAdapter.Fill(this.kURSOVDataSet.pytevka);

// TODO: данная строка кода позволяет загрузить данные в таблицу "kURSOVDataSet.dan_o_zayavke". При необходимости она может быть перемещена или удалена..dan_o_zayavkeTableAdapter.Fill(this.kURSOVDataSet.dan_o_zayavke);

// TODO: данная строка кода позволяет загрузить данные в таблицу "kURSOVDataSet.dogovor". При необходимости она может быть перемещена или удалена..dogovorTableAdapter.Fill(this.kURSOVDataSet.dogovor);

}


Вот как выглядит одна из форм, при запуске проекта содержащая данные по одной из таблиц базы данных (это форма содержащая данные из таблицы proekti):


Рисунок 3.Пример формы, содержащей таблицу базы данных


Пояснение рисунка:

)Форма клиентского приложения (Dobavlenie.cs);

)Элементы панели TopToolStripPanel, служащие для добавления, удаления и сохранения данных в таблице базы данных;

3)DataGridView- объект для отображения данных базы на форме;

4)DataSet-источник данных на стороне клиента;

5)BindingSource-объект, обеспечивающий связь источника данных с отображаемым элементом;

6)TableAdapter- элемент, выполняющий связь данных на стороне клиента с данными в базе данных;

7)AdapterManager- элемент, позволяющий осуществлять иерархическое обновление;

8)BindingNavigator - класс, представляет пользовательский интерфейс для перехода и обработки для элементов управления на форме, которые привязываются к данным.

9)fillToolStrip - Элемент управления реализует использование запросов пользователем.

)Интерфейс элемента fillToolStrip

При запуске клиентского приложения, а затем выбора вкладки ТабКонтроле загружается вкладка, ссылка на которую прописана на форме. Данные из таблиц БД загружаются в DataGridView, представляющий собой элемент данных в виде таблицы. Загрузка данных в таблицу осуществляется посредством специального объекта ADO.Net - SqlDataAdapter.В качестве источника данных таблицы DataGridView, где будут отображаться данные, указывается элемент BindingSource. Таким способом реализуется начальная загрузка данных в таблицу клиентского приложения. Вставка, удаление и сохранение данных в таблице реализованы с помощью панели TopToolStripPanel, на которой расположены кнопки с этими функциями.

Выбор данных для поиска осуществляется с помощью следующих элементов управления: textbox, combobox, а их поиск происходит при нажатии кнопки Button или ToolStripButton. Результаты поиска выводятся в dataGridView, предназначенный для их отображения. Элемент TextBox служит для ввода информации в поле. Элемент ComboBox служит для выбора элемента базы данных, о котором необходимо найти информацию, что упрощает поиск, так как не нужно искать и вспоминать, как именно пишется элемент, по которому ищется информация, а просто нужно его выбрать:

Для вывода информации из таблицы dogovor используется специальная кнопка выгрузки данных. Для этого используется специальная библиотека Microsoft.Office.Interop.Word. Ниже представлен пример метода для вывода информации в Word, с возможностью сохранения информации в формате *.docx, c предварительным открытием документа. (Код обращения к сценарию вывода отчётности по сотрудникам предприятия, используемый на вкладке "Отчеты в Word"->Вывод сотрудников):


privatevoid button2_Click(object sender, EventArgs e)

{w = newword();.Print(this.kURSOVDataSet.dogovor);

}


Как видно из кода, информация для вывода в Word берется из хранимой таблицы dogovor, которая выводит все составленные договоры

А сам метод wordописан в файле word.cs:


classword

{Print(DataTable source)

{

//открыть новоеword-приложениеapplication = newApplication { Visible = false };missing = Type.Missing;

//создать новый документ word= application. Documents.Add (ref missing, ref missing, ref missing, ref missing);= document.Range(ref missing, ref missing);

//создать таблицу= range.Tables.Add (range, source.Rows.Count, source.Columns.Count, ref missing, ref missing);// в качестве параметров таблицы указать место куда необходимо поместить таблицу, а также количество столбцов и строк.Borders.Enable = 1;

//через циклы заполнить строки и столбцы таблицы информацией из DataTable

for (intir = 1; ir<source.Rows.Count + 1; ++ir)

{= table.Rows[ir];(intic = 1; ic<source.Columns.Count + 1; ++ic)

{= row.Cells[ic];.Range.Text = source.Rows[ir - 1].ItemArray[ic - 1].ToString();

}

}.Visible = true;

}

}


Пример вывода в Microsoft Word данных о сотрудниках:


Рисунок 6. Вывод в Word отчета по сотрудникам


3.3Организационное проектирование


Аппаратное оснащение системы:

Сервер:

-Процессор не ниже 2.5 ГГц;

-Оперативная память минимум 3 Гб;

-Сетевая карта;

-Операционная система WindowsServer;

Рабочие станции:

-Процессор не ниже 2.0 ГГц;

-Оперативная память минимум 2 Гб;

-Сетевая карта;

-Операционная система WindowsXP, Windows 7.

Передача данных (сеть):

-Скорость не ниже 20 Мб/с;

-Топология любая, поддерживающая протоколы TCP/IP;


Оглавление . Разработка технического задания. Формулировка концепции системы .Формирование исходных отношений 2.1Выявление информационных объектов

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ