В данном проекте можно выделить следующие категории функций: функции вода информации в справочники, функции ввода данных недвижимости и функции получения аналитических отчетов. Каждая из этих категория относится соответствующей подсистеме разрабатываемого приложения: подсистеме ведения справочников, подсистеме ввода документов и подсистеме получения аналитических отчетов.
Приложение обеспечивает удобный и понятный диалог пользователя с программой для вызова всех функций. Доступ пользователя к функциям производится через главное меню главной формы приложения и через кнопки панели быстрого запуска, дублирующие соответствующие пункты меню. Главная форма приложения кроме предоставления основного интерфейса доступа ко всем функциям приложения выполняет также роль контейнера для всех остальных экранных форм.
Первая группа экранных форм предоставляет пользователю доступ к подсистеме ведения справочников системы. Эта группа экранных форм вызывается из главного меню программы «Справочники». Каждый подпункт этого пункта меню соответствует вызову экранной формы, которая позволяет редактировать соответствующий справочник.
Все экранные формы просмотра и редактирования справочников похожи друг на друга и позволяют выполнять функции просмотра списка справочника, ввода новых данных в справочник, редактирования существующих данных и удаления имеющихся данных. Для ввода новых и редактирования существующих данных справочников вызываются формы редактирования соответствующих справочников. Эти же формы служат и для просмотра подробной информации записи справочника, так как в списке справочника представлены только основные данные.
Далее представлен сценарий диалога.
Далее представлено дерево функций.
На рисунке 2.14 приведена структурная схема проекта.
Рисунок 2.1. Схема вызова модулей.
В основу программной реализации решения задачи был положен объектно-ориентированный подход. Выбранный в качестве языка программирования язык С++ включает в себя мощный аппарат для поддержания этой наиболее перспективной технологии: классы и объекты, иерархия структур, объединений и классов с различными механизмами наследования, инкапсуляция данных и обрабатывающих функций с несколькими уровнями доступа, полиморфизм операций, функций и объектов, обеспечивающий как статический так и виртуальный методы доступа. Встроенный аппарат объектно-ориентированного программирования позволяет описывать сложные предметные области и создавать гибкие, легко адаптируемые к нуждам пользователя программные пакеты как системного так и прикладного назначения.
Для реализации каждой подзадачи в проекте были созданы несколько классов, наследников стандартного класса библиотеки VCL TForm.
Программа разрабатывалась как Web-приложение и удовлетворяет всем требованиям к интерфейсу Web-приложения. Программа разбита на модули, что соответствует принципам модульного программирования. Рассмотрим каждый из этих модулей подробно.
Модуль главной формы приложения предоставляет пользователю интерфейс доступа ко всем основным функциям программы. Доступ ко всем функциям программы осуществляется через главное меню и панель кнопок быстрого доступа. Все кнопки и пункты меню снабжены подробными подсказками.
Подсистема редактирования справочников включает в себя ряд модулей, которые предназначены для просмотра и редактирования содержимого справочников. Отметим, что эти же формы используются и в других подсистемах. Так форма просмотра списка товаров, являющаяся частью подсистемы ведения справочников, вызывается из подсистемы учета движения товаров при оформлении операций прихода или расхода для выбора товаров, а также из подсистемы аналитических отчетов для выбора товара при задании условия построения отчета по какому-либо товару.
В подсистему ведения справочников входят следующие модули:
· Модуль просмотра списка товаров предназначен для просмотра списка номенклатуры, а также для выбора товара в какую-либо вызывающую форму;
· Модуль редактирования товара, вызываемый из модуля просмотра товаров предназначен для редактирования данных одного конкретного товара. Этот же модуль вызывает модули связанных справочников, таких как значения свойств товаров, проекты, которые относятся к товару и аналоги товара. Таким образом, в этом модуле происходит основная работа по заданию всех данных товара.
· Модуль аналогов предназначен для просмотра и назначения аналогов товаров для товара;
· Модуль проектов предназначен для просмотра списка типовых проектов. В которых могут применяться товары, а также для выбора этих проектов в вызывающие формы;
· Модуль редактирования проекта предназначен для редактирования данных одного конкретного проекта и задания свойств проекта для этого проекта;
· Модуль свойств проекта предназначен для ведения списка свойств проекта;
· Модуль редактирования свойства проекта предназначен для редактирования данных одного конкретного свойства;
· Модуль клиентов предназначен для просмотра и редактирования списка клиентов, включая редактирование всех данных клиента, а также для выбора клиентов в вызывающую форму;
· Модуль производителей предназначен для просмотра и редактирования списка клиентов, включая редактирование всех данных клиента, а также для выбора клиентов в вызывающую форму;
· Модуль свойств товаров предназначен для просмотра списка свойств товаров;
· Модуль редактирования свойств товаров предназначен для редактирования данных оного конкретного свойства товаров и для задания всех возможных значений этого свойства;
· Модуль значений свойств предназначен для просмотра и редактирования значений свойств товаров
· Модуль складов предназначен для просмотра списка складов и выбора складов в вызывающую форму;
· Модуль редактирования складов предназначен для редактирования данных конкретного склада;
Подсистема учета движения товаров содержит модули. Отвечающие за основной функционал программы: обеспечение движения товаров на складах и подсчет остатков товаров:
· Модуль журнала документов содержит список операций, которые записаны в таблицу операций базы данных;
· Модуль документа предназначен для редактирования одной операции, включая все ее компоненты. Этот модуль также как и модуль товаров вызывает многие другие формы для выбора значений.
· Модуль редактирования строки табличной части операции предназначена редактирования данных одной строки документа.
Подсистема аналитической отчетности включает в себя следующие модули:
· Модуль составления отчета по остаткам товаров на складах;
· Модуль составления отчета по движениям товара по складам.
В визуальной интегрированной среде разработки Borland С++ Builderосновной составной частью программы является форма. Форма инкапсулирует в себе элементы интерфейса пользователя и программный код, заключающий в себе реакцию на действия пользователя. Это полностью отвечает принципам объектно-ориентированного программирования. C++ Builder автоматически создает для формы класс формы, который содержит компоненты, размещенные на форме, свойства и методы формы как автоматически создаваемые C++ Builder, так и определяемые пользователем. В разработанном приложении определены следующие формы:
· Форма Fmain – главная форма приложения, реализованная в файле UnitMain.cpp выполняет функции основного интерфейса доступа пользователя ко всем функциям программы через главное меню приложения и панель кнопок быстрого доступа. Кроме того, главная форма выполняет роль контейнера всех остальных форм, в которых происходит ввод и обработка данных.
· Форма FTovar, реализованная в файле UnitTovar.cpp, выполняет функции просмотра списка товаров, введенных в таблицу товаров базы данных системы. Главным элементом формы является компонент DBGrid палитры компонентов C++ Builder, который отображает таблицу товаров в виде списка. Колонки компонента DBGrid отображают соответствующие поля таблицы товаров: наименование, англоязычное наименование, штрихкод и производитель. Эта же форма служит для выбора товара в случае вызова этой формы из других форм для выбора того или иного товара например в форму отчета по остаткам.
· Форма FTovarEdit, реализованная в файле UnitTovarEdit.cpp, предназначена для просмотра и редактирования данных о товаре. В этой форме расположены органы управления, в которых отображаются основные данные товара, такие как наименование, англоязычное наименование, подробное описание, синонимы, штрих-код и цена и производитель. Отметим, что производитель выбирается путем открытия формы производителей и выбора его из предлагаемого списка. Кроме основных данных в форме редактирования товара отображаются и данные связанных справочников, записи, которых связаны с данным товаром: аналоги, проекты, к которым относится товар и свойства этого товара с их значениями. Отображении данных связанных справочников в одной форме очень удобно, так как все необходимые данные о товаре находятся вместе. Их можно просмотреть и отредактировать.