UML в эконометрическом проектировании

Технология проектирования объектно-ориентированного программирования. Этапы разработки программных систем с использованием ООП. Унифицированный язык моделирования UML. Проектирование приложения "Магазин бытовой техники". Создание графического интерфейса.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 04.02.2011
Размер файла 5,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

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

Рис. 2.4 - Формы приложения

Рис. 2.5 - Граф диалога форм приложения

В программе присутствуют следующие вкладки:

· Товары магазина - в данной вкладке осуществляется просмотр товара, редактирование цены, продажа товара;

· Сведения о магазине - в данной вкладке отображается информация о магазине, можно отредактировать эту информацию, а также управлять отделами магазина;

· Отделы магазина - здесь добавляются новые отделы, и производится управление группами отдела;

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

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

· Добавление нового товара - в данной вкладке осуществляется добавление нового товара в товарные базы;

· Заказ товара - осуществляется заказ товара в магазин из различных закупочных баз;

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

· Журнал продаж - отображается информация обо всех продажах магазина;

· Журнал закупок - отображается информация обо всех закупках магазина;

· Администраторы магазина - производится управление администраторами магазина.

2.2 Руководство пользователя

2.2.1 Установка и запуск

В данном разделе описаны основные инструкции по установке программы «Магазин бытовой техники»: системные требования и установка на одно рабочее место.

Для установки «Магазин бытовой техники» используется специальная программа установки, входящая в состав дистрибутива. Всегда выполняйте установку с установочного компакт-диска.

Требования к системе

Для установки и работы программы «Магазин бытовой техники» необходимо:

ПК с процессором семейств Intel® Pentium®/Celeron®/Xeon™, AMD K6/Athlon™/Duron™/Sempron™ или совместимым с ними процессором, тактовая частота которого составляет не менее 500 МГц, или более мощным.

Операционная система Microsoft Windows 2003, Windows XP, Windows 2000.

Оперативная память - 128 МБ.

Свободное место на диске: 100 МБ для обычной установки.

Видеоплата и монитор с разрешением не менее 800x600 точек.

Клавиатура, мышь или другое указательное устройство.

Необходимо ПО: Microsoft Word, Microsoft Excel.

Установка программы «Магазин бытовой техники»

Программа установки поможет вам установить «Магазин бытовой техники». Перед началом установки рекомендуется закрыть все другие приложения.

Чтобы установить «Магазин бытовой техники»:

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

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

В случае если программа установки не запустилась автоматически:

Нажмите кнопку Пуск на Панели задач и выберите пункт Настройка/Панель управления.

Дважды нажмите на значок Установка и удаление программ.

Выберите закладку Установка и удаление и нажмите кнопку Установить...

Далее следуйте инструкциям программы установки.

Запуск программы «Магазин бытовой техники»

Чтобы запустить программу «Магазин бытовой техники»:

Выберите пункт Запуск программы в меню Пуск/Программы/Магазин бытовой техники, или

Дважды щелкнуть по ярлычку , расположенному на рабочем столе

2.2.2 Начало работы с приложением «Магазин бытовой техники»

После запуска программы появится окно заставки приложения (рис. 2.6).

Рис. 2.6 - Окно заставки

После того, как полоса прогресса дойдет до конца, появится окно регистрации, в котором необходимо ввести пароль директора для доступа к программе (рис. 2.7).

Рис. 2.7 - Окно регистрации

Если введенный пароль верен, то запустится основное окно программы (рис. 2.8).

Рис. 2.8 - Основное окно программы

2.2.3 Работа с программой

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

Главное меню программы содержит следующие пункты:

· Файл

o Смена пароля - смена пароля директора;

o Выход - выход из программы;

· Магазин

o Основные сведения - просмотр и редактирование сведений о магазине (название, класс и т.д.); просмотр, и редактирование отделов;

o Статистика по магазину - просмотр статистических данных по магазину (количество товара, стоимость товара, количество отделов и групп товара и т.д.);

o Добавить отдел/группу - добавление отдела; добавление, удаление и редактирование групп товара;

o Добавить закупочную базу - добавление, удаление и редактирование закупочных баз;

o Просмотр и редактирование списка администраторов;

· Товар

o Операции с товаром - осуществление продажи товара; экспорт остатков товара в магазине в Excel; редактирование цены товара;

o Быстрые остатки - просмотр списка всех товара магазина;

o Внесение нового товара в базу - добавление нового товара;

o Заказать товар в магазин - заказ товара в магазин;

· Отчет

o Журнал продаж - просмотр списка проданного товара;

o Журнал закупок - просмотр списка заказанного товара;

o Остатки товара

§ В магазине - экспорт в Excel остатков товара в магазине;

§ На закупочных базах - экспорт в Excel остатков товара на базах;

· Помощь

o Справка - запуск руководства пользователя;

o О программе - вывод информации о программе и разработчике.

Панель инструментов дублирует почти все пункты главного меню программы (рис. 2.9).

- общие сведения о магазине;

- статистика по магазину;

- добавить отдел/группу;

- добавить закупочную базу;

- операции с товаром;

- быстрые остатки;

- внесение нового товара в базу;

- заказать товар в магазин;

- журнал продаж;

- журнал закупок;

- экспорт в Excel остатков товара в магазине;

- экспорт в Excel остатков товара на базах;

- запуск руководства пользователя.

Рис. 2.9 - Панель инструментов

Сведения о магазине.

Для просмотра сведений о магазине необходимо в главном меню программы выбрать пункт Магазин -> Основные сведения или нажать на кнопку панели инструментов. После этого в средней части окна программы появится вкладка "Сведения о магазине" (рис 2.10).

Рис. 2.10 - Сведения о магазине

В данной вкладке можно:

· Просматривать и редактировать сведения о магазине;

· Создавать, редактировать и удалять отделы магазина;

Чтобы изменить сведения о магазине, необходимо:

· нажать на кнопку ;

· внести необходимые изменения;

· нажать на кнопку ;

· чтобы отменить редактирование, необходимо нажать на кнопку .

Управление отделами магазина.

Чтобы создать новый отдел необходимо:

· нажать на кнопку ;

· появится вкладка "Отделы магазина" (рис. 2.11) .

Рис. 2.11 - Отделы магазина

· в появившейся вкладке необходимо внести сведения об отделе;

· нажать на кнопку ;

· чтобы отменить создание отдела, необходимо нажать на кнопку .

Чтобы удалить существующий отдел необходимо:

· выбрать необходимый отдел из списка (рис. 2.10);

· нажать на кнопку ;

· подтвердить удаление.

Чтобы изменить название отдела необходимо:

· выбрать необходимый отдел из списка;

· нажать два раза мышью или нажать на кнопку ;

