67664

Создание базы данных для ведения учета товара АРМ мечендайзер ТОО «ATService»

Дипломная

Информатика, кибернетика и программирование

Созданная программа «АРМ мечендайзер ТОО «ATService»» является перспективной разработкой, так как на основе уже хранящейся информации работают отделы служб вычислительной техники многих организаций. Таким образом, не исключено создание другими разработчиками новых версий программы...

Русский

2014-09-13

3.12 MB

16 чел.

Содержание

Введение

1  Основная часть

          1.1.Описание систем управления базами данных

          1.2. Описание языка программирования

          1.3. Масштабируемые средства для построения баз данных.

2. Практическая часть

          2.1. Постановка задачи

          2.1.1 Входная информация

         2.1.2. Выходная информация

         2.1.3.Описание программы

         2.2. Инструкция программисту

         2.3. Инструкция пользователю

3. Охрана труда

         3.1.Общее положение

         3.2.  Пожарная безопасность

         3.3.Защита от ионизирующего излучения

4 Раздел экономики

          4.1. Общее положение

          4.2. Методика расчетов

          4.3  Расчетная часть

5 Заключение

6. Список используемой литературы

7. Приложение

          7.1. Блок-схема

          7.2. Графическая часть

          7.3. Листинг программы


Введение

Данный дипломный проект написан на тему «АРМ мечендайзер ТОО «ATService»», целью которого было создать базу данных для ведения учета товара.

Созданная программа «АРМ мечендайзер ТОО «ATService»»является перспективной разработкой, так как на основе уже хранящейся информации работают отделы служб вычислительной техники многих организаций. Таким образом, не исключено создание другими разработчиками новых версий программы для автоматизации отделов служб вычислительной техники и  материальной части.

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

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

−       физическом размещении в памяти данных и их описаний;

−       механизмах поиска запрашиваемых данных;

−       проблемах, возникающих при одновременном запросе одних и тех же данных многими пользователями (прикладными программами);

− способах обеспечения защиты данных от некорректных обновлений и (или) несанкционированного доступа;

−       поддержании баз данных в актуальном состоянии   и множестве других функций СУБД.

1.1.Описание систем управления базами данных

База данных – это система специальным образом организованных данных (баз данных), программных, технических, языковых, организационно-методических средств, предназначенных для централизованного накопления и коллективного многоцелевого использования данных. Базы данных создаются для решения многих задач, для многих пользователей.

        Наличие специальных языковых и программных средств, которые облегчают выполнение тех или иных операций для пользователя. Такая совокупность языковых и программных средств называется системой управления базами данных ( СУБД ).

        Преимущества баз данных:

- независимость данных от отдельных задач;

- концентрация данных в единой базе;

- постоянная готовность информации базы;

- обеспечение коллективного доступа пользователей к информации;

- централизованное управление данными.

        Требования к базам данных:

  1.  Адекватность отражения предметной области.
  2.  Надежность функционирования, то есть защита от разрушений, возможность восстановления.
  3.  Возможность функционирования различных видов пользователей в различных режимах.
  4.  Быстродействие и производительность – количество запросов в единицу времени и время ответа на запрос.
  5.  Простота использования.
  6.  Возможность расширения, то есть добавление и удаление данных, модулей.

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

        Этапы жизненного цикла баз данных включают:

  1.  Планирование.
  2.  Проектирование.
  3.  Материализация.
  4.  Эксплуатация.
  5.  Развитие и совершенствование.

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

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

        Функции СУБД:

- организация хранения данных;

- определение и инициализация баз данных;

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

- защита целостности базы данных ( не противоречивость, неизбежность, полнота );

- управление доступом к базе данных;

- периодичность изменения хранимых данных.

1.2.Описание языка программирования

         Delphi - это среда разработки, используемой, прежде всего для создания и поддержки приложений, предназначенных как для отдельных персональных компьютеров, так и для серверов. Delphi, как и разработанные с ее помощью приложения, могут функционировать под практически любой 32 разрядной операционной системой типа Windows 95, 98, 2000, NT. Это довольно легкая в изучении среда, и в то же время довольно сложная. Delphi имеет пользовательский графический интерфейс, подобный Visual Basic и C++.

Пакет Delphi - продолжение линии компиляторов языка Pascal корпорации Borland. Pascal как язык очень прост, а строгий контроль типов данных способствует раннему обнаружению ошибок и позволяет быстро создавать надежные и эффективные программы. Корпорация Borland постоянно обогащала язык. Когда-то в версию 4.0 были включены средства раздельной трансляции, позже, начиная с версии 5.5, появились объекты, а в состав шестой версии пакета вошла полноценная библиотека классов Turbo Vision, реализующая оконную систему в текстовом режиме работы видеоадаптера. Это был один из первых продуктов, содержавших интегрированную среду разработки программ.

    В классе инструментальных средств для начинающих программистов продуктам компании Borland пришлось конкурировать со средой Visual Basic корпорации Microsoft, где вопросы интеграции и удобства работы были решены лучше. Когда в начале 70-х годов Н. Вирт опубликовал сообщение о Pascal, это был компактный, с небольшим количеством основных понятий и зарезервированных слов язык программирования, нацеленный на обучение студентов. Язык, на котором предстоит работать пользователю Delphi, отличается от исходного не только наличием множества новых понятий и конструкций, но и идейно: в нем вместо минимизации числа понятий и использования самых простых конструкций (что, безусловно, хорошо для обучения, но не всегда оправдано в практической работе), предпочтение отдается удобству работы профессионального пользователя. Как язык Turbo Pascal естественно сравнивать с его ближайшими конкурентами - многочисленными вариациями на тему языка Basic (в первую очередь с Visual Basic корпорации Microsoft) и с C++. Я считаю, что Turbo Pascal существенно превосходит Basic за счет полноценного объектного подхода, включающего в себя развитые механизмы инкапсуляции, наследование и полиморфизм. Последняя версия языка, применяемая в Delphi, по своим возможностям приближается к C++. Из основных механизмов, присущих C++, отсутствует только множественное наследование. (Впрочем, этим красивым и мощным механизмом порождения новых классов пользуется лишь небольшая часть программистов, пишущих на  С++.) Плюсы применения языка Pascal очевидны: с одной стороны, в отличие от Visual Basic, основанного на интерпретации промежуточного кода, для него имеется компилятор, генерирующий машинный код, что позволяет получать значительно более быстрые программы.

в отличие от C++ синтаксис языка Pascal способствует построению очень быстрых компиляторов.

    Среда программирования напоминает пакет Visual Basic. В вашем распоряжении несколько отдельных окон: меню и инструментальные панели, Object Inspector (в котором можно видеть свойства объекта и связанные с ним события), окна визуального построителя интерфейсов (Visual User Interface Builder), Object Browser (позволяющее изучать иерархию классов и просматривать списки их полей, методов и свойств), окна управления проектом (Project Manager) и редактор.

    Delphi содержит полноценный текстовый редактор типа Brief, назначения клавиш в котором соответствуют принятым в Windows стандартам, а глубина иерархии операций Undo неограниченна. Как это стало уже обязательным, реализовано цветовое выделение различных лексических элементов программы. Процесс построения приложения достаточно прост. Нужно выбрать форму (в понятие формы входят обычные, диалоговые, родительские и дочерние окна MDI), задать ее свойства и включить в нее необходимые компоненты (видимые и, если понадобится, неотображаемые): меню, инструментальные панели, строку состояния и т. п., задать их свойства и далее написать (с помощью редактора исходного кода) обработчики событий. Object Browser Окна типа Object Browser стали неотъемлемой частью систем программирования на объектно-ориентированных языках. Работа с ними становится возможной сразу после того, как вы скомпилировали приложение.

    Projeсt Manager - это отдельное окно, где перечисляются модули и формы, составляющие проект. При каждом модуле указывается маршрут к каталогу, в котором находится исходный текст. Жирным шрифтом выделяются измененные, но еще не сохраненные части проекта. В верхней части окна имеется набор кнопок: добавить, удалить, показать исходный текст, показать форму, задать опции и синхронизировать содержимое окна с текстом файла проекта, т. е. с головной программой на языке Pascal.

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

    Visual Component Library (VCL) Богатство палитры объектов для построения пользовательского интерфейса - один из ключевых факторов при выборе инструмента визуального программирования. При этом для пользователя имеет значение как число элементов, включенных непосредственно в среду, так и доступность элементов соответствующего формата на рынке.

Высокопроизводительный компилятор в машинный код.

Компиляторы языка Pascal компании Borland никогда не заставляли пользователя подолгу ждать результатов компиляции. Производители утверждают, что на сегодня данный компилятор - самый быстрый в мире. Компилятор, встроенный в Delphi позволяет обрабатывать 120 тыс. строк исходного текста в минуту на машине 486/33 или 350 тыс. - при использовании процессора Pentium/90. Он предлагает легкость разработки и быстрое время проверки готового программного блока, характерного для языков четвертого поколения (4GL) и в то же время обеспечивает качество кода, характерного для компилятора 3GL. Кроме того, Delphi обеспечивает быструю разработку без необходимости писать вставки на Си или ручного написания кода (хотя это возможно).     В смысле проектирования Delphi мало, чем отличается от проектирования в интерпретирующей среде, однако после выполнения компиляции мы получаем код, который исполняется в 10-20 раз быстрее, чем тоже самое, сделанное при помощи интерпретатора. Кроме того, компилятор компилятору рознь, в Delphi компиляция производится непосредственно в родной машинный код, в то время как существуют компиляторы, превращающие программу в так называемый

p-код, который затем интерпретируется виртуальной p-машиной. Это не может не сказаться на фактическом быстродействии готового приложения.

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

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

Мощный объектно-ориентированный язык.

Совместимость с программами, созданными ранее средствами Borland Pascal, сохраняется, несмотря на то, что в язык внесены существенные изменения. Необходимость в некоторых усовершенствованиях давно ощущалась. Самое заметное из них - аппарат исключительных ситуаций, подобный тому, что имеется в C++, был первым реализован в компиляторах корпорации Borland. Не секрет, что при написании объектно-ориентированных программ, активно работающих с динамической памятью и другими ресурсами, немалую трудность представляет аккуратное освобождение этих ресурсов в случае возникновения нештатных ситуаций. Особенно это актуально для среды Windows, где число видов ресурсов довольно велико, а неряшливая работа с ними может быстро привести к зависанию всей системы. Предусмотренный в Delphi аппарат исключений максимально упрощает кодирование обработки нештатных ситуаций и освобождения ресурсов.

    Объектно-ориентированный подход в новой версии языка получил значительное развитие. Перечислим основные новшества.

- введено понятие класса.

реализованы методы классов, аналогичные статическим методам C++. Они оперируют не экземпляром класса, а самим классом.

механизм инкапсуляции во многом усовершенствован. Введены защищенные поля и методы, которые, подобно приватным, не видны извне, но отличаются от них тем, что доступны из методов класса- наследника.

