![](/stc/img/evkova.png)
Исследование предметной области и предприятия
Содержание:
Введение
В настоящее время компьютерные технологии прочно внедрились в производственный цикл любого предприятия, позволяющие облегчить труд, усовершенствовать процесс обработки информации и ее накопление и хранение.
Инвентаризация представляет собой некий процесс в бухгалтерском учете, при котором ведется учет имущества, имеющегося в распоряжении предприятия. Данный процесс является достаточно трудоемким с точки зрения внимательности. Так же необходимо учесть полную уникальность инвентарных номеров, присвоенных объектам инвентаризации.
В качестве объектов инвентаризации выступают здание, компьютеры, электронная и иная механическая техника, стоимость которой подходит под определение основных средств. Помимо учета основных средств, предприятия так же ведут учет товарно-материальных ценностей, не относящихся в соответствии со своей стоимостью к основным средствам.
Облегчить процесс инвентаризации можно с помощью внедрения на предприятии компьютерных программ. В настоящее время на рынке существует множество программных продуктов, позволяющих автоматизировать данный процесс. В 1С Предприятие можно непосредственно осуществлять процесс инвентаризации. Но подобные программные продукты являются достаточно дорогими и более мелким предприятиям не выгодно их приобретение.
Альтернативным решением для них становится написание собственной программы, которая подходит для нужд конкретного предприятия.
Целью курсовой работы является разработка системы управления данными описывающими автоматизацию процесса инвентаризационной деятельности на предприятии, которая позволит минимизировать ручной труд. Для достижения цели, необходимо решить ряд задач:
- исследовать предметную область;
- спроектировать систему;
- обеспечить возможность удобного ввода данных;
- автоматизировать процесс хранения данных;
- автоматизировать процесс формирования отчетов;
- обеспечит процесс резервного копирования данных;
- обеспечить процесс восстановления данных из резервной копии;
- протестировать систему.
Актуальность выбранной темы заключается в том, что процесс инвентаризации сопряжен с универсальностью инвентарных номеров, дублирование которых при их большом количестве достаточно тяжело контролировать вручную.
В качестве БД планируется использовать MS Access, поскольку данная БД обладает всеми необходимыми требованиями для обработки и хранения данных.
В качестве языка программирования выбран язык высокого уровня Delphi 7, содержащий в себе большой потенциал по обработке данных в виде различных компонентов доступа к данным, их многочисленным свойствам и методам.
Данная работа формально поделена на три большие части.
Первая часть рассматривает характеристику предприятия и предметной области.
Вторая часть является практической и содержит в себе информационно-логическую модель задачи, характеристику нормативно-справочной и учетной информации.
Третья часть содержит практическую разработку базы данных и программных модулей.
Четвертая часть построена на реализации программы.
Работа построена на примере Управления пенсионного фонда РФ в Новониколаевском районе Волгоградской области.
Глава 1. Исследование предметной области и предприятия
1.1. Характеристика предприятия и его деятельности
Управление пенсионного фонда в Новониколаевском районе является государственным учреждением, подчиняется областному отделению пенсионного фонда Российской Федерации.
Основным видом деятельности является назначение, расчет различных видов пенсии: пенсии по старости, пенсии по потере кормильца и пенсии по инвалидности. Второвым крупным направлением деятельности, которой занимается пенсионный фонд России является материнский-семейный капитал. В эту сферу деятельности входит выдача сертификата МСК, распоряжение средствами МСК.
1.2. Организационная структура управления предприятием
Схематически организационная структура предприятия выглядит следующим образом.
Рисунок 1.1. Организационная схема предприятия
Организационная схема работы предприятия представляет из себя трех уровневую модель, во главе которой находятся руководители в лице начальника УПФР и заместителя начальника. Им подчиняются такие профильные отделы, как Отдел назначения, перерасчета и выплаты пенсии (ОНПВП), финансово-экономическая группа (ФЭГ), юрист, кадровый отдел, отдел персонифицированного учета, отдел автоматизации, отдел клиентской службы (КС) и технический персонал.
Третий же уровень представляет из себя специалистов отдела, во главе, который находится начальник отдела. В рамках этой работы интерес представляет отдел финансово-экономической группы. Именно он занимается инвентаризацией имущества на предприятии.
1.3. Выбор комплекса задач автоматизации и характеристика существующих бизнес-процессов
Инвентаризация представляет собой процесс учета основных средств предприятия и товарно-материальных ценностей.
Для целей проведения инвентаризации собирается инвентаризационная комиссия, во главе которой находится главный бухгалтер предприятия.
Инвентаризация регулируется Федеральным законом "О бухгалтерском учете"
Федеральный закон от 06.12.2011 N 402-ФЗ (ред. от 18.07.2017) статьей 11.
Целью проведения инвентаризации является фактическое выявление наличия или отсутствия того или иного имущества в организации в соответствии с бухгалтерскими регистрами учета.
Порядок проведения инвентаризации, ее сроки определяются самим предприятием. Исключение составляют случаи обязательного проведения инвентаризации, которые устанавливаются Российскими отраслевыми стандартами.
Инвентаризация проводится обязательно в случае:
- Если имущество предприятия подлежит передаче в аренду или подлежит продаже, выкупе и при реорганизации предприятия.
- Перед составлением годовой бухгалтерской отчетности (кроме имущества, инвентаризация которого проводилась не ранее 1 октября отчетного года). Инвентаризация основных средств может проводиться один раз в три года, а библиотечных фондов - один раз в пять лет. В организациях, расположенных в районах Крайнего Севера и приравненных к ним местностях, инвентаризация товаров, сырья и материалов может проводиться в период их наименьших остатков;
- При смене материально ответственных лиц;
- При выявлении фактов хищения, злоупотребления или порчи имущества;
- В случае стихийного бедствия, пожара или других чрезвычайных ситуаций, вызванных экстремальными условиями;
- При ликвидации организации[1].
Выявленное расхождение фактического наличия и регистров бухгалтерского учета подлежат регистрации в бухгалтерском учете в том отчетном периоде, к которому относится дата проведения инвентаризации.
Существует плановая и внеплановая инвентаризация. Последняя в свою очередь ставит целью перед собой выявить внезапные излишки или отсутствие основных средств на предприятии.
По результатам инвентаризации, инвентаризационная комиссия подписывает опись.
Рисунок 1.2. IDEF0 схема задачи
В настоящее время существует огромное количество разнообразных средств разработки, многие из которых очень похожи друг на друга.
Для решения каждой конкретной задачи предназначен тот или иной язык программирования или среда разработки. Хотя, сейчас, не будет ошибкой сказать, что выбор среды уже зависит больше не от задачи, которую предстоит программировать, все более от предпочтения программистом того или иного языка. Это связано со все большей универсальностью и развитием систем разработки.
Учет объектов инвентаризации удобно осуществлять посредством СУБД (Система управления базами данных) и прикладного языка программирования.
СУБД представляет собой систему, которая предназначена для управления имеющейся базой данных. Как правило, СУБД содержит в себе так же и определенный язык программирования. Например, в Visual FoxPro - это собственно язык FoxPro, в СУБД Access - таким языком будет являться VBA.
Среди СУБД существует множество решений. Следует упомянуть, что прежде всего, СУБД делятся настольные и промышленные.
Настольные СУБД предназначены для организации работы с базами данных в рамках мелких, средних и крупных предприятий.
Промышленные же, СУБД используются для организации работы с базами данных, к которым обращаются миллионы пользователь. Например, тот, же сайт государственной статистики, который ежедневно посещают тысячи пользователей всей страны. Данные этого, как и любого другого сайта хранятся в базе данных, по формату относящихся к промышленным СУБД.
Недостатком настольных СУБД является то, что с увеличением числа записей и роста пользователей, система начинает медленно работать.
И, если с ростом числа записей (данных) в базе данных таких СУБД можно решить вопрос, путем архивирования старых, первых записей и чистки базы данных то с ростом числа пользователей и нагрузки на СУБД вопрос остается актуальным. Именно вопрос, касающийся нагрузки и призвана решить промышленная СУБД.
Среди настольных СУБД следует выделить такие как dBase и Visual dBase , Microsoft Access , Microsoft FoxPro и Visual FoxPro , Paradox .
Среди промышленных СУБД можно выделить Oracle и Microsoft SQL Server.
Кстати, следует обязательно упомянуть, что СУБД Microsoft Access многие эксперты относят так же к промышленным. Таким образом, данное СУБД является с одной стороны очень мощным средством для реализациилюбых проектов, требующих работы с базами данных, с другой стороны это СУБД представляет самые удобные графические средства для управления базой данных. Именно это обуславливает выбор Microsoft Access как среда разработки базы данных для проекта учета объектов инвентаризации. Единственным наиболее сильным конкурентом у Microsoft Access является Visual FoxPro.
Следует отметить, что сама по себе разработка БД является только половиной от всей системы в целом. Следующим шагом будет являться выбор программной среды разработки.
На самом деле можно было бы ограничиться только средствами самой Microsoft Access, ведь в ее состав входит Visual Basic for application, который позволяет писать самые сложные макросы, позволяющие реализовать, совместно с формами и отчетами, создаваемые в среде Microsoft Access, весь функционал полноценного приложения. Но тем не менее средства самого Microsoft Access в плане построения пользовательского интерфейса и дальнейшего расширения возможностей программы в плане интеграции и тому подобного является ограниченными. Именно поэтому целесообразно совместно с СУБД применять для разработки среду программирования.
В настоящее время для работы с базами данных существует достаточно множество различных сред. Это и С#, это Visual Basic, Java, Delphi и многие другие.
В каждом из этих языков есть свои преимущества и недостатки. Но в настоящее время все они настолько развиты и возможности их настолько велики, что выбор того или иного языка аргументируется больше предпочтениями конкретного программиста, нежели задачами. Уже не стоит задаваться вопросом что лучше, Visual Basic или Delphi. Они оба хороши и трудно переоценить возможности того или иного языка. Так же выбор языка аргументируется коллективной разработкой. Когда программист страивается на определенную работу, где ведется командная разработка программного обеспечения, то он вынужден писать программный код на том языке, на котором работает команда. Хотя с появлением Net-технологий необходимость постепенно отпадает и в этом, ведь проекты, написанные на Net-подобных средах разработки способны в одном проекте объединять программные коды, написанные на разных языках программирования, поддерживающих технологию Net. Сама по себе первоначально Net среда была призвана полностью заменить COM-технологию, на которой полностью базируется Windows.
Что такое COM-технология по существу? Это технология общего использования компонентов, называемы ActiveX. ActiveX - это абстрактное представление COM-технологии в большей степени относящейся к компонентам и классам. Точнее говоря, первой абстактной ступенью COM является OLE -технология, а уже затем из нее получилась технология ActiveX. Кстати говоря, все они по прежнему являются не более чем, простым маркетинговым ходом компании Microsoft, а программно принципиально ничем не изменились.
Итак, COM пропагандирует использования одного объекта, который является частью операционной системы Windows другими программами. Это значит, что все программы, которые пишутся под windows могут использовать уже готовые классы для создания своих объектов. Это и формы ввода, и кнопки, и элементы ввода информации , и многие другие элементы управления, которые являются стандартными для операционных систем семейства Windows. А те компоненты, которых нет в операционной системе, достаточно зарегистрировать как класс в процессе инсталляции приложения. Устанавливаются они вместе с приложением и распространяются в виде DLL-файлов.
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.)
3.1.1 Древо функции
Рисунок 3.1.2. Сценарий диалога
3.2. Характеристика базы данных
Имя базы данных - Inv.mdb.
ER-модель описывает взаимосвязь таблиц в БД.
Рисунок 3.2 - ER-модель
Рисунок 3.3. Характеристики таблицы Tovar
Структура таблицы Категория, Отдел, Товары представлена в таблицах ниже.
Таблица 3.2.1.
Структура таблицы Отдел
Наименование |
Идентификатор |
Формат |
Id категория |
Id_kategoria |
Числовой |
Вид категории |
Vid_kategorii |
Короткий текст |
Таблица 3.2.2.
Структура таблицы Отдел
Наименование |
Идентификатор |
Формат |
ID отдела |
Id_otdela |
Числовой |
МОЛ |
mol |
Короткий текст |
Код отдела |
Kod_otdela |
Числовой |
Таблица 3.2.3.
Структура таблицы Товары
Наименование |
Идентификатор |
Формат |
ID категории |
Id_kategoria |
Числовой |
Инвентарный код |
Inv_kod |
Числовой |
Код отдела |
Kod_otdela |
Числовой |
ID отдела |
Id_otdela |
Числовой |
Наименование |
Naim |
Короткий текст |
Дата |
Data |
Числовой |
3.3. Структурная схема пакета (дерево вызова программных модулей)
Рисунок 3.4. Схема вызовов программных модулей
3.4. Описание программных модулей
Глава 4. Контрольный пример реализации проекта и его описание
Для того, чтобы ввести информация об объекте учета следует воспользоваться полями ввода, которые располагаются ниже таблицы.
Рисунок 4.1. Область ввода информации об объекте инвентаризации
Каждое поле ввода под таблицей соответствует своей колонке в таблице. Таким образом, заполним поля ввода. В качестве наименования объекта инвентаризации выберем принтер "Canon LBP 810". Введем это наименование в первое поле. Этот вид имущества относится к основным средствам, поэтому во втором поле из списка выберем значение"ОС". Далее внесем его инвентарный и серийный номера, количество единиц (в нашем примере пусть будет 1 штука) и все остальные данные, а затем нажмем кнопку "Добавить".
Рисунок 4.2. Поля ввода с заполненной информацией
После того, как будет нажата кнопка "Добавить", строка с введенной информацией добавится последней в таблицу с данными, а поля ввода очистятся для следующих данных.
Рисунок 4.3. Введенная в таблицу информация
При этом число записей в таблице увеличится на единицу. Приложение позволяет использовать сканер штрих-кода. Его использование удобна для считывания серийного номера.
Вывод данных подразумевает под собой не только вывод их на принтер, но и на экран в качестве результата выполнения запроса пользователя.
Протестируем несколько разновидностей поиска информации и вывода ее на экран пользователю.
Найдем только что введенную запись среди множества других.
Для этого в фильтрах в поле "Наименование" введем название нашего принтера
"Canon LBP 810". При этом усложним немного задачу. Допустим полное название пользователь не помнит, а помнит только его часть "Canon", но без уточнения модели. Программа вернет результат и по частичному совпадению.
Рисунок 4.4. Поиск данных по наименованию объекта инвентаризации
После нажатия на кнопку "Фильтр" программа отобразила запись, в которой содержится текс, который введен в поле "Наименование" группы "Фильтры". Видно, что запись в таблице с таким названием всего одна.
Теперь попробуем ввести в поле "Наименование" слово "Шкаф" и нажмем "Фильтр".
Рисунок 4.5. Поиск данных по наименованию
В результате отработки запроса пользователя получает семь записей, в наименовании которых встречается слово "Шкаф". Из семи записей, у одной из них дата постановки на учет равна 13.06.2009 году. Добавим к уже созданному фильтру диапазон дат. Допустим пользователю требуется выбрать все имущество со соловом "Шкаф", которое было поставлено на учет в 2009 году.
Рисунок 4.6. Фильтр из двух составляющих
В данном случае при отработке запроса пользователю выводится одна запись со словом "Шкаф".
Найденные и отобранные записи можно вывести на печать в виде инвентаризационной описи. Для этого следует нажать "Печать".
Рисунок 4.6. Печать выбранной информации
Результатом нажатия на эту кнопку будет открытие окна предварительного просмотре с инвентаризационной описью, в которой будут присутствовать выбранные с помощью фильтра записи.
Заключение
Итак, в результате исследования была разработана программа для автоматизации процесса инвентаризации основных средств и ТМЦ на предприятии.
Не лишним будет упомянуть, что программа получилась универсальной и может функционировать в любой организации.
Для разработки программного обеспечения был выбран объктно-ориентированный визуально-программируемый язык высокого уровня Delphi 7, содержащий в себе возможности по обработке базы данных, сопоставимые с возможностями СУБД. А широкий ассортимент методов и моделей доступа к данным позволил спроектировать приложения максимально комфортным способом.
К сожалению, рамки данного проекта и ограниченное время не позволили выполнить интеграцию созданного приложения с другими системами, но такие возможности вполне можно реализовать. В настоящий момент в программе осуществлен ручной ввод данных, но механизм ручного вода данных в программу выполнен по максимально удобной технологии с применением механизма доступа к данным ADO Microsoft и достаточно удобного пользовательского интерфейса.
Интерфейс программы является интуитивно понятным, требующим от пользователя самых базовых компьютерных навыков.
Приложение представляет из себя SDI-тип. Основная форма является собственно рабочей и содержит в себе поля ввода.
Программа обладает удобными фильтрами по отбору данных. Данные можно отбирать по частичному совпадению, что позволяет пользователю, не зная, например, точного названия имущества ввести часть его имени и система выдаст ему результат поиска. Отобранные данные можно распечатать в виде инвентарной описи.
Концепция хранения в одной таблице всех объектов инвентаризации является очень удобной, так как доступ и анализ конкретного показателя осуществляется посредством фильтра. И только после фильтрации становятся доступными необходимые данные.
Список используемой литературы
- Алешин Л.И.: Информационные технологии. - М.: Литера, 2008
- Архангельский А.Я.: Delphi 7. - М.: БИНОМ, 2004
- Архангельский А.Я.: Программирование в Delphi для Windows. - М.: Бином-Пресс, 2007
- Архангельский А.Я.: Программирование в Delphi для Windows. - М.: Бином-Пресс, 2007
- Балдин К.В.: Информационные системы в экономике. - М.: Дашков и К, 2006
- Бобровский СИ.: Delphi 7. - СПб.: Питер, 2005
- Бобровский СИ.: Delphi 7. - СПб.: Питер, 2006
- Бобровский СИ.: Delphi 7. - СПб.: Питер, 2008
- Боровский А.Н.: Программирование в Delphi 2005. -СПб.: БХВ-Петербург, 2005
- Браун С: Visual Basic 6. - СПб.: Питер, 2007
- Герчикова Т.М.: Как создать мультимедийное приложение на персональном компьютере: Все, что Вы хотели знать, но боялись спросить. - М.: Бук-Пресс и К, 2005
- Гобарева Я.Л.: Технология экономических расчетов средствами MS Exsel. - М.: КноРус, 2006
- Голенищев Э.П.: Информационное обеспечение систем управления. - Ростов н/Д: Феникс. 2010
- ДнепровАХ.: Видеосамоучитель. Microsoft Access 2007. - СПб.: Питер, 2008
- Емельянов в.п.: Основы программирования на Delphi. - М.: Высшая школа, 2005
- Зубов Ал Программирование на Delphi. - СПб.: Питер, 2005
- Избачков Ю.С.: Информационные системы. - СПб.: Питер, 2008
- Избачков Ю.С: Информационные системы. - СПб.:
- Избачков Ю.С: Информационные системы. - СПб.: Питер, 2008
- Корняков В.Н.: Программирование документов и приложений MS Office в Delphi. - СПб.: БХВ-Петербург, 2006
- Кузнецов A.: Microsoft Access 2003. Русская версия. - СПб.-Киев: Питер; ИД BHV, 2006
- Кузовкин А.В.: Управление данными. - М.: Академия. 2010
- Культин Н.Б.: Delphi в задачах и примерах. - СПб.: БХВ-Петербург, 2006
- Малыхина М.П.: Базы данных: основы, проектирование, использование. - СПб.: БХВ-Петербург, 2007
- Микрюков В.Ю.: Алгоритмизация и программирование. - Ростов на/Д: Феникс, 2007
- Михеева Е.В.: Информационные технологии в профессиональной деятельности. - М.: Академия, 2011
- Михеева Е.В.: Информационные технологии в профессиональной деятельности. - М.: Академия. 2010
- Михелёв В.М.: Базы данных и СУБД. - Белгород:
- Могилев А.В.: Информатика. - М.: Академия, 2008
- Могилев А.В.: Информатика. - М.: Академия, 2009
- Под общ. ред. д-ра экон. наук, профессора П.В. Акинина: Информационные системы в экономике: Практикум. - М.: КНОРУС, 2008
- под общ. ред. П.В. Акинина ; сост.: Е.Л. Торопцев и др.; рец.: Р.Г. Закинян, А.н. Байдаков: Информационные системы в экономике. - М.: КноРус, 2008
- Под ред. В. Озерова: Delphi. Советы программистов. - СПб.: Символ-Плюс, 2004
- Под ред. проф. А.Н. Романова, проф. Б.Е. Одинцова: Информационные системы в экономике. - М.: Вузовский учебник, 2008
- Под ред. СВ. Симоновича ; рец.: Каф. Московского гос. технического ун-та им. Н.Э. Баумана, СВ. Калин: Информатика. - СПб.: Питер, 2010
- Под ред. СВ. Симоновича ; рец.: Кафедра САПР Московского гос. технического ун-та им. Н.Э. Баумана, СВ. Калин: Информатика. - СПб.: Питер, 2009
- Ревич, Ю. Нестандартные приемы программирования на Delphi / Ю. Ревич. - М.: БХВ-Петербург, 2008. - 560 c.
- Рец.: П.Л. Салманов и др.; В.И. Чернов и др.: Информатика. - М.: Дрофа, 2008
- Родигин Л.А.: Базы данных для карманного персонального компьютера Pocket PC. - М.: КноРус, 2008
- Сергеев А.В.: Access 2007. Новые возможности. -СПб.: Питер, 2008
- Сорокин А.В.: Delphi. Разработка баз данных. -СПб.: Питер, 2005
- Угринович Н.Д.: Исследование информационных моделей. Элективный курс. - М.: БИНОМ. Лаборатория знаний, 2006
- Угринович Н.Д.: Исследование информационных моделей. Элективный курс. - М.: БИНОМ. Лаборатория знаний, 2004
- Уткин В.Б.: Информационные системы в экономике. - М.: Академия, 2010
- Фаронов В.В.: Delphi 2005. - СПб.: Питер, 2006
- Филимонова Е.В.: Информационные технологии в профессиональной деятельности. - Ростов н/Д: Феникс, 2009
- Флёнов М.Е.: Программирование в Delphi глазами хакера. - СПб.: БХВ-Петербург, 2004
- Харуто А.В.: Музыкальная информатика. - М.: ЛКИ, 2009
- Чиртик А.А.: Delphi. Трюки и эффекты. - СПб.: Питер, 2007
- Чиртик А.А.: Программирование в Delphi. - СПб: Питер, 2010
- Шаронов В.В.: Delphi 2005. Разработка приложений для баз данных и Интернета. - СПб.: Питер, 2006
- Шаронов В.В.: Delphi 2005. Язык, среда, разработка приложений. - СПб.: Питер, 2007
- Шаронов В.В.: Delphi 2005. Язык, среда, разработка приложений. - СПб.: Питер, 2007
- Шаронов В.В.: Delphi. Программирование на языке высокого уровня. - СПб.: Питер, 2008
- Шаронов В.В.: Turbo Pascal. - СПб.: Питер, 2007
- Шаронов В.В.: Программирование баз данных в Delphi 7. - СПб.: Питер, 2006
- Шаронов В.В.: Система программирования Delphi. -СПб.: БХВ-Петербург, 2006
Шлёнов М.Е.: Delphi 2005. Секреты программирования.. - СПб.: Питер, 2006
Приложение 1. Листинг разрабатываемого программного комплекса Инвентаризация
Ниже приводится фрагмент кода модуля основной формы.
unit Osn;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, ComCtrls, Buttons, ExtCtrls, DB, ADODB,
frxClass, frxDBSet;
type
TfrmOsn = class(TForm)
DBGrid1: TDBGrid;
txtName: TEdit;
cmbTip: TComboBox;
txtInv: TEdit;
txtSerNom: TEdit;
txtOtdel: TEdit;
txtFIO: TEdit;
txtKol: TEdit;
cboData: TDateTimePicker;
Panel1: TPanel;
cmdPer: TButton;
cmdPred: TButton;
cmdSled: TButton;
cmdPosl: TButton;
cmdDob: TButton;
cmdDel: TBitBtn;
Panel2: TPanel;
txtZakr: TButton;
adoInv: TADOQuery;
dsInv: TDataSource;
lblKol: TLabel;
lblTek: TLabel;
cboDataEdit: TDateTimePicker;
Panel3: TPanel;
Panel4: TPanel;
txtNameF: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
cboTipF: TComboBox;
Label4: TLabel;
txtInvF: TEdit;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
cboData1F: TDateTimePicker;
cboData2F: TDateTimePicker;
Label9: TLabel;
Label10: TLabel;
txtSerNomF: TEdit;
txtOtdelF: TEdit;
txtFIOF: TEdit;
rbNameF: TRadioButton;
rbTipF: TRadioButton;
rbInvF: TRadioButton;
rbSerNomF: TRadioButton;
rbOtdelF: TRadioButton;
rbFIOF: TRadioButton;
chDataF: TCheckBox;
cmdCopy: TButton;
cmdVse: TButton;
cmdFilter: TButton;
cmdPrint: TButton;
frxReport1: TfrxReport;
frxDBDataset1: TfrxDBDataset;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure txtZakrClick(Sender: TObject);
procedure cmdDobClick(Sender: TObject);
procedure cmdDelClick(Sender: TObject);
procedure cmdIsmClick(Sender: TObject);
procedure cmdPerClick(Sender: TObject);
procedure cmdPredClick(Sender: TObject);
procedure cmdSledClick(Sender: TObject);
procedure cmdPoslClick(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure DBGrid1ColExit(Sender: TObject);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
procedure cboDataEditChange(Sender: TObject);
procedure cboDataEditDropDown(Sender: TObject);
procedure rbNameFClick(Sender: TObject);
procedure rbTipFClick(Sender: TObject);
procedure rbInvFClick(Sender: TObject);
procedure rbSerNomFClick(Sender: TObject);
procedure rbOtdelFClick(Sender: TObject);
procedure rbFIOFClick(Sender: TObject);
procedure chDataFClick(Sender: TObject);
procedure cmdVseClick(Sender: TObject);
procedure cmdCopyClick(Sender: TObject);
procedure cmdFilterClick(Sender: TObject);
procedure cmdPrintClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmOsn: TfrmOsn;
PathBD: string; //Глобальная переменная, пределяющая путь к базе данных.
TekPapka: string;//Глобальная переменная, содержащая текущую папку
implementation
uses UdZap, Kopy_;
{$R *.dfm}
procedure ZapCount();
begin
frmOsn.lblKol.Caption:='Всего записей: '+inttostr(frmOsn.adoInv.RecordCount);//Считываем количество записей в таблице
frmOsn.lblTek.Caption:='Текущая запись: '+inttostr(frmOsn.adoInv.recno);//Считываем номер текущей записи
end;
procedure TfrmOsn.FormClose(Sender: TObject; var Action: TCloseAction);
begin
adoInv.Close;
action:=caFree;
end;
procedure TfrmOsn.FormCreate(Sender: TObject);
begin
//Присаиваем переменным путь к базе данных и путь запуска программы
PathBD:=getcurrentdir+'\Inv.mdb';
TekPapka:=getcurrentdir;
//Устанавливаем жлемент календаря в текущую дату
cboData.Date:=Date();
//Добавляем в объект Grid в столбец "Тип" значения ОС и ТМЦ
DBGrid1.Columns[1].PickList.add('ОС');
DBGrid1.Columns[1].PickList.add('ТМЦ');
//Устанавливаем соединение набора данны с таблицей InvOpis
adoInv.Close;
adoInv.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='''+PathBD+'''';
//Формируем выборку для набора данных из таблицы InvOpis
adoInv.SQL.Clear;
adoInv.SQL.add('SELECT * FROM InvOpis');
adoInv.Active:=true;
adoInv.Last;
//Считывание общего числа записей и номера текущей
ZapCount;
//Установка переключателей в фильтрах
txtNameF.Enabled:=true;
txtNameF.Color:=clWindow;
cboTipF.enabled:=false;
cboTipF.Color:=clscrollbar;
txtInvF.Enabled:=false;
txtInvF.Color:=clscrollbar;
txtSerNomF.enabled:=false;
txtSerNomF.color:=clscrollbar;
txtOtdelF.enabled:=false;
txtOtdelF.color:=clscrollbar;
txtFIOF.enabled:=false;
txtFIOF.color:=clscrollbar;
cboData1F.enabled:=false;
cboData1F.color:=clscrollbar;
cboData2F.enabled:=false;
cboData2F.color:=clscrollbar;
end;
procedure TfrmOsn.txtZakrClick(Sender: TObject);
begin
Close;
end;
-
Приказ Минфина России от 29.07.1998 N 34н (ред. от 29.03.2017) "Об утверждении Положения по ведению бухгалтерского учета и бухгалтерской отчетности в Российской Федерации" (Зарегистрировано в Минюсте России 27.08.1998 N 1598) ↑
- Размер пенсии по старости
- Формирование ассортимента товаров на предприятиях торговли (на примере ООО «T-best»)
- Учет внешнего окружения (среды) при выработке стратегии
- Анализ конкурентов на рынке и определение собственной конкурентоспособности (на примере ООО «Фольксваген центр Евразия») (Теоретические основы конкурентоспособности предприятия)
- Разработка регламента выполнения процесса «Складской учет» (Описание принципов организации складского учета)
- Отладка и тестирование программ: основные подходы и ограничения
- Понятие и виды государственных пенсий(Понятие и роль государственного суверенитета)
- Понятие и условия назначения пособия по безработице(Понятие и признаки статуса безработного)
- Амерканизмы в английском языке (Исторические аспекты в формировании американизмов)
- Проблемы формирования и развития валютной системы Российской Федерации
- Система налогового учета (Теоретические аспекты организации налогового учета)
- Косвенные налоги и их место в налоговой системе РФ (История и принципы налогообложения)