Файл: Исследование предметной области и предприятия.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 28.03.2023

Просмотров: 130

Скачиваний: 2

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

Net-технология несколько изменяет данный подход. Первоначально планировалось, что при net-концепции все элементы управления, функции, процедуры и так далее будут принадлежать одной большой библиотеке, называемой Net. Таким образом, дл работы программы потребуется наличие на компьютере пользователя установление этой библиотеки. Сейчас она входит в состав операционных систем семейства Windows уже как предустановленная. Программа, требующая Net-библиотеки не будет работать на компьютере, где она не установлена. Это напоминает технологию и библиотеку Direct-X, которая так знакома многим компьютерным игрокам.

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

Для реализации нашего проекта была выбрана среда разработки Delphi, а конкретно Delphi 7.

Delphi 7 - это язык программирования с очень широкими возможностями. И главная его отличительная черта заключается в мощности построения пользовательского интерфейса и в мощности работы с базами данных, обладая при этом почти безграничными возможностями.

Хочется упомянуть о том, что Delphi 7 - это первая из версий Delphi, написанная на себе самом, то есть Delphi 7 написали на Delphi 6. Таким образом, очень впечатляет мощность этой программной среды.

Простота написания и модность этого языка сыграли для него роковую роль. После выхода его в свет, Delphi стал изучаться во всех ВУЗах страны, как основной язык программирования. Само-собой разумеется, что выпускники таки ВУЗов далеко не все являлись хорошими программистами. А поскольку писать ан Delphi было достаточно легко, то многие из них, устроившись в фирмы пробовали разрабатывать программы. Но, не имея достаточных знаний для поддержки приложений - их забрасывали. И со временем, у заказчиков сложилось впечатление, что программирование на Delphi является плохим тоном и язык этот является ниже среднего о качеству написания кода. Впоследствии Delphi был заброшен и сейчас на нем программируют намного реже, чем десять лет назад.

На самом деле это есть не что иное, как отсутствие знаний многих начинающих специалистов. Delphi - прямой наследник всеми знаменитого языка Паскаль, а затем и объектного Паскаль.

По своим возможностям Delphi прямой конкурент не только Visual Basic, но и некоторой степени языка С, например по части взаимодействия с функциями API-windows. Здесь у Delphi есть все необходимое, а ведь функции API вызываются достаточно часто, при написании весьма крупных проектов. Delphi конечно уступает по скорости работы написанной на нем программы С-подобным языкам, но он создавался как язык более высокого уровня, предназначенным для решения прикладных задач, а языки семейства С - это более системные языки. Хотя стоит повториться, что сейчас положение дел изменилось и тот же С# обладает множеством визуальных компонентов, готовых к работе.


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

Delphi базируется на концепциях современного объектно-ориентированного программирования:

  • Полиморфизм
  • Наследование
  • Инкапсулирование

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

Наследование представляет собой технологию, когда дочерний объект наследует атрибуты объекта родителя.

Инкапсулирование - это объединение данных и функций в едином компоненте.

Delphi 7 был разработан компанией Borland. В настоящее время Delphi принадлежит компании Embarcadero. Но Embarcadero является в отношении Delphi структурным подразделением Borland.

Стоит сказать так же, что Delphi - это многоплатформенная среда разработки. Delphi 7 в своем составе имеет библиотеку VCL. То есть компоненты этой библиотеки не являются ActiveX, а напротив, являются "родными" для Delphi. Это значит, что их регистрация не требуется в операционной системе, и они встраиваются в исполняемый .exe - файл. Это значит, что такой исполняемый файл будет работать и в Linux. Современные версии делфи позволяют писать приложения для MAC IOS и Андроид.

Для работы с базой данных Delphi представляет из себя многочисленные технологии. Это технология BDE, ADO и многие другие.

Для реализации этого проекта была выбрана технология ADO компании Microsoft. Это ActiveX компонент, но его установка в операционной системе не требуется, так как она является сутью самой Windows. Альтернативой для данной задачи является механизм доступа к данным BDE, но движок BDE придется устанавливать на каждый компьютер отдельно. Это не являются чем-то проблемным, просто компания Borland посчитала механизм BDE немного устарешей технологией и плохо обрабатывающей большие объемы данных, которым сейчас оперируют современные базы. Хотя для нашей программы механизма BDE было бы более чем достаточно. Тем не менее, предпочтение отдано технологии ADO.