- введена обработка исключительных ситуаций. В Delphi это устроено в стиле С++. Исключения представлены в виде объектов, содержащих специфическую информацию о соответствующей ошибке (тип и место - нахождение ошибки). Разработчик может оставить обработку ошибки, существовавшую по умолчанию, или написать свой собственный обработчик. Обработка исключений реализована в виде exception-handling blocks (также еще называется protected blocks), которые устанавливаются ключевыми словами try и end. Существуют два типа таких блоков: try...except и try...finally.

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

- ссылки на классы придают дополнительный уровень гибкости, так, когда вы хотите динамически создавать объекты, чьи типы могут быть известны только во время выполнения кода. К примеру, ссылки на классы используются при формировании пользователем документа из разного типа объектов, где пользователь набирает нужные объекты из меню или палитры. Собственно, эта - технология использовалась и при построении Delphi.

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

   После того как Borland внесла перечисленные изменения, получился мощный объектно-ориентированный язык, сопоставимый по своим возможностям с C++. Платой за новые функции стало значительное повышение требований к профессиональной подготовке программиста.

    Язык программирования Delphi базируется на Borland Object Pascal.

Кроме того, Delphi поддерживает такие низкоуровневые особенности, как подклассы элементов управления Windows, перекрытие цикла обработки сообщений Windows, использование встроенного ассемблера.

Объектно-ориентированная модель программных компонент.

Основной упор этой модели в Delphi делается на максимальном повторном использовании кода. Это позволяет разработчикам строить приложения весьма быстро из заранее подготовленных объектов, а также дает им возможность создавать свои собственные объекты для среды Delphi. Никаких ограничений по типам объектов, которые могут создавать разработчики, не существует. Действительно, все в Delphi написано на нем же, поэтому разработчики имеют доступ к тем же объектам и инструментам, которые использовались для создания среды разработки. В результате нет никакой разницы между объектами, поставляемыми Borland или третьими фирмами, и объектами, которые вы можете создать.

    В стандартную поставку Delphi входят основные объекты, которые образуют удачно подобранную иерархию из 270 базовых классов. На Delphi можно одинаково хорошо писать как приложения к корпоративным базам данных, так и, к примеру, игровые программы. Во многом это объясняется тем, что традиционно в среде Windows было достаточно сложно реализовывать пользовательский интерфейс. Событийная модель в Windows всегда была сложна для понимания и отладки. Но именно разработка интерфейса в Delphi является самой простой задачей для программиста.

    Благодаря такой возможности приложения, изготовленные при помощи Delphi, работают надежно и устойчиво. Delphi поддерживает использование уже существующих объектов, включая DLL, написанные на С и С++, OLE сервера, VBX, объекты, созданные при помощи Delphi. Из готовых компонент работающие приложения собираются очень быстро. Кроме того, поскольку Delphi имеет полностью объектную ориентацию, разработчики могут создавать свои повторно используемые объекты для того, чтобы уменьшить затраты на разработку.

    Delphi предлагает разработчикам - как в составе команды, так и индивидуальным - открытую архитектуру, позволяющую добавлять компоненты, где бы они ни были изготовлены, и оперировать этими вновь введенными компонентами в визуальном построителе. Разработчики могут добавлять CASE-инструменты, кодовые генераторы, а также авторские help’ы, доступные через меню Delphi.

Библиотека визуальных компонент.

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

    Этот костяк называется Visual Component Library (VCL). В VCL есть такие стандартные элементы управления, как строки редактирования, статические элементы управления, строки редактирования со списками, списки объектов. Еще имеются такие компоненты, которые ранее были доступны только в библиотеках третьих фирм: табличные элементы управления, закладки, многостраничные записные книжки. Все объекты разбиты на страницы по своей функциональности и представлены в палитре компонент.

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

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

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

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

TMainMenu позволяет поместить главное меню в программу. При помещении TMainMenu на форму это выглядит, как просто иконка. Иконки данного типа называют не визуальным компонентом, поскольку они невидимы во время выполнения программы.

TPopupMenu позволяет создавать всплывающие меню. Этот тип меню появляется по щелчку правой кнопки мыши на объекте, к которому привязано данное меню. У всех видимых объектов имеется свойство PopupMenu, где и указывается нужное меню. Создается PopupMenu аналогично главному меню.

TLabel служит для отображения текста на экране. Можно изменить шрифт и цвет метки, если дважды щелкнуть на свойство Font в Инспекторе Объектов. Это легко сделать и во время выполнения программы, написав всего одну строчку кода.

TEdit - стандартный управляющий элемент Windows для ввода. Он может быть использован для отображения короткого фрагмента текста и позволяет пользователю вводить текст во время выполнения программы.

TMemo - иная форма TEdit. Подразумевает работу с большими текстами. TMemo может переносить слова, сохранять в ClipBoard фрагменты текста и восстанавливать их, и другие основные функции редактора. TMemo имеет ограничения на объем текста в 32Кб, это составляет 10-20 страниц (есть подобные компоненты, где этот предел снят).

TButton позволяет выполнить какие-либо действия при нажатии кнопки во время выполнения программы. В Delphi все делается очень просто. Поместив TButton на форму, по двойному щелчку можно создать заготовку обработчика события нажатия кнопки.

TCheckBox отображает строку текста с маленьким окошком рядом. В окошке можно поставить отметку, которая означает, что что-то выбрано.

TRadioButton позволяет выбрать только одну опцию из нескольких.

TListBox нужен для показа прокручиваемого списка. Классический пример ListBox’а в среде Windows - выбор файла из списка в пункте меню File Open многих приложений. Названия файлов или директорий и находятся в ListBox’е.

TComboBox во многом напоминает ListBox, за исключением того, что позволяет водить информацию в маленьком поле ввода сверху ListBox. Есть несколько типов ComboBox, но наиболее популярен спадающий вниз (drop-down combo box), который можно видеть внизу окна диалога выбора файла.

TScrollbar - полоса прокрутки, появляется автоматически в объектах редактирования, ListBox’ах при необходимости прокрутки текста для просмотра.

TGroupBox используется для визуальных целей и для указания Windows, каков порядок перемещения по компонентам на форме (при нажатии клавиши TAB).

TRadioGroup используется аналогично TGroupBox, для группировки объектов TRadioButton.

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

TBitBtn - кнопка вроде TButton, однако на ней можно разместить картинку (glyph). TBitBtn имеет несколько предопределенных типов (bkClose, bkOK и др), при выборе которых кнопка принимает соответствующий вид. Кроме того, нажатие кнопки на модальном окне приводит к закрытию окна с соответствующим модальным результатом.

TSpeedButton - кнопка для создания панели быстрого доступа к командам (SpeedBar). Пример - SpeedBar слева от Палитры Компонент в среде Delphi. Обычно на данную кнопку помещается только картинка (glyph).

TTabSet - горизонтальные закладки. Обычно используется вместе с TNoteBook для создания многостраничных окон. Название страниц можно задать в свойстве Tabs.

TNoteBook - используется для создания многостраничного диалога, на каждой странице располагается свой набор объектов. Используется совместно с TTabSet.

TTabbedNotebook - многостраничный диалог со встроенными закладками, в данном случае - закладки сверху.

TMaskEdit - аналог TEdit, но с возможностью форматированного ввода. Формат определяется в свойстве EditMask. В редакторе свойств для EditMask есть заготовки некоторых форматов: даты, валюты и т.п.

TOutline - используется для представления иерархических отношений связанных данных. Например - дерево директорий.

TStringGrid - служит для представления текстовых данных в виде таблицы. Доступ к каждому элементу таблицы происходит через свойство Cell.

TDrawGrid - служит для представления данных любого типа в виде таблицы. Доступ к каждому элементу таблицы происходит через свойство CellRect.

TImage - отображает графическое изображение на форме. Воспринимает форматы BMP, ICO, WMF. Если картинку подключить во время дизайна программы, то она прикомпилируется к EXE файлу.

TShape - служит для отображения простейших графических объектов на форме: окружность, квадрат и т.п.

TBevel - элемент для рельефного оформления интерфейса.

THeader - элемент оформления для создания заголовков с изменяемыми размерами для таблиц.

TScrollBox - позволяет создать на форме прокручиваемую область с размерами большими, нежели экран. На этой области можно разместить свои объекты.

TTimer - таймер, событие OnTimer периодически вызывается через промежуток времени, указанный в свойстве Interval. Период времени может составлять от 1 до 65535 мс.

TPaintBox - место для рисования. В обработчики событий, связанных с мышкой передаются относительные координаты мышки в TPaintBox, а не абсолютные в форме.

TFileListBox - специализированный ListBox, в котором отображаются файлы из указанной директории (св-во Directory). На названия файлов можно наложить маску, для этого служит св-во Mask. Кроме того, в св-ве FileEdit можно указать объект TEdit для редактирования маски.

TDirectoryListBox - специализированный ListBox, в котором отображается структура директорий текущего диска. В св-ве FileList можно указать TFileListBox, который будет автоматически отслеживать переход в другую директорию.

TDriveComboBox - специализированный ComboBox для выбора текущего диска. Имеет свойство DirList, в котором можно указать TDirectoryListBox,

который будет отслеживать переход на другой диск.

TFilterComboBox - специализированный ComboBox для выбора маски имени

файлов. Список масок определяется в свойстве Filter. В свойстве FileList указывается TFileListBox, на который устанавливается маска.

С помощью последних четырех компонент (TFileListBox, TDirectoryListBox, TDriveComboBox, TFilterComboBox) можно построить свой собственный диалог выбора файла, причем для этого не потребуется написать ни одной строчки кода.

TMediaPlayer - служит для управления мультимедийными устройствами (типа CD-ROM, MIDI и т.п.). Выполнен в виде панели управления с кнопками Play, Stop, Record и др. Для воспроизведения может понадобиться как соответствующее оборудование, так и программное обеспечение. Подключение устройств и установка ПО производится в среде Windows. Например, для воспроизведения видео, записанного в формате AVI, потребуется установить ПО MicroSoft Video (в Windows 3.0, 3.1, WFW 3.11).

TOLEContainer - контейнер, содержащий OLE объекты. Поддерживается

OLE 2.02

TDDEClientConv,TDDEClientItem, TDDEServerConv, TDDEServerItem - 4 объекта для организации DDE. С помощью этих объектов можно построить приложение как DDE-сервер, так и DDE-клиент.

TChartFX - деловая графика. Компонент позволяет строить всевозможные графики и гистограммы.

