Вам нужна дипломная работа?
Интересует Информатика?
Оставьте заявку
на Дипломную работу
Получите бесплатную
консультацию по
написанию
Сделайте заказ и
скачайте
результат на сайте
1
2
3

Разработка системы автоматизации логистических операций на примере ООО "Русат".

  • 133 страницы
  • 30 источников
  • Добавлена 10.06.2009
2 100 руб. 7 000 руб.
  • Содержание
  • Часть работы
  • Список литературы
Автоматизация логистических операций на примере «ООО Русат»



Содержание

Введение
1. Аналитическая часть
1.1 Технико-экономическая характеристика предметной области и предприятия. Анализ деятельности «КАК ЕСТЬ»
1.1.1 Характеристика предприятия и его деятельности
1.1.2 Организационная структура управления предприятием
1.1.3 Программная и техническая архитектура ИС на предприятии и используемых функциональных возможностей. Обеспечения информационной безопасности.
1.1.4 Структурно-функциональная диаграмма организации деятельности «КАК ЕСТЬ»
1.2 Характеристика комплекса задач, задачи и обоснование необходимости автоматизации
1.2.1 Выбор комплекса задач автоматизации и характеристика существующих бизнес процессов
1.2.2 Определение места проектируемой задачи в комплексе задач
1.2.3 Сущность задачи и предметная технология её решения
1.2.4 Обоснования необходимости использования вычислительной техники для решения задачи
1.2.5 Описание свойств ИС, требуемых для решения выбранной задачи
1.3 Анализ существующих разработок и выбор стратегии автоматизации «КАК ДОЛЖНО БЫТЬ»
1.3.1 Анализ существующих разработок для автоматизации задачи
1.3.2 Выбор и обоснование стратегии автоматизации задачи
1.3.3 Выбор и обоснование способа приобретения ИС для автоматизации задачи
1.4 Развёрнутая постановка целей, задачи и подзадач автоматизации
1.4.1 Трансформация базовой технологии решения задачи
1.4.2 Цели и назначение автоматизированного варианта решения задачи
1.4.3 Подзадачи автоматизации и функциональная информационная технология их решения
1.4.4 Формализация расчётов показателей
1.5 Обоснование проектных решений
1.5.1 Обоснование проектных решений по техническому обеспечению
1.5.2 Обоснование проектных решений по информационному обеспечению
1.5.3 Обоснование проектных решений по программному обеспечению
1.5.4 Обоснование проектных решений по технологическому обеспечению
2. Проектная часть
2.1 Разработка проекта автоматизации: информационный менеджмент
2.1.1 Этапы жизненного цикла проекта автоматизации
2.1.2 Разработка и описание проекта автоматизации, плана-графика автоматизации и сетевой модели задач
2.1.3 Характеристика архитектуры разрабатываемого проекта
2.1.4 Характеристика этапа внедрения разрабатываемого проекта
2.1.5 Характеристика этапа эксплуатации разрабатываемого проекта и возможных работ
2.1.6 Ожидаемые риски на этапах жизненного цикла и их описание
2.2 Информационное обеспечение задачи
2.2.1 Информационная модель и её описание
2.2.2 Используемые классификаторы и системы кодирования
2.2.3 Характеристика нормативно-справочной, входной и оперативной информации
2.2.4 Характеристика результатной информации
2.2.5 Формализация расчётов показателей
2.3 Программное обеспечение задачи
2.3.1 Общие положения
2.3.2 Характеристика базы данных
2.3.3 Структурная схема системы
2.3.4 Описание программных модулей
2.4 Технологическое обеспечение задачи
2.4.1 Организация технологии сбора, передачи, обработки и выдачи информации
2.4.2 Потоки данных
2.4.3 Построение инфологической модели данных
2.4.4 Построение реляционой модели данных
2.5 Выбор программного обеспечения
2.6 Основные принципы работы программы
2.7 Интерфейс программы
3 Расчет экономических показателей
3.1 Резюме
3.2 Анализ положения дел в отрасли
3.3 Описание продукта
3.3.1 Назначение
3.3.2 Описание структуры программы
3.3.3 Техническая и научная новизна разработки
3.3.4 Сравнение с техническими характеристиками аналогов
3.3.5 Сервис и гарантии
3.4 План маркетинга
3.4.1 Анализ рынка
3.4.2 Стратегия реализации
3.4.3 Организация рекламы
3.5 Расчет трудоемкости
3.6 Расчет себестоимости разрабатываемой системы
3.7 Расчет себестоимости
3.8 Финансовый план
Заключение
Список литературы
Приложение 1. Код, используемый для входа в программу
Приложение 2. Дамп базы данных
Приложение 3. Код программы

Фрагмент для ознакомления

Рис. 3.1 Основные сложности, с которыми сталкиваются потребители

Тем не менее, несмотря на внешне кажущуюся стабильность, произошло нечто замечательное. Как следует из рис. 3.1, негативный эффект от неудовлетворительного качества данных и непродуманной корпоративной политики идет на убыль.

Человеческий фактор

Несмотря на смягчение политических проблем вопросы, относящиеся к человеческому фактору, в целом случаются даже более часто, чем технически сложные случаи. Вообще, человеческий фактор наиболее часто проявляет себя в средних по величине компаниях, хотя присутствие корпоративной политики наиболее сильно ощущается с ростом величины организации. Что заметно отличает более крупные организации - так это возможность согласовывать требования. Большие компании, вероятно, располагают более формальной методикой - несомненно, опирающейся на опыт прошлых проектов.


Качество данных

Удивительно, но сложности с данными не зависят от величины организации или ее месторасположения. Даже большие объемы данных не являются значимым фактором - так, респонденты, использующие небольшие приложения, выделяли объем данных в качестве проблемы не реже, чем те, кто обрабатывает самые большие объемы данных. Автор отчета приходит к выводу, что причина кроется не в программных продуктах, а в том, как они используются.

Производительность запросов

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

3.3.5 Сервис и гарантии

Гарантийное обслуживание закреплено за разработчиком и создателем системы.

3.4 План маркетинга
3.4.1 Анализ рынка

Разрабатываемый программный продукт является товаром.
Цена должна способствовать повышению конкурентоспособности программной системы.
Потенциальными потребителями будут являться:
- различные торговые компании, в которых предусмотрен учет клиентов



3.4.2 Стратегия реализации