ADO - это механизм доступа к данным компании Microsoft, который заменил, две устаревшие технологии этой же компании DAO (Технология доступа к локальным данным) и RDO (Технология доступа к удаленным данным). Теперь эти два объекта объединяются в одном, что очень удобно.

Таким образом, Delphi 7 - это одна из самых мощных сред разработки прикладного программного обеспечения, в том числе и для работы с базами данных.


Глава 2. Информационное обеспечение задачи

2.1. Информационная модель и ее описание

Рисунок 2.1.1. Информационная модель

Материально ответственное лицо сверяет данные о товаре после инвентаризации с БД и если отсутствует, то заносит сведенья о товаре в БД.

Если же выявляется что товар не является качественным и не пригодным к использованию, то материально ответственное лицо удаляет сведения о данном товаре с БД

2.2. Используемые классификаторы и системы кодирования

Таблица 2.1.

Нормализованные данные

Название

Тип

Описание

NameTov

Текстовый

Наименование ОС или ТМЦ

Tip

Текстовый

Тип

InvNom

Текстовый

Инвентарный номер

SerNom

Текстовый

Серийный номер

Kol

Числовой

Количество

Otdel

Текстовый

Отдел

FIOMOL

Текстовый

ФИО МОЛ

DataP

Дата/Время

Дата постановки на учет

2.3. Характеристика нормативно-справочной, входной и оперативной информации

Нормативно-справочная информация содержится в двух справочных таблицах: Kategor и Otdel

Таблица 2.2.

Описание Kategor

Название

Описание

Kod_Kategor

Код категории

Vid_Kategor

Вид категории

Таблица 2.3.

Описание Otdel

Название

Описание

Kod_otdela

Код отдела

Name_Otdela

Наименование отдела

MOL

МОЛ


2.4. Характеристика результатной информации

Результатной информацией будет статистика инвентарная опись по объектам инвентаризации:

procedure TfrmOsn.cmdFilterClick(Sender: TObject);

var

Data1: string; //Начальная дата

Data2: string; //Конечная дата

begin

if rbNameF.Checked=true then

begin;

adoInv.close;

adoInv.SQL.Clear;

//Отбираем записи, которые содержат символы, введенные в поле Показатель

adoInv.SQL.add('SELECT * FROM InvOpis');

adoInv.SQL.add('WHERE NameTov like ''%'+trim(txtNameF.text)+'%''');

adoInv.Open;

adoInv.Filtered:=false;

adoInv.Last;

Zapcount;

end;

if (rbNameF.Checked=true) and (chDataF.Checked=true) then

begin;

adoInv.close;

adoInv.SQL.Clear;

//Отбираем записи, которые содержат символы, введенные в поле Показатель

adoInv.SQL.add('SELECT * FROM InvOpis');

adoInv.SQL.add('WHERE NameTov like ''%'+trim(txtNameF.text)+'%''');

adoInv.Open;

adoInv.Filtered:=false;//Отключаем фильтр

Data1:=FormatDateTime('dd.mm.yyyy', cbodata1F.Date);

Data2:=FormatDateTime('dd.mm.yyyy', cbodata2F.Date);

adoInv.Filter:='DataP>='+Data1+' and '+'DataP<='+Data2;

adoInv.Filtered:=true;//Устанавливаем фильтр

adoInv.Last;

Zapcount;

end;

if rbTipF.Checked=true then

begin;

adoInv.close;

adoInv.SQL.Clear;

//Отбираем записи, которые содержат символы, введенные в поле Показатель

adoInv.SQL.add('SELECT * FROM InvOpis');

adoInv.SQL.add('WHERE Tip like ''%'+trim(cboTipF.text)+'%''');

adoInv.Open;

adoInv.Filtered:=false;

adoInv.Last;

Zapcount;

end;

if (rbTipF.Checked=true) and (chDataF.Checked=true) then

begin;

adoInv.close;

adoInv.SQL.Clear;

//Отбираем записи, которые содержат символы, введенные в поле Показатель

adoInv.SQL.add('SELECT * FROM InvOpis');