Формы, модули и метод разработки "Two-Way Tools".

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

    Информация о формах хранится в двух типах файлов - .dfm и .pas, причем первый тип файла - двоичный - хранит образ формы и ее свойства, второй тип описывает функционирование обработчиков событий и поведение компонент. Оба файла автоматически синхронизируются Delphi, так что если добавить

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

    Такая синхронизация и делает Delphi two-way-инструментом, обеспечивая полное соответствие между кодом и визуальным представлением. Как только добавляется новый объект или код, Delphi устанавливает “кодовую синхронизацию” между визуальными элементами и соответствующими им кодовыми представлениями.

    Two-way tools - однозначное соответствие между визуальным проектированием и классическим написанием текста программы. Это означает, что разработчик всегда может видеть код, соответствующий тому, что он построил при помощи визуальных инструментов и наоборот.

    Визуальный построитель интерфейсов (Visual User-interface builder) дает возможность быстро создавать клиент-серверные приложения визуально, просто выбирая компоненты из соответствующей палитры. В процессе построения приложения разработчик выбирает из палитры компонент, готовые компоненты как художник, делающий крупные мазки кистью. Еще до компиляции он видит результаты своей работы - после подключения к источнику данных их можно видеть отображенными на форме, можно перемещаться по данным, представлять их в том или ином виде.

1.3. Масштабируемые средства для построения баз данных.

Мощность и гибкость Delphi при работе с базами данных основана на низкоуровневом ядре - процессоре баз данных Borland Database Engine (BDE). Его интерфейс с прикладными программами называется Integrated Database Application Programming Interface (IDAPI). В принципе, сейчас не различают эти два названия (BDE и IDAPI) и считают их синонимами. BDE позволяет осуществлять доступ к данным как с использованием традиционного record-ориентированного (навигационного) подхода, так и с использованием set-ориентированного подхода, используемого в SQL-серверах баз данных. Кроме BDE, Delphi позволяет осуществлять доступ к базам данных, используя

технологию (и, соответственно, драйверы) Open DataBase Connectivity (ODBC) фирмы Microsoft. Но, как показывает практика, производительность систем с использованием BDE гораздо выше, чем оных при использовании ODBC. ODBC драйвера работают через специальный "ODBC socket", который позволяет встраивать их в BDE.

    Все инструментальные средства баз данных Borland - Paradox, dBase, Database Desktop - используют BDE. Все особенности, имеющиеся в Paradox или dBase, “наследуются” BDE, и поэтому этими же особенностями обладает и Delphi.

    Библиотека объектов содержит набор визуальных компонент, значительно упрощающих разработку приложений для СУБД с архитектурой клиент-сервер. Объекты инкапсулируют в себя нижний уровень - Borland Database Engine.

Предусмотрены специальные наборы компонент, отвечающих за доступ к данным, и компонент, отображающих данные. Компоненты доступа к данным позволяют осуществлять соединения с БД, производить выборку, копирование данных, и т.п.

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

    Таблицы сохраняются в базе данных. Некоторые СУБД сохраняют базу данных в виде нескольких отдельных файлов, представляющих собой таблицы (в основном, все локальные СУБД), в то время как другие состоят из одного файла, который содержит в себе все таблицы и индексы (InterBase). Например, таблицы dBase и Paradox всегда сохраняются в отдельных файлах на диске. Директорий, содержащий dBase .DBF файлы или Paradox .DB файлы, рассматривается как база данных. Другими словами, любой директорий, содержащий файлы вформате Paradox или dBase, рассматривается Delphi как единая база данных. Для переключения на другую базу данных нужно просто переключиться на другой директорий. InterBase сохраняет все таблицы в одном

файле, имеющем расширение .GDB, поэтому этот файл и есть база данных InterBase.

    Объекты БД в Delphi основаны на SQL и включают в себя полную мощь Borland Database Engine. В состав Delphi также включен Borland SQL Link, поэтому доступ к СУБД Oracle, Sybase, Informix и InterBase происходит с высокой эффективностью. Кроме того, Delphi включает в себя локальный сервер Interbase для того, чтобы можно было разработать расширяемые на любые внешние SQL-сервера приложения в онлайновом режиме. Разработчик в среде Delphi, проектирующий информационную систему для локальной машины (к примеру, небольшую систему учета медицинских карточек для одного компьютера), может использовать для хранения информации файлы формата .dbf (как в dBase или Clipper) или .db (Paradox). Если же он будет использовать локальный InterBase for Windows 4.0 (это локальный SQL-сервер, входящий в поставку), то его приложение безо всяких изменений будет работать и в составе большой системы с архитектурой клиент-сервер.

     Масштабируемость на практике - одно и то же приложение можно использовать как для локального, так и для более серьезного клиент-серверного вариантов.

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

Database Desktop - это утилита, во многом похожая на Paradox, которая поставляется вместе с Delphi для интерактивной работы с таблицами различных форматов локальных баз данных - Paradox и dBase, а также SQL-серверных баз данных InterBase, Oracle, Informix, Sybase (с использованием SQL Links). Она позволяет создавать как структуру реляционных таблиц, так и всевозможные ограничения целостности таблиц, индексы, первичные ключи и внешние ключи.

WISQL (Windows Interactive SQL) - интерактивное средство посылки SQL-запросов к InterBase (в том числе и локальному InterBase), входящее в поставку Delphi, позволяет создавать таблицы - через посылку SQL-запросов. Database

Desktop не обладает всеми возможностями по управлению SQL-серверными базами данных. Поэтому с помощью Database Desktop удобно создавать или локальные базы данных, или только простейшие SQL-серверные базы данных, состоящие из небольшого числа таблиц, не очень сильно связанных друг с другом. Если же необходимо создать базу данных, состоящую из большого числа таблиц, имеющих сложные взаимосвязи, можно воспользоваться языком SQL. Можно записать всю последовательность SQL-предложений в один так называемый скрипт и послать его на выполнение. Конкретные реализации языка SQL незначительно отличаются в различных SQL-серверах, однако базовые предложения остаются одинаковыми для всех реализаций. Практика показывает, что если нет необходимости создавать таблицы во время выполнения программы, то лучше воспользоваться WISQL.

InterBase - это система управления реляционными базами данных, поставляемая корпорацией BORLAND для построения приложений с архитектурой клиент-сервер произвольного масштаба: от сетевой среды небольшой рабочей группы с сервером под управлением Novell NetWare или Windows NT на базе IBM PC до информационных систем крупного предприятия на базе серверов IBM, Hewlett-Packard, SUN и т.п.

     В пакет Delphi входит однопользовательская версия InterBase для Windows - Local InterBase. Используя Local InterBase можно создавать и отлаживать приложения, работающие с данными по схеме клиент-сервер, без подключения к настоящему серверу. В дальнейшем потребуется только перенастроить используемый псевдоним базы данных и программа будет работать с реальной базой без перекомпиляции. Кроме того, Local InterBase можно использовать в приложениях для работы с данными вместо таблиц Paradox.

    Важной составной частью приложения является вывод данных на печать - получение отчета. В пакет Delphi входит средство для генерации и печати отчетов - ReportSmith. Вы можете объединить отчет с приложениями Delphi. Также, библиотека визуальных компонент Delphi включает специальный компонент TReport. В данном уроке показано, как использовать компоненту TRepor и рассмотрены основные принципы проектирования отчетов в ReportSmith.

    Borland ReportSmith является инструментом для получения отчетов и интегрирован в среду Delphi. Отчет может быть добавлен к приложениям Delphi. Отчеты могут быть созданы для SQL БД или локальных БД и не требуют знания сложных команд БД. Интерфейс ReportSmith использует стандартные инструменты Windows типа tool bar, formatting ribbon, и "drag and drop". Если пользователь уже знаком с интерфейсом стандартных Windows-программ, типа Word for Windows или Quattro Pro for Windows, ему будет "знаком" и интерфейс ReportSmith. ReportSmith предлагает 4 типа отчетов: Табличный, Кросс-таблица(CrossTab), Форма(Form) и Наклейка(Label).

     ReportSmith использует концепцию "живых данных", т.е. работа происходит с настоящими данными все время, а не только тогда, когда запускается просмотр (preview). Кроме этого, ReportSmith легко работает с чрезвычайно большими БД при помощи адаптивной технологии управления памятью. В ReportSmith можно управлять тем, где сохраняется результат выборки данных из БД: в локальный памяти клиентской PC, на жестком диске клиентской PC, или на сервере.

2 Практическая часть

2.1. Постановка задачи

Программа должна содержать полную информацию о имеющемся товаре или  о новом поступление оборудования. База данных в программе активируется через меню главной формы, где будут содержаться названия всех имеющихся таблиц, подразделенные на соответствующие пункты. Именно в них должна происходить корректировка записей, ввод и удаление какой – либо информации. Например, выпадающий список повторяющихся значений. Должна быть форма с предоставлением выбора данных из той или иной таблицы. Также должен предоставляться отчет с выводом на печать, в котором должно выводиться выбранные данные. Все изменения базы данных записываются на диске.

2.1.1. Входная информация

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

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

- счет-фактура

- товарный чек

        Также для осуществления других операций можно выводить следующие документы:

- товар в наличие на складе

- прайс-лист.

        Все вышеперечисленные документы будут являться выходными параметрами в программе.

2.1.2. Выходная информация

Выходными данными в программе являются:

-Артикул;

-Наименование товара;

-Единица измерения;

-Количество;

-Цена;

2.1.3.Описание программы

Темой данной дипломной программы является «АРМ мечендайзер ТОО «ATService»». Результатом является программа «АРМ мечендайзер ТОО «ATService»».

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

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

Программа для дипломного проекта, «АРМ мечендайзер ТОО «ATService»», написана на визуальном языке программирования Delphi 6.0. Программа написана с помощью технологии доступа к данным ADO.

Несколько вспомогательных Tabbed Page, с компонентами: DBGrid, DataSourse, Table, привязанных соответственно к каждому пункту компонента MainMenu, промежуточную форму  с компонентами ComboBoxco списками в них выбора данных из таблиц, и форму – отчет с главным компонентом QuickRep и размещенных на нем QRBand и DetailBand с метками QRLabel и QRDBText.

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

Программа имеет главную форму См. Приложение2 Рис.1 с компонентом MainMenu См. Приложение2 Рис.2, с помощью этого компонента в главной форме пишется меню всех дальнейших действий в программе:

  •  Действие:
  •  общая База Данных (БД), также к ней привязывается “горячие кнопки” Ctrl +C, с помощью которых можно запустить ее. Привязка клавиш осуществляется в Объект инспекторе (Object Inspector ), в разделе Properties, свойство ShortCut, щелкнув по {None} левой кнопкой мыши один раз, выпадает меню с различными стандартными комбинациями клавиш. Выбрав любую из перечня комбинацию, она автоматически присваивается той или иной  вкладке меню которую предварительно выделили;  
  •  отчеты, привязка “горячих клавиш ” и дальнейшее оформление производится аналогичным способом;
  •  выход,  привязка “горячих клавиш” Ctrl +Z, обеспечивает безотказную активизацию выхода/закрытия из программы.    
    •  настройка интерфейса, она предназначена для того чтобы менять цветовой интерфейс всех форм программ. Это обеспечивает обновление визуального восприятия пользователя.
      •  о программе, в ней описывается необходимые данные о том на каком языке программирования она написана и  кто написал эту программу.
        •  справка, в ней описываются все данные, окна, приложения, кнопки которые содержатся в программе.

Общая БД