Необходимо воспользоваться следующими методами продвижения товара: рекламная деятельность, льготы и скидки, консультирование пользователей, ознакомительный маркетинг.
Таблица 3.1. Стратегии продвижения
Элементы стратегии Действия Льготы и скидки Предоставление скидок Рекламная деятельность Организация рассылки рекламных сообщений потенциальным потребителям Консультация пользователей - “Горячая линия”
- Рассылка по электронной почте

3.4.3 Организация рекламы

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

3.5 Расчет трудоемкости
Для расчета затрат труда воспользуемся следующей методикой. Методика основывается на опытно-статистических данных, полученных при подготовке задач к решению на ПК. В общем случае, затраты труда (чел/ч) определяются по формуле:
Т = То + Ти + Та + Тп + Тт + Тд + Тв , (1)
где То – затраты труда на подготовку описания задачи;
Ти – затраты труда на изучение описания задачи;
Та – затраты труда на разработку проектной спецификации;
Тп – затраты труда на программирование по готовой спецификации;
Тт – затраты труда на отладку программы;
Тд – затраты труда на подготовку документации по задаче;
Тв – затраты труда, связанные с внедрением системы и обучением пользователей.

Составляющие затрат труда определяются через условное число команд (операторов) в разрабатываемой программе. Условное число команд Q определяется по формуле:
Q = q * c * (1 + p), (2)
где q – предполагаемое число команд;
с – коэффициент сложности программы;
p – коэффициент коррекции программы в ходе ее разработки.
В данной работе: q = 1000; c = 2.0; p = 1
Q = 1000 * 2.0 * (1 + 1) = 4000.
Далее перейдем к расчету составляющих формулы (1):
Затраты труда То на подготовку описания задачи не учитываются.
Затраты труда Ти с учетом уточнения описания задачи и квалификации программиста определяются по формуле:

, (3)
где B – коэффициент увеличения затрат труда вследствие недостаточного или неточного описания задачи; k – коэффициент квалификации разработчика.
B = 1.8; k = 1;

Ти = 4000 * 1.8 / (80 * 1) = 90 (чел / ч) = 11.25 (чел / дн).

Затраты труда на разработку проектной спецификации рассчитываются по формуле:
, (4)
Та = 4000 / 25 = 160 (чел / ч) = 20 (чел / дн)
Затраты труда на программирование Тп вычисляют по формуле:
, (5)
Тп = 4000 / 22 = 181.82 (чел / ч) = 22.73 (чел / дн).
Затраты труда на отладку программы определяются по формуле:
, (6)
Тт = 4000 / 5 = 800 (чел / ч) = 100 (чел / дн).
Затраты труда на подготовку документации определяется как сумма затрат труда на подготовку материала Тдр и затрат труда на редактирование, печать и оформление документации Тдо:
, (7)
Tдр = 4000 / 40 = 100 (чел / ч) = 12.5 (чел / дн),
Тдо = 0.75 * Тдр = 75 (чел / ч) = 9.38 (чел / дн),
Тд = Тдр + Тдо = 175 (чел / ч) = 21.88 (чел / дн).
Затраты труда связанные с внедрением системы и обучением пользователей определяются по формуле:
, (8)
Tв = 4000 / 40 = 100 (чел / ч) = 12.5 (чел / дн).
Таким образом, зная все составляющие, находим затраты труда на разработку программы:
Т = 20 + 90 + 160 + 181.82 + 800 + 175 + 100 = 1526.82 (чел / ч) ( 191 (чел / дн).
Теперь перейдем к составлению перечня работ
В табл. 3.1.1 приведен перечень работ, которые должны быть выполнены в процессе разработки программного обеспечения.

Перечень работ, выполняемых в процессе разработки программного обеспечения
Таблица 3.1.1
Этап разработки Оценка трудоемкости,
(чел/дн) Расчетные величины Ai Mi Bi Ti Di 1.Разработка и утверждение ТЗ 2 3 4 3 0,67 2.Анализ процессов предметной области 4 5 6 5 0,4 3.Проектирование концептуальной модели системы 5 6 7 6 0,33 4.Проектирование структур данных 5 7 8 7 0,43 5.Разработка пользовательского интерфейса 5 7 8 7 0,43 6.Разработка спецификаций алгоритмов 4 5 7 5 0,6 7.Отладка и тестирование 10 15 20 15 0,33 8.Разработка проектной документации 4 5 6 5 0,4 9.Внедрение и обучение 7 8 9 8 0,25 Итого 46 61 75 61 3,84
Работы распределяются по этапам и должностям исполнителей. Поскольку трудоемкость выполнения работ носит вероятностный характер, так как она зависит от многих трудно учитываемых факторов, применяются методы оценки минимально возможной трудоемкости работ Ai, максимально возможной Bi и наиболее вероятной трудоемкости отдельных видов работ Mi. По этим величинам оценивается ожидаемое значение трудоемкости Тi и их дисперсий Di по следующим формулам:
Ti = (Ai + 4 * Mi + Bi) / 6, (9),
Di = (Bi – Ai) / Ti (10).
Дисперсия характеризует степень неопределенности выполнения работы за ожидаемое время Тi. Если разброс между Ai и Bi мал, то степень достоверности выполнения работы точно в срок велика.

Трудоемкость выполнения работы Тр определяется по сумме трудоемкостей этапов работ, оценки и расчетные величины которых приведены в табл.3.1.1.
Работы 1-2 относятся к подготовительному этапу; работы 3-4 – этап проектирования; работы 5-7 – этап программирования и отладки; работы 8-9 – заключительный этап. Календарный график распределения работ для одного программиста приведен в табл. 3.1.2.

Календарный график распределения работ
Таблица 3.1.2
Э Этапы Трудоемкость, Время (недели) Чел./дн 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Подготовитель-ный 6                                   Проектирова-ние 10                                   Программирование и отладка 19                                   Заключитель-ный 11                                  











3.6 Расчет себестоимости разрабатываемой системы

В этом разделе приводится расчет сметной стоимости разработки системы на основании трудоемкости и календарного графика.

Расчет себестоимости одного часа машинного времени
Для создания системы используется комплекс вспомогательных программно-аппаратных средств (см табл. 3.2.1). При расчёте стоимости машинного часа необходимо учитывать затраты на аренду техники и инструментального программного обеспечения.


Перечень основных показателей для расчёта себестоимости
Таблица 3.2.1
Наименование Обозначение Стоимость,
Руб. Кол-во Балансовая стоимость компьютера iP4 2000Mhz/RAM512/HDD80GB ФбПК 15000 1 Балансовая стоимость принтера Xerox 3150 ФбПР 10000 1 Стоимость ОС XP ФбПО3 4000 1 Средняя заработная плата:
Инженер-программист, специалист 1 категории
Ф1ср
10000
1
Для определения сметной стоимости разработки программного продукта будем использовать метод прямого расчёта по статьям сметной калькуляции. Его достоинством является простота, а недостатком - то, что он не учитывает ситуацию на рынке, не принимает во внимание факторы, влияющие на рост затрат (например, конкуренцию). В этом случае установлены следующие типовые группировки затрат по калькуляционным статьям расходов: прямые затраты и накладные расходы. В состав прямых расходов входят:
а) материалы;
б) оборудование для научных работ;
в) основная заработная плата;
г) дополнительная заработная плата;
д) отчисления на социальное страхование и прочие прямые расходы.
В качестве материалов используются бумага для печати программной документации на принтере и сменный картридж. В качестве технических средств ПК будем рассматривать дисплей, системный блок и принтер. Себестоимость часа работы ПК определяется по формуле
См-ч = Sрм + Sээ + Sа+Sм , (11)
где Sрм - затраты на ремонт, руб./ч;
Sээ - затраты на потребляемую энергию, руб./ч;
Sа - амортизация вычислительных средств, руб./ч;
Sм - материалы, руб./ч.
Материалы рассчитываются по формуле
Sm=/Фг, (12)
где mi- расход i-го материала, ед.;
Ci- цена (оптовая, розничная, договорная) материала i-го вида, руб.;
Фг- годовой фонд времени работы ПК, ч;
n - количество видов материалов.
Затраты на ремонт аппаратуры и настройку ПО рассчитываются следующим образом:

Sрм= (Фпкб + Фпоб )*Рт/Фг, (13)

где Фг- годовой фонд времени работы ПК, ч;
Фпкб- балансовая стоимость ПК, руб.;
Фпоб- балансовая стоимость ПО, руб.;
Рт- коэффициент технического ремонта (Рт=0.01).
Затраты на электроэнергию от использования средств вычислительной техники:
Sээ = qj*Nj*Sквт.ч., (14)
где qj-число j-ых технических средств ПК;
Nj - потребляемая мощность j-ых технических средств, кВт;
Sквт.ч. - стоимость кВтч электроэнергии (0.20 руб.)
Амортизация вычислительных средств:

Sа = (ан/100)*(Фпкб + Фпоб)/Фг, (15)

где ан- годовая норма амортизации ПК, % (ан=20%);
Фпкб- балансовая стоимость ПК, руб.
Фпоб- балансовая стоимость ПО, руб.;
По формуле (12) затраты на материалы составляют:

Sm = (12*60 + 1500)/2112 = 1.05 (руб.),

куда входит 12 упаковок бумаги по 250 листов по цене 60 руб., и один сменный картридж для принтера, стоимостью 1500 руб. Время жизни компьютеров и вспомогательного ПО полагаем равной пяти годам. Годовой фонд времени работы (в году 12 месяцев, в месяце 22 рабочих дня, в день работают 8 часов) :

Фг= 12*22*8 = 2112 (ч).

Балансовая стоимость аппаратуры будет состоять из стоимости одного ПК и одного принтера. Тогда затраты на ремонт аппаратуры по формуле (13) составят:

Sрм = (15000 + 4000 +10000)*0.01/2112= 0,14 (руб./ч).

Затраты на электроэнергию, потребляемую компьютером и принтером рассчитываем по формуле (14):

Sээ = (0.200*1*0.20 + 0.050*1*0.20) = 0.05 (руб./ч)

Амортизация вычислительных средств:

Sа = 20/100 * (15000 + 4000+ 10000) /2112 = 2,74 (руб./ч),

Итак, по формуле (11), имеем стоимость одного машинного часа аппаратно-программного комплекса:

См-ч = 1.05 + 0.14 + 2.74 + 0.05 = 3.98 (руб./ч).


3.7 Расчет себестоимости



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

Спр = S*tан+(S+См-ч)*tотл + Снр, (15)

где S -сумма основной и дополнительной заработной платы разработчиков программы и начислений на социальное страхование, руб./ч;
tан - время, затрачиваемое разработчиками на этапе анализа и внедрения сайта без использования ПК, ч;
См-ч - себестоимость одного часа машинного времени, руб./ч;
tотл - время, затрачиваемое разработчиками на проектирование, программирование и отладку программы, время работы на компьютерах, ч;
Снр - накладные расходы, руб.
Сумму основной и дополнительной заработной платы разработчиков программы и начислений на социальное страхование рассчитаем по формуле:
S = Sзп+ Sсс, (16)
где Sзп - заработная плата, руб./ч;
Sсс -отчисления на социальное страхование, руб./ч.
Заработная плата вычисляется по формуле:
Sзп = (1/Фм) Lj*Фj*(1+Hд/100), (17)
где m - номенклатура профессий;
Lj- количество человек каждой j профессии (выше отмечалось, что в разработке принимают участие шесть человек);
Фм- месячный фонд времени, ч;
Фj- среднемесячная заработная плата по должности, руб.;
Hд- процент дополнительной заработной платы (Нд = 25%).
Отчисления на социальное страхование:
Sсс = Нсс*Sзп/100, (18)

где Нсс- процент отчисления на социальное страхование (Нсс=26,2%).
Накладные расходы определяются по формуле:

Sнр=(Ннр/100)*(Sо+Sээ+Sа) (19)

где Sнр- накладные расходы, руб./ч;
Ннр- процент накладных расходов, Ннр=60%;
Sо- основная заработная плата.

Сумма основной и дополнительной заработной платы разработчиков программы и отчислений на социальное страхование:
Sзп = 10000 * (1+25/100) / 176 = 71 (руб./ч)
Sсс = 26,2/100 *71= 18.6 (руб./ч)
S = 71+ 18.6 = 89.6 (руб./ч)

Накладные расходы определяются по формуле (20):

Sнр = (60/100)*(17.04 + 0.05 + 2.74)= 19.83 (руб./ч)

Себестоимость разработки программы определяется по формуле (21):

Спр = 89.6*(27+41)*8/6 + (89.6+3.98)*(70+457+69)*8/6 +19.83*664*8/6 = 100044 (руб.)

