67664
Создание базы данных для ведения учета товара АРМ мечендайзер ТОО «ATService»
Дипломная
Информатика, кибернетика и программирование
Созданная программа «АРМ мечендайзер ТОО «ATService»» является перспективной разработкой, так как на основе уже хранящейся информации работают отделы служб вычислительной техники многих организаций. Таким образом, не исключено создание другими разработчиками новых версий программы...
Русский
2014-09-13
3.12 MB
20 чел.
Содержание
Введение
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.Описание языка программирования
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, с помощью этого компонента в главной форме пишется меню всех дальнейших действий в программе:
Общая БД
База данных хранит всю необходимую информацию. В ней находится 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»» создана для обычного пользователя.
Для запуска данной программы необходимо выполнить следующие действия:
Для дальнейшей работы с программой хочу уточнить назначение и функции главного меню и вспомогательных кнопок программы:
- команда Выход выход из программы;
- команда Контрагенты отображает список клиентов и поставщиков фирмы;
- команда Наши реквизиты содержит сведения о данном предприятии;
- команда Группы товаров отображение имеющихся групп товаров;
- команда Товар список товаров, имеющихся на складе;
- команда Договора список заключенных договоров с компаниями.
- Прайс-лист вывод на печать наличия товара на предприятии;
- Товар на складе вывод остатков товара на складе.
Имеющиеся кнопки в главном окне программы предназначены для выполнения операций по приходу и расходу товара, а также всех операций связанных с ними.
3 Охрана труда
3.1.Общее положение
Охрана труда система законодательных актов, постановлений, организационных, санитарных и технических мер, обеспечивающих безопасные для здоровья условия труда на рабочем месте. Научно-технический прогресс внёс изменения в условия производственной деятельности работников умственного труда. Их труд стал более интенсивным, напряжённым, требующим затрат умственной, эмоциональной и физической энергии. Это имеет прямое отношение и к специалистам, связанным с проектированием, разработкой, эксплуатацией, сопровождением и модернизацией автоматизированных систем управления различного назначения.
На рабочем месте инженера-программиста должны быть созданы условия для высокопроизводительного труда. В настоящее время всё большее применение находят автоматизированные рабочие места, которые оснащаются персональными ЭВМ с графическими дисплеями, клавиатурами и принтерами.
На рабочем месте программист подвергается воздействию следующих неблагоприятных факторов:
- недостаточное освещение;
- шум от работающих машин;
- электромагнитное излучение;
- выделение избытков теплоты.
Поэтому необходимо разработать средства защиты от этих вредных факторов. К данным средствам защиты относятся: вентиляция, искусственное освещение, звукоизоляция. Существуют нормативы, определяющие комфортные условия и предельно допустимые нормы запылённости, температуры воздуха, шума, освещённости. В системе мер, обеспечивающих благоприятные условия труда, большое место отводится эстетическим факторам: оформление производственного интерьера, оборудования, применение функциональной музыки и др., которые оказывают определённое воздействие на организм человека. Важную роль играет окраска помещений, которая должна быть светлой.
Освещение.
Для улучшения условий труда на производствах большое значение имеет освещенность. Правильно устроенное освещение снижает утомление органов зрения, уменьшает число несчастных случаев. Исследования показали, что при правильном освещении производительность труда увеличивается на 15%. Освещение, отвечающее санитарно гигиеническим требованиям называются рациональным.
Для освещения помещения, в котором работает программист, используется смешанное освещение, т.е. сочетание естественного и искусственного освещения.
Естественное освещение осуществляется через окна в наружных стенах здания.
Световой коэффициент естественного освещения определяется по формуле:
Кс=Sc/Sn,
где, Sc площадь застекленной поверхности,
Sn площадь пола.
Согласно принятым нормам световой коэффициент (Кс) колеблется от 0,1 до 0,2 мм. Кроме этого коэффициента для оценки освещенности используют коэффициент естественной освещенности:
Кео=Е1/Е2,
где, Е1 освещенность заданной точки помещения,
Е2 освещенность наружных точек. Единица измерения освещенности Люкс (Лк).
Искусственное освещение используется при недостаточном естественном освещении и осуществляется с помощью двух систем: общего и местного освещения. Общим называют освещение, светильники которого освещают всю площадь помещения. Местным называют освещение, предназначенное для определённого рабочего места.
Для помещения, где находится рабочее место программиста, используется система общего освещения.
На предприятиях руководствуются нормативом: 1м2 должен освещаться лампой мощностью 25-30 Вт.
Вентиляция.
Для поддержания в помещениях нормального, отвечающего гигиеническим требованиям состава воздуха, удаления из него вредных газов, паров и пыли используют вентиляцию.
Вентиляция - это регулируемый воздухообмен в помещении. Вентиляцией называют также устройства, которые её создают. По способу перемещения воздуха в помещении различают естественную и искусственную вентиляцию. Возможно их сочетание - смешанная вентиляция. Естественная вентиляция подразделяется на аэрацию и проветривание.
Механическая вентиляция, в зависимости от направления движения воздушных потоков, может быть вытяжной (отсасывающей), приточной (нагнетающей) и приточно-вытяжной. Если вентиляция происходит во всём помещении, то её называют общеобменной. Вентиляция, сосредоточенная в какой-либо зоне, называется местной (локализующей). По времени действия вентиляция делится на постоянно действующую и аварийную.
При естественной вентиляции воздух поступает в помещение и удаляется из него вследствие разности температур, а также под действием ветра. Аэрация - это организованная естественная вентиляция, выполняющая роль общеобменной.
Механическая вентиляция обеспечивается вентиляторами, забирающими воздух из мест, где он чист, и направляющих его к любому рабочему месту или оборудованию, а также удаляющими загрязнённый воздух. При механической вентиляции воздух перед его потреблением можно подвергнуть обработке: подогреть, увлажнить или подсушить, очистить от пыли и т.д., а также очистить перед выбросом в атмосферу.
3.2. Пожарная безопасность.
Под пожарной охраной понимают систему государственных и общественных мероприятий, направленных на охрану от огня людей и собственности.
Горение - это химический процесс соединения вещества с кислородом, сопровождающийся выделением тепла и света. Для возникновения и протекания процесса горения необходимо наличие горючего вещества, окислителя (обычно это кислород, находящийся в воздухе, фтор, хлор, озон и т.д.) и источников воспламенения, причём первые два элемента должны быть в соответствующем количественном соотношении, а источник воспламенения должен иметь определённую температуру и запас энергии, достаточные для нагревания вещества до необходимой температуры.
Пожар - это неконтролируемое горение вне специального очага, наносящее материальный ущерб. Особенностью пожаров в закрытых помещениях является сравнительно медленное горении в течение первых 30-40 минут из-за недостаточного притока воздуха в зону горения. После разрушения остекления интенсивность пожара резко возрастает. Скорость горения различных веществ колеблется в широких пределах.
В конструкции дисплеев используются специальные разъемы, уменьшающие переходное сопротивление, и, соответственно, нагрев. ЭВМ нельзя располагать вблизи источников тепла или термоизлучателей, на экраны дисплеев не должны падать прямые солнечные лучи. Устанавливать ЭВМ необходимо так, чтобы задняя и боковые стенки отстояли не менее чем на 0.2 м от других предметов. Для соблюдения теплового режима в корпусе ЭВМ предусмотрены вентиляционные отверстия и охлаждающий вентилятор. Внутренний монтаж выполнен проводом с повышенной теплостойкостью.
Пожарная безопасность объекта обеспечивается:
- системой предотвращения пожара;
- системой противопожарной защиты;
- организационно-техническими мероприятиями.
Предотвращение пожара в помещении достигается минимальным количеством предметов из горючих материалов, их безопасным расположением, а также отсутствием легковоспламеняющихся материалов.
Противопожарная защита помещения обеспечивается применением автоматической установки пожарной сигнализации, наличием средств пожаротушения, применением основных строительных конструкций здания с регламентированными пределами огнестойкости, организацией своевременной эвакуации людей, применением средств коллективной и индивидуальной защиты людей.
Организационно-технические мероприятия должны включать организацию обучения служащих правилам пожарной безопасности.
Излучение с очень высокой энергией, которые способны выбивать электроны из атомов и присоединять их к другим атомам с образованием положительных и отрицательных ионов, называется ионизирующими излучениями.
Источником ионизирующего излучения служат радиоактивные вещества, содержащиеся в горных породах, а также поступления из космоса.
К ионизирующим излучениям относятся корпускулярные и электромагнитные излучения, способные при взаимодействии с веществом создавать в нем зараженные атомы и молекулы ионы.
Корпускулярные излучения состоят из потока атомных и субатомных частиц, которые передают собою энергию всему, с чем они сталкиваются.
Нейтронное излучение это крупные не заряженные частицы, сами по себе не вызывают ионизации, но, выбивая атомы из стабильных состояний, создают наведенную радиоактивность в нерадиоактивных материалах или тканях, сквозь которых они проходят.
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 тг.
Салг=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», Электронная версия
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
А также другие работы, которые могут Вас заинтересовать | |||
78550. | Формы земной поверхности Украины | 116 KB | |
Сегодня нас ждут наверно не зря: Холмы и равнины овраги и горы Чтобы больше о них узнать Надо карту уметь читать Быть внимательным уметь наблюдать. Горы обладают удивительным свойством настраивать человека на особый торжественный лад. | |||
78551. | Посвята в першокласники | 137.5 KB | |
Я всміхаюсь сонечку: Здрастуй золоте Я всміхаюсь квіточці: Хай вона росте Я всміхаюсь дощику: Лийся мов з відра Усміхаюсь людям Зичу їм добра Вчитель: Дітки Першого вересня ви переступили поріг школи. Ви прийшли до школи щоб навчитись читати й писати рахувати а також бути хорошими людьми. | |||
78552. | МОЇ ПРИХОВАНІ ПОТЕНЦІАЛИ — МОЯ ІНДИВІДУАЛЬНІСТЬ | 204.5 KB | |
Якщо ви хочете бути задоволені вашою роботою вам також необхідно зрозуміти що ви за особистість. Можна задатися питанням чи так вже необхідно визначати особові параметри. З свого досвіду ми знаємо що на короткий проміжок часу ми можемо поступати так як нам не властиво. | |||
78553. | Як досягти поваги в колективі? | 65.5 KB | |
Мета: навчити правильно поводити себе в колективі; виховувати самоповагу і повагу до інших; сприяти зміцненню класного колективу; розвивати словниковий запас учнів; вчити висловлювати свою думку і прислухатися до думки інших. | |||
78554. | Види позакласної роботи з математики | 93.5 KB | |
Потрібно тільки вміло підбирати математичні завдання щоб вони викликали інтерес у молодших учнів або викликати інтерес до математики це головна мета до якої ми прямуємо в звязку з задачею підвищеного рівня процесу навчання математики. | |||
78555. | Внеклассное мероприятие по зарубежной литературе | 59 KB | |
Уважаемые ребята, товарищи взрослые! Заканчивая декаду зарубежной литературы, сегодня мы поговорим о любви, о той вечной теме, которая зажигала и воодушевляла, разрушала и собирала, убивала и возвращала к жизни. Но что же такое любовь?.. | |||
78556. | Роль позашкільної роботи з української мови у процесі розвитку творчих здібностей учнів | 168 KB | |
Учні повинні знати: 8 клас знати творчість поетів фольклористів етнографів краєзнавців; знати історію вірувань релігій; знати історію нищення самобутності українців; знати походження української мови; знати традиційні місця ярмарків брати участь у них; знати державні символи України. | |||
78557. | Зелені свята | 38 KB | |
Свято належить до 12 найбільших. Його відзначають на 50-й день після Пасхи. Тому Трійцю ще називають П’ятидесятницею. У народі Трійцю називають Зеленими святами. В п’ятницю жінки заготовляли лікарські трави. Уранці збирали росу, якою лікували очі. | |||