Проектирование автоматизированного электронного каталога

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    2,12 Мб
  • Опубликовано:
    2012-12-07
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Проектирование автоматизированного электронного каталога

Содержание

Введение

Понятие о базе данных

Основные понятия о СУБД

СУБД Firebird

История

Инструменты и компоненты

Обзор существующих решений

Элементы пользовательского интерфейса APM Base

Главное меню

Панели инструментов

Построение реляционной модели БД

Выбор технических средств для физической реализации и разработки БД

Проектирование БД

Разработка программного модуля

Компонент TDataSource

Компонент TTable

Компонент TBDNavigator

Компонент DBGrid

Создание программного модуля

Заключение

Список использованной литературы

ПРИЛОЖЕНИЯ

Аннотация

В данном курсовом проекте спроектирован автоматизированный электронный каталог режущего инструмента предприятия на базе СУБД Firebird2.5.

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

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

Пояснительная записка содержит ___ листов ( формат А4).

Графическая часть представлена на __ листах ( формат А1).

Введение

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

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

Основные функции СУБД - это описание структуры баз данных, обработка данных и управление данными. Любая СУБД позволяет выполнять четыре простейшие операции с данными: добавлять записи в таблицу; удалять записи из таблицы; обновлять значения полей в записях; находить записи, удовлетворяющие заданному условию. Для выполнения этих операций используются запросы, которые формируются на языке структурированных запросов (SQL).

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

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

Понятие о базе данных

Базой данных является представленная в объективной форме совокупность самостоятельных материалов (статей, расчетов, нормативных актов, судебных решений и иных подобных материалов), систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины (ЭВМ).

Другие определения из авторитетных монографий и стандартов:

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

·        База данных - совокупность данных, хранимых в соответствии со схемой данных, манипулирование которыми выполняют в соответствии с правилами средств моделирования данных.

·        База данных - некоторый набор перманентных (постоянно хранимых) данных, используемых прикладными программными системами какого-либо предприятия.

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

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

Таким образом, любые внекомпьютерные хранилища информации (архивы, библиотеки, картотеки и т. п.) базами данных не являются.

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

Основные понятия о СУБД

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

Основные функции СУБД:

- управление данными во внешней памяти (на дисках);

управление данными в оперативной памяти с использованием дискового кэша;

журнализация изменений, резервное копирование и восстановление базы данных после сбоев;

поддержка языков БД (язык определения данных, язык манипулирования данными).

Обычно современная СУБД содержит следующие компоненты:

ядро, которое отвечает за управление данными во внешней и оперативной памяти, и журнализацию,

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

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

СУБД Firebird

 

История

Firebird ведет свое начало от исходных кодов BorlandInterBase 6.0. Это программа соткрытым исходным кодом, не имеющая двойных лицензий, вы можете использовать ее совершенно свободно как в коммерческих приложениях, так и в приложениях с открытым кодом (opensource).

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

Основные свойства

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

Основные характеристики Firebird:

·              Полнаяпоодержка хранимых процедур и триггеров.

·              Транзакции, полностью совместимые с концепцией ACID.

·              Ссылочная целостность.

·              Версионная архитектура.

·              Очень небольшой размер.

·              Мощный внутренний язык для написания хранимых процедур и триггеров (PSQL).

·              Поддержка внешних пользовательских функций (UDF).

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

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

·              Возможность распространения встроенной в приложение (embedded) версии - замечательно подходит для создания каталогов на CD-ROM, однопользовательских и пробных версий программ.

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

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

·              Большое количество средств доступа к базе данных: native/API, драйверы dbExpress, ODBC, OLEDB, .Netprovider, JDBC-драйвер, модули для Python, PHP, Perl, и так далее.

·              Поддержка большинства распространенных операционных систем, включая Windows, Linux, Solaris, MacOS.

·              Полная реализация курсоров в PSQL.

·              Таблицы мониторинга.

·              Триггеры на коннект и транзакции.

·              Временные таблицы.

·              TraceAPI - узнайте, что делается на сервере.

Инструменты и компоненты:

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

Графические программы для администрирования баз данных:

·              IBExpert (есть бесплатная версия) <#"576870.files/image001.gif">

Рис. 1.Окнобазыданныхна примере APMMechanicalBase

Элементы пользовательского интерфейса APM Base

 

Главное меню