База данных хранит всю необходимую информацию. В ней находится DB Navigator – панель с действиями: удалить запись, первая запись, предыдущая запись, следующая запись, последняя запись, вставить запись, редактировать запись, сохранить запись, отменить редактирование, и служебная обновить данные. Непосредственно архива информация, необходимая для работы программы-оболочки. База данных абсолютно не имеет никакой привязки к оболочке, и к ее данным может обращатся какая-либо другая программа. Таким образом изначально заложена возможность развития всей программы ОК. Программа жестко привязана к базе данных. Она выполняет две наиболее выделяющихся функции. Во-первых она предоставляет данные из базы данных в удобном для пользователя виде а во-вторых производит различные манипуляции с хранящейся информацией.

2.2. Инструкция программисту

Для корректировки каких-либо ошибок или внесения дополнительных операций в данную программу, необходимо овладеть навыками программирования на Delphi7 и дополнительно руководствоваться учебными пособиями.

Минимальные требования к программе:

                             Intel Celeron 300

                             RAM 32 Mb

                             2 Mb HDD

                             Windows 98/2000/Me/XP

                             Borland Delphi 7.0.

2.3. Инструкция пользователю

Программа «АРМ мечендайзер ТОО «ATService»» создана для обычного пользователя.

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

  1.  На Рабочем столе выбрать двойным щелчком левой клавиши мыши папку БД;
  2.  В данной папке найти файл Project1 и открыть его вышеуказанным методом;
  3.  Программа откроется в окне приложения Delphi7, после чего для запуска программы нажмите клавишу F9. Запуск завершен.

        Для дальнейшей работы с программой хочу уточнить назначение и функции главного меню и вспомогательных кнопок программы:

  1.  Меню Файл:

- команда Выход – выход из программы;

  1.  Меню Справочники:

- команда Контрагенты – отображает список клиентов и поставщиков фирмы;

- команда Наши реквизиты – содержит сведения о данном предприятии;

- команда Группы товаров – отображение имеющихся групп товаров;

- команда Товар – список товаров, имеющихся на складе;

- команда Договора – список заключенных договоров с компаниями.

  1.  Меню Документы:

- Прайс-лист – вывод на печать наличия товара на предприятии;

- Товар на складе – вывод остатков товара на складе.

        Имеющиеся кнопки в главном окне программы предназначены для выполнения операций по приходу и расходу товара, а также всех операций связанных с ними.

3 Охрана труда

3.1.Общее положение

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

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

        На рабочем месте программист подвергается воздействию следующих неблагоприятных факторов:

- недостаточное освещение;

-  шум от работающих машин;

-  электромагнитное излучение;

-  выделение избытков теплоты.

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

Освещение.

        Для улучшения условий труда на производствах большое значение имеет освещенность. Правильно устроенное освещение снижает утомление органов зрения, уменьшает число несчастных случаев. Исследования показали, что при правильном освещении производительность труда увеличивается на 15%. Освещение, отвечающее санитарно – гигиеническим требованиям называются рациональным.

        Для освещения помещения, в котором работает программист, используется смешанное освещение, т.е. сочетание естественного и искусственного освещения.

        Естественное освещение – осуществляется через окна в наружных стенах здания.

        Световой коэффициент естественного освещения определяется по формуле:

Кс=Sc/Sn,

где, Sc – площадь застекленной поверхности,

Sn – площадь пола.

        Согласно принятым нормам световой коэффициент (Кс) колеблется от 0,1 до 0,2 мм. Кроме этого коэффициента для оценки освещенности используют коэффициент естественной освещенности:

Кео12,

где, Е1 – освещенность заданной точки помещения,

Е2 – освещенность наружных точек. Единица измерения освещенности – Люкс (Лк).

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

Для помещения, где находится рабочее место программиста, используется система общего освещения.

        На предприятиях руководствуются нормативом: 1м2 должен освещаться лампой мощностью 25-30 Вт.

Вентиляция.

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

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

        Механическая вентиляция, в зависимости от направления движения воздушных потоков, может быть вытяжной (отсасывающей), приточной (нагнетающей) и приточно-вытяжной. Если вентиляция происходит во всём помещении, то её называют общеобменной. Вентиляция, сосредоточенная в какой-либо зоне, называется местной (локализующей). По времени действия вентиляция делится на постоянно действующую и аварийную.

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

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

3.2.  Пожарная безопасность.

        Под пожарной охраной понимают систему государственных и общественных мероприятий, направленных на охрану от огня людей и собственности.

        Горение - это химический процесс соединения вещества с кислородом, сопровождающийся выделением тепла и света. Для возникновения и протекания процесса горения необходимо наличие горючего вещества, окислителя (обычно это кислород, находящийся в воздухе, фтор, хлор, озон и т.д.) и источников воспламенения, причём первые два элемента должны быть в соответствующем количественном соотношении, а источник воспламенения должен иметь определённую температуру и запас энергии, достаточные для нагревания вещества до необходимой температуры.

        Пожар - это неконтролируемое горение вне специального очага, наносящее материальный ущерб. Особенностью пожаров в закрытых помещениях является сравнительно медленное горении в течение первых 30-40 минут из-за недостаточного притока воздуха в зону горения. После разрушения остекления интенсивность пожара резко возрастает. Скорость горения различных веществ колеблется в широких пределах.

        В конструкции дисплеев используются специальные разъемы, уменьшающие переходное сопротивление, и, соответственно, нагрев. ЭВМ нельзя располагать вблизи источников тепла или термоизлучателей, на экраны дисплеев не должны падать прямые солнечные лучи. Устанавливать ЭВМ необходимо так, чтобы задняя и боковые стенки отстояли не менее чем на 0.2 м от других предметов. Для соблюдения теплового режима в корпусе ЭВМ предусмотрены вентиляционные отверстия и охлаждающий вентилятор. Внутренний монтаж выполнен проводом с повышенной теплостойкостью.

        Пожарная безопасность объекта обеспечивается:

- системой предотвращения пожара;

- системой противопожарной защиты;

- организационно-техническими мероприятиями.

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

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

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

  1.  Защита от ионизирующего излучения.

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

        Источником ионизирующего излучения служат радиоактивные вещества, содержащиеся в горных породах, а также поступления из космоса.

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

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

        Нейтронное излучение – это крупные не заряженные частицы, сами по себе не вызывают ионизации, но, выбивая атомы из стабильных состояний, создают наведенную радиоактивность в нерадиоактивных материалах или тканях, сквозь которых они проходят.

4 Раздел экономики

4.1. Общее положение

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

Применение этой программы в ЭВМ позволяет держать информацию в состоянии, удобном для быстрого использования. Тем самым повышается эффективность работы, растет производительность, интеллектуальное содержание и культура труда.

Важное преимущество ЭВМ – быстрота обработки данных и повышение оперативности ввода информации. Высокая скорость ввода информации, ее обработка, группировка и выдача на печать.

При решение вопроса о целесообразности создания БД, большое внимание уделяется оценки эффекта, который может быть при внедрении системы.

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

Программа является оценочной и может уточняться на этапе и программной эксплуатации.

4.2. Методика расчетов

Затраты на разработку и внедрение определяются по формуле (1):

C=Cалг+Cктс+Cвн+Cотл ,     (1)

где    Cалг- затраты на разработку алгоритма;

       Cктс- затраты на приобретение КТС;

       Cвн- затраты на описание и отладку.

Затраты на разработку алгоритма определяются по формуле (2):

Cалг=ЗПразр*B,      (2)

где   ЗПразр - оклад разработчика;

В- время затраченное на разработку.

Расчет затрат на КТС зависит от стоимости персонального компьютера и стоимости принтера, которые необходимы для работы системы.

Затраты на внедрение системы определяются по формуле (3):

Cвнвн+ЗПвн,                                                               (3)

где  Квн- стоимость машинного времени на время внедрения;

ЗПвн –заработная плата программиста на время внедрения.

Стоимость машинного времени определяется по формуле (4):

Квн=K*d*q,       (4)

где  К- время работы на ПЭВМ в системе;

 d- количество дней работы на ПЭВМ;

 q- стоимость часа рабочего времени (q~180 тг.)

Заработная плата программиста определяется по формуле (5):

ЗПвн=Qвн*d/D,     (5)

где  Qвн- оклад программиста занятого внедрением;

 d- количество дней работы на ПЭВМ;

 D - количество дней в месяц, с учетом выходных дней.

    Затраты на написание программы и отладку определяются по формуле (6):

Сотлотлзп,     (6)

где  Котл- стоимость машинного времени затрачиваемого на отладку

         программы;

Кзп- фонд заработной платы программиста на отладку и написание

         программ, который определяется по формуле (7):

Кзпм+Qраз+От,                                  (7)

где  Км- количество месяцев затраченных на отладку;

 Qраз- оклад программиста за месяц;

От- 15% на социальное страхование.

Расчет экономии затрат берем от внедрения всего комплекса программ. Он определяется по формуле (8):

зпл   Э= Затр1-Затр2,       (8)

где   Затр1- затраты на заработную плату до внедрения комплекса;

Затр2- затраты после внедрения комплекса.

Затраты до внедрения комплекса определяются по формуле (9):

 зпл         окл        прем       над       высл

Затрзпл=Затрокл+Затрпрем+Затрнад+Затрвысл,                         (9)

где   Затрокл- затраты до внедрения системы по окладам;

Затрпрем- затраты до внедрения системы по премии 40% от оклада;

Затрнад- затраты до внедрения системы по надбавкам 20% от оклада;

Затрвысл- затраты до внедрения системы по выслуге лет 27,5% от

         оклада.

Затраты после внедрения системы определяются по формуле (10):

Затр=Затрокл+Затрпрем+Затрнад+Затрвыс,     (10)

Годовой экономический эффект определяется по формуле (11):

Эфгод=Э-Ен*С,      (11)

где  Э- годовая экономия затрат;

Ен- нормативный коэффициент эффективности капиталовложений;

С- затраты на работу и внедрение.

4.3  Расчетная часть

В начале производится расчет на комплекс технических средств (КТС).

Стоимость ПК Intel Core 2 DUO с монитором – на 1 июня 2010 г. составляет 500 $ (по курсу 153,5 тенге за 1 $), что составляет 76750 тенге. Стоимость лазерного принтера 200 $, т.е. 30700 тенге.

Итого затраты на КТС будут составлять:

Сктс=76750+30700=107450 тг.

          Теперь произведем расчет на разработку и внедрение системы. Пользуясь формулой (2) получим затраты на разработку алгоритма. Если оклад разработчика в среднем равен 12000 тенге в месяц, а время затраченное на разработку равно 19 дней, что при 21 рабочих днях в месяц составит 0,904. Таким образом затраты на разработку алгоритма будут равны:

Салг=12000*0,904=10848 тг.

Время работы на ЭВМ в день составило 7 часов, для внедрения программы было затрачено 8 дней, а стоимость машинного времени 180 тенге. Тогда стоимость машинного времени программы по формуле (4) будет равна:

Квн=7*8*180=10080 тг.

Оклад программиста составляет 12000 тенге. Тогда по формуле (5) заработанная плата программиста будет равна:

ЗПв=12000*8/21=4580 тг.