· внести необходимые изменения в поле "Название отдела";

· нажать на кнопку .

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

Управление товарными группами.

Для добавления товарной группы в отдел необходимо, чтобы отдел был уже создан. Чтобы добавить товарную группу необходимо:

· в главном меню выбрать пункт Магазин -> Добавить отдел/группу или нажать на кнопку ;

· в появившейся вкладке "Отделы магазина" (рис. 2.11) в списке отделов выбрать необходимый отдел (рис. 2.12);

Рис. 2.12 - Выбор отдела

· в поле "Название группы товара" (рис. 2.13) ввести название группы

Рис. 2.13 - Выбор отдела

· выбрать из выпадающего списка закупочную базу, на которой хранятся товары новой группы;

· нажать на кнопку .

Чтобы удалить товарную группу необходимо:

· в главном меню выбрать пункт Магазин -> Добавить отдел/группу или нажать на кнопку ;

· в появившейся вкладке "Отделы магазина" (рис. 2.11) в списке отделов выбрать необходимый отдел (рис. 2.12);

· в списке товарных групп отдела выбрать необходимую группу (рис. 2.14);

Рис. 2.14 - Выбор товарной группы

· нажать на кнопку ;

· подтвердить удаление товарной группы.

Чтобы отредактировать товарную группу необходимо:

· в главном меню выбрать пункт Магазин -> Добавить отдел/группу или нажать на кнопку ;

· в появившейся вкладке "Отделы магазина" (рис. 2.11) в списке отделов выбрать необходимый отдел (2.12);

· в списке групп отдела выбрать необходимую группу (2.14);

· нажать на кнопку ;

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

· нажать на кнопку .

Просмотр статистики по магазину.

Чтобы просмотреть статистику по магазину необходимо в главном меню выбрать пункт Магазин ->Статистика по магазину или нажать на кнопку . После этого появится вкладка "Статистические данные" (рис. 2.15).

Рис. 2.15 - Статистические данные

Общая статистика по магазину отображается в виде, как показано на рисунке 2.16.

Рис. 2.16 - Статистика по магазину в целом

Чтобы просмотреть статистику по отделу, необходимо из выпадающего списка "Отдел" выбрать необходимый отдел. Чтобы просмотреть статистику по конкретной группе товара, необходимо из выпадающего списка "Отдел" выбрать необходимый отдел и в списке групп отдела выбрать необходимую группу.

Чтобы просмотреть экономические показатели магазина за определенный период времени необходимо в рамке "Экономические показатели" выбрать дату начала и конца периода (рис. 2.17) и нажать на кнопку .

Рис. 2.17 - Экономические показатели магазина

Управление товарами.

Чтобы просмотреть весь список товара, имеющийся в магазине, необходимо в главном меню выбрать пункт Товар -> Быстрые остатки или нажать на кнопку панели инструментов. После этого появится вкладка "Быстрые остатки" (рис. 2.18).

Рис. 2.18 - Быстрые остатки товара

В данной вкладке расположен список всех товаров, не разбитых по отделам и группам. Внизу вкладки также отображается общее количество товара, общая сумма товара по закупочной цене, общая сумма товара по цене реализации. По умолчанию в списке товаров не отображаются те товары, которые имеют нулевой остаток (т.е. количество товара равно нулю). Чтобы посмотреть все товары, включая с нулевыми остатками, необходимо поставить галочку в переключателе "С нулевыми остатками". Чтобы найти нужный товар необходимо ввести наименование товара или его часть в поле ввода «Наименование товара» и нажать на кнопку . Если вы ввели часть наименования товара, чтобы перейти к следующему подходящему по условию товару, необходимо повторно нажать на кнопку поиска и т.д.

Чтобы просмотреть товар и выполнить с ним необходимые действия необходимо, в главном меню выбрать пункт Товар -> Операции с товаром или нажать на кнопку панели инструментов. После этого появится вкладка "Товары магазина" (рис. 2.19).

Рис. 2.19 - Товары магазина

В данной вкладке в списке товаров отображаются товары конкретной товарной группы. Чтобы выбрать товары нужной группы, необходимо в левой части вкладки в выпадающем списке отделов выбрать отдел, в который входит нужная группа. Затем в списке групп выбрать необходимую группу товаров. В списке товаров отобразятся товары, входящие в выбранную группу.

Чтобы изменить цену реализации товара, необходимо:

· в списке товаров выбрать необходимый товар;

· нажать на кнопку ;

· подтвердить редактирование цены;

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

· нажать на кнопку ОК.

Чтобы отправить остатки товара магазина, необходимо нажать на кнопку в стандартном диалоговом окне сохранения файла ввести имя файла и нажать кнопку «Сохранить».

Чтобы осуществить продажу товара, необходимо:

· выбрать в главном меню пункт Товар -> Операции с товаром или нажать на кнопку панели инструментов;

· появится вкладка "Товары магазина" (2.19);

· в списке товаров выбрать необходимый товар;

· дважды щелкнуть мышью по нему или нажать на кнопку ;

· подтвердить продажу товара;

· в появившемся диалоговом окне указать количество единиц продаваемого товара и нажать на кнопку ОК;

· в списке товаров данный товар пометится другим цветом, это означает, что товар помечен на продажу (рис. 2.20);

Рис. 2.20 - Пометка товара на продажу

объектный ориентированный программирование интерфейс

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

· когда весь необходимый товар помечен на продажу, необходимо нажать на кнопку ;

· подтвердить продажу товара;

· после этого появится запрос о создании накладной продажи;

· если отказаться от создания накладной, продажа товара завершена;

· если согласится, появится стандартное диалоговое окно сохранения файла, в котором необходимо ввести название файла и нажать на кнопку Сохранить;

· после этого продажа товара завершится и откроется накладная продажи в формате Microsoft Word.

Чтобы внести новый товар в закупочные базы, необходимо выбрать в главном меню пункт Товар -> Внесение нового товара в базу или нажать на кнопку панели инструментов. После этого появится вкладка "Добавление нового товара" (Рис. 2.21).

Рис. 2.21 - Добавление нового товара

В данной вкладке в верхней части расположен список существующих товаров базы.

Чтобы добавить новый товар в закупочную базу, необходимо:

· в списке закупочных баз выбрать необходимую базу;

· в списке групп данной базы выбрать необходимую товарную группу;

· в рамке "Характеристики нового товара" заполнить все поля ввода (рис. 2.22);

Рис. 2.22 - Характеристики нового товара

· нажать на кнопку ;

· подтвердить добавление товара.

Чтобы отредактировать имеющийся на складе товар (наименование, количество, закупочную цену), необходимо:

· выбрать его в списке товаров;

· два раза щелкнуть по нему мышью или нажать кнопку ;

