Программное средство для обеспечения контроля над деятельностью торговых агентов ООО 'Журавли плюс'
Содержание
Введение
1. Постановка и анализ задачи
.1 Описание предметной области
.2 Обоснование выбора средств
реализации
. Анализ данных
. Анализ алгоритмов
. Модульная структура программы
. Тестирование
. Документирование
.1 Техническое задание
.2 Руководство пользователя
Заключение
Список литературы
Приложение
Введение
Программа была создана для решения
производственных задач ООО "Журавли плюс". ООО "Журавли
плюс" - это организация, деятельность которой заключается в оптовых
поставках товаров из других регионов России в различные торговые точки города
Читы и других населенных пунктов Забайкальского края.
Разработанный программный продукт помогает
сделать деятельность торговых агентов компании более эффективной, чем раньше.
Приложение позволяет выполнять такие действия как: чтение файлов выгрузки из
автоматизированной системы товароучетас занесением данных в собственную базу
данных, создание файлов для импорта в автоматизированную систему товароучета,
чтение файлов выгрузки со смартфонов и создание файлов импорта для смартфонов.
Помимо этого предоставляет возможность редактирования некоторых данных, таких
как информация о торговых агентах, маршрутах, заданиях и др. Всвязи с этим для
обеспечения контроля за деятельностью торговых агентов может быть выделен
отдельный оператор не связанный на прямую с системой товароучета компании.
Программа обладает простым и понятным интерфейсом, следовательно, пользователю
не нужно обладать какими-либо дополнительными знаниями или опытом, чтобы начать
использовать эту программу.
. Постановка и анализ и задачи
.1 Описание предметной области
Представленная программа была создана для
решения производственных задач ООО "Журавли плюс". ООО "Журавли
плюс" - это организация, деятельность которой заключается в оптовых поставках
товаров из других регионов России в различные торговые точки города Читы и
других населенных пунктов Забайкальского края.
Вышеописанная организация имеет в своем штате
торговых агентов, задача которых состоит в сборе заявок на товары от торговых
точек. Для автоматизации процесса торговые агенты были снабжены карманными
персональными компьютерами (далее КПК) с установленным программным обеспечением
(далее ПО), которое дает возможность создавать различные торговые документы
прямо в смартфон. Созданные таким образом документы могут быть немедленно
отправлены на центральный сервер, используя соединение с глобальной
информационной сетью Интернет.
Файлы, отправленные агентами и полученные на
сервере, в дальнейшем импортируются в Автоматизированную систему товароучета
(далее АСТУ). В смартфон также загружаются файлы, экспортированные из АСТУ.
Следует отметить, что программного обеспечения
такого рода для смартфонов существует несколько видов (Агент+, Моби-С, и др.),
и каждый из них имеет свой формат обмена данными. Как правило, не каждая
программа охватывает все имеющиеся мобильные платформы, поэтому возникает
естественная потребность совмещать различные виды такого программного
обеспечения при работе с агентами. Кроме того и системы учета товара также
могут быть различными.
Все вышеописанные особенности создают ряд
проблем, так, например, для каждого отдельного вида ПО, требуется свой
собственный анализатор файла выгрузки в АСТУ, что не очень удобно. Аналогично
этому различные программы могут выгружать (кроме некоторого общего набора
данных, свойственного такому виду программ) нетипичные элементы данных. Следует
также упомянуть, что весь этот объем нетипичных данных бывает весьма полезным
на производстве, однако его, как правило, не используют, чтобы не заполнять АСТУ
лишними данными. С учетом всего этого можно выделить общую схему работы,
которая представлена в соответствии с рисунком 1.
Рисунок 1 - Схема работы без промежуточной базы
данных
Принимая во внимание все ранее изложенное, было
принято решение создать программу, которая позволила бы использовать всего один
формат обмена с АСТУ, причем данные, передаваемые при помощи этого формата,
ограничивались бы лишь тем набором, который действительно необходим для ведения
товароучета. При этом все "лишние" данные должны оставаться в
промежуточной базе данных (далее БД) для анализа и составления отчетов.
Совместимость с различными форматами КПК и АСТУ, в такой программе, может
обеспечиваться за счет плагинов или модулей, подключаемых при необходимости.
Таким образом, схема, описанная выше, преобразовывается в схему, которая
содержит промежуточную базу данных - наш программный продукт, данная схема
представлена в соответствии с рисунком 2. На основании изложенных требований и,
исходя из постановки задачи, была построена диаграмма вариантов использования,
которая представлена в приложении A.
Рисунок 2 - Схема работы с промежуточной БД
.2 Обоснование выбора средств реализации
Для реализации данного программного продукта был
выбран кроссплатформенный инструментарий разработки программного обеспечения на
языке C++ под названием
"Qt". Qtпозволяет
запускать написанное с его помощью ПО в большинстве современных операционных
систем,с помощью простой перекомпиляции программы, без изменения исходного
кода. Включает в себя все основные классы, которые могут потребоваться при
разработке прикладного программного обеспечения, начиная от элементов
графического интерфейса и заканчивая классами для работы с сетью, базами данных
и XML. Qt
является полностью объектно-ориентированным, легко расширяемым и поддерживающим
технику компонентного программирования.Одним из весомых преимуществ Qt является
наличие качественной и подробной документации, а статьи снабжены большим
количеством примеров.
Для работы с базой данных используется система
управления базами данных (далее СУБД) с поддержкой StructuredQueryLanguage
(далее SQL). В нашем
случае была выбрана СУБД MySQL,
так как она отвечает всем необходимым требованиям и бесплатна для коммерческого
использования.
2. Анализ данных
Исходными данными к работе являются: информация
о клиентах, фирмах, торговых точках, количество и тип предлагаемого товара,
цены товаров, информация о торговых агентах, типы и содержание основных документов.
Выходными данными являются документы, история
продаж, заявки.
На основе всего вышеперечисленного была
спроектирована база данных, которая включает 31 таблицу. Предполагается, что
при добавлении плагинов, которые обеспечивают импорт и экспорт данных из и в
приложения смартфонов для торговых агентов, база будет расширятся за счет
появления новых типов данных из других систем. Описание таблиц базы данных
представлено в приложении Б. Связитаблиц базы данных представлены в приложении
В.
Данные заносятся в базу из АСТУ и КПК с помощью
файлов выгрузки из этих систем, из базы также производятся выгрузки для АСТУ и
КПК - таким образом осуществляется двусторонний обмен и поддерживается
актуальность данных во всей системе.
Программа работает только с файлами выгрузки в
стиле автоматизированной мобильной системы "Агент +", это обусловлено
широким распространением данной системы на предприятии. Формат хорошо описан и
документирован, документация была взята с сайта производителя программы.
Файл, экспортированный из КПК, представляет
собой XML - документ
с корневым элементом "AgentPlus",
в атрибутах которого передается ключевая информация о выгрузке.Существуют
атрибуты, содержащие идентификатор агента, имя агента, идентификатор
устройства, дату выгрузки и др. Корневой элемент может содержать несколько
элементов типа "Doc",
в атрибутах которого передается информация о выгружаемом документе, такая как
идентификатор документа, его тип, дата создания и прочее. Каждый элемент типа
"Doc" может
содержать несколько элементов типа "Line",
в этом элементе передается информация, содержание которой определяется типом
документа.
Файл импорта в КПК представляет собой текстовый
файл с расширением .dat.Первая
строчка в файле - "agentp_datato_ppc",
значения разделяются знаком табуляции. Затем в файле идут блоки выгрузки. Блок
начинается с ключевого слова "<Begin>",
за которым следует имя тэга и следом - описание структуры выгрузки,
начинающееся с ключевого слова "Struct:",
после этого слова указывается список полей блока выгрузки через запятую.
"<Begin>",
имя тэга и "Struct:"
разделяются знаками табуляции. Со следующей строки указываются данные выгрузки,
значения указываются в порядке, описанном в "Struct:",
и разделяются знаком табуляции. Блок заканчивается ключевым словом "<End>",
за которым следует знак табуляции и название завершаемого тэга.
. Анализ алгоритмов
Алгоритмы, используемые в программе, довольно
типичны для такого рода задач как работа с базой данных с использованием языка SQL.
При написании приложения было решено не использовать в синтаксисе запросов
какие-либо особенные конструкции языка SQL,
выходящие за рамки стандарта ANSI,
так как одним из важных критериев было обеспечение переносимости базы данных
между различными системами управления базами данных.
Все запросы реализованы простейшими SQLконструкциями,
используются четыре типа запросов[1]:
1. SELECT запрос
вида:
SELECT<столбец [,<столбец>]>
FROM<таблица>[
WHERE<условие
выборки> ]
2. INSERT запрос
вида:
INSERTINTO<таблица>
(<столбец>[,<столбец>]) VALUES(<значение>
[,<значение>])
3. DELETE запрос
вида:
DELETEFROM<таблица>WHERE<условие
удаления>
4. UPDATE запрос
вида:
UPDATE<таблица>SET
<столбец> = <значение>
[,<столбец> = <значение>]
WHERE<условие>
Для работы с БД используется инструментарий Qt,
модуль QtSqlкоторый
содержит классы для работы с СУБД. В программе были использованы следующие
классы[2]:
1) QSqlDatabase
- предоставляет средства соединения с БД;
2) QSqlQuery
- предоставляет средства для выполнения SQLзапросов;
3) QSqlError
-информация об ошибках SQL.
В программе выполнение запросов инкапсулировано
в соответствующие классы, которые и обеспечивают связь с БД. Данные получаются
классом и возвращаются в виде "сущностей", каждая сущность
представляет собой строку в отдельно взятой таблице, для работы с которой класс
и создан, а в программе "сущность" реализуется с помощью структур с
полями соответствующих типов.
Qtпредлагает
уже реализованные драйверы для СУБД, среди которых есть драйверы к MySQL,
IBM DB2, BorlandInterBase,
PostgreSql, Oracle,
MicrosoftSQLServer, таким
образом можно утверждать что представленное приложение работает с
перечисленными СУБД при наличии соответствующих драйверов в комплекте.
Для обработки XMLфайлов
Qtвключает модуль QtXml,
возможности классов, содержащихся в этом модуле, использованы в приложении.
Программа использует следующие классы QtXml:
1) QXmlAttributes
-предоставляет атрибуты XMLэлемента;
2) QXmlDefaultHandler
-стандартный обработчик XMLдокумента;
3) QXmlReader
- интерфейс для чтения XMLдокумента;
4) QDomElement
-элемент XMLдокумента;
5) QDomDocument
-XML документ;
6) QDomNode
-базовый класс для узлов DOMдерева;
7) QDomText
-текстовые данные в XMLдокументе;
8) QDomNodeList
-список объектов QDomNode.
Разбор XMLфайла
реализован в отдельном классе программы, доступ к файлам осуществляется с
помощью класса QFile.
Диаграмма классов представлена в приложении Г.
Объявления классов представлены в приложении Д.
. Модульная структура программы
Использование модульного
подхода позволяет значительно упростить создание программного обеспечения,
повысить его надёжность и эффективность. Использование модулей позволяет
разбить задачу на функциональные группы, облегчая тем самым как разработку, так
и сопровождение программы.
Для того чтобы уменьшить
сложность ПО нужно, чтобы пакеты, реализующие это ПО были не большими и в
высокой степени независимыми. Независимость модулей достигается с помощью двух
методов:
- усиление внутренних связей
модулей;
- ослабление
взаимосвязи между модулями.
Каждый класс в программе
представлен в двух файлах, в заголовочном файле описан интерфейс класса, а в
файле исходного кода - его реализация. Такое разделение на реализацию и
интерфейс значительно повышает читаемость кода и упрощает понимание.
Весь программный код разбит на
отдельные классы, каждый из которых решает свою определенную задачу, визуальная
составляющая отделена и не зависит от других классов так же, как и другие
классы не зависят от визуальной реализации интерфейса. Полный список файлов-
модулей, образующих программу, представлен в таблице Ж.1 приложения Ж.
Взаимосвязь модулей изображена с помощью диаграммы компонентов, которая
представлена в соответствии с рисунком И.1 приложения И.
. Тестирование
Тестирование происходило в условиях локальной
сети с несколькими компьютерами. Тестовый стенд состоял из двух компьютеров:
сервера и клиента. В качестве серверного оборудования использовался компьютер
под управлением операционной системы DebianGNU/Linux
6.0 Squeeze с MySQLсервером
версии 5.1 с настройками безопасности характерными для сетей предприятия. В
качестве клиентского оборудования использовался компьютер под управлением
операционной системы MicrosoftWindows
7 Professional и MicrosoftWindowsXPProfessionalSP2.
При тестировании использовались только последние стабильные версии описанного
программного обеспечения.
Процесс разработки программы носил итеративный
характер, поэтому тестирование производилось непрерывно и на всем протяжении
времени разработки. Такой подход к тестированию был выбран ввиду его
чрезвычайной эффективности при разработке программ малыми группами или вовсе
одним человеком.
Методика тестирования заключалась во вводе
корректных и не корректных данных с последующим анализом поведения системы и
выявлением мест и условий появления ошибок. После анализа ошибка исправлялась,
и проводилось повторное тестирование при тех же условиях и на том же наборе
данных, если ошибок обнаружено не было, тест считался успешно завершенным, и
тестирование продолжалось, но уже на другом наборе данных.
При тестировании были выявлены ошибки разной
степени сложности, которые были исправлены, согласно упомянутой ранее методике
тестирования.
. Документирование
.1 Техническое задание
программа автоматизация управление
файл
Введение
Программное средство для обеспечения контроля
над деятельностью торговых агентов ООО "Журавли плюс",позволяющее
улучшить и автоматизировать процесс управления и контроля торговых агентов,
должновключать базу данных торговых агентов и предоставлять ряд средств, для
обеспечения контроля над их деятельностью. С помощью данной программыдолжно
осуществляться составление маршрутов, выдача заданий, создание планов продаж и
проверка их выполнения.
Требования к программе
Требования к функциональным характеристикам
Программа должна выполнять следующие функции:
- чтение файлов, полученных из смартфонов торговых
агентов, с занесением информации в базу данных;
- создание файлов для загрузки в
смартфоны торговых агентов;
- добавление, удаление, изменение
сведений о маршрутах (идентификатор клиента, идентификатор торговой точки,
время прибытия агента, комментарий);
- добавление, удаление, изменение
сведений о планах продаж (название, тип, категория товаров, сумма по плану,
количество по плану);
- добавление, удаление, изменение
сведений о фотографиях (идентификатор документа, комментарий, дата создания);
- добавление, удаление, изменение
сведений об агентах (имя, фамилия, отчество, идентификатор устройства);
- добавление, удаление, изменение
сведений о заданиях (фирма, клиент, торговая точка, маршрут, номер документа);
- добавление, удаление, изменение сведений
о задачах (тип, название, комментарий).
Требования к надежности
В программе должна присутствовать проверка
входной информации на соответствие типов, принадлежность диапазону допустимых
значений и соответствие структурной корректности. В случае возникновения ошибок
предусмотреть возможность вывода информативных диагностических сообщений.
Требования к составу и
параметрам технических средств
Программное средство должно использовать
реляционную СУБД с поддержкой SQL,
и возможностью доступа к ней по локальной сети.
Минимальные требования:
программа должна функционировать на компьютере IBMPC
с процессором класса не ниже Pentium,
оперативной памятью объемом не менее 128 Мб, свободным пространством на жёстком
диске не менее 100 Мб, монитором SVGA
640x480, операционная система семейства MicrosoftWindows.
Рекомендуемые требования:
персональный компьютер, совместимый с IBMPC,
с процессором IntelPentiumIII-400
и выше, оперативная память объемом 256 Мб и более, 20 Мбайт на жестком диске.
Требования к информационной и
программной совместимости
Программа должна
функционировать под управлением операционных систем семейства MicrosoftWindows
и не должна конфликтовать с другим специализированным программным обеспечением.
Требования к программной документации
Программная документация должна
быть представлена руководством пользователя.
6.2 Руководство пользователя
Для запуска программы в ОС Windowsнеобходимы
следующие файлы библиотек: libgcc_s_dw2-1.dll, libstdc++-6.dll, mingwm10.dll,
QtCore4.dll, QtGui4.dll, QtSql4.dll, QtXml4.dll. Эти файлы должны быть
расположены в папке с программой, либо путь их расположения должен быть указан
в переменной окружения PATH.
Кроме этих библиотек, в каталоге с программой также должна присутствовать
директория "sqldrivers",в
которой располагаются драйверы для работы с СУБД. Драйверы СУБД, в свою
очередь, могут использовать библиотеки, поставляющиеся с самой СУБД, эти файлы
должны быть также расположены в папке с программой. Для работы с MySQLтребуется
файл libmysql.dll.
После запуска программы, появляется главное
окно, представленное в соответствии с рисунком 3.
Рисунок 3-Главное окно программы
Окно состоит из меню, панели инструментов,
рабочей области и строки состояния. Меню содержит пункты: "Файл",
"Правка", "Вид" и "Справка", в которых
располагаются все доступные функции программы, а панель инструментов дублирует
наиболее важные и часто используемые пункты. В рабочей области располагаются
окна приложения, используемые для отображения данных из базы.
Опишем структуру меню "Файл":
1) "Подключиться" - выполняет
подключение к базе данных;
2) "Экспорт" - экспортирует
информацию в файл для загрузки в КПК;
) "Импорт" - импортирует
информацию из файлов с КПК;
) "Выход" - завершает работу
программы.
Опишем структуру меню "Правка":
1) "Агенты" - открывает окно
управления торговыми агентами;
2) "Маршруты" - открывает окно
управления маршрутами;
) "Задания" - открывает окно
управления заданиями для агентов;
) "Фотографии" - позволяет
управлять списком фотографий в КПК;
) "Планы продаж" - управление
планами продаж для агентов.
Опишем структуру меню "Вид":
1) "Вкладки" - отображать окна
вкладками;
2) "Окна" - отображать в виде
отдельных окон;
) "Окна каскадом" - выстраивает
окна каскадом;
) "Окна рядом" - выстраивает
окна рядом, заполняя все пространство.
Опишем структуру меню "Справка":
содержит пункт "О программе", где можно узнать версию приложения и
информацию о разработчике.
После запуска программы пункты меню и элементы
панели управления, отвечающие за операции с данными, будут недоступны, ввиду
отсутствия подключения к базе данных. Для продолжения работы необходимо
выполнить подключение к БД, для этого необходимо выбрать пункт меню
"Файл" - "Подключиться" или воспользоваться кнопкой "Подключиться"
на панели инструментов.
При выборе данного пункта на экране появится
окно подключения, представленное в соответствии с рисунком 4. В этом окне
необходимо указать реквизиты для подключения к базе данных.
Рисунок 4 - Окно подключения к БД
Список "Драйвер" содержит наименования
драйверов СУБД, которые доступны приложению, требуется выбрать тип драйвера
соответственно типу СУБД, к которой производится подключение. В поле
"Хост" указывается адрес подключения, может быть указан как IP
адрес сервера базы данных, так и его DNSимя.
Поле "Порт" содержит порт подключения, значение этого поля может
изменяться от 0 до 65535 включительно. Поле "БД" содержит имя базы
данных, база данных должна существовать на сервере. Поле "Логин"
содержит имя пользователя БД, с помощью которого происходит подключение,
пользователь должен быть зарегистрирован на сервере и должен иметь доступ к
базе данных, имя которой расположено в поле "БД". В поле
"Пароль" необходимо указать пароль доступа для соответствующего
пользователя, пароль при вводе не отображается. Галочка "Запомнить"
служит для сохранения настроек подключения в конфигурационном файле программы в
случае успешного подключения к БД. При активации этой функции будут сохранены
все значения полей, за исключением поля "Пароль" чтобы предотвратить
возможность несанкционированного доступа к данным. После указания всех
необходимых для подключения значений следует нажать кнопку
"Соединение", при нажатии, программа попытается подключиться, используя
введенные данные, и в случае успешного подключения появится главное окно
программы. При неудачном подключении программа выдаст окно с описанием ошибки,
возникшей при подключении. Кнопка "Отмена" служит для завершения
работы приложения.
Общий элемент управления для всех форм
представлен в соответствии с рисунком 5.
Рисунок 5 - Управление записями
Работа производится в отдельной вкладке или окне
(в зависимости от настроек интерфейса), на каждой вкладке располагается таблица
с данными и кнопки действий над записями в таблице. С помощью указателя мыши
производится выбор необходимой строки в таблице. Выше располагаются кнопки
управления. "Изменить" - редактирование выделенной записи, если
выделено более одной записи, то действие выполнено не будет.
"Удалить" - удаление выделенных записей, возможно удаление как одной,
так и нескольких записей. "Добавить" - добавление новой записи.
"Обновить" - перечитывает таблицу из БД, что позволяет
актуализировать данные для работы в любой момент времени. Экспорт данных из
базы данных в файл в формате, понятном для КПК осуществляется с помощью формы
"Экспорт данных", представленной в соответствии с рисунком 6.
Рисунок 6 - Экспорт данных
"Путь" определяет корневой каталог, в
котором будут располагаться папки из списка "Папка". Кнопка
"Обзор…" открывает окно с обзором файловой системы, с помощью
которого можно выбрать нужную папку в качестве корневого каталога. Кнопки рядом
со списком служат для изменения содержимого списка, кнопка сохранения -
сохраняет корневой каталог, список папок и название файла в конфигурационный
файл. При повторном запуске информация будет восстановлена из этого файла, если
она была сохранена. При нажатии кнопки "Экспортировать в файл"
программа создаст файл "<Путь>\<Папка>\<Файл>", где
<Путь>, <Папка> и <Файл> значения соответствующих полей
формы. Если путь не существует - будут созданы все необходимые каталоги. Если
файл уже существует - он будет заменен, так как предполагается что старая выгрузка
потеряла актуальность. Импорт данных в базу данных из xmlфайлов
осуществляется с помощью формы "Импорт данных", представленной в
соответствии с рисунком 7.
Рисунок 7 - Импорт данных
В поле "Шаблон" указывается файл-шаблон
с конфигурацией импортируемого файла. В поле "Файл" указывается сам
импортируемый файл в формате xml. Кнопки "Обзор…" служат для обзора
файловой системы и выбора файлов. Кнопка "Импортировать файл"
запускает процесс импорта данных из файла в базу данных. Полоса прогресса
отображает количество обработанных данных из файла. Ниже располагается отчет о
выполненных запросах, зеленым цветом отмечаются успешно выполненные запросы,
красным - завершившиеся неудачно.
Заключение
Программное средство для обеспечения контроля
над деятельностью торговых агентов ООО "Журавли плюс", позволяет
улучшить и автоматизировать процесс управления и контроля торговых агентов,
включает базу данных торговых агентов и предоставляет ряд средств, для
обеспечения контроля над их деятельностью. С помощью данной программы
осуществляется составление маршрутов, выдача заданий, создание планов продаж и
проверка их выполнения.
Работа программы ориентирована на программное
обеспечение "Агент плюс" и "1С". Среди реализованных возможностей:
чтение файлов выгрузки из автоматизированной системы товароучета с занесением
данных в собственную базу данных, создание файлов для импорта в
автоматизированную систему товароучета, чтение файлов выгрузки со смартфонов и
создание файлов импорта для смартфонов, редактирование некоторых данных, таких
как информация о торговых агентах, маршрутах, заданиях, планах продаж,
фотографиях.
В перспективе развития - абстрагирование от
конкретных видов программного обеспечения через реализацию возможности подключения
необходимых плагинов, которые позволят реализовать методы работы с файлами
различных типов. Также необходимо создание, подробное описание и
документирование формата обмена данными между АСТУ и представленной программой.
Список литературы
. Э. Джоунс, Р. Стивенз, Р. Плю, Р.
Гаррет, А. Кригель Функции SQL. Справочник программиста. - М.: ООО "И.Д.
Вильямс", 2007. - 768с.
.#"551756.files/image008.gif">
Рисунок А.1 - Диаграмма вариантов использования
Приложение Б
Таблицы базы данных
Таблица Б.1 -Договоры контрагентов
Поле
|
Тип
|
Размер
|
Описание
|
AgreementID
|
Строка
|
36
|
Идентификатор
договора
|
FirmID
|
Строка
|
36
|
Идентификатор
фирмы
|
ClientID
|
Строка
|
36
|
Идентификатор
клиента
|
TPointID
|
Строка
|
36
|
Идентификатор
торговой точки
|
Name
|
Строка
|
127
|
Наименование
договора
|
CodesList
|
Строка
|
128
|
Список
допустимых кодов видов оплат
|
PaymentType
|
Число
|
10.0
|
Код
вида оплаты по умолчанию
|
PriceTypes
|
Строка
|
128
|
Список
допустимых кодов типов цен
|
PriceType
|
Число
|
2.0
|
Код
типа цены по умолчанию
|
TimeBegin
|
Дата/Время
|
|
Дата
заключения договора
|
TimeEnd
|
Дата/Время
|
|
Дата
окончания срока действия договора
|
Status
|
Число
|
10.0
|
Код
категории (статуса) договора
|
FltGdsCat
|
Число
|
10.0
|
Код
категории товаров
|
FltGdsProp
|
Строка
|
255
|
Список
кодов свойств товаров
|
Comment
|
Строка
|
128
|
Комментарий
к договору
|
Таблица Б.2 - Фирмы
Поле
|
Тип
|
Размер
|
Описание
|
FirmID
|
Строка
|
36
|
Идентификатор
фирмы
|
Name
|
Строка
|
64
|
Наименование
фирмы
|
CodesList
|
Строка
|
128
|
Список
допустимых для фирмы кодов видов оплат
|
Address
|
Строка
|
128
|
Адрес
фирмы
|
Telephone
|
Строка
|
64
|
Телефоны
фирмы
|
UseVAT
|
Число
|
1.0
|
Признак
использования НДС в документах
|
UseSF
|
Число
|
1.0
|
Признак
использования счетов-фактур
|
DocPrefix
|
Строка
|
15
|
Префикс
нумерации документов, закрепленный за фирмой
|
Таблица Б.3 - Маршруты
Поле
|
Тип
|
Размер
|
Описание
|
RouteID
|
Строка
|
36
|
Идентификатор
пункта маршрута
|
ClientID
|
Строка
|
36
|
Идентификатор
клиента
|
TPointID
|
Строка
|
36
|
Идентификатор
торговой точки
|
RouteTime
|
Дата/Время
|
|
Дата
и время желательного посещения
|
Comment
|
Строка
|
64
|
Комментарий
к пункту маршрута
|
Таблица Б.4 - Склады
Поле
|
Тип
|
Размер
|
Описание
|
StoreID
|
Строка
|
36
|
Идентификатор
склада
|
Name
|
Строка
|
64
|
Наименование
склада
|
Таблица Б.5 - Клиенты
Поле
|
Тип
|
Размер
|
Описание
|
Barcode
|
Строка
|
15
|
Штрих-код
клиента
|
ClientID
|
Строка
|
36
|
Идентификатор
клиента
|
FolderID
|
Строка
|
36
|
Идентификатор
группы, в которой находится клиент
|
FirmID
|
Строка
|
36
|
Идентификатор
фирмы
|
Name
|
Строка
|
50
|
Наименование
клиента
|
Telephone
|
Строка
|
50
|
Контактные
телефоны
|
Address
|
Строка
|
50
|
Адрес
клиента
|
CodesList
|
Строка
|
128
|
Список
допустимых для клиента кодов видов оплат
|
PriceTypes
|
Строка
|
128
|
Список
кодов типов цен доступных для клиента
|
FltGdsProp
|
Строка
|
255
|
Список
кодов свойств товаров
|
UsePPrices
|
Число
|
1.0
|
Признак
использования персональных цен
|
PriceType
|
Число
|
2.0
|
Код
типа цены, закрепленной за клиентом
|
Status
|
10.0
|
Код
статуса клиента
|
FltGdsCat
|
Число
|
10.0
|
Код
категории товаров
|
ADCode
|
Число
|
10.0
|
Код
свода накопительных скидок
|
Category
|
Число
|
10.0
|
Код
категории клиента
|
Discount
|
Число
|
8.4
|
Скидка
клиента
|
Credit
|
Число
|
15.2
|
Сумма
кредита клиенту
|
Debt
|
Число
|
15.2
|
Общий
долг клиента
|
Таблица Б.6 - Торговые точки
Поле
|
Тип
|
Размер
|
Описание
|
ClientID
|
Строка
|
36
|
Идентификатор
клиента
|
TPointID
|
Строка
|
36
|
Идентификатор
торговой точки
|
Name
|
Строка
|
50
|
Наименование
торговой точки
|
Address
|
Строка
|
64
|
Адрес
торговой точки
|
Zone
|
Строка
|
8
|
Номер
зоны если точки классифицированы по зонам
|
Telephone
|
Строка
|
50
|
Номера
телефонов
|
Status
|
Число
|
10.0
|
Код
статуса торговой точки
|
Contact
|
Строка
|
128
|
Контактные
лица
|
CodesList
|
Строка
|
128
|
Список
допустимых для торговой точки кодов видов оплат
|
PriceTypes
|
Строка
|
128
|
Список
кодов типов цен доступных для торговой точки
|
PriceType
|
Число
|
2.0
|
Код
типа цены, закрепленной за торговой точкой
|
UsePPrices
|
Число
|
1.0
|
Признак
использования персональных цен
|
FltGdsCat
|
Число
|
10.0
|
Код
категории товаров
|
FltGdsProp
|
Строка
|
255
|
Список
кодов свойств товаров
|
Barcode
|
Строка
|
15
|
Штрих-код
торговой точки
|
Category
|
Число
|
10.0
|
Код
категории торговой точки
|
Таблица Б.7 - Товары
Поле
|
Тип
|
Размер
|
Описание
|
GoodsID
|
Строка
|
36
|
Идентификатор
товара
|
FolderID
|
Строка
|
36
|
Идентификатор
группы, в которой находится товар
|
Name
|
Строка
|
64
|
Наименование
товара
|
Code
|
Строка
|
15
|
Код
товара
|
NameUnits
|
Строка
|
11
|
Названия
единиц измерения через запятую
|
Unit0
|
Число
|
7.0
|
Размерность
первой единицы измерения
|
Unit1
|
Число
|
7.0
|
Размерность
второй единицы измерения
|
Unit2
|
Число
|
7.0
|
Размерность
третьей единицы измерения
|
Price1
|
Число
|
12.2
|
Первая
цена товара в общем прайсе
|
Weight0
|
Число
|
15.4
|
Вес
первой единицы измерения товара
|
Rest
|
Число
|
15.4
|
Остаток
товара в фирме
|
RDiscount
|
Число
|
4.1
|
Ограничение
скидки
|
Action
|
Число
|
1.0
|
Признак
выделения цены товара в каталоге
|
Weight
|
Число
|
1.0
|
Признак,
что товар является "весовым"
|
PropList
|
Строка
|
128
|
Список
кодов свойств, присвоенных товару
|
Comment
|
Строка
|
48
|
Комментарий
к товару
|
VAT
|
Число
|
12.2
|
Ставка
НДС в процентах
|
Category
|
Число
|
10.0
|
Код
категории товара
|
SertifID
|
Строка
|
36
|
Идентификатор
сертификата товара
|
MinAmount
|
Число
|
15.4
|
Минимальное
количество товара допустимое для указания в документах "Заявка" и
"Реализация"
|
PriceUnit
|
Число
|
1.0
|
Код
единицы измерения, для которой указаны цены
|
StockUnit
|
Число
|
1.0
|
Код
единицы измерения, для которой указаны остатки
|
Таблица Б.8 - Документы
Поле
|
Тип
|
Размер
|
Назначение
|
DocType
|
Строка
|
20
|
Вид
документа
|
DocID
|
Строка
|
36
|
Идентификатор
документа
|
PDAState
|
Число
|
1.0
|
Состояние
документа в КПК
|
CreateTime
|
Дата/Время
|
|
Дата
и время записи документа в КПК
|
TimeCrtForm
|
Дата/Время
|
|
Дата
и время начала работы с документом
|
CreateMode
|
Строка
|
10
|
Способ
создания документа в КПК
|
Number
|
Строка
|
24
|
Номер
документа.
|
FirmID
|
Строка
|
36
|
Идентификатор
фирмы в документе
|
GPSLatitude
|
Число
|
8.4
|
Географическая
широта
|
GPSLongtitude
|
Число
|
8.4
|
Географическая
долгота
|
ClientID
|
Строка
|
36
|
Идентификатор
клиента
|
AgreementID
|
Строка
|
36
|
Идентификатор
договора
|
TPointID
|
Строка
|
36
|
Идентификатор
торговой точки
|
RouteID
|
Строка
|
36
|
Идентификатор
пункта маршрута
|
Summa
|
Число
|
19.0
|
Сумма
в документе
|
Comment
|
Строка
|
128
|
Комментарий
к документу
|
PaymentType
|
Число
|
10.0
|
Вид
оплаты документа
|
MDocID
|
Строка
|
36
|
Идентификатор
документа-основания
|
Таблица Б.9 - Документ "Заказ"
Поле
|
Тип
|
Размер
|
Описание
|
DocID
|
Строка
|
36
|
Идентификатор
документа
|
Discount
|
Число
|
4.1
|
Скидка
в документе
|
PriceType
|
Число
|
2.0
|
Тип
цен в документе
|
PriceMode
|
Число
|
1.0
|
Режим
цен в документе
|
TimeDlv
|
Дата/Время
|
|
Дата
и время желательной поставки
|
DocMerchID
|
Строка
|
36
|
Идентификатор
документа "Мерчендайзинг"
|
Таблица Б.10 - Документ "Задание"
Поле
|
Тип
|
Размер
|
Описание
|
DocID
|
Строка
|
36
|
Идентификатор
документа
|
TimeBegin
|
Дата/Время
|
|
Дата
и время начала работы с документом
|
TimeEnd
|
Дата/Время
|
|
Дата
и время окончания работы с документом
|
Таблица Б.11 - Документ "Реализация"
Поле
|
Тип
|
Размер
|
Описание
|
DocID
|
Строка
|
36
|
Идентификатор
документа
|
Discount
|
Число
|
4.1
|
Скидка
в документе
|
PriceType
|
Число
|
2.0
|
Тип
цен в документе
|
PriceMode
|
Число
|
1.0
|
Режим
цен в документе
|
PayDate
|
Дата
|
|
Дата
(срок) оплаты документа
|
DocMerchID
|
Строка
|
36
|
Идентификатор
документа "Мерчендайзинг"
|
SFNum
|
Строка
|
25
|
Номер
счета-фактуры, закрепленного за документом
|
UseVAT
|
Число
|
1.0
|
Признак
учета в документе НДС
|
Таблица Б.12 - Документ "Поступление"
Поле
|
Тип
|
Размер
|
Описание
|
DocID
|
Строка
|
36
|
PriceType
|
Число
|
2.0
|
Тип
цен в документе
|
Таблица Б.13 - Документ "Перемещение"
Поле
|
Тип
|
Размер
|
Описание
|
DocID
|
Строка
|
36
|
Идентификатор
документа
|
StoreID
|
Строка
|
36
|
Идентификатор
склада-отправителя или склада-получателя
|
MoveType
|
Число
|
1.0
|
Вид
перемещения
|
Таблица Б.14 - Документ
"Инвентаризация"
Поле
|
Тип
|
Размер
|
Описание
|
DocID
|
Строка
|
36
|
Идентификатор
документа
|
PriceType
|
Число
|
2.0
|
Тип
цен в документе
|
InvType
|
Число
|
1.0
|
Режим
изменения остатков при проведении
|
Таблица Б.15 - Стандартная табличная часть
документов
Поле
|
Тип
|
Размер
|
Описание
|
DocID
|
Строка
|
36
|
Идентификатор
документа
|
GoodsID
|
Строка
|
36
|
Идентификатор
товара
|
Amnt
|
Число
|
15.4
|
Количество
товара в базовых единицах измерения
|
Price
|
Число
|
15.2
|
Цена
товара
|
Sum
|
Число
|
15.2
|
Стоимость
товара
|
VAT
|
Число
|
15.2
|
Сумма
НДС.
|
Dscnt
|
Число
|
4.1
|
Скидка
на товар
|
Wght
|
Число
|
15.4
|
Вес
товара в строке документа
|
Ucode
|
Число
|
1.0
|
Код
единицы измерения, в которой указаны количества в документе
|
UDim
|
Число
|
7.0
|
Размерность
единицы измерения, в которой указаны количества в документе.
|
Таблица Б.16 - Табличная часть документа
"Задание"
Поле
|
Тип
|
Размер
|
Описание
|
DocID
|
Строка
|
36
|
Идентификатор
документа
|
Code
|
Число
|
10.0
|
Код
|
Type
|
Число
|
10.0
|
Код
типа задачи
|
Name
|
Строка
|
64
|
Название
задачи
|
Flags
|
Число
|
3.0
|
Флаги
для данной задачи
|
Val
|
blob
|
|
Результат
выполнения задачи
|
Таблица Б.17 - Фотографии
Поле
|
Тип
|
Размер
|
Описание
|
DocID
|
Строка
|
36
|
Идентификатор
документа
|
ObjectType
|
Число
|
10.0
|
Зарезервировано,
всегда указывается значение 1
|
TimeCrt
|
Дата/Время
|
|
Дата
и время создания фотографии в КПК
|
FileName
|
Строка
|
63
|
Название
файла фотографии
|
Comment
|
Строка
|
254
|
Комментарий
к фотографии
|
Таблица Б.18 - Планы продаж
Поле
|
Тип
|
Размер
|
Описание
|
PlanID
|
Строка
|
36
|
Идентификатор
пункта плана продаж
|
Name
|
Строка
|
64
|
Название
пункта плана продаж
|
Code
|
Число
|
5.0
|
Код
плана продаж
|
GoodsCat
|
Число
|
5.0
|
Код
категории товаров
|
PlanSum
|
Число
|
15.4
|
Планируемая
сумма продаж для данной категории товаров
|
PlanAmt
|
Число
|
15.4
|
Планируемое
количество продаж для данной категории товаров (продажи поштучно)
|
PlanSumF
|
Число
|
15.4
|
Фактическая
сумма продаж для данной категории товаров
|
PlanAmtF
|
Число
|
15.4
|
Фактическое
количество продаж для данной категории товаров
|
Таблица Б.19 - Папки
Поле
|
Тип
|
Размер
|
Описание
|
FolderID
|
Строка
|
36
|
Идентификатор
папки
|
Parent
|
Строка
|
36
|
Папка-родитель
|
Name
|
Строка
|
50
|
Название
папки
|
Таблица Б.20 - Агенты
Поле
|
Тип
|
Размер
|
Описание
|
AgentID
|
Строка
|
36
|
Идентификатор
агента
|
Name
|
Строка
|
80
|
Имя
агента
|
Surname
|
Строка
|
80
|
Фамилия
агента
|
Patronymic
|
Строка
|
80
|
Отчество
агента
|
TimeLoadedData
|
Дата/Время
|
|
Последнее
время выгрузки данных из ЦБД
|
DeviceID
|
Строка
|
36
|
Идентификатор
дизайна
|
Таблица Б.21 - Штрих коды
Поле
|
Тип
|
Размер
|
Описание
|
GoodsID
|
Строка
|
36
|
Идентификатор
товара
|
Name
|
Строка
|
15
|
Штрих-код
|
UnitCode
|
Число
|
1.0
|
Код
единицы измерения
|
Таблица Б.22 - Цены
Поле
|
Тип
|
Размер
|
Описание
|
GoodsID
|
Строка
|
36
|
Идентификатор
товара
|
PriceType
|
Число
|
2
|
Тип
цены
|
Value
|
Число
|
12.2
|
Цена
|
Таблица Б.23 - Константы
Поле
|
Тип
|
Размер
|
Описание
|
ConstID
|
Строка
|
36
|
Идентификатор
константы
|
Name
|
Строка
|
50
|
Название
константы
|
Value
|
Строка
|
128
|
Значение
константы
|
Comment
|
Строка
|
255
|
Комментарий
|
Таблица Б.24 - Сертификаты
Поле
|
Тип
|
Размер
|
Описание
|
SertifID
|
Строка
|
36
|
Идентификатор
сертификата
|
Name
|
Строка
|
64
|
Номер
сертификата
|
OrgSertif
|
Строка
|
64
|
Название
органа сертификации, выдавшего сертификат
|
DateBgn
|
Дата
|
|
Дата
начала срока действия сертификата
|
DateEnd
|
Дата
|
|
Дата
окончания срока действия сертификата
|
Таблица Б.25 - Перечисления
Поле
|
Тип
|
Размер
|
Описание
|
EnumID
|
Строка
|
36
|
Идентификатор
перечисления
|
Name
|
Строка
|
64
|
Название
перечисления
|
Predefined
|
Число
|
1
|
Флаг
предопределенного перечисления
|
Таблица Б.26 - Значения перечислений
Поле
|
Тип
|
Размер
|
Описание
|
EnumID
|
Строка
|
36
|
Идентификатор
перечисления
|
Name
|
Число
|
10
|
Код
значения перечисления
|
Value
|
Строка
|
64
|
Значение
перечисления
|
Таблица Б.27 - Списки сертификатов
Поле
|
Тип
|
Размер
|
Описание
|
GoodsID
|
Строка
|
36
|
Идентификатор
перечисления
|
SertifID
|
Строка
|
36
|
Идентификатор
сертификата
|
ObjID
|
Строка
|
36
|
Идентификатор
элемента справочника
|
Name
|
Строка
|
64
|
Наименование
элемента справочника
Поле
|
Тип
|
Размер
|
Описание
|
ClientID
|
Строка
|
36
|
Идентификатор
клиента
|
GoodsID
|
Строка
|
36
|
Идентификатор
товара
|
Factor
|
Число
|
15.4
|
Коэффициент
уменьшения веса
|
Таблица Б.29 - Истории продаж товаров
Поле
|
Тип
|
Размер
|
Описание
|
TPointID
|
Строка
|
36
|
Идентификатор
торговой точки
|
GoodsID
|
Строка
|
36
|
Идентификатор
товара
|
Sales
|
Строка
|
128
|
История
продажи товара торговой точке
|
Таблица Б.30 - Персональные цены
Поле
|
Тип
|
Размер
|
Описание
|
ClientID
|
Строка
|
36
|
Идентификатор
клиента
|
GoodsID
|
Строка
|
36
|
Идентификатор
товара
|
Price
|
Число
|
15.2
|
Персональная
цена для товара
|
Discount
|
Число
|
15.4
|
Персональная
скидка для товара
|
Таблица Б.31 - Скидки
Параметр
|
Тип
|
Размер
|
Описание
|
Discount
|
Число
|
15.4
|
Значение
скидки
|
Barcode
|
Строка
|
15
|
Штрих-код
скидки
|
Приложение В
ERдиаграмма
базы данных
Рисунок В.1 - ERдиаграмма
Приложение Г
Диаграмма классов
Рисунок Г.1 - Диаграмма классов
Приложение Д
Объявления классов
classBaseEntity
{
public:
//-- Конструктор и Деструктор
BaseEntity();//
конструктор по умолчанию
BaseEntity(constQUuid&id);
//-- Методыдоступа()
const;// Идентификатор(constQUuid&id);//
установить
идентификатор();//
сгенерировать
идентификатор()
const;// возвращает поле
null
//-- Виртуальные методы
virtualvoidclear()
= 0;// сбросить значения (абстрактный)
protected:
//-- Поля
bool_null;//
флаг активности объекта
QUuid_id;//
идентификатор
};: public BaseEntity
{:
//-- Конструктор
и
Деструктор
AgentEntity();(constQUuid&id);
//-- Методы
доступа()
const;// идентификатор
устройства
QStringname()
const;// имяагента
QStringsurname()
const;// фамилияагента
QStringpatronymic()
const;// отчествоагента
QDateTimeloadedTime() const;// времявыгрузки(constQString&name);//
установитьимя(constQString&surname);//
установитьфамилию(constQUuid&id);//
установитьустройство(constQString&patronymic);//
установитьотчество(constQDateTime&datetime);//
установитьвремя
//-- Виртуальные
методыclear();:
//-- Поля_devID;//
идентификатор
устройства_name;//
имя
агента_surname;//
фамилия
агента_patronymic;//
отчество
агента_loadedTime;//
время
выгрузки
};: public BaseEntity
{:
//-- Конструктор
и
деструктор();(constQUuid&id);
//-- Методы
доступа(constQUuid&docID);
// установить документ
voidsetFilename(constQString&filename);
// установитьимяфайла
voidsetComment(constQString&comment);
// установитькомментарий
voidsetDateTime(constQDateTime&datetime);//
установитьвремя
QUuiddocID() const;// идентификатордокумента()
const;// имяфайла()
const;// комментарий()
const;// времясоздания
//-- Виртуальные
методыclear();:
//-- Поля_docID;//
идентификатордокумента_dateTime;//
времясозданияфайла_fileName;//
имяфайла_comment;//
комментарий
};: public BaseEntity
{:
//-- Конструктор
и
Деструктор();(constQUuid&id);
//-- Методыдоступа(constQString&
name);// установитьназвание(inttypeCode);//
установитьтипплана(intcat);//
установить категорию товаров
voidsetSum(doublesum);//
установить сумму по плану
voidsetSumFact(doublesum);//
установить сумму по факту
voidsetAmount(doubleamount);//
установить количество по плану
voidsetAmountFact(doubleamount);//
установить количество по факту
QStringname() const;// название()
const;// типплана()
const;// категориятоваровsum()
const;// суммапоплануsumFact()
const;// суммапофактуamount()
const;// количество по
плану
amountFact() const;//
количество по факту
//-- Виртуальные методы
void clear();:_name;// название_typeCode;//
типплана_goodsCatCode;//
категория
товаров_sum;//
сумма по плану
double_sumF;//
сумма по факту
double_amount;//
количество по плану
double_amountF;//
количество по факту
};: public BaseEntity
{:();
//-- Методы
доступа()
const;// Клиент() const;// Торговаяточки()
const;// Времяпосещения()
const;// Комментарий(constQString&text);//
установитькомментарий(constQUuid&id);//
установитьклиента(constQDateTime&dateTime);//
установитьвремя(constQUuid&id);//
установитьторговуюточку
//-- Виртуальные
методыclear();:
//-- Поля_clientID;//
кодклиента_tPointID;//
кодторговойточки_dateTime;//
времяпосещения_comment;//
комментарий
};<class ItemType>
{:
//-- Конструктор
и
деструктор(QSqlDatabase*
db);
//-- Abstract methodscount() const =
0;(ItemType*) const = 0;// получитьданныеизБД(constItemType&)
= 0;// вставитьданныевБД(constItemType&)
= 0;// удалитьданныеизБД(constItemType&)
= 0;// обновитьданныевБД<ItemType>selectList()
const = 0;// получитьтаблицу
//-- Методы()
const; // последняяошибка()
const; // последний запрос:
//-- Поля
QSqlDatabase*_db;//
указатель на класс БД
QSqlError_error;//
последняя ошибка
QString_query;//
последний запрос
};
classAbstractModel : public
QAbstractTableModel
{_OBJECT:
//-- Конструктор(QObject
*parent = 0);
//-- Методы();//
перечитать
данные
из
БД
//-- Abstract methods(BaseEntity
*item, int row) = 0; // Заполнить(BaseEntity
*item, int row) = 0; // Изменить(BaseEntity
*item) = 0; // Добавить(BaseEntity
*item) = 0; // Удалить
};: public BaseEntity
{:();(constQUuid&id); // установитьфирму(constQUuid&id);
// установитьклиента(constQUuid&id);
// установить
торговую
точку(constQUuid&id);
// установить
соглашение(constQUuid&id);
// установитьмаршрут(constQUuid&id);
// установить документ-основание
voidsetTimeBegin(constQDateTime&time);
//установитьвремяначала
voidsetTimeEnd(constQDateTime&time);
// установитьвремяконца
voidsetCreateTime(constQDateTime&time);
// установитьвремясоздания
voidsetNumber(constQString&number);
// установитьномердокумента
voidsetCreateMode(constQString&mode);
// установитьметодсоздания
voidsetComment(constQString&text);
// установитькомментарий
voidsetState(short
state); //
установитьсостояние
voidsetFlags(short
flags); //
установитьфлаги
voidsetGPSLatitude(double
coord); //
установитьширотуGPS
voidsetGPSLongtitude(double
coord); //
установитьдолготуGPS
short state() const; // состояниеflags()
const; // флаги() const; //
фирма()
const; // клиент() const; //
торговаяточка()
const; // документ-соглашение()
const; // маршрут() const; //
документ-основание()
const; // широта() const; //
долгота()
const; // номер() const; //
комментарий()
const; // режимсоздания()
const; // времяначала()
const; // времяконца()
const; // времясозданияclear();:_firmID;//
Кодфирмы_clientID;//
Кодклиента_tpointID;//
Кодторговойточки_agreementID;//
Кодсоглашения_routeID;//
Кодмаршрута_mdocID;//
Коддокумента-основания_timeBegin;//
Времяначала_timeEnd;//
Времяокончания_timeCrt;//
Времясоздания_number;//
Номердокумента_comment;//
Комментарий_modeCrt;//
Метод создания
short_state;//
Состояние документа
short_flags;//
Флагидокумента
double_gpsLatitude;// GPS широта_gpsLongtitude;//
GPS долгота
};: public QWidget
{_OBJECT:
//-- Constructor(QWidget *parent =
0);
~TableView();(AbstractModel *model);
// Установитьмодель(ItemViewBase*
view); // Установитьформу-отображение:();//
Инициализация визуальных компонент
protected
slots:
voidaddAction();//
Нажатие кнопки "Добавить"
voideditAction();//
нажатие кнопки "Изменить"
voiddeleteAction();//
Нажатие кнопки "Удалить"
voidrefreshAction();//
Нажатие кнопки "Обновить"
protected:
//-- Визуальныекомпоненты
QPushButton*_addButton;//
Кнопка "Добавить"
QPushButton*_delButton;//
Кнопка "Удалить"
QPushButton*_edtButton;//
Кнопка "Изменить"
QPushButton*_refButton;//
Кнопка "Обновить"
QVBoxLayout*_vLayout;//
Вертикальный выравниватель
QHBoxLayout*_hLayout;//
Горизонтальный выравниватель
QTableView*_tableView;//
Виджет - таблица
ItemViewBase*_itemView;//
Форма для сущности
AbstractModel*_model;//
Модель данных };
classItemViewBase : public QDialog
{ public:
//-- Конструктор(QWidget
*parent = 0);
//-- Access methods(BaseEntity
*item);// Установитьсущность*
item() const;// Получить
сущностьslots:();//
метод
успешного
завершения();//
метод
неудачного
завершения();//
переместить в центр родителя
public:
virtual
void entityToFields()
= 0;// установитьполяформы
virtual
void fieldsToEntity()
= 0;// заполнитьсущностьизполей
protected:
//-- Fields*_item;// сущность*_okButton;//
кнопка
"ОК"*_cancelButton;//
кнопка
"Отмена"*_buttonBox;//
группакнопок*_mainLayout;//
Вертикальный выравниватель
};
Приложение Ж
Модули программы
Таблица Ж.1
- Модули
программы
№
|
Модуль
|
Назначение
|
1
|
ExportFile.h
|
Заголовочныйфайлкласса
ExportFile
|
2
|
ExportFile.cpp
|
Файл
реализации класса ExportFile
|
3
|
ConfigFile.h
|
Заголовочный
файл класса ConfigFile
|
4
|
ConfigFile.cpp
|
Файл
реализации класса ConfigFile
|
5
|
ImportXmlHandler.h
|
Заголовочный
файл класса ImportXmlHandler
|
6
|
ImportXmlHandler.cpp
|
Файл
реализации класса ImportXmlHandler
|
7
|
SqlBase.h
|
Заголовочный
файлSqlBase
|
8
|
SqlBase.cpp
|
Файл
реализации класса SqlBase
|
9
|
SqlAgent.h
|
Заголовочный
файл классаSqlAgent
|
10
|
SqlAgent.cpp
|
Файл
реализации классаSqlAgent
|
11
|
SqlPhotos.h
|
Заголовочный
файл классаSqlPhotos
|
12
|
SqlPhotos.cpp
|
Файл
реализации классаSqlPhotos
|
13
|
SqlPlans.h
|
Заголовочный
файл классаSqlPlans
|
14
|
SqlPlans.cpp
|
Файл
реализации классаSqlPlans
|
15
|
SqlRoutes.h
|
Заголовочный
файл классаSqlRoutes
|
16
|
SqlRoutes.cpp
|
Файл
реализации классаSqlRoutes
|
17
|
SqlTasks.h
|
Заголовочный
файл классаSqlTasks
|
18
|
SqlTasks.cpp
|
Файл
реализации классаSqlTasks
|
19
|
main.cpp
|
Главный
файл программы, точка входа
|
20
|
AboutForm.h
|
Объявление
класса формы "О программе"
|
21
|
AboutForm.cpp
|
Реализация
класса формы "О программе"
|
22
|
AgentItemView.h
|
Объявление
класса формы "Агенты"
|
23
|
AgentItemView.cpp
|
Реализация
класса формы "Агенты"
|
24
|
ItemViewBase.h
|
Объявление
базового класса формы
|
25
|
ItemViewBase.cpp
|
Реализация
базового класса формы
|
26
|
ConnectDialog.h
|
Объявление
класса диалога "Подключение"
|
27
|
ConnectDialog.cpp
|
Реализация
класса диалога "Подключение"
|
28
|
ExportForm.h
|
Объявление
класса формы "Экспорт файла"
|
29
|
ExportForm.cpp
|
Реализация
класса формы "Экспорт файла"
|
30
|
ImportForm.h
|
Объявление
класса формы "Импорт файла"
|
31
|
ImportForm.cpp
|
Реализация
класса формы "Импорт файла"
|
32
|
MainWindow.h
|
Объявление
класса главного окна
|
33
|
MainWindow.cpp
|
Реализация
класса главного окна
|
34
|
PhotoItemView.h
|
Объявление
класса формы "Фотографии"
|
35
|
PhotoItemView.cpp
|
Реализация
класса формы "Фотографии"
|
36
|
PlanItemView.h
|
Объявление
класса формы "Планы продаж"
|
37
|
PlanItemView.cpp
|
Реализация
класса формы "Планы продаж"
|
38
|
RouteItemView.h
|
Объявление
класса формы "Маршруты"
|
39
|
RouteItemView.cpp
|
Реализация
класса формы "Маршруты"
|
40
|
TaskItemView.h
|
Объявление
класса формы "Задания"
|
41
|
TaskItemView.cpp
|
Реализация
класса формы "Задания"
|
42
|
AbstractModel.h
|
Объявление
класса "AbstractModel"
|
43
|
AbstractModel.cpp
|
Реализация
класса "AbstractModel"
|
44
|
AgentModel.h
|
Объявление
класса "AgentModel"
|
45
|
AgentModel.cpp
|
Реализация
класса "AgentModel"
|
46
|
PhotoModel.h
|
Объявление
класса "PhotoModel"
|
47
|
PhotoModel.cpp
|
Реализация
класса "PhotoModel"
|
48
|
PlanModel.h
|
Объявление
класса "PlanModel"
|
49
|
PlanModel.cpp
|
Реализация
класса "PlanModel"
|
50
|
RouteModel.h
|
Объявление
класса "RouteMode"
|
51
|
RouteModel.cpp
|
Реализация
класса "RouteMode"
|
TaskModel.h
|
Объявление
класса "TaskModel"
|
53
|
TaskModel.cpp
|
Реализация
класса "TaskModel"
|
54
|
TableView.h
|
Объявление
класса "TableView"
|
55
|
TableView.cpp
|
Реализация
класса "TableView"
|
Приложение И
Диаграмма компонентов
Рисунок И.1 - Диаграмма компонентов
Похожие работы на - Программное средство для обеспечения контроля над деятельностью торговых агентов ООО 'Журавли плюс'
|