Цена создания информационной системы с учетом 20 %-ой прибыли будет составлять:
Сис = 100044 * (1 + 20/100) = 120053 (руб.)

Смета затрат на создание системы
Таблица 3.3
Наименование Обозначение Сумма, руб. 1. Фонд оплаты труда Фо 103935 1.1. Основная заработная плата Сзп 82488 Специалист 1-ой категории – 1чел. С1к 65990 1.2. Дополнительная заработная плата Сдоп 16498 1.3. Отчисления в фонд социального страхования Ссс 21447 2. Накладные расходы Снр 15386 3. Затраты на программно-техническое обеспечение Спто 732 3.1. Амортизация вычислительных средств Са 504 3.2. Затраты на ремонт и обслуживание Срм 26 3.3. Затраты на электроэнергию Сээ 9 3.4. Затраты на материалы См 193 Общая стоимость информационной системы Спр 120053
3.8 Финансовый план


При составлении финансового плана разрабатываемого интернет приложения необходимо произвести расчет чистой приведенной стоимости проекта (net present value - NPV), а также рассчитать бюджет проекта.
Бюджет проекта представлен в таблице 3.4.

Бюджет проекта
Таблица 3.4
Вид затрат Затраты по кварталам, руб. Всего, руб. 1 квартал 2 квартал 3 квартал Амортизация оборудования 254,3 254,3 254,3 504 Заработная плата 7500 7500 2700 38500 Отчисления на социальные нужды 2900 2900 1200 1500 Эксплуатационные расходы 600 600 600 226 Накладные затраты 1900 1900 1200 3684 Итого 13140 13140 5740 44414 Транспортные расходы отсутствуют. Расходы на закупку оборудования не учитываются, так как используется оборудование, уже имеющееся в наличие.
Наиболее распространенным критерием эффективности инвестиций в мировой практике является чистая приведенная стоимость проекта (NPV), представляющая собой приведенную (современную) стоимость будущих потоков денежных средств, генерируемых инвестиционным проектом за жизненный цикл продукции.
Расчет NPV представлен в таблице 3.5

Прогноз потоков денежных средств
Таблица 3.5
Показатели, р. Интервал планирования, год 0 1 2 3 4 Годовая экономическая эффективность 20000 20000 20000 20000 Инвестиционные затраты –44414 Годовые эксплуатационные расходы -350 -350 -350 -350 Валовая прибыль 19650 19650 19650 19650 Налог на прибыль –4900 –4900 –4900 –4900 Чистая прибыль 14750 14750 14750 14750 Амортизация 700 700 700 700 Чистый поток денежных средств –44414 15450 15450 15450 15450 Дисконтный множитель (при i = 0,1) 1 0,91 0,83 0,75 0,б8 Приведенный чистый поток денежных средств –44414 12194 11122 10050 9112 Чистая приведенная стоимость будущих потоков денежных средств NPV –44414 -19826 -8704 1346 10458 Примечание. Величина годовой экономической эффективности проекта принята, исходя из оценок специалистов. Срок жизненного цикла данного программного обеспечения составляет по оценкам 4-5 лет с возможностью последующей модернизации.
Так как NPV по данному проекту больше нуля, то с финансовой точки зрения проект следует принять.



Заключение

Объектом исследования данного проекта является компания «Русат». Данная компания предоставляет услуги по аренде автомобилей различных классов и комплектаций частным лицам и корпоративным клиентам, а также услуги операционного лизинга.
Цель разработки проекта заключается в создании программного обеспечения для автоматизации логистических операций.
Программное обеспечение, разработанное в данном проекте функционирует в операционных системах семейства Windows. Программа позволяет вести учет клиентов, содержит данные о водителях компании, хранит данные о выполненных и текущих заказах компании, обеспечивает контроль и работу с информацией БД.
Программа была разработана в среде Delphi седьмой версии. В качестве базы данных используется продукт MySQL.
Использование системы управления базами данных MySQL предполагает следующие конкурентные преимущества:
производительность (MySQL используют такие сервисы как Google и Yahoo)
быстродействие. Благодаря внутреннему механизму многопоточности быстродействие MySQL весьма высоко.
Безопасность. Довольно высокий уровень безопасности обеспечивается благодаря базе данных mysql, создающейся при установке пакета и содержащей пять таблиц. При помощи этих таблиц можно описать, какой пользователь из какого домена с какой таблицей может работать и какие команды он может применять. Пароли, хранящиеся в базе данных, можно зашифровать при помощи встроенной в MySQL функции password().
масштабируемость (в реальном масштабе времени возможно использовать сотни и даже тысячи серверов MySQL)
надежность (возможность быстрого восстановления системы после сбоев)
простота использования и внедрения (скачать и запустить систему можно в течении нескольких минут)
открытая и модульная разработка
низкие совокупные затраты (оплата производится только при необходимости поддержки или покупке сторонних продуктов)
Выбор среды программирования Delphi дает следующие конкурентные преимущества перед другими:
Быстрота разработки приложения.
Высокая производительность разработанного приложения.
Hизкие требования разработанного приложения к ресурсам компьютера.
Hаращиваемость за счет встраивания новых компонент и инструментов в среду Delphi.
Возможность разработки новых компонент и инструментов собственными средствами Delphi (существующие компоненты и инструменты доступны в исходниках)
Удачная проработка иерархии объектов
Доступность огромного количества визуальных компонентов различных фирм, часть из которых freeware, часть shareware, часть - коммерческие.

Программа позволяет просматривать производить различные операции с данными (хранение, просмотр, редактирование, удаление),
Программа представляет интерес для компаний, связанных с логистикой.
Программа работает под управлением операционной системы Windows, что позволяет использовать продукт на большинстве пользовательских компьютеров.
Использование в качестве базы данных MySQL позволяет без больших усилий произвести интеграцию созданного продукта с глобальной сетью Интернет.
Таким образом, предполагается дальнейшее развитие продукта. Также есть возможность доработки продукта в плане интегрирования с бухгалтерской отчетностью. Использование в качестве среды программирования Delphi этому также способствует.


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