· в появившемся диалоговом окне внести необходимые изменения;

· нажать на кнопку .

Чтобы удалить товар из базы, необходимо:

· выбрать его в списке товаров;

· нажать кнопку ;

· подтвердить удаление товара .

Чтобы заказать товар в магазин, необходимо:

· выбрать в главном меню пункт Товар -> Заказать товар в магазин или нажать на кнопку панели инструментов;

· появится вкладка "Заказ товара" (рис. 2.23);

Рис. 2.23 - Заказ товара

· в списке товаров выбрать необходимый товар;

· дважды щелкнуть по нему мышью или нажать на кнопку ;

· в появившемся диалоговом окне ввести необходимое количество товара

· нажать на кнопку ;

· подтвердить заказ товара;

· при этом товар пометится другим цветом, это означает, что товар помечен на заказ (рис. 2.24);

Рис. 2.24 - Пометка на заказ

· таким же образом пометить весь необходимый товар;

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

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

· если данного товара в магазине нет, то появится диалоговое окон задания цены реализации, в котором необходимо ввести цену реализации товара (она должна быть выше закупочной) и нажать на кнопку ОК;

· после этого появится информационное окно, сообщающее о завершении процесса заказа товара;

· затем появится запрос о создании накладной заказа;

· если отказаться от создания накладной, заказ завершен;

· если согласится, появится стандартное диалоговое окно сохранения файла, в котором необходимо ввести название файла и нажать на кнопку Сохранить;

· после этого заказ товара завершится и откроется накладная заказа в формате Microsoft Word.

Экспорт остатков товара.

Чтобы экспортировать остатки товара в магазине, необходимо:

· в главном меню выбрать пункт Отчет -> Остатки товара -> в магазине или нажать на кнопку панели инструментов;

· появится стандартное диалоговое окно сохранения файла, в котором необходимо ввести название файла и нажать на кнопку Сохранить;

· после этого экспорт товара завершится, и откроются остатки товара в формате Microsoft Excel.

Чтобы экспортировать остатки товара на базах, необходимо:

· в главном меню выбрать пункт Отчет -> Остатки товара -> на закупочных базах или нажать на кнопку панели инструментов;

· появится стандартное диалоговое окно сохранения файла, в котором необходимо ввести название файла и нажать на кнопку Сохранить;

· после этого экспорт товара завершится, и откроются остатки товара в формате Microsoft Excel.

Просмотр и редактирование списка администраторов.

Что просмотреть или изменить администраторов отделов магазина, необходимо в главном меню выбрать пункт Магазин -> Администраторы магазина. После этого появится вкладка «Администраторы магазина» (рис. 2.25).

Рис. 2.25 - Администраторы магазина

В данной вкладке можно лишь просмотреть список всех администраторов магазина с указанием их отдела и отредактировать данные об администраторах. Удалить администратора нельзя, т.к. отдел не может существовать без администратора. Администратор удаляется вместе с удалением своего отдела.delotd

Чтобы отредактировать данные об администраторе, необходимо:

· выбрать необходимого администратора в списке;

· два раза щелкнуть по нему мышью или нажать на кнопку ;

· внести необходимые изменения в поля;

· нажать на кнопку .

Управление закупочными базами.

Чтобы осуществить управление закупочными базами, необходимо в главном меню выбрать пункт Магазин -> Закупочные базы. После этого появится вкладка «Закупочные базы» (рис. 2.26).

Рис. 2.26 - Закупочные базы

Чтобы создать новую закупочную базу, необходимо:

· нажать на кнопку ;

· в появившемся диалоговом окне заполнить все поля ввода в рамке «Новая база»;

· нажать на кнопку ;

· чтобы очистить поля ввода, необходимо нажать на кнопку ;

· чтобы отменить добавление базы, необходимо нажать на кнопку .

Чтобы удалить существующую закупочную базу, необходимо:

· выбрать необходимую закупочную базу из списка существующих баз;

· нажать на кнопку ;

· подтвердить удаление закупочной базы.

Чтобы отредактировать данные по базе, необходимо:

· выбрать необходимую базу в списке;

· два раза щелкнуть по ней мышью или нажать на кнопку ;

· внести необходимые изменения в поля;

· нажать на кнопку .

Заключение

Подводя итог данной работы, следует отметить, что за технологией MDA стоит будущее программирования. Она позволяет во много раз сократить время разработки программного обеспечения.

Можно выделить следующие основные преимущества для разработчиков, которые дает технология MDA:

· Единый подход ко всем этапам разработки - от проектирования модели до разработки приложения, заключающийся в том, что разработчик на всех этапах работает с одними и теми же сущностями - объектами модели. Здесь отсутствует разрыв между красивой схемой-моделью и программированием приложения СУБД, так как разработчик «не опускается» на уровень базы данных, он даже может не знать, какова структура БД и какие таблицы в ней присутствуют.

· Полностью устраняется этап «ручного» создания базы данных. Все таблицы, поля, индексы, ключи генерируются автоматически в соответствии с моделью. Для использования конкретной СУБД достаточно подключить и настроить один из адаптеров баз данных, входящих в состав BMDA. Есть возможность создания собственных адаптеров баз данных.

· Модификация базы данных превращается в тривиальный процесс - после внесения необходимых изменений в модель достаточно просто сгенерировать новую базу данных. Становится не принципиально, какую именно СУБД использовать: при смене СУБД само приложение и его код не меняются.

· Использование языка OCL позволяет полностью абстрагироваться от SQL-диалекта конкретной СУБД.

В результате курсовой работы мной было разработано приложение «Магазин бытовой техники» с использованием технологии Borland MDA. Все поставленные цели и задачи были выполнены.

Список литературы

1. Грибачев К.Г. Delphi и Model Driven Architecture. Разработка приложений баз данных. - СПб.: Питер, 2004. - 348 с.

2. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. Пер. с англ. М.: Бином, СПб.: Невский диалект, 1998. - 560 с.

3. Лесневский А.С. Объектно-ориентированное программирование для начинающих. - М.: Бином. Лаборатория знаний, 2005. - 232 с.

4. Иванова Г.С., Ничушкина Т.Н., Пугачев Е.К., Объектно-ориентированное программирование: Учеб. для вузов. - М.: Изд-во МГТУ им. Баумана, 2001. - 320 с.

5. Боггс У., Боггс М. UML и Rational Rose. М.: «Лори», 2000 г. - 582 с.

6. Трофимов С.А. CASE-технологии: Практическая работа в Rational Rose. - 2-е изд.-М.: Бином-Пресс, 2002.-288 с.

7. Вендров А.М. CASE - технологии. Современные методы и средства проектирования информационных систем, М., Фин. и статистика, 2000. - 368 с.