Тогда затраты на внедрение программы рассчитывается по формуле (3):

Свн=10080+4580=14660 тг.

Стоимость машинного времени на отладку программы, учитывая, что на нее потребовалось 7 дней по 7 часов работы на ЭВМ в день, стоимость
одного часа работы на ЭВМ равна 180 тг будет равна:

Котл=7*7*180=8820 тг.

На отладку потребовалось 7 дней. Тогда фонд заработанной платы программиста на отладку и написание программы по формуле (7) будет равен:

Кзп=0,233*12000+12000*21%=2796+2520=5316 тг.

Следовательно, по формуле (6) получим:

Сотл=5316+8820=14136 тг.

Таким образом, на разработку и внедрение системы по формуле (1):

С=10848+14660+14136+107450=147094 тг.

До внедрения автоматизированного проекта на предприятии работало два человека. Их оклад составляет 8000 тг. Следовательно:

                                         Затрокл=2*8000=16000 тг.

Затрвыс=2*8000*15%=2400 тг.

Итого затраты по заработанной плате до внедрения системы по формуле (9) равно:

Затр=16000+2400=18400 тг.

После внедрения системы сократим одного человека. Из чего следует, что затраты после внедрения по формуле (10) составляют:

Затр=8000*15%+8000=9200 тг.

Тогда расчет экономических затрат заработанной платы в год по формуле (8) составляет:

Э=(18400-9200)*12=9200*12=110400 тг.

Тогда по формуле (11) годовой экономический эффект составит:

Эфгод=110400-147094*0,5=36853 тг.

5 Заключение

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

        В ходе данной дипломной работы была создана база данных с применением современного средства разработки приложений Borland Delphi 7.0. В ней реализованы все основные аспекты современных баз данных, в том числе язык запросов SQL.

   В ходе работы над программой были изучены методы проектирования баз данных и работа с ними, исследована методология проектирования по предметной области «Склад», изучен один из наиболее используемых языков для создания запросов SQL, изучен язык программирования Object Pascal, реализованный в среде программирования Delphi 7.

6. Список используемой литературы

1. Шумаков А.И. «Базы данных в среде Delphi 5», Электронная версия

  1.  Антипов Д. В., Соколов А. В. «Базы данных». Москва, 2002.
  2.  Симонович С.В.  «Язык структурированных запросов SQL»,  СПб «Питер», 2000.
  3.  Понамарёв В.  «Базы данных в DELPHI 7», СПб «Питер», 2003.
  4.  Кирстен В. «СУБД Cache. Объектно-ориентированная разработка приложений», - СПб.: «Питер», 2001.
  5.  Delphi 5.0, учебный курс, Фараонов В.В.,  ISBN 5-8952-020-4, 400 с.
  6.  Бережной В.И. Методы и модели логистического подхода к управлению предприятиям. – Ставрополь: Интеллект – сервис 1997 г.
  7.  “Организационные вопросы автоматизации управления” (перевод с английского) Глушкова В. М., М. Экономика, 1972 г.
  8.    Мартин Дж. “Организация баз данных в вычислительных системах”, М. Мир, 1980 г.
  9.   Бойко В. В., Савинков В. М. “Проектирование баз данных информационных систем”, М. Финансы и статистика, 1989 г.
  10.    Шураков В. В. “Надежность программного обеспечения систем обработки данных”, М. Финансы и статистика, 1987 г.

7. Приложение

7.1. Блок-схема

7.2. Графическая часть

7.3. Листинг программы