Архангельский А.Я. «Программирование в Delphi для Windows», Бином-Пресс, 2005г.
Архангельский А.Я. «Программирование в Delphi. Учебник по классическим версиям Delphi », Бином-Пресс, 2005г.
Бакнелл Джулиан «Фундаментальные структуры данных и алгоритмы в Delphi», Питер 2006г.
Голицина О.Л. «Базы данных», Инфра-М, 2007г.
Горев А., Макашарипов С., «Эффективная работа с СУБД» СПб, «Питер», 1997г.
Диго С.М. «Базы данных: проектирование и использование», Финансы и статистика, 2005г.
Дунаев В.В. «Базы данных. Язык SQL», БХВ-Петербург, 2007г.
Дюбуа П. «MySQL», Вильямс, 2007 г.
Дюбуа П. «MySQL. Сборник рецептов», Символ-Плюс, 2004 г.
Кадлец В. «Delphi. Книга рецептов. Практические примеры, трюки и секреты», Наука и техника, 2006г.
Кириллов В.В. «Основы проектирования реляционных баз данных.» Учебное пособие. - СПб.: ИТМО, 1994.
Кузнецов С.Д. «Базы данных. Модели и языки», Бином-Пресс, 2008г.
Малыхина М.П. «Базы данных. Основы, проектирование, использование», БХВ-Петербург, 2006г.
Иарко Кэнту «Delphi для профессионалов», Питер, 2006г.
Осипов Д. «Delphi. Профессиональное программирование», Символ-плюс, 2003г.
Рудикова Л.В. «Базы данных. Разработка приложений», БХВ-Петербург, 2006г.
Советов Б.Я. «Базы данных. Теория и практика», Высшая школа, 2005г.
Фаронов В. «Delphi. Разработка приложений для баз данных и Интернета», Питер 2006г.
Фаронов В. «Delphi. Язык, среда, разработка приложений», Питер 2006г.
Фаронов В. «Delphi 2005. Переход с младших версий», Питер 2007г.
Фрост Р. «Базы данных. Проектирование и разработка», НТ Пресс, 2007г.
Фуфаев Э.В. «Базы данных», Академия, 2007г.
Хомоненко А.Д. «Базы данных», Бином-Пресс, 2007г.
Дюбуа П. «MySQL. Сборник рецептов», Символ-Плюс, 2004 г.
«MySQL. Руководство администратора», Вильямс, 2005г.
«MySQL. Справочник по языку», Вильямс, 2005г.
Хомоненко А., Гофман В., Мещеряков Е., Никифоров В. «Delphi 7» СПб, «БХВ-Петербург», 2005.
Хомоненко А. «Delphi 7. Наиболее полное руководство»

Материалы сайтов:
http://ru.wikipedia.org
http://mysql.org





Приложение 1. Код, используемый для входа в программу


Код для входа в систему:
DM.Query1.SQL.Clear;
DM.Query1.SQL.Add('SELECT * FROM `managers` WHERE `login`=' + '"' + login.Text + '"' + ' AND `password`=' + '"' + pass.Text + '"');
DM.Query1.Open;

if DM.Query1.RecordCount > 0 then
begin
Form_login.Close;
end
else ShowMessage(' Неправильный логин или пароль!');


Приложение 2. Дамп базы данных

-- phpMyAdmin SQL Dump
-- version 2.6.1
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Дек 24 2008 г., 09:40
-- Версия сервера: 5.0.51
-- Версия PHP: 5.2.5
--
-- БД: `ins`
--

-- --------------------------------------------------------

--
-- Структура таблицы `admins`
--