8. Кватрани Т. Rational Rose 2000. Визуальное моделирование. - M.: ДК, 2001. - 457 с.

9. Фаулер М., Скотт К. UML. Основы. - Пер. с англ. - Спб.: Символ-Плюс, 2002. - 192 с.

10. Леоненков А. Самоучитель UML. - СПб: Питер, 2001. - 158 с.

11. Буч Г., Рамбо Д., Джекобсон А., Язык UML. Руководство пользователя: Пер. с англ. - М.:ДМК, 2000. - 432 с.

12. Орлов С. Технологии разработки программного обеспечения: Учебник. - СПб.: Питер, 2002. - 464 с.

13. Бобровский С. Delphi 7. Учебный курс. - СПб.: Питер, 2003. - 736 с.

14. Глушаков С.В., Клевцов А.Л., Программирование в среде Delphi. Учебный курс. - 2-е изд., доп. и перераб. - Харьков.: Филио, 2003. 528 с.

15. Фаронов В.В. Программирование баз данных в Delphi 7. Учебный курс. - СПб.: Питер, 2006. - 459 с.

16. Корняков В.Н. Программирование документов и приложений MS Office в Delphi. - СПб.: БХВ-Петербург, 2005. - 496 с.

17. Ревич Ю.В. Нестандартные приемы программирования на Delphi. - СПб.: БХВ-Петербург, 2005. - 560 с.

18. Ков О. UML. Мета-язык проектирования и моделирования программного обеспечения/ О. Ков - www.metod.square.spb.ru, 2001.

Приложение

Основной модуль приложения

unit Main;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, BoldHandle, BoldPersistenceHandle, BoldPersistenceHandleFile,

BoldPersistenceHandleFileXML, BoldAbstractModel, BoldModel, BoldHandles,

BoldRootedHandles, BoldAbstractListHandle, BoldCursorHandle,

BoldListHandle, BoldSubscription, BoldSystemHandle, BoldUMLModelLink,

BoldUMLRose98Link, data, ComCtrls, ToolWin, XPMan, Menus, StdCtrls,

ImgList, BoldEdit, Buttons, ExtCtrls, jpeg, Grids, BoldGrid, Mask,

BoldComboBox, BoldQueue, BoldListBox, BoldMemo, BusinessClasses,

BoldNavigatorDefs, BoldNavigator, NewBase, BoldTreeView, BoldSortingGrid,

Spin, BoldStringControlPack, BoldElements, BoldControlPack,

BoldNumericControlPack, comobj, BoldLabel, ShellAPI;

type