Главное меню (рис. 2) расположено в верхней части окна и содержит команды системы АРМ Base. Описание команд главного меню приведены в таблице 1. В случае, если выполнение команд невозможно, например, команды редактирования текста неприменимы для параметрической модели, то такие команды и элементы меню будут недоступны.

Рис. 2 Структура меню APM Base.

 

Таблица 1

Продолжение таблицы 1

 

Панели инструментов


Панели инструментов содержат кнопки вызова команд APM Base. Для вызова нужной команды нужно просто щелкнуть левой кнопкой мыши соответствующей кнопке. Кнопки панелей инструментов сгруппированы по виду операций и типу объектов. Список панелей инструментов представлен в структуре меню (рис. 1) Вид | Панели | …

Внешний вид представлен на рисунке 3. Пользователь имеет возможность настраивать как панели инструментов, так и пиктографические значки команд. Краткое описание кнопок панелей инструментов представлено в таблице 2.

Рис. 3 Панели инструментов APM Base.

 

 

Таблица 2


База данных APM TechnologyData содержит различные данные по оборудованию, инструментам, формам документации и другую необходимую для технолога информацию. Достаточно значительная часть геометрической информации в разделе «Инструменты» содержится в базе данных в параметрическом виде. Это позволяет сократить время на разработку нового инструмента, т.к. у пользователя появляется возможность использовать стандартные базовые образцы.В состав APM TechnologyData входят следующие разделы:

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

§   вспомогательные материалы;

§   приспособления (державки, патроны, тиски, оправки, хомутики, центры, втулки, кондукторы);

§   вспомогательные инструменты;

§   режущие инструменты (абразивные инструменты, долбяки, зенкеры, зенковки, метчики, плашки, протяжки, развертки, резцы токарные, резцы строгальные, резцы долбежные, сверла, фрезы, шеверы)(см. рис. 4- 6);

§   средства измерения;

§   средства защиты;

§   формы технологической документации.

Рис. 4

Рис. 5

Рис. 6

Построение реляционной модели БД


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

Таблица имеет строки (записи) и столбцы (колонки). Каждая строка таблицы имеет одинаковую структуру и состоит из полей. Строкам таблицы соответствуют кортежи, столбцам - атрибуты отношения.

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

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

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

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

Согласно модели имеем: связь 1 -->М говорит о том, что в каждой группе есть множество подгрупп; связь 1 -->N говорит о том, что одному ГОСТу может соответствовать много инструментов с различными параметрам; связь 1 -->К, иллюстрирует, что в одном здании находится много различных стеллажей, а связь 1-->Р - что на каждом из стеллажей лежит инструмент выполненный по одному ГОСТу и имеющий одинаковые размеры.

 

Выбор технических средств для физической реализации и разработки БД


Разработка базы данных будет происходить в Firebird/FirebirdDevelopmentStudio <#"576870.files/image011.gif">

Рис. 7

. Наполним таблицы БД. Для этого в контекстном менюInterbase/FirebirdDevelopmentStudioвыберем «Редакторбазданных». В открывшемсяменеджере БД нажмем кнопку «Создать БД», заполним поля диалоговогоокна и нажмем ОК. Подключим БД ксерверу СУБД. Для этого нажмем кнопку «Установить соединение». На горизонтальной панели выберем вкладку «Данные» и внесемнеобходимые данные (см. рис. 8 - 12).

Рис. 8 Таблица «REZCY»

Рис. 9 Таблица «VID_REZCA»

Рис. 10 Таблица «PARAMETRY _REZCA»

Рис. 11 Таблица «STELLAZH»

Рис. 12 Таблица «SKLAD»

Разработка программного модуля


Используя Borland C++ Builder, можно создать приложения, работающие как с однопользовательскими базами данных (БД), так и с серверными СУБД, такими как Oracle, Sybase, Informix, Interbase, MS SQL Server, DB2, а также с ODBC-источниками. Возможности C++ Builder, связанные с созданием приложений, использующих базы данных, весьма обширны для того, чтобы описать их в одной статье. Поэтому рассмотрим лишь простейшие возможности работы с таблицами баз данных.

Набор данных в C++ Builder является потомком абстрактного класса TDataSet (абстрактный класс - это класс, от которого можно порождать другие классы, но нельзя создать экземпляр объекта данного класса). Например, классы TQuery, TTable и TStoredProc, содержащиеся на странице палитры компонентов DataAccess, - наследники TDBDataSet, который, в свою очередь, является наследником TDataSet. TDataSet содержит абстракции, необходимые для непосредственного управления таблицами или запросами, обеспечивая средства для того, чтобы открыть таблицу или выполнить запрос и перемещаться по строкам.

 