CREATE TABLE IF NOT EXISTS `admins` (
`id` int(10) unsigned NOT NULL auto_increment,
`first_name` varchar(50) character set cp1251 default NULL,
`second_name` varchar(50) character set cp1251 default NULL,
`last_name` varchar(50) character set cp1251 default NULL,
`email` varchar(50) character set cp1251 default NULL,
`login` varchar(50) character set cp1251 default NULL,
`password` varchar(50) character set cp1251 default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

-- --------------------------------------------------------

--
-- Структура таблицы `agents`
--

CREATE TABLE IF NOT EXISTS `agents` (
`id` int(10) unsigned NOT NULL auto_increment,
`first_name` varchar(100) character set cp1251 default NULL,
`second_name` varchar(100) character set cp1251 default NULL,
`last_name` varchar(100) character set cp1251 default NULL,
`phone` varchar(50) character set cp1251 default NULL,
`birth` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

-- --------------------------------------------------------

--
-- Структура таблицы `ins_types`
--

CREATE TABLE IF NOT EXISTS `ins_types` (
`id` int(10) unsigned NOT NULL auto_increment,
`type` varchar(50) character set cp1251 default NULL,
`note` varchar(250) character set cp1251 collate cp1251_bin default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

-- --------------------------------------------------------

--
-- Структура таблицы `managers`
--

CREATE TABLE IF NOT EXISTS `managers` (
`id` int(10) unsigned NOT NULL auto_increment,
`first_name` varchar(50) character set cp1251 default NULL,
`second_name` varchar(50) character set cp1251 default NULL,
`last_name` varchar(50) character set cp1251 default NULL,
`email` varchar(50) character set cp1251 default NULL,
`login` varchar(50) character set cp1251 default NULL,
`password` varchar(50) character set cp1251 default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

-- --------------------------------------------------------

--
-- Структура таблицы `polices`
--

CREATE TABLE IF NOT EXISTS `polices` (
`id` int(10) unsigned NOT NULL auto_increment,
`num` varchar(50) character set cp1251 default NULL,
`iduser` int(10) unsigned NOT NULL,
`idagent` int(10) unsigned NOT NULL,
`idtype` int(10) unsigned NOT NULL,
`date` date NOT NULL,
`date_begin` date NOT NULL,
`date_end` date NOT NULL,
`sum` double NOT NULL,
`note` varchar(250) character set cp1251 default NULL,
PRIMARY KEY (`id`),
KEY `iduser` (`iduser`),
KEY `idagent` (`idagent`),
KEY `idtype` (`idtype`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

-- --------------------------------------------------------

--
-- Структура таблицы `users`
--

CREATE TABLE IF NOT EXISTS `users` (
`id` int(10) unsigned NOT NULL auto_increment,
`first_name` varchar(100) character set cp1251 default NULL,
`second_name` varchar(100) character set cp1251 default NULL,
`last_name` varchar(100) character set cp1251 default NULL,
`passport_ser` varchar(4) character set cp1251 default NULL,
`passport_num` varchar(6) character set cp1251 default NULL,
`address` varchar(200) character set cp1251 default NULL,
`email` varchar(100) character set cp1251 default NULL,
`phone1` varchar(50) character set cp1251 default NULL,
`phone2` varchar(50) character set cp1251 default NULL,
`phone3` varchar(50) character set cp1251 default NULL,
`birth` date NOT NULL,
`sex` tinyint(1) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

Приложение 3. Код программы

Project1.dpr
program Project1;

uses
Forms,
Unit1 in 'Unit1.pas' {FormMain},
Unit2 in 'Unit2.pas' {DM: TDataModule},
Unit3 in 'Unit3.pas' {Form_login},
Unit4 in 'Unit4.pas' {Form_auto_type},
Unit5 in 'Unit5.pas' {Form_auto},
Unit6 in 'Unit6.pas' {Form_new_auto},
Unit7 in 'Unit7.pas' {Form_drivers},
Unit8 in 'Unit8.pas' {Form_zakaz};

{$R *.res}

begin
Application.Initialize;
Application.CreateForm(TFormMain, FormMain);
Application.CreateForm(TDM, DM);
Application.CreateForm(TForm_login, Form_login);
Application.CreateForm(TForm_auto_type, Form_auto_type);
Application.CreateForm(TForm_auto, Form_auto);
Application.CreateForm(TForm_new_auto, Form_new_auto);
Application.CreateForm(TForm_drivers, Form_drivers);
Application.CreateForm(TForm_zakaz, Form_zakaz);
Application.Run;
end.

Unit1.pas
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Menus, jpeg, ExtCtrls;

type
TFormMain = class(TForm)
BitBtn1: TBitBtn;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
Image1: TImage;
Label1: TLabel;
procedure BitBtn1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
FormMain: TFormMain;
isLogged : boolean;
implementation

uses Unit3, Unit4, Unit5, Unit7, Unit8;

{$R *.dfm}

procedure TFormMain.BitBtn1Click(Sender: TObject);
begin
FormMain.Close;
end;

procedure TFormMain.FormShow(Sender: TObject);
begin
if isLogged = False then Form_login.ShowModal;
end;

procedure TFormMain.N2Click(Sender: TObject);
begin
FormMain.Close;
end;

procedure TFormMain.N5Click(Sender: TObject);
begin
Form_auto_type.ShowModal;
end;

procedure TFormMain.N6Click(Sender: TObject);
begin
Form_auto.ShowModal;
end;

procedure TFormMain.N7Click(Sender: TObject);
begin
Form_drivers.ShowModal;
end;

procedure TFormMain.N8Click(Sender: TObject);
begin
Form_zakaz.ShowModal;
end;

procedure TFormMain.N4Click(Sender: TObject);
begin
MessageDlg(' Логистические операции '#10#13#10#13' 2008 год ' ,mtInformation,[mbOk],0);
end;

end.


Unit2.pas
unit Unit2;

interface

uses
SysUtils, Classes, DB, mySQLDbTables, Dialogs;

type
TDM = class(TDataModule)
DB: TmySQLDatabase;
Tab_auto_type: TmySQLTable;
Tab_auto: TmySQLTable;
Tab_drivers: TmySQLTable;
Query1: TmySQLQuery;
Tab_auto_typeid: TLargeintField;
Tab_auto_typetype: TStringField;
Tab_autoid: TLargeintField;
Tab_autoidtype: TLargeintField;
Tab_automodel: TStringField;
Tab_autotarif_km: TLargeintField;
Tab_autotarif_hour: TLargeintField;
Tab_driversid: TLargeintField;
Tab_driversfirst_name: TStringField;
Tab_driverslast_name: TStringField;
Tab_driverssecond_name: TStringField;
Tab_driversprava: TStringField;
Tab_zakaz: TmySQLTable;
Tab_zakazid: TLargeintField;
Tab_zakaznum: TStringField;
Tab_zakazdate: TDateField;
Tab_zakazdate_begin: TDateTimeField;
Tab_zakazdate_end: TDateTimeField;
Tab_zakazsum: TLargeintField;
DS_Query: TDataSource;
DS_auto_type: TDataSource;
DS_auto: TDataSource;
DS_drivers: TDataSource;
DS_zakaz: TDataSource;
Tab_autophoto1: TStringField;
Tab_autophoto2: TStringField;
Tab_autophoto3: TStringField;
Tab_zakazidauto: TStringField;
Tab_zakaziddriver: TStringField;
procedure DataModuleCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
isScroll : Boolean;
end;

var
DM: TDM;

implementation

uses Unit5;

{$R *.dfm}

procedure TDM.DataModuleCreate(Sender: TObject);
begin
try
DB.Connect;
Tab_auto_type.Open;
Tab_auto.Open;
Tab_drivers.Open;
Tab_zakaz.Open;
except
ShowMessage('Ошибка при подключении к базе данных!');
end;
isScroll := False;
end;

end.

Unit3.pas
unit Unit3;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, jpeg, ExtCtrls, Mask;

type
TForm_login = class(TForm)
login: TEdit;
Label1: TLabel;
Label2: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Image1: TImage;
pass: TMaskEdit;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form_login: TForm_login;

implementation

uses Unit2, Unit1;

{$R *.dfm}

procedure TForm_login.BitBtn1Click(Sender: TObject);
begin
DM.Query1.SQL.Clear;
DM.Query1.SQL.Add('SELECT * FROM `managers` WHERE `login`=' + '"' + login.Text + '"' + ' AND `pass`=' + '"' + pass.Text + '"');
DM.Query1.Open;

if DM.Query1.RecordCount > 0 then
begin
Form_login.Close;
end
else ShowMessage(' Неправильный логин или пароль!');
end;

procedure TForm_login.BitBtn2Click(Sender: TObject);
begin
FormMain.Close;
end;

end.

Unit4.pas
unit Unit4;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, dbcgrids, Mask, DBCtrls, ExtCtrls, jpeg;

type
TForm_auto_type = class(TForm)
BitBtn1: TBitBtn;
DBCtrlGrid1: TDBCtrlGrid;
Label1: TLabel;
DBEdit1: TDBEdit;
DBNavigator1: TDBNavigator;
Image1: TImage;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form_auto_type: TForm_auto_type;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm_auto_type.BitBtn1Click(Sender: TObject);
begin
Form_auto_type.Close;
end;

end.

Unit5.pas
unit Unit5;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, DBCtrls, Mask, jpeg;

type
TForm_auto = class(TForm)
BitBtn1: TBitBtn;
auto_model: TDBEdit;
Label1: TLabel;
auto_type_id: TDBEdit;
Label2: TLabel;
auto_tarif_km: TDBEdit;
Label3: TLabel;
auto_tarif_hour: TDBEdit;
Label4: TLabel;
auto_photo1: TDBEdit;
auto_photo2: TDBEdit;
auto_photo3: TDBEdit;
Image1: TImage;
Image2: TImage;
Image3: TImage;
auto_type: TEdit;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
recnum: TLabel;
Label11: TLabel;
reccount: TLabel;
But_first: TBitBtn;
But_prev: TBitBtn;
But_next: TBitBtn;
But_last: TBitBtn;
But_add: TBitBtn;
But_del: TBitBtn;
Image4: TImage;
procedure BitBtn1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure But_firstClick(Sender: TObject);
procedure But_prevClick(Sender: TObject);
procedure But_nextClick(Sender: TObject);
procedure But_lastClick(Sender: TObject);
procedure But_delClick(Sender: TObject);
procedure But_addClick(Sender: TObject);
procedure myScroll();
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form_auto: TForm_auto;

implementation

uses Unit2, Unit6;

{$R *.dfm}

procedure TForm_auto.myScroll;
var sql : string;
begin
auto_type.Text := '';
Image1.Picture := nil;
Image2.Picture := nil;
Image3.Picture := nil;
if DM.Tab_auto.RecordCount >0 then
begin
//DM.Tab_auto.First;
recnum.Caption := IntToStr(DM.Tab_auto.RecNo);
reccount.Caption := IntToStr(DM.Tab_auto.RecordCount);
sql := 'SELECT type FROM auto_type WHERE id=' + auto_type_id.Text + ' LIMIT 1';
// showMessage(sql);
DM.Query1.SQL.Clear;
DM.Query1.SQL.Add(sql);
DM.Query1.Open;

if DM.Query1.RecordCount >0 then auto_type.Text := DM.Query1.Fields[0].Value;

if auto_photo1.Text <> '' then
try
Image1.Picture.LoadFromFile(GetCurrentDir + '\img\' + auto_photo1.Text);
except
end;

if auto_photo2.Text <> '' then
try
Image2.Picture.LoadFromFile(GetCurrentDir + '\img\' + auto_photo2.Text);
except
end;

if auto_photo3.Text <> '' then
try
Image3.Picture.LoadFromFile(GetCurrentDir + '\img\' + auto_photo3.Text);
except
end;

end;

end;

procedure TForm_auto.BitBtn1Click(Sender: TObject);
begin
Form_auto.Close;
end;

procedure TForm_auto.FormShow(Sender: TObject);
begin
SetCurrentDir(ExtractFileDir(Application.Exename));
myScroll;
end;

procedure TForm_auto.But_firstClick(Sender: TObject);
begin
if DM.Tab_auto.RecNo > 1 then
begin
DM.Tab_auto.First;
myScroll;
end
else ShowMessage('Начало таблицы');
end;

procedure TForm_auto.But_prevClick(Sender: TObject);
begin
if DM.Tab_auto.RecNo > 1 then
begin
DM.Tab_auto.Prior;
myScroll;
end
else ShowMessage('Начало таблицы');
end;

procedure TForm_auto.But_nextClick(Sender: TObject);
begin
if DM.Tab_auto.RecNo < DM.Tab_auto.RecordCount then
begin
DM.Tab_auto.Next;
myScroll;
end
else ShowMessage('Конец таблицы');
end;

procedure TForm_auto.But_lastClick(Sender: TObject);
begin
if DM.Tab_auto.RecNo < DM.Tab_auto.RecordCount then
begin
DM.Tab_auto.Last;
myScroll;
end
else ShowMessage('Конец таблицы');
end;

procedure TForm_auto.But_delClick(Sender: TObject);
var rez: TModalResult;
begin
rez:= MessageDlg('Удалить запись?',mtConfirmation,[mbYes,mbNo],0);
if rez = mrYes then
begin
if DM.Tab_auto.RecordCount > 0 then
begin
DM.Tab_auto.Delete;
auto_type.Text := '';
if Image1.Picture <> nil then Image1.Picture := nil;
if Image2.Picture <> nil then Image2.Picture := nil;
if Image3.Picture <> nil then Image3.Picture := nil;
DM.Tab_auto.First;
myScroll;
end;
end;
end;

procedure TForm_auto.But_addClick(Sender: TObject);
begin
Form_new_auto.ShowModal;
end;

end.

Unit6.pas
unit Unit6;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtDlgs, ExtCtrls, jpeg;

type
TForm_new_auto = class(TForm)
auto_type: TComboBox;
auto_model: TEdit;
auto_tarif_km: TEdit;
auto_tarif_hour: TEdit;
BitBtn1: TBitBtn;
auto_type_id: TComboBox;
auto_photo1: TEdit;
auto_photo2: TEdit;
auto_photo3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
OpenPictureDialog1: TOpenPictureDialog;
OpenPictureDialog2: TOpenPictureDialog;
OpenPictureDialog3: TOpenPictureDialog;
load_photo1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
Image1: TImage;
Image2: TImage;
Image3: TImage;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
But_save: TBitBtn;
Image4: TImage;
procedure BitBtn1Click(Sender: TObject);
procedure load_photo1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure auto_typeChange(Sender: TObject);
procedure But_saveClick(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form_new_auto: TForm_new_auto;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm_new_auto.BitBtn1Click(Sender: TObject);
begin
Form_new_auto.Close;
end;

procedure TForm_new_auto.load_photo1Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
begin
auto_photo1.Text := ExtractFileName(OpenPictureDialog1.Filename);
SetCurrentDir(ExtractFileDir(Application.ExeName));
//ShowMessage(ExtractFileDir(Application.ExeName));
Image1.Picture.LoadFromFile(GetCurrentDir + '\img\' + auto_photo1.Text);
end;

end;

procedure TForm_new_auto.FormShow(Sender: TObject);
var sql : string;
i : integer;
begin
sql := 'SELECT id,type FROM auto_type WHERE 1 ORDER BY type';
// showMessage(sql);
DM.Query1.SQL.Clear;
DM.Query1.SQL.Add(sql);
DM.Query1.Open;

auto_type.Items.Clear;
auto_type_id.Items.Clear;
DM.Query1.First;
for i:=0 to DM.Query1.RecordCount-1 do
begin
auto_type.Items.Add(DM.Query1.Fields[1].AsString);
auto_type_id.Items.Add(DM.Query1.Fields[0].AsString);
DM.Query1.Next;
end;
auto_type.ItemIndex := 0;
auto_type_id.ItemIndex := 0;
end;

procedure TForm_new_auto.auto_typeChange(Sender: TObject);
begin
auto_type_id.ItemIndex := auto_type.ItemIndex;
end;

procedure TForm_new_auto.But_saveClick(Sender: TObject);
begin
DM.Tab_auto.Insert;
DM.Tab_autoidtype.Value := StrToInt(auto_type_id.Text);
DM.Tab_automodel.Value := auto_model.Text;
DM.Tab_autotarif_km.Value := StrToInt(auto_tarif_km.Text);
DM.Tab_autotarif_hour.Value := StrToInt(auto_tarif_hour.Text);
DM.Tab_autophoto1.Value := auto_photo1.Text;
DM.Tab_autophoto2.Value := auto_photo2.Text;
DM.Tab_autophoto3.Value := auto_photo3.Text;
DM.Tab_auto.Post;
SetCurrentDir(ExtractFileDir(Application.Exename));
if Image1.Picture <> nil then Image1.Picture.SaveToFile(GetCurrentDir + '\img\' + auto_photo1.Text);
if Image2.Picture <> nil then Image2.Picture.SaveToFile(GetCurrentDir + '\img\' + auto_photo2.Text);
if Image3.Picture <> nil then Image3.Picture.SaveToFile(GetCurrentDir + '\img\' + auto_photo3.Text);
ShowMessage('Запись добавлена');
Form_new_auto.Close;
end;

procedure TForm_new_auto.BitBtn2Click(Sender: TObject);
begin
if OpenPictureDialog2.Execute then
begin
auto_photo2.Text := ExtractFileName(OpenPictureDialog2.Filename);
SetCurrentDir(ExtractFileDir(Application.Exename));
Image2.Picture.LoadFromFile(GetCurrentDir + '\img\' + auto_photo2.Text);
end;

end;

procedure TForm_new_auto.BitBtn3Click(Sender: TObject);
begin
if OpenPictureDialog3.Execute then
begin
auto_photo3.Text := ExtractFileName(OpenPictureDialog3.Filename);
SetCurrentDir(ExtractFileDir(Application.Exename));
Image3.Picture.LoadFromFile(GetCurrentDir + '\img\' + auto_photo3.Text);
end;
end;

end.

Unit7.pas
unit Unit7;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, dbcgrids, Mask, DBCtrls, ExtCtrls, jpeg;

type
TForm_drivers = class(TForm)
BitBtn1: TBitBtn;
DBCtrlGrid1: TDBCtrlGrid;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBNavigator1: TDBNavigator;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Image1: TImage;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form_drivers: TForm_drivers;

implementation

uses Unit2;
{$R *.dfm}

procedure TForm_drivers.BitBtn1Click(Sender: TObject);
begin
Form_drivers.Close;
end;

end.

Unit8.pas
unit Unit8;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Mask, DBCtrls, dbcgrids, jpeg, ExtCtrls;

type
TForm_zakaz = class(TForm)
BitBtn1: TBitBtn;
DBCtrlGrid1: TDBCtrlGrid;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Image1: TImage;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form_zakaz: TForm_zakaz;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm_zakaz.BitBtn1Click(Sender: TObject);
begin
Form_zakaz.Close;
end;

end.


По материалам сайта ru.wikipedia.org












91

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

1.Архангельский А.Я. «Программирование в Delphi для Windows», Бином-Пресс, 2005г.
2.Архангельский А.Я. «Программирование в Delphi. Учебник по классическим версиям Delphi », Бином-Пресс, 2005г.
3.Бакнелл Джулиан «Фундаментальные структуры данных и алгоритмы в Delphi», Питер 2006г.
4.Голицина О.Л. «Базы данных», Инфра-М, 2007г.
5.Горев А., Макашарипов С., «Эффективная работа с СУБД» СПб, «Питер», 1997г.
6.Диго С.М. «Базы данных: проектирование и использование», Финансы и статистика, 2005г.
7.Дунаев В.В. «Базы данных. Язык SQL», БХВ-Петербург, 2007г.
8.Дюбуа П. «MySQL», Вильямс, 2007 г.
9.Дюбуа П. «MySQL. Сборник рецептов», Символ-Плюс, 2004 г.
10.Кадлец В. «Delphi. Книга рецептов. Практические примеры, трюки и секреты», Наука и техника, 2006г.
11.Кириллов В.В. «Основы проектирования реляционных баз данных.» Учебное пособие. - СПб.: ИТМО, 1994.
12.Кузнецов С.Д. «Базы данных. Модели и языки», Бином-Пресс, 2008г.
13.Малыхина М.П. «Базы данных. Основы, проектирование, использование», БХВ-Петербург, 2006г.
14.Иарко Кэнту «Delphi для профессионалов», Питер, 2006г.
15.Осипов Д. «Delphi. Профессиональное программирование», Символ-плюс, 2003г.
16.Рудикова Л.В. «Базы данных. Разработка приложений», БХВ-Петербург, 2006г.
17.Советов Б.Я. «Базы данных. Теория и практика», Высшая школа, 2005г.
18.Фаронов В. «Delphi. Разработка приложений для баз данных и Интернета», Питер 2006г.
19.Фаронов В. «Delphi. Язык, среда, разработка приложений», Питер 2006г.
20.Фаронов В. «Delphi 2005. Переход с младших версий», Питер 2007г.
21.Фрост Р. «Базы данных. Проектирование и разработка», НТ Пресс, 2007г.
22.Фуфаев Э.В. «Базы данных», Академия, 2007г.
23.Хомоненко А.Д. «Базы данных», Бином-Пресс, 2007г.
24.Дюбуа П. «MySQL. Сборник рецептов», Символ-Плюс, 2004 г.
25.«MySQL. Руководство администратора», Вильямс, 2005г.
26.«MySQL. Справочник по языку», Вильямс, 2005г.
27.Хомоненко А., Гофман В., Мещеряков Е., Никифоров В. «Delphi 7» СПб, «БХВ-Петербург», 2005.
28.Хомоненко А. «Delphi 7. Наиболее полное руководство»

Материалы сайтов:
29.http://ru.wikipedia.org
30.http://mysql.org


Узнать стоимость работы