TMainform = class(TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

XPManifest1: TXPManifest;

StatusBar1: TStatusBar;

ToolBar1: TToolBar;

ToolButton1: TToolButton;

ToolButton2: TToolButton;

ToolButton3: TToolButton;

N2: TMenuItem;

PageControl1: TPageControl;

TabSheet1: TTabSheet;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

ToolButton4: TToolButton;

ToolButton5: TToolButton;

ToolButton6: TToolButton;

ToolButton7: TToolButton;

ToolButton8: TToolButton;

ToolButton9: TToolButton;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

ImageList1: TImageList;

N8: TMenuItem;

N9: TMenuItem;

TabSheet2: TTabSheet;

GroupBox1: TGroupBox;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Bevel1: TBevel;

SpeedButton1: TSpeedButton;

SpeedButton2: TSpeedButton;

GroupBox3: TGroupBox;

BoldEdit4: TBoldEdit;

Label15: TLabel;

BoldListBox2: TBoldListBox;

Label16: TLabel;

BoldGrid2: TBoldGrid;

SpeedButton3: TSpeedButton;

SpeedButton4: TSpeedButton;

SpeedButton5: TSpeedButton;

SpeedButton6: TSpeedButton;

SpeedButton7: TSpeedButton;

SpeedButton8: TSpeedButton;

SpeedButton9: TSpeedButton;

SpeedButton10: TSpeedButton;

TabSheet3: TTabSheet;

GroupBox5: TGroupBox;

BoldListBox1: TBoldListBox;

GroupBox7: TGroupBox;

BoldListBox3: TBoldListBox;

SpeedButton16: TSpeedButton;

SpeedButton17: TSpeedButton;

GroupBox8: TGroupBox;

Label26: TLabel;

BoldEdit6: TBoldEdit;

Label27: TLabel;

BoldEdit7: TBoldEdit;

BoldListBox4: TBoldListBox;

SpeedButton20: TSpeedButton;

GroupBox6: TGroupBox;

Label18: TLabel;

Edit4: TEdit;

GroupBox10: TGroupBox;

Label20: TLabel;

Label21: TLabel;

Label23: TLabel;

Label22: TLabel;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

MaskEdit1: TMaskEdit;

SpeedButton14: TSpeedButton;

SpeedButton15: TSpeedButton;

GroupBox9: TGroupBox;

Label25: TLabel;

SpeedButton18: TSpeedButton;

SpeedButton19: TSpeedButton;

Edit8: TEdit;

Label19: TLabel;

BoldEdit8: TBoldEdit;

SpeedButton21: TSpeedButton;

SpeedButton22: TSpeedButton;

SpeedButton23: TSpeedButton;

N11: TMenuItem;

GroupBox11: TGroupBox;

BoldListBox5: TBoldListBox;

BoldComboBox2: TBoldComboBox;

BoldSortingGrid1: TBoldSortingGrid;

Label28: TLabel;

Label29: TLabel;

Label30: TLabel;

BoldComboBox3: TBoldComboBox;

N12: TMenuItem;

N13: TMenuItem;

TabSheet4: TTabSheet;

BoldSortingGrid2: TBoldSortingGrid;

TabSheet5: TTabSheet;

GroupBox4: TGroupBox;

Label17: TLabel;

SpeedButton24: TSpeedButton;

SpeedButton25: TSpeedButton;

SpeedButton26: TSpeedButton;

SpeedButton27: TSpeedButton;

SpeedButton28: TSpeedButton;

Label24: TLabel;

BoldGrid3: TBoldGrid;

BoldMemo1: TBoldMemo;

BoldEdit9: TBoldEdit;

N14: TMenuItem;

TabSheet6: TTabSheet;

GroupBox12: TGroupBox;

BoldComboBox4: TBoldComboBox;

GroupBox13: TGroupBox;

Label31: TLabel;

Label32: TLabel;

Edit9: TEdit;

Edit10: TEdit;

Label33: TLabel;

SpinEdit1: TSpinEdit;

Label34: TLabel;

SpinEdit2: TSpinEdit;

GroupBox14: TGroupBox;

BoldSortingGrid3: TBoldSortingGrid;

SpeedButton29: TSpeedButton;

SpeedButton30: TSpeedButton;

SpeedButton31: TSpeedButton;

GroupBox15: TGroupBox;

BoldListBox6: TBoldListBox;

SpeedButton32: TSpeedButton;

TabSheet7: TTabSheet;

SpeedButton33: TSpeedButton;

GroupBox16: TGroupBox;

BoldSortingGrid4: TBoldSortingGrid;

GroupBox17: TGroupBox;

BoldComboBox5: TBoldComboBox;

GroupBox18: TGroupBox;

BoldListBox7: TBoldListBox;

BoldAsStringRenderer1: TBoldAsStringRenderer;

SpeedButton34: TSpeedButton;

SpeedButton35: TSpeedButton;

SpeedButton36: TSpeedButton;

ProgressBar1: TProgressBar;

GroupBox19: TGroupBox;

Edit11: TEdit;

Label35: TLabel;

SpeedButton37: TSpeedButton;

SpeedButton38: TSpeedButton;

SaveExcel: TSaveDialog;

N15: TMenuItem;

GroupBox20: TGroupBox;

Label36: TLabel;

SpeedButton39: TSpeedButton;

Edit12: TEdit;

GroupBox21: TGroupBox;

Label37: TLabel;

SpeedButton40: TSpeedButton;

Edit13: TEdit;

SpeedButton41: TSpeedButton;

SpeedButton42: TSpeedButton;

Prodazha: TPopupMenu;

N16: TMenuItem;

N17: TMenuItem;

SpeedButton43: TSpeedButton;

RenderProdazha: TBoldAsStringRenderer;

SpeedButton44: TSpeedButton;

SpeedButton45: TSpeedButton;

ProgressBar2: TProgressBar;

TabSheet8: TTabSheet;

N18: TMenuItem;

GroupBox22: TGroupBox;

BoldComboBox6: TBoldComboBox;

BoldListBox8: TBoldListBox;

Label38: TLabel;

Label39: TLabel;

GroupBox23: TGroupBox;

GroupBox24: TGroupBox;

GroupBox25: TGroupBox;

Label40: TLabel;

Label41: TLabel;

BoldLabel1: TBoldLabel;

BoldLabel2: TBoldLabel;

Label42: TLabel;

Label43: TLabel;

BoldLabel3: TBoldLabel;

BoldLabel4: TBoldLabel;

Label44: TLabel;

Label45: TLabel;

BoldLabel5: TBoldLabel;

BoldLabel6: TBoldLabel;

BoldLabel7: TBoldLabel;

Label46: TLabel;

Label47: TLabel;

BoldLabel8: TBoldLabel;

Label48: TLabel;

BoldLabel9: TBoldLabel;

GroupBox26: TGroupBox;

Label49: TLabel;

Label50: TLabel;

DateTimePicker1: TDateTimePicker;

Label51: TLabel;

DateTimePicker2: TDateTimePicker;

Label52: TLabel;

Label53: TLabel;

Label54: TLabel;

Label55: TLabel;

Label56: TLabel;

Label57: TLabel;

SpeedButton46: TSpeedButton;

SpeedButton47: TSpeedButton;

TabSheet9: TTabSheet;

GroupBox27: TGroupBox;

Label58: TLabel;

SpeedButton48: TSpeedButton;

Edit14: TEdit;

Label59: TLabel;

Label60: TLabel;

DateTimePicker3: TDateTimePicker;

DateTimePicker4: TDateTimePicker;

SpeedButton49: TSpeedButton;

TabSheet10: TTabSheet;

GroupBox28: TGroupBox;

Label61: TLabel;

SpeedButton50: TSpeedButton;

Label62: TLabel;

Label63: TLabel;

SpeedButton51: TSpeedButton;

Edit15: TEdit;

DateTimePicker5: TDateTimePicker;

DateTimePicker6: TDateTimePicker;

GroupBox29: TGroupBox;

BoldGrid4: TBoldGrid;

Label64: TLabel;

Bevel2: TBevel;

BoldLabel10: TBoldLabel;

BoldLabel11: TBoldLabel;

BoldLabel12: TBoldLabel;

BoldLabel13: TBoldLabel;

GroupBox30: TGroupBox;

BoldGrid5: TBoldGrid;

Label65: TLabel;

BoldLabel14: TBoldLabel;

BoldLabel15: TBoldLabel;

Bevel3: TBevel;

SpeedButton52: TSpeedButton;

SpeedButton53: TSpeedButton;

SpeedButton54: TSpeedButton;

SpeedButton55: TSpeedButton;

Bevel4: TBevel;

Label66: TLabel;

BoldLabel16: TBoldLabel;

BoldLabel17: TBoldLabel;

BoldLabel18: TBoldLabel;

BoldLabel19: TBoldLabel;

CheckBox1: TCheckBox;

CheckBox2: TCheckBox;

CheckBox3: TCheckBox;

N19: TMenuItem;

N20: TMenuItem;

N21: TMenuItem;

ToolButton10: TToolButton;

ToolButton11: TToolButton;

ToolButton12: TToolButton;

ToolButton13: TToolButton;

ToolButton14: TToolButton;

N22: TMenuItem;

N23: TMenuItem;

N24: TMenuItem;

ToolButton15: TToolButton;

ToolButton16: TToolButton;

BoldLabel20: TBoldLabel;

BoldLabel21: TBoldLabel;

BoldLabel22: TBoldLabel;

BoldEdit10: TBoldEdit;

BoldEdit11: TBoldEdit;

BoldEdit12: TBoldEdit;

Label4: TLabel;

BoldEdit13: TBoldEdit;

Label5: TLabel;

BoldEdit14: TBoldEdit;

Label6: TLabel;

BoldEdit15: TBoldEdit;

Label67: TLabel;

BoldMemo2: TBoldMemo;

SaveWord: TSaveDialog;

Vremya: TTimer;

N10: TMenuItem;

Timer1: TTimer;

CheckBox4: TCheckBox;

TabSheet11: TTabSheet;

GroupBox2: TGroupBox;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

SpeedButton11: TSpeedButton;

SpeedButton12: TSpeedButton;

SpeedButton13: TSpeedButton;

BoldGrid1: TBoldGrid;

BoldComboBox1: TBoldComboBox;

BoldEdit1: TBoldEdit;

BoldEdit2: TBoldEdit;

BoldEdit3: TBoldEdit;

BoldEdit5: TBoldEdit;

N25: TMenuItem;

SpeedButton56: TSpeedButton;

Image1: TImage;

procedure N2Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure FormCanResize(Sender: TObject; var NewWidth,

NewHeight: Integer; var Resize: Boolean);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure N9Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure SpeedButton2Click(Sender: TObject);

procedure BoldGrid1DblClick(Sender: TObject);

procedure BoldGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;

var CanSelect: Boolean);