adoInv.SQL.add('WHERE Tip like ''%'+trim(cboTipF.text)+'%''');

adoInv.Open;

adoInv.Filtered:=false;//Отключаем фильтр

Data1:=FormatDateTime('dd.mm.yyyy', cbodata1F.Date);

Data2:=FormatDateTime('dd.mm.yyyy', cbodata2F.Date);

adoInv.Filter:='DataP>='+Data1+' and '+'DataP<='+Data2;

adoInv.Filtered:=true;//Устанавливаем фильтр

adoInv.Last;

Zapcount;

end;

if rbInvF.Checked=true then

begin;

adoInv.close;

adoInv.SQL.Clear;

//Отбираем записи, которые содержат символы, введенные в поле Показатель

adoInv.SQL.add('SELECT * FROM InvOpis');

adoInv.SQL.add('WHERE InvNom like ''%'+trim(txtInvF.text)+'%''');

adoInv.Open;

adoInv.Filtered:=false;

adoInv.Last;

Zapcount;

end;

if rbSerNomF.Checked=true then

begin;

adoInv.close;

adoInv.SQL.Clear;

//Отбираем записи, которые содержат символы, введенные в поле Показатель

adoInv.SQL.add('SELECT * FROM InvOpis');

adoInv.SQL.add('WHERE SerNom like ''%'+trim(txtSerNomF.text)+'%''');

adoInv.Open;

adoInv.Filtered:=false;

adoInv.Last;

Zapcount;

end;

if rbOtdelF.Checked=true then

begin;

adoInv.close;

adoInv.SQL.Clear;

//Отбираем записи, которые содержат символы, введенные в поле Показатель

adoInv.SQL.add('SELECT * FROM InvOpis');

adoInv.SQL.add('WHERE Otdel like ''%'+trim(txtOtdelF.text)+'%''');


adoInv.Open;

adoInv.Filtered:=false;

adoInv.Last;

Zapcount;

end;

if (rbOtdelF.Checked=true) and (chDataF.Checked=true) then

begin;

adoInv.close;

adoInv.SQL.Clear;

//Отбираем записи, которые содержат символы, введенные в поле Показатель

adoInv.SQL.add('SELECT * FROM InvOpis');

adoInv.SQL.add('WHERE Otdel like ''%'+trim(txtOtdelF.text)+'%''');

adoInv.Open;

adoInv.Filtered:=false;//Отключаем фильтр

Data1:=FormatDateTime('dd.mm.yyyy', cbodata1F.Date);

Data2:=FormatDateTime('dd.mm.yyyy', cbodata2F.Date);

adoInv.Filter:='DataP>='+Data1+' and '+'DataP<='+Data2;

adoInv.Filtered:=true;//Устанавливаем фильтр

adoInv.Last;

Zapcount;

end;

if rbFIOF.Checked=true then

begin;

adoInv.close;

adoInv.SQL.Clear;

//Отбираем записи, которые содержат символы, введенные в поле Показатель

adoInv.SQL.add('SELECT * FROM InvOpis');

adoInv.SQL.add('WHERE FIOMOL like ''%'+trim(txtFIOF.text)+'%''');

adoInv.Open;

adoInv.Filtered:=false;

adoInv.Last;

Zapcount;

end;

if (rbFIOF.Checked=true) and (chDataF.Checked=true) then

begin;

adoInv.close;

adoInv.SQL.Clear;

//Отбираем записи, которые содержат символы, введенные в поле Показатель

adoInv.SQL.add('SELECT * FROM InvOpis');

adoInv.SQL.add('WHERE FIOMOL like ''%'+trim(txtFIOF.text)+'%''');

adoInv.Open;

adoInv.Filtered:=false;//Отключаем фильтр

Data1:=FormatDateTime('dd.mm.yyyy', cbodata1F.Date);

Data2:=FormatDateTime('dd.mm.yyyy', cbodata2F.Date);

adoInv.Filter:='DataP>='+Data1+' and '+'DataP<='+Data2;

adoInv.Filtered:=true;//Устанавливаем фильтр

adoInv.Last;

Zapcount;

end;

end;

Глава 3. Программное обеспечение задачи

3.1. Общие положения (дерево функций и сценарий диалога)

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

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

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