object DM: TDM

 OldCreateOrder = False

 OnCreate = DataModuleCreate

 Left = 214

 Top = 175

 Height = 248

 Width = 783

 object Database1: TDatabase

   AliasName = 'alComp'

   DatabaseName = 'CompBase'

   LoginPrompt = False

   SessionName = 'Default'

   TransIsolation = tiDirtyRead

   Left = 24

   Top = 16

 end

 object tbGoodsGroup: TTable

   AutoRefresh = True

   DatabaseName = 'CompBase'

   IndexName = 'indType'

   TableName = 'GoodsGroup.db'

   Left = 80

   Top = 88

   object tbGoodsGroupID: TAutoIncField

     FieldName = 'ID'

     ReadOnly = True

   end

   object tbGoodsGroupTypeName: TStringField

     FieldName = 'TypeName'

     Required = True

     Size = 30

   end

 end

 object dsGoodsGroup: TDataSource

   DataSet = tbGoodsGroup

   Left = 80

   Top = 136

 end

 object tbGoods: TTable

   AutoRefresh = True

   DatabaseName = 'CompBase'

   IndexName = 'indNameGroup'

   TableName = 'Goods.db'

   Left = 152

   Top = 88

   object tbGoodsID: TAutoIncField

     FieldName = 'ID'

     ReadOnly = True

     DisplayFormat = '00000'

   end

   object tbGoodsGroupID2: TFloatField

     FieldName = 'GroupID'

     Required = True

   end

   object tbGoodsName: TStringField

     FieldName = 'Name'

     Required = True

     Size = 255

   end

   object tbGoodsUnit: TStringField

     FieldName = 'Unit'

     Size = 5

   end

   object tbGoodsPricePurch: TCurrencyField

     FieldName = 'PricePurch'

   end

   object tbGoodsPriceRealiz: TCurrencyField

     FieldName = 'PriceRealiz'

   end

   object tbGoodsGroup2: TStringField

     FieldKind = fkLookup

     FieldName = 'Group'

     LookupDataSet = tbGoodsGroup

     LookupKeyFields = 'ID'

     LookupResultField = 'TypeName'

     KeyFields = 'GroupID'

     Size = 30

     Lookup = True

   end

 end

 object dsGoods: TDataSource

   DataSet = tbGoods

   Left = 152

   Top = 136

 end

 object tbIncome: TTable

   AutoCalcFields = False

   OnCalcFields = tbIncomeCalcFields

   AutoRefresh = True

   DatabaseName = 'CompBase'

   IndexName = 'indDate'

   TableName = 'Income.db'

   Left = 224

   Top = 88

   object tbIncomeID: TAutoIncField

     FieldName = 'ID'

     ReadOnly = True

     DisplayFormat = '00000'

   end

   object tbIncomeDDate: TDateField

     FieldName = 'DDate'

   end

   object tbIncomeSum: TCurrencyField

     FieldKind = fkCalculated

     FieldName = 'Sum'

     Calculated = True

   end

   object tbIncomeContrID: TFloatField

     FieldName = 'ContrID'

   end

   object tbIncomeContrName: TStringField

     FieldKind = fkLookup

     FieldName = 'ContrName'

     LookupDataSet = tbContrag

     LookupKeyFields = 'ID'

     LookupResultField = 'Name'

     KeyFields = 'ContrID'

     Size = 100

     Lookup = True

   end

 end

 object dsIncome: TDataSource

   DataSet = tbIncome

   Left = 224

   Top = 136

 end

 object tbIncomeComp: TTable

   BeforePost = tbIncomeCompBeforePost

   AfterPost = tbIncomeCompAfterPost

   OnCalcFields = tbIncomeCompCalcFields

   AutoRefresh = True

   DatabaseName = 'CompBase'

   IndexFieldNames = 'IncomeID'

   MasterFields = 'ID'

   MasterSource = dsIncome

   TableName = 'IncomeComp.db'

   Left = 296

   Top = 88

   object tbIncomeCompID: TAutoIncField

     FieldName = 'ID'

     ReadOnly = True

   end

   object tbIncomeCompIncomeID: TFloatField

     FieldName = 'IncomeID'

     Required = True

   end

   object tbIncomeCompGoodsID: TFloatField

     FieldName = 'GoodsID'

     Required = True

     OnChange = tbIncomeCompGoodsIDChange

     DisplayFormat = '00000'

   end

   object tbIncomeCompQuantityInc: TFloatField

     FieldName = 'QuantityInc'

     Required = True

   end

   object tbIncomeCompQuantityRealiz: TFloatField

     FieldName = 'QuantityRealiz'

     Required = True

   end

   object tbIncomeCompPricePurch: TCurrencyField

     FieldName = 'PricePurch'

     Required = True

   end

   object tbIncomeCompGoodsName: TStringField

     DisplayWidth = 255

     FieldKind = fkLookup

     FieldName = 'GoodsName'

     LookupDataSet = tbGoods

     LookupKeyFields = 'ID'

     LookupResultField = 'Name'

     KeyFields = 'GoodsID'

     Size = 255

     Lookup = True

   end

   object tbIncomeCompGoodsUnit: TStringField

     FieldKind = fkLookup

     FieldName = 'GoodsUnit'

     LookupDataSet = tbGoods

     LookupKeyFields = 'ID'

     LookupResultField = 'Unit'

     KeyFields = 'GoodsID'

     ReadOnly = True

     Size = 5

     Lookup = True

   end

   object tbIncomeCompGoodsIDList: TIntegerField

     FieldKind = fkLookup

     FieldName = 'GoodsIDList'

     LookupDataSet = tbGoods

     LookupKeyFields = 'ID'

     LookupResultField = 'ID'

     KeyFields = 'GoodsID'

     DisplayFormat = '00000'

     Lookup = True

   end

   object tbIncomeCompSum: TCurrencyField

     FieldKind = fkCalculated

     FieldName = 'Sum'

     Calculated = True

   end

 end

 object dsIncomeComp: TDataSource

   DataSet = tbIncomeComp

   Left = 296

   Top = 136

 end

 object qrIncomeSum: TQuery

   DatabaseName = 'CompBase'

   SQL.Strings = (

     'SELECT SUM(  QuantityInc * PricePurch  ) Itogo'

     'FROM IncomeComp'

     'WHERE  IncomeID = :pIncomeID')

   Left = 176

   Top = 16

   ParamData = <

     item

       DataType = ftInteger

       Name = 'pIncomeID'

       ParamType = ptInput

     end>

 end

 object qrStore: TQuery

   OnCalcFields = qrStoreCalcFields

   AutoRefresh = True

   DatabaseName = 'CompBase'

   SQL.Strings = (

     

       'SELECT IncomeComp.GoodsID, Goods.Name, Goods.Unit, SUM(  IncomeC' +

       'omp.QuantityInc - IncomeComp.QuantityRealiz  ) Quantity, Goods.G' +

       'roupID, GoodsGroup.TypeName, AVG( IncomeComp.PricePurch ) Price'

     'FROM IncomeComp'

     '   INNER JOIN Goods'

     '   ON  (Goods.ID = IncomeComp.GoodsID)  '

     '   INNER JOIN GoodsGroup'

     '   ON  (Goods.GroupID = GoodsGroup.ID)  '

     'WHERE  IncomeComp.QuantityInc > IncomeComp.QuantityRealiz '

     

       'GROUP BY GoodsGroup.TypeName, Goods.Name, Goods.Unit, IncomeComp' +

       '.GoodsID, Goods.GroupID'

     'ORDER BY Goods.Name')

   Left = 592

   Top = 88

   object qrStoreGoodsID: TFloatField

     FieldName = 'GoodsID'

     DisplayFormat = '00000'

   end

   object qrStoreName: TStringField

     FieldName = 'Name'

     Size = 255

   end

   object qrStoreUnit: TStringField

     FieldName = 'Unit'

     Size = 5

   end

   object qrStoreQuantity: TFloatField

     FieldName = 'Quantity'

   end

   object qrStoreGroupID: TFloatField

     FieldName = 'GroupID'

   end

   object qrStoreTypeName: TStringField

     FieldName = 'TypeName'

     Size = 30

   end

   object qrStorePrice: TCurrencyField

     FieldName = 'Price'

   end

   object qrStoreSum: TCurrencyField

     FieldKind = fkCalculated

     FieldName = 'Sum'

     Calculated = True

   end

 end

 object dsStore: TDataSource

   DataSet = qrStore

   Left = 592

   Top = 136

 end

 object tbRealiz: TTable

   AutoCalcFields = False

   OnCalcFields = tbRealizCalcFields

   AutoRefresh = True

   DatabaseName = 'CompBase'

   IndexName = 'indDate'

   TableName = 'Realiz.db'

   Left = 368

   Top = 88

   object tbRealizID: TAutoIncField

     FieldName = 'ID'

     ReadOnly = True

     DisplayFormat = '00000'

   end

   object tbRealizDDate: TDateField

     FieldName = 'DDate'

   end

   object tbRealizSum: TCurrencyField

     FieldKind = fkCalculated

     FieldName = 'Sum'

     Calculated = True

   end

   object tbRealizContrID: TFloatField

     FieldName = 'ContrID'

   end

   object tbRealizContrName: TStringField

     FieldKind = fkLookup

     FieldName = 'ContrName'

     LookupDataSet = tbContrag

     LookupKeyFields = 'ID'

     LookupResultField = 'Name'

     KeyFields = 'ContrID'

     Size = 100

     Lookup = True

   end

 end

 object dsRealiz: TDataSource

   DataSet = tbRealiz

   Left = 368

   Top = 136

 end

 object tbRealizComp: TTable

   BeforePost = tbRealizCompBeforePost

   AfterPost = tbRealizCompAfterPost

   OnCalcFields = tbRealizCompCalcFields

   OnPostError = tbRealizCompPostError

   AutoRefresh = True

   DatabaseName = 'CompBase'

   Filtered = True

   IndexName = 'indIncomeGoods'

   MasterFields = 'ID'

   MasterSource = dsRealiz

   TableName = 'RealizComp.DB'

   Left = 440

   Top = 88

   object AutoIncField2: TAutoIncField

     FieldName = 'ID'

     ReadOnly = True

   end

   object tbRealizCompRealizID: TFloatField

     FieldName = 'RealizID'

     Required = True

   end

   object tbRealizCompGoodsID: TFloatField

     FieldName = 'GoodsID'

     Required = True

     OnChange = tbRealizCompGoodsIDChange

     OnValidate = tbRealizCompGoodsIDValidate

     DisplayFormat = '00000'

   end

   object tbRealizCompQuantity: TFloatField

     FieldName = 'Quantity'

     Required = True

     OnValidate = tbRealizCompQuantityValidate

   end

   object tbRealizCompPriceRealiz: TCurrencyField

     FieldName = 'PriceRealiz'

     Required = True

   end

   object tbRealizCompGoodsName: TStringField

     DisplayWidth = 255

     FieldKind = fkLookup

     FieldName = 'GoodsName'

     LookupDataSet = qrStore

     LookupKeyFields = 'GoodsID'

     LookupResultField = 'Name'

     KeyFields = 'GoodsID'

     Size = 255

     Lookup = True

   end

   object tbRealizCompGoodsUnit: TStringField

     FieldKind = fkLookup

     FieldName = 'GoodsUnit'

     LookupDataSet = qrStore

     LookupKeyFields = 'GoodsID'

     LookupResultField = 'Unit'

     KeyFields = 'GoodsID'

     ReadOnly = True

     Size = 5

     Lookup = True

   end

   object tbRealizCompGoodsIDList: TIntegerField

     FieldKind = fkLookup

     FieldName = 'GoodsIDList'

     LookupDataSet = qrStore

     LookupKeyFields = 'GoodsID'

     LookupResultField = 'GoodsID'

     KeyFields = 'GoodsID'

     DisplayFormat = '00000'

     Lookup = True

   end

   object tbRealizCompSum: TCurrencyField

     FieldKind = fkCalculated

     FieldName = 'Sum'

     Calculated = True

   end

 end

 object dsRealizComp: TDataSource

   DataSet = tbRealizComp

   Left = 440

   Top = 136

 end

 object qrRealizSum: TQuery

   DatabaseName = 'CompBase'

   SQL.Strings = (

     'SELECT SUM(  Quantity * PriceRealiz  ) Itogo'

     'FROM RealizComp'

     'WHERE  RealizID = :pRealizID')

   Left = 256

   Top = 16

   ParamData = <

     item

       DataType = ftInteger

       Name = 'pRealizID'

       ParamType = ptInput

     end>

 end

 object qrStoreFree: TQuery

   DatabaseName = 'CompBase'

   RequestLive = True

   SQL.Strings = (

     'SELECT * FROM IncomeComp'

     'WHERE  QuantityInc > QuantityRealiz AND'

     '                GoodsID = :pGoodsID')

   Left = 592

   Top = 40

   ParamData = <

     item

       DataType = ftInteger

       Name = 'pGoodsID'

       ParamType = ptInput

     end>

   object qrStoreFreeID: TAutoIncField

     FieldName = 'ID'

     Origin = 'COMPBASE."IncomeComp.DB".ID'

     ReadOnly = True

   end

   object qrStoreFreeIncomeID: TFloatField

     FieldName = 'IncomeID'

     Origin = 'COMPBASE."IncomeComp.DB".IncomeID'

   end

   object qrStoreFreeGoodsID: TFloatField

     FieldName = 'GoodsID'

     Origin = 'COMPBASE."IncomeComp.DB".GoodsID'

   end

   object qrStoreFreeQuantityInc: TFloatField

     FieldName = 'QuantityInc'

     Origin = 'COMPBASE."IncomeComp.DB".QuantityInc'

   end

   object qrStoreFreeQuantityRealiz: TFloatField

     FieldName = 'QuantityRealiz'

     Origin = 'COMPBASE."IncomeComp.DB".QuantityRealiz'

   end

   object qrStoreFreePricePurch: TCurrencyField

     FieldName = 'PricePurch'

     Origin = 'COMPBASE."IncomeComp.DB".PricePurch'

   end

 end

 object tbRealizComp2: TTable

   AutoRefresh = True

   DatabaseName = 'CompBase'

   IndexName = 'indIncomeGoods'

   MasterFields = 'ID'

   MasterSource = dsRealiz

   TableName = 'RealizComp.DB'

   Left = 520

   Top = 88

   object AutoIncField1: TAutoIncField

     FieldName = 'ID'

     ReadOnly = True

   end

   object FloatField1: TFloatField

     FieldName = 'RealizID'

     Required = True

   end

   object FloatField2: TFloatField

     FieldName = 'GoodsID'

     Required = True

     DisplayFormat = '00000'

   end

   object FloatField3: TFloatField

     FieldName = 'Quantity'

     Required = True

   end

   object CurrencyField1: TCurrencyField

     FieldName = 'PriceRealiz'

     Required = True

   end

 end

 object dsRealizComp2: TDataSource

   DataSet = tbRealizComp2

   Left = 520

   Top = 136

 end

 object qrStoreSold: TQuery

   DatabaseName = 'CompBase'

   RequestLive = True

   SQL.Strings = (

     'SELECT * FROM IncomeComp'

     'WHERE  QuantityInc = QuantityRealiz AND'

     '                GoodsID = :pGoodsID')

   Left = 592

   ParamData = <

     item

       DataType = ftInteger

       Name = 'pGoodsID'

       ParamType = ptInput

     end>

 end

 object dsContrag: TDataSource

   DataSet = tbContrag

   Left = 16

   Top = 136

 end

 object tbContrag: TTable

   AutoRefresh = True

   DatabaseName = 'CompBase'

   IndexName = 'indName'

   TableName = 'Contragent.db'

   Left = 16

   Top = 88

   object tbContragID: TAutoIncField

     FieldName = 'ID'

     ReadOnly = True

   end

   object tbContragName: TStringField

     FieldName = 'Name'

     Required = True

     Size = 100

   end

   object tbContragContrType: TBooleanField

     FieldName = 'ContrType'

     Required = True

     DisplayValues = 'Поставщик;Клиент'

   end

   object tbContragOrganiz: TBooleanField

     FieldName = 'Organiz'

     Required = True

     DisplayValues = 'ЮЛ;ФЛ'

   end

   object tbContragAdress: TStringField

     FieldName = 'Adress'

     Size = 200

   end

   object tbContragPhone: TStringField

     FieldName = 'Phone'

     Size = 15

   end

   object tbContragPassport: TStringField

     FieldName = 'Passport'

     Size = 150

   end

   object tbContragBank: TStringField

     FieldName = 'Bank'

     Size = 100

   end

   object tbContragINN: TStringField

     FieldName = 'INN'

     Size = 15

   end

   object tbContragKPP: TStringField

     FieldName = 'KPP'

     Size = 15

   end

 end

 object dsRequisit: TDataSource

   DataSet = tbRequisit

   Left = 656

   Top = 136

 end

 object tbRequisit: TTable

   AutoRefresh = True

   DatabaseName = 'CompBase'

   TableName = 'Requisit.DB'

   Left = 656

   Top = 88

   object tbRequisitName: TStringField

     FieldName = 'Name'

     Required = True

     Size = 100

   end

   object tbRequisitAdress: TStringField

     FieldName = 'Adress'

     Size = 200

   end

   object tbRequisitPhone: TStringField

     FieldName = 'Phone'

     Size = 15

   end

   object tbRequisitBank: TStringField

     FieldName = 'Bank'

     Size = 100

   end

   object tbRequisitINN: TStringField

     FieldName = 'INN'

     Size = 15

   end

   object tbRequisitKPP: TStringField

     FieldName = 'KPP'

     Size = 15

   end

 end

 object dsContract: TDataSource

   DataSet = tbContract

   Left = 720

   Top = 136

 end

 object tbContract: TTable

   AutoRefresh = True

   DatabaseName = 'CompBase'

   TableName = 'Contract.db'

   Left = 720

   Top = 88

   object tbContractNContr: TAutoIncField

     FieldName = 'NContr'

     ReadOnly = True

     DisplayFormat = '0000'

   end

   object tbContractContrID: TFloatField

     FieldName = 'ContrID'

     Required = True

   end

   object tbContractDate1: TDateField

     FieldName = 'Date1'

     Required = True

     EditMask = '!99/99/0000;1;_'

   end

   object tbContractDate2: TDateField

     FieldName = 'Date2'

     Required = True

     EditMask = '!99/99/0000;1;_'

   end

   object tbContractInfo: TStringField

     FieldName = 'Info'

     Size = 255

   end

   object tbContractContrName: TStringField

     FieldKind = fkLookup

     FieldName = 'ContrName'

     LookupDataSet = tbContrag

     LookupKeyFields = 'ID'

     LookupResultField = 'Name'

     KeyFields = 'ContrID'

     Size = 100

     Lookup = True

   end

 end

 object qrStoreAll: TQuery

   OnCalcFields = qrStoreCalcFields

   AutoRefresh = True

   DatabaseName = 'CompBase'

   SQL.Strings = (

     

       'SELECT IncomeComp.GoodsID, Goods.Name, Goods.Unit, SUM(  IncomeC' +

       'omp.QuantityInc - IncomeComp.QuantityRealiz  ) Quantity, Goods.G' +

       'roupID, GoodsGroup.TypeName, AVG( IncomeComp.PricePurch ) Price'

     'FROM IncomeComp'

     '   INNER JOIN Goods'

     '   ON  (Goods.ID = IncomeComp.GoodsID)  '

     '   INNER JOIN GoodsGroup'

     '   ON  (Goods.GroupID = GoodsGroup.ID)  '

     'WHERE  IncomeComp.QuantityInc >= IncomeComp.QuantityRealiz '

     

       'GROUP BY GoodsGroup.TypeName, Goods.Name, Goods.Unit, IncomeComp' +

       '.GoodsID, Goods.GroupID'

     'ORDER BY Goods.Name')

   Left = 648

   object FloatField4: TFloatField

     FieldName = 'GoodsID'

     DisplayFormat = '00000'

   end

   object StringField1: TStringField

     FieldName = 'Name'

     Size = 255

   end

   object StringField2: TStringField

     FieldName = 'Unit'

     Size = 5

   end

   object FloatField5: TFloatField

     FieldName = 'Quantity'

   end

   object FloatField6: TFloatField

     FieldName = 'GroupID'

   end

   object StringField3: TStringField

     FieldName = 'TypeName'

     Size = 30

   end

   object CurrencyField2: TCurrencyField

     FieldName = 'Price'

   end

   object CurrencyField3: TCurrencyField

     FieldKind = fkCalculated

     FieldName = 'Sum'

     Calculated = True

   end

 end