procedure SpeedButton8Click(Sender: TObject);

procedure SpeedButton9Click(Sender: TObject);

procedure SpeedButton10Click(Sender: TObject);

procedure SpeedButton12Click(Sender: TObject);

procedure SpeedButton13Click(Sender: TObject);

procedure SpeedButton5Click(Sender: TObject);

procedure SpeedButton6Click(Sender: TObject);

procedure SpeedButton7Click(Sender: TObject);

procedure BoldGrid2SelectCell(Sender: TObject; ACol, ARow: Integer;

var CanSelect: Boolean);

procedure SpeedButton4Click(Sender: TObject);

procedure SpeedButton3Click(Sender: TObject);

procedure Edit4KeyPress(Sender: TObject; var Key: Char);

procedure SpeedButton15Click(Sender: TObject);

procedure SpeedButton14Click(Sender: TObject);

procedure Edit5KeyPress(Sender: TObject; var Key: Char);

procedure MaskEdit1KeyPress(Sender: TObject; var Key: Char);

procedure SpeedButton17Click(Sender: TObject);

procedure Edit8KeyPress(Sender: TObject; var Key: Char);

procedure SpeedButton20Click(Sender: TObject);

procedure SpeedButton19Click(Sender: TObject);

procedure SpeedButton18Click(Sender: TObject);

procedure TabSheet3Hide(Sender: TObject);

procedure SpeedButton21Click(Sender: TObject);

procedure SpeedButton22Click(Sender: TObject);

procedure SpeedButton23Click(Sender: TObject);

procedure SpeedButton26Click(Sender: TObject);

procedure SpeedButton28Click(Sender: TObject);

procedure SpeedButton27Click(Sender: TObject);

procedure SpeedButton24Click(Sender: TObject);

rocedure SpeedButton25Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure SpeedButton29Click(Sender: TObject);

procedure Edit10KeyPress(Sender: TObject; var Key: Char);

procedure SpeedButton30Click(Sender: TObject);

procedure Edit9KeyPress(Sender: TObject; var Key: Char);

procedure SpeedButton31Click(Sender: TObject);

procedure SpeedButton32Click(Sender: TObject);

procedure N14Click(Sender: TObject);

procedure BoldAsStringRenderer1SetColor(Element: TBoldElement;

var AColor: TColor; Representation: Integer; Expression: String);

procedure BoldSortingGrid4DblClick(Sender: TObject);

procedure SpeedButton34Click(Sender: TObject);

procedure SpeedButton34MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

rocedure Clear_status;

procedure TabSheet7MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure SpeedButton36MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

procedure SpeedButton35MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

procedure SpeedButton35Click(Sender: TObject);

function FindTovarBase(name: string): boolean;

function FindTovarShop(name: string; Gr:string; var tov_index: integer): boolean;

procedure SpeedButton37MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

procedure SpeedButton37Click(Sender: TObject);

procedure SpeedButton38MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

procedure SpeedButton38Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure SpeedButton39Click(Sender: TObject);

procedure SpeedButton40Click(Sender: TObject);

procedure SpeedButton16MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

procedure SpeedButton41Click(Sender: TObject);

procedure SpeedButton42Click(Sender: TObject);

procedure SpeedButton42MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

procedure SpeedButton41MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

procedure RenderProdazhaSetColor(Element: TBoldElement;

var AColor: TColor; Representation: Integer; Expression: String);

procedure SpeedButton44MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

procedure SpeedButton44Click(Sender: TObject);

procedure SpeedButton45MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

procedure SpeedButton45Click(Sender: TObject);

procedure SpeedButton16Click(Sender: TObject);

procedure SpeedButton46Click(Sender: TObject);

procedure SpeedButton46MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

procedure GroupBox26MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure SpeedButton47Click(Sender: TObject);

procedure TabSheet8MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure SpeedButton49MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

procedure SpeedButton48MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

procedure SpeedButton48Click(Sender: TObject);

procedure SpeedButton49Click(Sender: TObject);

procedure SpeedButton50Click(Sender: TObject);

procedure SpeedButton51Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure SpeedButton52Click(Sender: TObject);

procedure SpeedButton53Click(Sender: TObject);

procedure SpeedButton54Click(Sender: TObject);

rocedure SpeedButton55Click(Sender: TObject);

procedure SpeedButton33Click(Sender: TObject);

procedure SpeedButton29MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

procedure SpeedButton30MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

procedure SpeedButton32MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

procedure SpeedButton31MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

procedure SpeedButton43MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

procedure SpeedButton8MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure SpeedButton9MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure SpeedButton10MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure SpeedButton11MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure SpeedButton12MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure SpeedButton13MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

procedure SpeedButton3MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure SpeedButton4MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure SpeedButton5MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure SpeedButton6MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure SpeedButton7MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure SpeedButton14MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure SpeedButton15MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure SpeedButton21MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure SpeedButton22MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

procedure SpeedButton23MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

procedure SpeedButton20MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

procedure SpeedButton18MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

procedure SpeedButton19MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

procedure CheckBox1Click(Sender: TObject);

procedure CheckBox1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure CheckBox2Click(Sender: TObject);

procedure CheckBox3Click(Sender: TObject);

procedure N12Click(Sender: TObject);

procedure N15Click(Sender: TObject);

procedure N19Click(Sender: TObject);

procedure N18Click(Sender: TObject);

procedure N20Click(Sender: TObject);

procedure N21Click(Sender: TObject);

procedure ToolButton1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure ToolButton3MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure ToolButton4MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure ToolButton5MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure ToolButton6MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure ToolButton7MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure ToolButton8MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure ToolButton9MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure ToolButton11MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure ToolButton12MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure ToolButton14MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure SpeedButton43Click(Sender: TObject);

procedure N24Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure VremyaTimer(Sender: TObject);

procedure ToolBar1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure Timer1Timer(Sender: TObject);

procedure ToolButton15MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure ToolButton16MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure CheckBox4Click(Sender: TObject);

procedure ToolButton14Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N25Click(Sender: TObject);

procedure SpeedButton56Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var Mainform: TMainform;

TekOtdel: TOtdel;

TekGroup: TGroup;

TekBase: TBase;

TekBTov: TTov_base;

TekZTov, NewZTov: TZakaz;

TekMTov: TTov_mag;

ProdTov: TProdazha;

FlagZakaz: Boolean;

TekShop: TShop;

Kol: integer;

E, W: Variant;

DirApplication: string;

procedure NewTovar(name: string; price: real; Garant, Col: integer;

Zakaz: boolean; Zakazcount: integer; Hranitsya: TBase; Prinadlezhit: TGrou;

var NewTov: TTov_base);