Компонент TDataSource


Компонент DataSource действует как посредник между компонентами TDataSet (TTable, TQuery, TStoredProc) и компонентами DataControls - элементами управления, обеспечивающими представление данных на форме.

Компоненты TDataSet управляют связями с библиотекой BorlandDatabaseEngine (BDE), а компонент DataSource управляет связями с данными в компонентах DataControls.

В типичных приложениях БД компонент DataSource, как правило, связан с одним компоненом TDataSet (TTable или TQuery) и с одним или более компонентами DataControls (такими, как DBGrid, DBEdit и др.). Связь этого компонента с компонентами TDataSet и DataControls осуществляется с использованием следующих свойств и событий:

·              Cвойство DataSet компонента DataSource идентифицирует имя компонента TDataSet. Можно присвоить значение свойству DataSet на этапе выполнения или с помощью инспектора объектов на этапе проектирования.

·              Cвойство Enabled компонента DataSource активизирует или останавливает взаимосвязь между компонентами TDataSource и DataControls. Если значение свойства Enabled равно true, то компоненты DataControls, связанные с TDataSource, воспринимают изменения набора данных. Использование свойства Enabled позволяет временно разъединять визуальные компоненты DataControls и TDataSource, например, для того, чтобы в случае поиска в таблице с большим количеством записей не отображать на экране пролистывание всей таблицы.

·              Свойство AutoEdit компонента DataSource контролирует, как инициируется редактирование в компонентах DataControls. Если значение свойства AutoEdit равно true, то режим редактирования начинается непосредственно при получении фокуса компонентом DataControls, связанным с данным компонентом TDataSet. В противном случае режим редактирования начинается, когда вызывается метод Edit компонента TDataSet, например, после нажатия пользователем кнопки Edit на компоненте DBNavigator. · Событие OnDataChange компонента DataSource наступает, когда происходит изменение значения поля, записи, таблицы, запроса.

·              Cобытие OnUpdateData компонента DataSource наступает, когда пользователь пытается изменить текущую запись в TDataSet. Обработчик этого события следует создавать, когда требуется соблюсти условия ссылочной целостности или ограничения, накладываемые на значения полей изменяемой базы данных.

 

Компонент TTable


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

·              Active - указывает, открыта (true) или нет (false) данная таблица.