end

object fmContract: TfmContract

 Left = 218

 Top = 138

 Width = 584

 Height = 342

 Caption = 'Договора'

 Color = clBtnFace

 Font.Charset = DEFAULT_CHARSET

 Font.Color = clWindowText

 Font.Height = -11

 Font.Name = 'MS Sans Serif'

 Font.Style = []

 OldCreateOrder = False

 Position = poDesktopCenter

 OnShow = FormShow

 PixelsPerInch = 96

 TextHeight = 13

 object DBGrid1: TDBGrid

   Left = 0

   Top = 0

   Width = 576

   Height = 200

   Align = alClient

   DataSource = DM.dsContract

   TabOrder = 0

   TitleFont.Charset = DEFAULT_CHARSET

   TitleFont.Color = clWindowText

   TitleFont.Height = -11

   TitleFont.Name = 'MS Sans Serif'

   TitleFont.Style = []

   Columns = <

     item

       Expanded = False

       FieldName = 'NContr'

       Title.Caption = '№ договора'

       Width = 66

       Visible = True

     end

     item

       Expanded = False

       FieldName = 'ContrName'

       Title.Caption = 'Контрагент'

       Width = 113

       Visible = True

     end

     item

       Expanded = False

       FieldName = 'Date1'

       Title.Caption = 'Дата начала действия'

       Width = 119

       Visible = True

     end

     item

       Expanded = False

       FieldName = 'Date2'

       Title.Caption = 'Дата окончания действия'

       Visible = True

     end

     item

       Expanded = False

       FieldName = 'Info'

       Title.Caption = 'Информация'

       Width = 95

       Visible = True

     end>

 end

 object Panel1: TPanel

   Left = 0

   Top = 200

   Width = 576

   Height = 98

   Align = alBottom

   BevelOuter = bvNone

   TabOrder = 1

   object DBNavigator1: TDBNavigator

     Left = 320

     Top = 16

     Width = 240

     Height = 25

     DataSource = DM.dsContract

     Flat = True

     TabOrder = 0

   end

   object BitBtn1: TBitBtn

     Left = 488

     Top = 64

     Width = 75

     Height = 25

     Hint = 'Выход'

     Caption = 'Выход'

     ParentShowHint = False

     ShowHint = True

     TabOrder = 1

     Kind = bkClose

   end

   object GroupBox1: TGroupBox

     Left = 8

     Top = 8

     Width = 297

     Height = 84

     Caption = 'Отбор'

     TabOrder = 2

     object Label1: TLabel

       Left = 8

       Top = 16

       Width = 117

       Height = 13

       Caption = 'Дата начала действия:'

     end

     object Label2: TLabel

       Left = 152

       Top = 16

       Width = 135

       Height = 13

       Caption = 'Дата окончания действия:'

     end

     object CheckBox1: TCheckBox

       Left = 8

       Top = 32

       Width = 33

       Height = 17

       Caption = 'с'

       TabOrder = 0

       OnClick = CheckBox1Click

     end

     object CheckBox2: TCheckBox

       Left = 8

       Top = 56

       Width = 33

       Height = 17

       Caption = 'по'

       TabOrder = 1

       OnClick = CheckBox1Click

     end

     object dtpDate1From: TDateTimePicker

       Left = 48

       Top = 32

       Width = 89

       Height = 21

       CalAlignment = dtaLeft

       Date = 38816

       Time = 38816

       DateFormat = dfShort

       DateMode = dmComboBox

       Kind = dtkDate

       ParseInput = False

       TabOrder = 2

       OnChange = CheckBox1Click

     end

     object dtpDate1To: TDateTimePicker

       Left = 48

       Top = 56

       Width = 89

       Height = 21

       CalAlignment = dtaLeft

       Date = 38816

       Time = 38816

       DateFormat = dfShort

       DateMode = dmComboBox

       Kind = dtkDate

       ParseInput = False

       TabOrder = 3

       OnChange = CheckBox1Click

     end

     object dtpDate2From: TDateTimePicker

       Left = 192

       Top = 32

       Width = 89

       Height = 21

       CalAlignment = dtaLeft

       Date = 38816

       Time = 38816

       DateFormat = dfShort

       DateMode = dmComboBox

       Kind = dtkDate

       ParseInput = False

       TabOrder = 4

       OnChange = CheckBox1Click

     end

     object dtpDate2To: TDateTimePicker

       Left = 192

       Top = 55

       Width = 89

       Height = 21

       CalAlignment = dtaLeft

       Date = 38816

       Time = 38816

       DateFormat = dfShort

       DateMode = dmComboBox

       Kind = dtkDate

       ParseInput = False

       TabOrder = 5

       OnChange = CheckBox1Click

     end

     object CheckBox4: TCheckBox

       Left = 152

       Top = 56

       Width = 33

       Height = 17

       Caption = 'по'

       TabOrder = 6

       OnClick = CheckBox1Click

     end

     object CheckBox3: TCheckBox

       Left = 152

       Top = 32

       Width = 33

       Height = 17

       Caption = 'с'

       TabOrder = 7

       OnClick = CheckBox1Click

     end

   end

   object BitBtn2: TBitBtn

     Left = 320

     Top = 64

     Width = 97

     Height = 25

     Action = fmMain.acSpravContrag

     Caption = 'Контрагенты'

     TabOrder = 3

     Glyph.Data = { Binary Data (save file to disk to see it) }

   end

 end

end

object fmContrag: TfmContrag

 Left = 217

 Top = 138

 Width = 577

 Height = 393

 Caption = 'Контрагенты'

 Color = clBtnFace

 Font.Charset = DEFAULT_CHARSET

 Font.Color = clWindowText

 Font.Height = -11

 Font.Name = 'MS Sans Serif'

 Font.Style = []

 OldCreateOrder = False

 Position = poDesktopCenter

 OnClose = FormClose

 OnShow = FormShow

 PixelsPerInch = 96

 TextHeight = 13

 object DBGrid1: TDBGrid

   Left = 0

   Top = 0

   Width = 569

   Height = 257

   Align = alClient

   DataSource = DM.dsContrag

   TabOrder = 0

   TitleFont.Charset = DEFAULT_CHARSET

   TitleFont.Color = clWindowText

   TitleFont.Height = -11

   TitleFont.Name = 'MS Sans Serif'

   TitleFont.Style = []

   Columns = <

     item

       Expanded = False

       FieldName = 'ContrType'

       PickList.Strings = (

         'Поставщик'

         'Клиент')

       Title.Caption = 'Тип'

       Width = 65

       Visible = True

     end

     item

       Expanded = False

       FieldName = 'Organiz'

       PickList.Strings = (

         'ЮЛ'

         'ФЛ')

       Title.Caption = 'Форма'

       Width = 42

       Visible = True

     end

     item

       Expanded = False

       FieldName = 'Name'

       Title.Caption = 'Наименование/ФИО'

       Width = 123

       Visible = True

     end

     item

       Expanded = False

       FieldName = 'Adress'

       Title.Caption = 'Адрес'

       Width = 138

       Visible = True

     end

     item

       Expanded = False

       FieldName = 'Phone'

       Title.Caption = 'Конт. телефон'

       Width = 78

       Visible = True

     end

     item

       Expanded = False

       FieldName = 'Bank'

       Title.Caption = 'Банк. реквизиты'

       Width = 95

       Visible = True

     end

     item

       Expanded = False

       FieldName = 'INN'

       Title.Caption = 'ИНН'

       Width = 72

       Visible = True

     end

     item

       Expanded = False

       FieldName = 'KPP'

       Title.Caption = 'КПП'

       Width = 83

       Visible = True

     end

     item

       Expanded = False

       FieldName = 'Passport'

       Title.Caption = 'Паспорт'

       Width = 78

       Visible = True

     end>

 end

 object Panel1: TPanel

   Left = 0

   Top = 257

   Width = 569

   Height = 92

   Align = alBottom

   BevelOuter = bvNone

   TabOrder = 1

   object DBNavigator1: TDBNavigator

     Left = 256

     Top = 16

     Width = 240

     Height = 25

     DataSource = DM.dsContrag

     Flat = True

     TabOrder = 0

   end

   object BitBtn1: TBitBtn

     Left = 480

     Top = 56

     Width = 75

     Height = 25

     Hint = 'Выход'

     Caption = 'Выход'

     ParentShowHint = False

     ShowHint = True

     TabOrder = 1

     Kind = bkClose

   end

   object GroupBox1: TGroupBox

     Left = 8

     Top = 8

     Width = 105

     Height = 73

     Caption = 'Отбор'

     TabOrder = 2

     object RadioButton1: TRadioButton

       Left = 8

       Top = 16

       Width = 89

       Height = 17

       Caption = 'все'

       Checked = True

       TabOrder = 0

       TabStop = True

       OnClick = RadioButton1Click

     end

     object RadioButton2: TRadioButton

       Left = 8

       Top = 32

       Width = 89

       Height = 17

       Caption = 'поставщики'

       TabOrder = 1

       OnClick = RadioButton1Click

     end

     object RadioButton3: TRadioButton

       Left = 8

       Top = 48

       Width = 89

       Height = 17

       Caption = 'клиенты'

       TabOrder = 2

       OnClick = RadioButton1Click

     end

   end

   object GroupBox2: TGroupBox

     Left = 111

     Top = 8

     Width = 138

     Height = 73

     TabOrder = 3

     object RadioButton4: TRadioButton

       Left = 8

       Top = 16

       Width = 89

       Height = 17

       Caption = 'все'

       Checked = True

       TabOrder = 0

       TabStop = True

       OnClick = RadioButton1Click

     end

     object RadioButton5: TRadioButton

       Left = 8

       Top = 32

       Width = 121

       Height = 17

       Caption = 'юридические лица'

       TabOrder = 1

       OnClick = RadioButton1Click

     end

     object RadioButton6: TRadioButton

       Left = 8

       Top = 48

       Width = 121

       Height = 17

       Caption = 'физические лица'

       TabOrder = 2

       OnClick = RadioButton1Click

     end

   end

 end