procedure NewMagTovar(name: string; price: real; Garant, Col: integer;

Prinadlezhit: TGroup; var NewMTov: TTov_mag);

function PoiskTovarBase(name: String; nach: boolean; var index: integer): boolean;

implementation

ses BoldSystem, EditTovarBase, ZakazTov, About, Ad_change_pass, Ad_reg,

Sc_trial;

{$R *.dfm}

//*****************************************************************************

//***************************Мои процедуры и функции***************************

//*****************************************************************************

//Расчет экономических показателей

procedure rasschet(begindate, enddate: TDate);

var i,n: integer;

ksum, prib, viruch: real;

d: TDate;

begin

n:=DataShop.ListProdazha.Count;

ksum:=0;

prib:=0;

viruch:=0;

for i:=0 to n-1 do

begin

ProdTov:=DataShop.ListProdazha.ObjectList.Elements[i] as TProdazha;

d:=ProdTov.Pdate;

if (d<=trunc(enddate))and(d>=trunc(begindate)) then

begin

viruch:=viruch+ProdTov.PRprice*ProdTov.Pcount;

prib:=prib+ProdTov.Pprice*ProdTov.Pcount;

ksum:=ksum+ProdTov.Pcount;

end;

end;

prib:=viruch-prib;

Mainform.Label55.Caption:=FloatToStr(ksum);

Mainform.Label56.Caption:=FloatToStr(viruch);

Mainform.Label57.Caption:=FloatToStr(prib);

end;

//Добавлнение нового товара в базу

procedure NewTovar(name: string; price: real; Garant, Col: integer;

Zakaz: boolean; Zakazcount: integer; Hranitsya: TBase; Prinadlezhit: TGroup;

var NewTov: TTov_base);

begin

NewTov:=TTov_base.Create(nil);

NewTov.Tname:=name;

NewTov.Tprice:=price;

NewTov.Tgarant:=Garant;

NewTov.TBcount:=Col;

NewTov.ZakazCount:=Zakazcount;

NewTov.Hranitsya:=Hranitsya;

NewTov.BPrinadlezhit:=Prinadlezhit;

end;

//Добавление нового товара в магазин

procedure NewMagTovar(name: string; price: real; Garant, Col: integer;

Prinadlezhit: TGroup; var NewMTov: TTov_mag);

var flag: boolean;

s: String;

pricereal: real;

begin

flag:=true;

S:='';

while flag do

begin

s:=InputBox('Цена реализации','Укажите цену реализации (руб. за ед.) товара "'+

name+'" с закупочной ценой:'+floattostr(price),'0');

if s<>'' then

begin

try

pricereal:=StrToFloat(s);

except