DatabaseName - имя каталога, содержащего искомую таблицу, либо псевдоним (alias) удаленной БД (псевдонимы устанавливаются с помощью утилиты конфигурации BDE, описание которой присутствует во многих источниках, посвященных продуктам Borland, либо с помощью SQL Explorer, вызываемого с помощью пункта меню Database/Explore). Это свойство может быть изменено только в случае, если таблица закрыта (ее свойство Active равно false

·              TableName - имя таблицы.

·              Exclusive - если это свойство принимает значение true, то никакой другой пользователь не может открыть таблицу, если она открыта данным приложением. Если это свойство равно false (значение по умолчанию), то другие пользователи могут открывать эту таблицу.

·              IndexName - идентифицирует вторичный индекс для таблицы. Это свойство нельзя изменить, пока таблица открыта.

·              MasterFields - определяет имя поля для создания связи с другой таблицей.

·              MasterSource - имя компонента TDataSource, с помощью которого TTable будет получать данные из связанной таблицы.

·              ReadOnly - если это свойство равно true, таблица открыта в режиме "только для чтения". Нельзя изменить свойство ReadOnly, пока таблица открыта.

·              Eof, Bof - эти свойства принимают значение true, когда указатель текущей записи расположен на последней или соответственно первой записи таблицы.

·              Fields - массив объектов TField. Используя это свойство, можно обращаться к полям по номеру, что удобно, когда заранее неизвестна структура таблицы:

Наиболее часто при работе с компонентом TTable используются следующие методы:

·              Open и Close устанавливают значения свойства ActiveравнымиTrue и False соответственно.

·              Refresh позволяет заново считать набор данных из БД.

·              First, Last, Next, Prior перемещают указатель текущей записи на первую, последнюю, следующую и предыдущую записи соответственно.

 

Компонент TBDNavigator

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

Управление осуществляется с помощью кнопок навигатора. Наличие конкретной кнопки задается в свойстве VisibleButtons установкой соответствующего идентификатора nbXxxв значение True(есть кнопка) или False(нет кнопки).

Компонент DBGrid

Служит для отображения данных, извлеченных из БД, компонент Query извлекает или помещает данные из/в БД с помощью BDE, а компонент DataSource обеспечивает взаимодействие компонентов DBGrid и Query.

Компонент Query имеет среди прочих следующие свойства:

·        SQL - оператор SQL, который должен быть выполнен;

·        DatabaseName - псевдоним БД, на таблицы которой есть ссылки в операторе SQL.

Для управления компонентом Queryиспользуютя специальные методы Close, Open, ExecSQL. Значение свойства SQL устанавливается методами Clear и Add.

Создание программного модуля

Согласно курсовому проекту программа должна обеспечивать:

·        Просмотр таблиц базы данных

·        Просмотр содержимого таблиц базы данных

·        Редактирование записей в таблице базы данных

·        Вставку записей в таблицы базы данных

·        Удаление записей из таблиц

·        Сортировку записей в таблицах

·        Фильтрацию записей в таблицах

·        Поиск записей в таблицах

·        Выполнение динамического или статическогоSQL-запроса.

Для создания чтобы привязать базу данных к программе воспользуемся компонентами TDataSource и TTablе. Выберем в меню компонента TTablе ->DatabaseName->rezh_instr, в TTablе->TableName имя таблицы с которой хотим связаться. В меню компонента TDataSource->DataSet так же выбираем имя таблицы. Все эти свойства прописываются в коде программы в зависимости от выбранной в главном окне таблицы (рис.13).

Рис. 13

После выбора нужной таблицы откроется окно для работы с этой таблицей (рис. 14).

Рис. 14Работа с таблицей «Параметры резца»

В данном окне доступны следующие действия:

- просмотр содержимого таблицы;

- редактирование, удаление или добавление записей в таблицу;

- поиск данных по выбранному полю (рис. 15);

- фильтрация записей таблицы (рис. 16);

- сортировка записей таблицы (рис. 17).

Рис. 15 Поиск по полю «GOST»

Рис. 16 Фильтрация по полю «IDстеллажа»

Рис. 17 Сортировка по полю «IDрезца»

Просмотр содержимого таблицы можно производить как с помощь мыши, так и с помощью специального компонента - TBDNavigator (навигатор) (рис. 18).

Рис. 18Кнопки навигатора

Для удобства просмотра и редактирования данные текущего поля таблицы отображаются в DBEdit. Редактирование возможно непосредственно в таблице или через DBEdit. Возможно так же изменение рисунка. Для этого необходимо открыть новый рисунок и сохранить его в базе с помощью соответствующих кнопок «Открыть» и «Сохранить».

В главном окне при нажатии на «Выполнить SQL-запрос» откроется соответствующее окно, где необходимо ввести текст запроса на языке SQL и нажать на кнопку «Выполнить», после чего отобразится результат запроса (рис. 19).

Рис. 19 Выполнение запроса

Заключение

В данной работе создан автоматизированный каталог режущего инструмента предприятия. При его разработке использовалось современное программное обеспечение: СУБДFireBird 2.5 и среда разработки приложенийC++ Builder 6. Разработана база данных для хранения информации с необходимыми таблицами, а также программный модуль для работы с базой данных, обеспечивающий внесение изменений, редактирование, поиск и фильтрация данных, выполнение запросов.

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

Список использованной литературы

1. Базы данных: Учебник для вузов / А.Д. Хомоненко, В.Н. Цыганков, М.Г. Мальцев. Под ред. А.Д. Хомоненко. - 2 - е изд., перераб. и доп. - М.: Корона - Принт, 2004г. -736с.

3. Агальцов, В.П. Базы данных/ Агальцов, В.П. - М.: Мир.2002 г. - 418с.

4. Карпова, Т.С. Базы данных: модели, разработки, реализация / Т.С. Карпова. - СПб.: Питер, 2001. - 304с.

5. Мартьянова, А.В. Базы данных и знаний/Мартьянова А.В. - М: ЮНИТИ. 2009г. - 291с.

6. Хоменко А., Ададуров С. Работа с базами данных в C++ Builder - 2006г.

ПРИЛОЖЕНИЯ

Project1.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

//---------------------------------------------------------------------------("Unit1.cpp", Form1);("Unit2.cpp", Form2);("Unit3.cpp", Form3);

//---------------------------------------------------------------------------WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

{

{>Initialize();>CreateForm(__classid(TForm1), &Form1);>CreateForm(__classid(TForm2), &Form2);>CreateForm(__classid(TForm3), &Form3);>Run();

}(Exception &exception)

{>ShowException(&exception);

}(...)

{

{Exception("");

}(Exception &exception)

{>ShowException(&exception);

}

}0;

}

//---------------------------------------------------------------------------

Unit1.h

//---------------------------------------------------------------------------

#ifndef Unit1H

#define Unit1H

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <Menus.hpp>

//---------------------------------------------------------------------------TForm1 : public TForm

{

__published:         // IDE-managed Components*MainMenu1;*N1;*N2;*N3;*N4;*N5;*N6;*SQL1;*N7;*GroupBox1;*Memo1;__fastcall N2Click(TObject *Sender);__fastcall N3Click(TObject *Sender);__fastcall N4Click(TObject *Sender);__fastcall N5Click(TObject *Sender);__fastcall N6Click(TObject *Sender);__fastcall N7Click(TObject *Sender);__fastcall SQL1Click(TObject *Sender);:          // User declarations:                   // User declarations

__fastcallTForm1(TComponent* Owner);

};

//---------------------------------------------------------------------------PACKAGE TForm1 *Form1;

//---------------------------------------------------------------------------

#endif

Unit1.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"*Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------__fastcall TForm1::N2Click(TObject *Sender)

{->Table1->Active = false;->Show();->Table1->TableName = "REZCY";->Table1->Active = true;->DBEdit3->Visible=false;->DBEdit4->Visible=false;->DBEdit5->Visible=false;->DBEdit6->Visible=false;->DBEdit7->Visible=false;->DBEdit8->Visible=false;->DBEdit9->Visible=false;->DBEdit10->Visible=false;->DBEdit11->Visible=false;->DBEdit12->Visible=false;->DBEdit13->Visible=false;->DBEdit14->Visible=false;->Label3->Visible=false;->Label4->Visible=false;->Label5->Visible=false;->Label6->Visible=false;->Label7->Visible=false;->Label8->Visible=false;->Label9->Visible=false;->Label10->Visible=false;->Label11->Visible=false;->Label12->Visible=false;->Label13->Visible=false;->Label14->Visible=false;->DBEdit1->Visible=true;->DBEdit1->DataField="N_PORGRUPPY";->Label1->Visible=true;->Label1->Caption="Номерподгруппы";->DBEdit2->Visible=true;->DBEdit2->DataField="KOMMENTARII";->Label2->Visible=true;->Label2->Caption="Комментарии";->ComboBox1->Items->Clear();(int i=0; i<=Form2->Table1->FieldCount-1; i++)

{->ComboBox1->Items->Add(Form2->Table1->Fields->Fields[i]->FieldName);

}->ComboBox1->ItemIndex==0;

}

//--------------------------------------------------------------------------__fastcall TForm1::N3Click(TObject *Sender)

{->Table1->Active = false;->Show();->Table1->TableName = "VID_REZCA";->Table1->Active = true;->DBEdit4->Visible=false;->DBEdit5->Visible=false;->DBEdit6->Visible=false;->DBEdit7->Visible=false;->DBEdit8->Visible=false;->DBEdit9->Visible=false;->DBEdit10->Visible=false;->DBEdit11->Visible=false;->DBEdit12->Visible=false;->DBEdit13->Visible=false;->DBEdit14->Visible=false;->Label4->Visible=false;->Label5->Visible=false;->Label6->Visible=false;->Label7->Visible=false;->Label8->Visible=false;->Label9->Visible=false;->Label10->Visible=false;->Label11->Visible=false;->Label12->Visible=false;->Label13->Visible=false;->Label14->Visible=false;->DBEdit1->Visible=true;->DBEdit1->DataField="VID_REZCA";->Label1->Visible=true;->Label1->Caption="Видрезца";->DBEdit2->Visible=true;->DBEdit2->DataField="N_PODGRUPPY";->Label2->Visible=true;->Label2->Caption="Номерподгруппы";->DBEdit3->Visible=true;->DBEdit3->DataField="KOMMENTARII";->Label3->Caption="Комментарии";->Label3->Visible=true;->DBEdit4->Visible=true;->DBEdit4->DataField="GOST";->Label4->Caption="ГОСТ";->Label4->Visible=true;->ComboBox1->Items->Clear();(int i=0; i<=Form2->Table1->FieldCount-1; i++)

{->ComboBox1->Items->Add(Form2->Table1->Fields->Fields[i]->FieldName);

}->ComboBox1->ItemIndex==0;

}

//---------------------------------------------------------------------------__fastcall TForm1::N4Click(TObject *Sender)

{->DBImage1->Visible=true;->Button6->Visible=true;->Button8->Visible=true;->DBImage1->DataField="RISUNOK";->Table1->Active = false;->Show();->Table1->TableName = "PARAMETRY_REZCA";->Table1->Active = true;->DBEdit1->Visible=true;->DBEdit1->DataField="GOST";->Label1->Visible=true;->Label1->Caption="ГОСТ";->DBEdit2->Visible=true;->DBEdit2->DataField="L";->Label2->Visible=true;->Label2->Caption="L, мм";->DBEdit3->Visible=true;->DBEdit3->DataField="B";->Label3->Visible=true;->Label3->Caption="В, мм";->DBEdit4->Visible=true;->DBEdit4->DataField="H";->Label4->Visible=true;->Label4->Caption="Н, мм";->DBEdit5->Visible=true;->DBEdit5->DataField="Y";->Label5->Visible=true;->Label5->Caption="Y, градусы";->DBEdit6->Visible=true;->DBEdit6->DataField="ID_REZCA";->Label6->Visible=true;->Label6->Caption="ID резца";->DBEdit7->Visible=true;->DBEdit7->DataField="N_YACHEIKI";->Label7->Visible=true;->Label7->Caption="Номерячейки";->DBEdit8->Visible=true;->DBEdit8->DataField="ID_STELLAZHA";->Label8->Visible=true;->Label8->Caption="ID стеллажа";->DBEdit9->Visible=true;->DBEdit9->DataField="KOLICHESTVO";->Label9->Visible=true;->Label9->Caption="Количество";->DBEdit10->Visible=true;->DBEdit10->DataField="A";->Label10->Visible=true;->Label10->Caption="а, мм";->DBEdit11->Visible=true;->DBEdit11->DataField="M";->Label11->Visible=true;->Label11->Caption="m, мм";->DBEdit12->Visible=true;->DBEdit12->DataField="N";->Label12->Visible=true;->Label12->Caption="n, мм";->DBEdit13->Visible=true;->DBEdit13->DataField="1";->Label13->Visible=true;->Label13->Caption="l, мм";->DBEdit14->Visible=true;->DBEdit14->DataField="L1";->Label14->Visible=true;->Label14->Caption="l1, мм";->ComboBox1->Items->Clear();(int i=0; i<=Form2->Table1->FieldCount-1; i++)

{->ComboBox1->Items->Add(Form2->Table1->Fields->Fields[i]->FieldName);

}

//---------------------------------------------------------------------------__fastcall TForm1::N5Click(TObject *Sender)

{->Table1->Active = false;->Show();->Table1->TableName = "STELLAZH";->Table1->Active = true;->DBImage1->Visible=false;->Button6->Visible=false;->Button8->Visible=false;->DBEdit4->Visible=false;->DBEdit5->Visible=false;->DBEdit6->Visible=false;->DBEdit7->Visible=false;->DBEdit8->Visible=false;->DBEdit9->Visible=false;->DBEdit10->Visible=false;->DBEdit11->Visible=false;->DBEdit12->Visible=false;->DBEdit13->Visible=false;->DBEdit14->Visible=false;->Label4->Visible=false;->Label5->Visible=false;->Label6->Visible=false;->Label7->Visible=false;->Label8->Visible=false;->Label9->Visible=false;->Label10->Visible=false;->Label11->Visible=false;->Label12->Visible=false;->Label13->Visible=false;->Label14->Visible=false;->DBEdit1->Visible=true;->DBEdit1->DataField="ID_ZDANIYA";->Label1->Visible=true;->Label1->Caption="ID здания";->DBEdit2->Visible=true;->DBEdit2->DataField="TIP_STELLAZHA";->Label2->Visible=true;->Label2->Caption="Типстеллажа";->DBEdit3->Visible=true;->DBEdit3->DataField="INVENTARNYI_NOMER";->Label3->Visible=true;->Label3->Caption="Инвентарныйномер";->DBEdit1->Visible=true;->DBEdit4->DataField="ID_STELLAZHA";->Label4->Visible=true;->Label4->Caption="ID стеллажа";->ComboBox1->Items->Clear();(int i=0; i<=Form2->Table1->FieldCount-1; i++)

{->ComboBox1->Items->Add(Form2->Table1->Fields->Fields[i]->FieldName);

}->ComboBox1->ItemIndex==0;

}

//---------------------------------------------------------------------------__fastcall TForm1::N6Click(TObject *Sender)

{->Table1->Active = false;->Show();->Table1->TableName = "SKLAD";->Table1->Active = true;

//Form2->DBImage1->Visible=false;

// Form2->Button6->Visible=false;

// Form2->Button8->Visible=false;->DBEdit4->Visible=false;->DBEdit5->Visible=false;->DBEdit6->Visible=false;->DBEdit7->Visible=false;->DBEdit8->Visible=false;->DBEdit9->Visible=false;->DBEdit10->Visible=false;->DBEdit11->Visible=false;->DBEdit12->Visible=false;->DBEdit13->Visible=false;->DBEdit14->Visible=false;->Label4->Visible=false;->Label5->Visible=false;->Label6->Visible=false;->Label7->Visible=false;->Label8->Visible=false;->Label9->Visible=false;->Label10->Visible=false;->Label11->Visible=false;->Label12->Visible=false;->Label13->Visible=false;->Label14->Visible=false;->DBEdit1->Visible=true;->DBEdit1->DataField="ID_ZDANIYA";->Label1->Visible=true;->Label1->Caption="ID здания";->DBEdit2->Visible=true;->DBEdit2->DataField="N_KORPUSA";->Label2->Visible=true;->Label2->Caption="Номеркорпуса";->DBEdit3->Visible=true;->DBEdit3->DataField="N_ETAZHA";->Label3->Visible=true;->Label3->Caption="Номерэтажа";->ComboBox1->Items->Clear();(int i=0; i<=Form2->Table1->FieldCount-1; i++)

{->ComboBox1->Items->Add(Form2->Table1->Fields->Fields[i]->FieldName);

}->ComboBox1->ItemIndex==0;

}

//---------------------------------------------------------------------------__fastcall TForm1::N7Click(TObject *Sender)

{->Close();

}

//---------------------------------------------------------------------------__fastcall TForm1::SQL1Click(TObject *Sender)

{->Show();

}

//---------------------------------------------------------------------------

Unit2.h

//---------------------------------------------------------------------------

#ifndef Unit2H

#define Unit2H

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <DB.hpp>

#include <DBCtrls.hpp>

#include <DBGrids.hpp>

#include <DBTables.hpp>

#include <ExtCtrls.hpp>

#include <Grids.hpp>

#include <Mask.hpp>

#include <Dialogs.hpp>

#include <ExtDlgs.hpp>

#include <ADODB.hpp>

//---------------------------------------------------------------------------TForm2 : public TForm

{

__published:         // IDE-managed Components*DataSource1;*DBGrid1;*DBNavigator1;*Table1;*GroupBox1;*DBEdit1;*DBEdit2;*DBEdit3;*DBEdit4;*DBEdit5;*DBEdit6;*DBEdit7;*DBEdit8;*DBImage1;*Label1;*Label2;*Label3;*Label4;*Label5;*Label6;*Label7;*Label8;*GroupBox2;*ComboBox1;*Label15;*Label16;*Edit1;*Button1;*GroupBox3;*Edit2;*Label17;*Button2;*Button3;*RadioGroup1;*Button4;*Button5;*Button6;*Button8;*OpenPictureDialog1;*DBEdit9;*DBEdit10;*DBEdit11;*DBEdit12;*DBEdit13;*DBEdit14;*Label12;*Label9;*Label10;*Label11;*Label13;*Label14;*SavePictureDialog1;__fastcall Button1Click(TObject *Sender);__fastcall Button2Click(TObject *Sender);__fastcall Button3Click(TObject *Sender);__fastcall Button4Click(TObject *Sender);__fastcall Button5Click(TObject *Sender);__fastcall Button6Click(TObject *Sender);__fastcall Button8Click(TObject *Sender);:     // User declarations:                 // User declarations

__fastcallTForm2(TComponent* Owner);

};

//---------------------------------------------------------------------------PACKAGE TForm2 *Form2;

//---------------------------------------------------------------------------

#endif

Unit2.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit2.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"*Form2;

//---------------------------------------------------------------------------

__fastcall TForm2::TForm2(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------__fastcall TForm2::Button1Click(TObject *Sender)

{->Next();(; Table1->FieldByName(ComboBox1->Text)->AsString!=->Edit1->Text;)

{->Table1->Next();(Form2->Table1->Eof)

{("Ничегоненайдено!");;

}

}

}

//---------------------------------------------------------------------------__fastcall TForm2::Button2Click(TObject *Sender)

{->Filtered=true;->Filter=Edit2->Text;

//---------------------------------------------------------------------------__fastcall TForm2::Button3Click(TObject *Sender)

{->Filtered=false;->Clear();->Filter="";

}

//---------------------------------------------------------------------------__fastcall TForm2::Button4Click(TObject *Sender)

{(RadioGroup1->ItemIndex)

{ case 0: Table1->IndexFieldNames = "N_PORGRUPPY"; break;1: Table1->IndexFieldNames = "GOST"; break;2: Table1->IndexFieldNames = "ID_REZCA"; break;3: Table1->IndexFieldNames = "N_YACHEIKI"; break;4: Table1->IndexFieldNames = "ID_STELLAZHA"; break;5: Table1->IndexFieldNames = "ID_ZDANIYA";break;6: Table1->IndexFieldNames = "N_KORPUSA"; break;7: Table1->IndexFieldNames = "N_ETAZHA";

}

}

//---------------------------------------------------------------------------__fastcall TForm2::Button5Click(TObject *Sender)

{->DBEdit1->DataField="";->DBEdit2->DataField="";->DBEdit3->DataField="";->DBEdit4->DataField="";->DBEdit5->DataField="";->DBEdit6->DataField="";->DBEdit7->DataField="";->DBEdit8->DataField="";->DBEdit9->DataField="";->DBEdit10->DataField="";->DBEdit11->DataField="";->DBEdit12->DataField="";->DBEdit13->DataField="";->DBEdit14->DataField="";->IndexFieldNames = "";->DBImage1->DataField="";->ComboBox1->Items->Clear();->Table1->Active = false;->Close();->Clear();

}

//---------------------------------------------------------------------------__fastcall TForm2::Button6Click(TObject *Sender)

{->Edit();(OpenPictureDialog1->Execute())->Picture->LoadFromFile(OpenPictureDialog1->FileName);->Post();

}

//---------------------------------------------------------------------------__fastcall TForm2::Button8Click(TObject *Sender)

{->Edit();* strm = new TMemoryStream();->Picture->Graphic->SaveToStream(strm);

((TGraphicField*)Form2->Table1->FieldByName("RISUNOK"))->LoadFromStream(strm);;->Table1->Post();

}

//---------------------------------------------------------------------------

Unit3.h

//---------------------------------------------------------------------------

#ifndef Unit3H

#define Unit3H

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <DB.hpp>

#include <DBTables.hpp>

#include <FMTBcd.hpp>

#include <SqlExpr.hpp>

#include <DBGrids.hpp>

#include <Grids.hpp>

//---------------------------------------------------------------------------TForm3 : public TForm

{

__published:         // IDE-managed Components*Button1;*Memo1;*Label1;*DBGrid1;*Query1;*DataSource1;*Button2;*Button3;*Label2;__fastcall Button1Click(TObject *Sender);__fastcall Button2Click(TObject *Sender);__fastcall Button3Click(TObject *Sender);:       // User declarations:                 // User declarations

__fastcallTForm3(TComponent* Owner);

};

//---------------------------------------------------------------------------PACKAGE TForm3 *Form3;

//---------------------------------------------------------------------------

#endif

Unit3.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit3.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"*Form3;

//---------------------------------------------------------------------------

__fastcall TForm3::TForm3(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------__fastcall TForm3::Button1Click(TObject *Sender)

{->Close();->SQL->Clear();->SQL = Memo1->Lines;->Open();

}

//---------------------------------------------------------------------------__fastcall TForm3::Button2Click(TObject *Sender)

{->Close();->SQL->Clear();->Lines->Clear();

}

//---------------------------------------------------------------------------__fastcall TForm3::Button3Click(TObject *Sender)

{->Close();->Close();

}

//---------------------------------------------------------------------------

Похожие работы на - Проектирование автоматизированного электронного каталога

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!