end

object fmDiapason: TfmDiapason

 Left = 241

 Top = 142

 BorderStyle = bsDialog

 Caption = 'Выберите диапазон дат'

 ClientHeight = 102

 ClientWidth = 268

 Color = clBtnFace

 Font.Charset = DEFAULT_CHARSET

 Font.Color = clWindowText

 Font.Height = -11

 Font.Name = 'MS Sans Serif'

 Font.Style = []

 OldCreateOrder = False

 Position = poDesktopCenter

 PixelsPerInch = 96

 TextHeight = 13

 object Label1: TLabel

   Left = 16

   Top = 24

   Width = 16

   Height = 13

   Caption = 'От:'

 end

 object Label2: TLabel

   Left = 144

   Top = 24

   Width = 18

   Height = 13

   Caption = 'До:'

 end

 object dtpDateFrom: TDateTimePicker

   Left = 40

   Top = 24

   Width = 89

   Height = 21

   CalAlignment = dtaLeft

   Date = 36526

   Time = 36526

   DateFormat = dfShort

   DateMode = dmComboBox

   Kind = dtkDate

   ParseInput = False

   TabOrder = 0

 end

 object dtpDateTo: TDateTimePicker

   Left = 168

   Top = 24

   Width = 89

   Height = 21

   CalAlignment = dtaLeft

   Date = 38807

   Time = 38807

   DateFormat = dfShort

   DateMode = dmComboBox

   Kind = dtkDate

   ParseInput = False

   TabOrder = 1

 end

 object bbtCancel: TBitBtn

   Left = 177

   Top = 70

   Width = 75

   Height = 25

   Caption = 'Отмена'

   TabOrder = 2

   Kind = bkCancel

 end

 object bbtOK: TBitBtn

   Left = 89

   Top = 70

   Width = 75

   Height = 25

   Caption = 'OK'

   Default = True

   ModalResult = 1

   TabOrder = 3

   Glyph.Data = { Binary Data (save file to disk to see it) }

   NumGlyphs = 2

 end

end

object fmGoods: TfmGoods

 Left = 224

 Top = 139

 Width = 708

 Height = 439

 Caption = 'Товар'

 Color = clBtnFace

 Font.Charset = DEFAULT_CHARSET

 Font.Color = clWindowText

 Font.Height = -11

 Font.Name = 'MS Sans Serif'

 Font.Style = []

 OldCreateOrder = False

 Position = poDesktopCenter

 PixelsPerInch = 96

 TextHeight = 13

 object DBGrid1: TDBGrid

   Left = 0

   Top = 0

   Width = 700

   Height = 288

   Align = alClient

   DataSource = DM.dsGoods

   TabOrder = 0

   TitleFont.Charset = DEFAULT_CHARSET

   TitleFont.Color = clWindowText

   TitleFont.Height = -11

   TitleFont.Name = 'MS Sans Serif'

   TitleFont.Style = []

   Columns = <

     item

       Expanded = False

       FieldName = 'ID'

       Title.Caption = 'Артикул'

       Width = 50

       Visible = True

     end

     item

       Expanded = False

       FieldName = 'Name'

       Title.Caption = 'Наименование'

       Width = 240

       Visible = True

     end

     item

       Expanded = False

       FieldName = 'Unit'

       PickList.Strings = (

         '1 д.'

         '2 д.'

         '3 д.'

         '4 д.'

         'шт')

       Title.Caption = 'Ед. изм.'

       Width = 43

       Visible = True

     end

     item

       Expanded = False

       FieldName = 'PricePurch'

       Title.Caption = 'Цена закуп.'

       Visible = True

     end

     item

       Expanded = False

       FieldName = 'PriceRealiz'

       Title.Caption = 'Цена реализ.'

       Width = 69

       Visible = True

     end

     item

       Expanded = False

       FieldName = 'Group'

       Title.Caption = 'Группа'

       Width = 113

       Visible = True

     end>

 end

 object Panel1: TPanel

   Left = 0

   Top = 288

   Width = 700

   Height = 107

   Align = alBottom

   BevelOuter = bvNone

   TabOrder = 1

   object DBNavigator1: TDBNavigator

     Left = 296

     Top = 8

     Width = 240

     Height = 25

     DataSource = DM.dsGoods

     Flat = True

     TabOrder = 0

   end

   object bbtClose: TBitBtn

     Left = 616

     Top = 72

     Width = 75

     Height = 25

     Hint = 'Выход'

     Caption = 'Выход'

     ParentShowHint = False

     ShowHint = True

     TabOrder = 6

     Kind = bkClose

   end

   object bbtGroup: TBitBtn

     Left = 296

     Top = 40

     Width = 153

     Height = 25

     Action = fmMain.acSpravGoodsGroups

     Caption = 'Группы товара'

     ParentShowHint = False

     ShowHint = True

     TabOrder = 2

     Glyph.Data = { Binary Data (save file to disk to see it) }

   end

   object bbtGo: TBitBtn

     Left = 464

     Top = 72

     Width = 131

     Height = 25

     Hint = 'Выбрать товар'

     Caption = 'Выбрать'

     Default = True

     ModalResult = 1

     ParentShowHint = False

     ShowHint = True

     TabOrder = 5

     Visible = False

     Glyph.Data = { Binary Data (save file to disk to see it) }

   end

   object GroupBox1: TGroupBox

     Left = 8

     Top = 24

     Width = 281

     Height = 73

     Caption = 'Отбор'

     TabOrder = 1

     object dblcbGroupName: TDBLookupComboBox

       Left = 72

       Top = 20

       Width = 201

       Height = 21

       KeyField = 'ID'

       ListField = 'TypeName'

       ListSource = DM.dsGoodsGroup

       TabOrder = 0

       OnClick = CheckBox1Click

     end

     object CheckBox1: TCheckBox

       Left = 8

       Top = 24

       Width = 65

       Height = 17

       Caption = 'Группа:'

       TabOrder = 1

       OnClick = CheckBox1Click

     end

     object CheckBox3: TCheckBox

       Left = 8

       Top = 48

       Width = 137

       Height = 17

       Caption = 'Наименование товара:'

       TabOrder = 2

       OnClick = CheckBox1Click

     end

     object edName: TEdit

       Left = 144

       Top = 44

       Width = 129

       Height = 21

       TabOrder = 3

       OnChange = CheckBox1Click

     end

   end

   object bbtStore: TBitBtn

     Left = 296

     Top = 72

     Width = 153

     Height = 25

     Action = fmMain.acGoodsStore

     Caption = 'Склад'

     ParentShowHint = False

     ShowHint = True

     TabOrder = 3

     Glyph.Data = { Binary Data (save file to disk to see it) }

   end

   object bbtPrice: TBitBtn

     Left = 464

     Top = 40

     Width = 129

     Height = 25

     Action = fmMain.acDocPrice

     Caption = 'Прайс-лист'

     ParentShowHint = False

     ShowHint = True

     TabOrder = 4

     Glyph.Data = { Binary Data (save file to disk to see it) }

   end

 end

end



 

А также другие работы, которые могут Вас заинтересовать

6116. Я-грамадзянін Беларусі. Выхаваўчае мерапрыемства 30.42 KB
  Выхаваўчае мерапрыемства Я-грамадзянін Беларусі Мэта: выхаванне ў вучняў нацыянальнай самасвядомасці праз асэнсаванне нацыянальных каштоўнасцей, традыцый, творчай і сацыяльнай самарэалізацыі кожнага вучня. Задачы: - садзейнічаць фарміраванню с...
6117. Краткие сведения о конструкционных машиностроительных материалах 32.5 KB
  Краткие сведения о конструкционных машиностроительных материалах Конструкционными называют материалы, обладающие прочностью и применяемые для изготовления конструкций, воспринимающих силовую нагрузку. Конструкционные материалы подразделяют на металл...
6118. Система внутреннего водоснабжения и водоотведения жилого 30-квартирного дома 474.5 KB
  В курсовой работе необходимо подобрать диаметр трубопроводов системы внутреннего водоснабжения и водоотведения; определить необходимость повысительной установки для подачи воды в самую удаленную и высокорасположенную водоразборную точку от ввода здания; подобрать водомер для учета расхода воды.
6119. Воспитательная работа в городской школе 20.98 KB
  Пояснительная записка: воспитательная работа в городской школе. Учащиеся школы участвуют во внеурочной деятельности, посещая кружки предметного содержания и ряд кружков, которые способствуют развитию их творческих способностей. Педагогический ...
6120. Свято 8 Березня. Виховний захід 39.76 KB
  Виховний захід на тему 8 Березня Мета: Виявити вміння дітей в оформленні святкової класної кімнати, вчити працювати колективно ознайомити з історією виникнення свята розвивати в діте...
6121. Труд в его психическом и воспитательном значении 41.35 KB
  Труд в его психическом и воспитательном значении Политико-экономическое значение труда вполне уяснено наукой, и ему давно уже отведено почетное место между природой и капиталом. К этому значению труда, кидающемуся в глаза повсюду, куда только ...
6122. Критерии работоспособности и изнашивание деталей машин 44.5 KB
  Критерии работоспособности и изнашивание деталей машин Основным критерием качества машин является надежность - способность выполнять заданные функции, сохраняя во времени значения установленных эксплуатационных показателей в заданных пределах, ...
6123. Клееные соединения 43 KB
  Клееные соединения Клееным называется неразъемное соединение составных частей изделия с применением клея. Действие клеев основано на образовании межмолекулярных связей между клеевой пленкой и поверхностями склеенных материалов. Применение: для...
6124. Социальная, психологическая, воспитательная и образовательная работа с осужденными 40.13 KB
  Введение Один из самых актуальных вопросов современности - это предотвращение рецидивной преступности в стране. В пенитенциарную систему вменяется институт социальной работы, который призван решать данную социальную проблему при взаимодействии ...