ShowMessage('Неверно указана цена реализации товара!'+#13+'Повторите ввод цены!');

end;

if pricereal>price then

flag:=false

else

ShowMessage('Цена реализации товара должна быть выше закупочной!'+#13+

'Повторите ввод цены реализации');

end

else

ShowMessage('Укажите цену реализации товара (руб. за ед.)!');

end; // while

NewMTov:=TTov_mag.Create(nil);

NewMTov.Tname:=name;

NewMTov.Tprice:=price;

NewMTov.Tgarant:=Garant;

NewMTov.TMcount:=Col;

NewMTov.Prodcount:=0;

NewMTov.TMprice:=pricereal;

NewMTov.Prinadlezhit:=Prinadlezhit;

end;

//Добавление записи в журнал продаж

procedure NewProdazha(Np: integer; Pname: string; Kol: integer; Zprisce, Rprice: real; var New: TProdazha);

begin

New:=TProdazha.Create(nil);

New.Pdate:=now;

New.PZtov_name:=Pname;

New.Pcount:=Kol;

New.Pprice:=Zprisce;

New.PRprice:=Rprice;

New.Pnumber:=Np;

end;

//Поиск товара по закупочным базам для добавление

function TMainform.FindTovarBase(name: string): boolean;

var ExTov: TTov_base;

fi,n: integer;

begin

result:=false;

n:=DataShop.ListBaseGroupTovar.Count-1;

for fi:=0 to n do

begin

ExTov:=DataShop.ListBaseGroupTovar.ObjectList.Elements[fi] as TTov_base;

if name=ExTov.Tname then

result:=true;

end;

end;

//Поиск товара по закупочным базам для отображения

function PoiskTovarBase(name: String; nach: boolean; var index: integer): boolean;

var ExTov: TTov_base;

fi,n, p: integer;

begin

result:=false;

if nach then

fi:=0

else

fi:=DataShop.ListBaseGroupTovar.CurrentIndex+1;

n:=DataShop.ListBaseGroupTovar.Count;

while fi<>n do

begin

ExTov:=DataShop.ListBaseGroupTovar.ObjectList.Elements[fi] as TTov_base;

p:=pos(name,ExTov.Tname);

if p<>0 then

begin

index:=fi;

fi:=n;

Result:=true;

end

else

inc(fi)

end;

end;

//Поиск товара по журналу продаж

function PoiskTovarProd(name: String; nach: boolean; var index: integer): boolean;

var ExTov: TProdazha;

fi,n, p1,p2: integer;

begin

result:=false;

if nach then

fi:=0

else

fi:=DataShop.ListProdazha.CurrentIndex+1;

n:=DataShop.ListProdazha.Count;

while fi<>n do

begin

ExTov:=DataShop.ListProdazha.ObjectList.Elements[fi] as TProdazha;

p1:=pos(name,ExTov.PZtov_name);

p2:=pos(name,inttostr(ExTov.Pnumber));

if (p1<>0)or(p2<>0) then

begin

index:=fi;

fi:=n;

Result:=true;

end

else

inc(fi)

end;

end;

//Поиск товара по журналу закупок

function PoiskTovarZakaz(name: String; nach: boolean; var index: integer): boolean;

var ExTov: TZakaz;

fi,n, p1: integer;

begin

result:=false;

if nach then

fi:=0

else

fi:=DataShop.ListZakupka.CurrentIndex+1;

n:=DataShop.ListZakupka.Count;

while fi<>n do

begin

ExTov:=DataShop.ListZakupka.ObjectList.Elements[fi] as TZakaz;

p1:=pos(name,ExTov.Zname);

if (p1<>0) then

begin

index:=fi;

fi:=n;

Result:=true;

end

else

inc(fi)

end;

end;

//Поиск товара по магазину

function PoiskTovarShop(name: String; nach: boolean; var index: integer): boolean;

var ExTov: TTov_mag;

fi,n, p: integer;

begin

result:=false;

if nach then

fi:=0

else

fi:=DataShop.ListTovar.CurrentIndex+1;

n:=DataShop.ListTovar.Count;

while fi<>n do

begin

ExTov:=DataShop.ListTovar.ObjectList.Elements[fi] as TTov_mag;

p:=pos(name,ExTov.Tname);

if p<>0 then

begin

index:=fi;

fi:=n;

Result:=true;

end

else

inc(fi)

end;

end;

//Поиск товара по магазину для добавления с учетом группы

function PoiskTovarShopGroup(name: String; nach: boolean; var index: integer): boolean;

var ExTov: TTov_mag;

fi,n, p: integer;

begin

result:=false;

if nach then

fi:=0

else

fi:=DataShop.ListOtdelsGroupTovar.CurrentIndex+1;

n:=DataShop.ListOtdelsGroupTovar.Count;

while fi<>n do

begin

ExTov:=DataShop.ListOtdelsGroupTovar.ObjectList.Elements[fi] as TTov_mag;

p:=pos(name,ExTov.Tname);

if p<>0 then

begin

index:=fi;

fi:=n;

Result:=true;

end

else

inc(fi)

end;

end;

//Поиск товара по магазину для добавления

function TMainform.FindTovarShop(name: string; Gr: String; var tov_index: integer): boolean;

var ExTov: TTov_mag;

fi: integer;

begin

result:=false;

for fi:=0 to DataShop.ListTovar.Count-1 do

begin

ExTov:=DataShop.ListTovar.ObjectList.Elements[fi] as TTov_mag;

if (name=ExTov.Tname)and(ExTov.Prinadlezhit.Gname=Gr) then

begin

result:=true;

tov_index:=fi;

exit;

end;

end;

end;

//Отмена заказа

procedure OtmenaZakaza;

var i,n: integer;

begin

n:=DataShop.ListBaseTovar.Count;

for i:=0 to n-1 do

begin

TekBTov:=DataShop.ListBaseTovar.ObjectList.Elements[i] as TTov_base;

if TekBTov.ZakazCount>0 then

begin

TekBTov.ZakazCount:=0;

Mainform.BoldSortingGrid4.Repaint;

Mainform.SpeedButton35.Enabled:=false;

end;

end;

end;

//Отмена продажи

procedure OtmenaProdazhi;

var i, n: integer;

begin

n:=DataShop.ListTovar.Count;

for i:=0 to n-1 do

begin

TekMTov:=DataShop.ListTovar.ObjectList.Elements[i] as TTov_mag;

if TekMTov.Prodcount>0 then

begin

TekMTov.Prodcount:=0;

Mainform.BoldSortingGrid1.Repaint;

Mainform.SpeedButton45.Enabled:=false;

Kol:=0;

end;

end;

end;

//Экспорт в Excel остатков товара в магазине

procedure ExportOstatki(FileName: string);

var Wbook, Sheet, MySh, Range, Border: variant;

i, j, n, m, r, col: integer;

begin

E:=CreateOleObject('Excel.Application');

E.Workbooks.Add;

Wbook:=E.Workbooks.Item[E.Workbooks.Count];

Sheet:=Wbook.Sheets;

Sheet.Item[2].delete;

Sheet.Item[2].delete;

MySh:=Sheet.Item[1];

MySh.name:='Остатки товара в магазине';

Range:=MySh.Range['A1:E1'];

Range.MergeCells:=true;

Range.Font.Bold:=true;

Range.Font.Italic:=true;

Range.Font.UnderLine:=true;

Range.Font.Size:=16;

Range.Font.Color:=clRed;

Range.value:='Остатки товара в магазине';

Range:=MySh.Range['A1'];

Range.ColumnWidth:=37;

Range:=MySh.Range['B1']; Range.ColumnWidth:=10.5;

Range:=MySh.Range['C1']; Range.ColumnWidth:=8;

Range:=MySh.Range['D1']; Range.ColumnWidth:=12.15;

Range:=MySh.Range['E1']; Range.ColumnWidth:=15.86;

MySh.Range['A3'].value:='Точка актуальности остатков: '+ datetostr(now);


Подобные документы

  • Характеристика UML как унифицированного графического языка моделирования для описания, визуализации, проектирования и документирования объектно-ориентированных систем. Диаграмма программного обеспечения, деятельности, последовательности и реализации UML.

    курсовая работа [439,9 K], добавлен 05.06.2014

  • Основные элементы объектной модели. Сущность и преимущества объектно-ориентированного подхода, понятие объекта и класса. Унифицированный язык моделирования UML. Диаграммы классов и взаимодействия: назначение, построение и примеры использования.

    реферат [273,2 K], добавлен 09.06.2009

  • Унифицированный язык моделирования. Методы объектно-ориентированного анализа и проектирования. Создание диаграммы последовательности и диаграммы сотрудничества. Главная диаграмма классов. Добавление связей между классами. Зависимость между пакетами.

    курсовая работа [2,7 M], добавлен 23.06.2011

  • Элементы объектно-ориентированного программирования. Среда Visual Studio: улучшения интегрированной среды разработки и увеличение ее производительности. Проектирование архитектуры программы и ее интерфейса. Использование двухуровневой системы приложения.

    курсовая работа [516,8 K], добавлен 09.08.2015

  • Использование объектно-ориентированного программирования - хорошее решение при разработке крупных программных проектов. Объект и класс как основа объектно-ориентированного языка. Понятие объектно-ориентированных языков. Языки и программное окружение.

    контрольная работа [60,1 K], добавлен 17.01.2011

  • Разработка приложения "Калькулятор с переходом в строковый калькулятор" с применением объектно-ориентированного программирования. Концепция и понятия объектно-ориентированного программирования. Язык программирования Java. Листинг программы "Калькулятор".

    курсовая работа [966,9 K], добавлен 11.02.2016

  • Создание, изучение и разработка приложение на Android. Среда разработки приложения DelphiXE5. Установка и настройка среды программирования. Этапы разработки приложения. Инструменты для упрощения конструирования графического интерфейса пользователя.

    курсовая работа [1,6 M], добавлен 19.04.2017

  • Создание консольных приложений с использованием графического интерфейса пользователя. Содержание палитры компонентов программы С++ Builder. Использование возможностей объектно-ориентированного программирования, особенности редактора кода и форм в С++.

    лекция [27,0 K], добавлен 22.12.2010

  • Характеристики и свойства языков программирования. Исследование эволюции объектно-ориентированных языков программирования. Построение эволюционной карты механизмов ООП. Разработка концептуальной модели функционирования пользовательского интерфейса.

    курсовая работа [2,6 M], добавлен 17.11.2014

  • Понятие объектно-ориентированного программирования, характеристика используемых языков. Практическая разработка средств объектно-ориентированного программирования в задачах защиты информации: программная реализация на языке С++, а также Turbo Pascal.

    курсовая работа [275,9 K], добавлен 22.12.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.