Учет внутриофисных расходов

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Министерство Образования и Науки Российской Федерации

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«Национальный исследовательский ядерный университет «МИФИ»

Димитровградский инженерно-технологический институт — филиал НИЯУ МИФИ

Кафедра Информационные технологии

Курсовая работа

по дисциплине «Базы данных»

Тема: «Учет внутриофисных расходов»

Выполнил: студент гр. ВТ-31

Савельев А.А.

Руководитель: ст. преподаватель кафедры ИТ

Аленин В.А.

Нормоконтролер: ст. преподаватель кафедры ИТ

Аленин В.А.

Димитровград, 2012

Задание на курсовую работу

Дисциплина: базы данных.

Тема: учёт внутриофисных расходов.

Исполнитель: Савельев А. А.

Руководитель: Аленин В. А.

1. Теоретическая часть:

Система управления базами данных MySQL. Структурированный язык программирования Delphi.

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

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

Сроки выполнения работы по графику:

1. Теоретическая часть — 30% к 8 неделе

2. Практическая часть — 80% к 15 неделе

3. Экспериментальный раздел — 90% к 16 неделе

4. Защита — 100% к 18 неделе

Требования к оформлению:

1. Расчетно-пояснительная записка курсовой работы должна быть представлена в электронной и твердой копиях;

2. Объем отчета должен быть не менее 20 машинописных страниц без учета приложений;

3. РПЗ подписывается у ответственного за нормоконтроль.

Руководитель работы: Аленин В. А.

Исполнитель: Савельев А. А.

Дата выдачи «1» Октября 2012 г.

Реферат

Савельев А.А. БАЗЫ ДАННЫХ. Курсовая работа / ДИТИ. 230 105. 65-Димитровград, 2012. — стр. ___, рис. ___, библ. назв. ___, приложений ___.

Ключевые слова: MYSQL, DELPHI, SQL, БАЗА ДАННЫХ.

Объект исследования — предметная область, база данных MySQL.

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

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

Содержание

  • Введение
  • 1. Теоретическая часть
  • MySQL
  • Delphi
  • 2. Практическая часть
  • Создание таблиц
  • Структура связей между таблицами
  • Содержимое таблиц с данными
  • Описание форм программы
  • Соединение с Delphi
  • Заключение
  • Список использованных источников
  • Приложения

Введение

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

1. Теоретическая часть

MySQL

MySQL — свободная система управления базами данных. Разработку и поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощённой Sun Microsystems, которая ранее приобрела шведскую компанию MySQL AB. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы [1].

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц [2]. 1.1 MySQL

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

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

MySQL является системой клиент-сервер, которая содержит многопоточный SQL-сервер, обеспечивающий поддержку различных вычислительных машин баз данных, а также несколько различных клиентских программ и библиотек, средства администрирования и широкий спектр программных интерфейсов (API). Мы также поставляем сервер MySQL в виде многопоточной библиотеки, которую можно подключить к пользовательскому приложению и получить компактный, более быстрый и легкий в управлении продукт. Доступно также большое количество программного обеспечения для MySQL, в большей части — бесплатного.

SQL состоит из двух частей: серверной и клиентской. Сервер MySQL постоянно работает на компьютере. Клиентские программы (например, скрипты PHP) посылают серверу MySQL SQL-запросы через механизм сокетов (то есть при помощи сетевых средств), сервер их обрабатывает и запоминает результат. То есть скрипт (клиент) указывает, какую информации он хочет получить от сервера баз данных. Затем сервер баз данных посылает ответ (результат) клиенту (скрипту) [3].

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

база клиент внутриофисный расход

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

· создание в базе данных новой таблицы;

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

· изменение записей;

· удаление записей;

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

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

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

Каждое предложение SQL — это запрос или обращение к базе данных, которое приводит к изменению в базе данных. В соответствии с тем, какие изменения происходят в базе данных, различают следующие типы запросов:

· запросы на создание или изменение в базе данных новых или существующих объектов (при этом в запросе описывается тип и структура создаваемого или изменяемого объекта);

· запросы на получение данных;

· запросы на добавление новых данных (записей)

· запросы на удаление данных;

· обращения к СУБД.

Основным объектом хранения реляционной базы данных является таблица, поэтому все SQL-запросы — это операции над таблицами. В соответствии с этим, запросы делятся на:

· запросы, оперирующие самими таблицами (создание и изменение таблиц);

· запросы, оперирующие с отдельными записями (или строками таблиц) или наборами записей.

Каждая таблица описывается в виде перечисления своих полей (столбцов таблицы) с указанием

· типа хранимых в каждом поле значений;

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

· информации, необходимой для построения индексов.

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

· вставка новой строки;

· изменение значений полей строки или набора строк;

· удаление строки или набора строк.

Самый главный вид запроса — это запрос, возвращающий (пользователю) некоторый набор строк, с которым можно осуществить одну из трёх операций:

· просмотреть полученный набор;

· изменить все записи набора;

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

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

Cтруктура MySQL трехуровневая: базы данных — таблицы — записи. Базы данных и таблицы MySQL физически представляются файлами с расширениями frm, MYD, MYI. Логически — таблица представляет собой совокупность записей. А записи — это совокупность полей разного типа. Имя базы данных MySQL уникально в пределах системы, а таблицы — в пределах базы данных, поля — в пределах таблицы. Один сервер MySQL может поддерживать сразу несколько баз данных, доступ к которым может разграничиваться логином и паролем. Зная эти логин и пароль, можно работать с конкретной базой данных. Например, можно создать или удалить в ней таблицу, добавить записи и т. д. Обычно имя-идентификатор и пароль назначаются хостинг провайдерами, которые и обеспечивают поддержку MySQL для своих пользователей.

Delphi

Среда программирования «Borland Delphi 7» — это универсальный язык общего назначения, который применяется во многих областях программирования. Delphi — это среда быстрой разработки, в которой в качестве языка программирования используется язык Delphi. Язык Delphi — строго типизированный объектно-ориентированный язык, в основе которого лежит хорошо знакомый программистам Object Pascal. В Delphi успешно проектируются многие приложения. Реализация Delphi осуществлена для машин в диапазоне от самых простых персональных компьютеров до самых мощных суперкомпьютеров и для всех операционных систем. В наше время в любой сфере деятельности применяются информационные технологии.

Borland Delphi 7 позволяет создавать самые различные программы: от простейших однооконных приложений до программ управления распределенными базами. В состав пакета включены разнообразные утилиты, обеспечивающие работу с базами данных, XML-документами, создание справочной системы, решение других задач. Отличительной особенностью седьмой версии является поддержка технологии. net [4].

Для работы с базами в Delphi есть несколько наборов компонентов. Каждый набор очень хорошо подходит для решения определенного круга задач. Почему такое разнообразие компонентов? Все они используют разные технологии доступа к данным и отличаются по своим возможностям. Фирма Borland предоставила разнообразные средства, работающие через разные технологии, и не ограничивает программиста только своими разработками. Такое положение вещей дает громадные преимущества. Помимо этого, есть группы компонентов, которые могут использоваться в любом случае [5].

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

Компонент TDBGrid. TObject-> TPersistent->TComponent->TControl->TWinControl->TCustomControl->TCustomGrid->TCustoinDBGrid->TDBGrid Модуль DBGRIDS Страница Палитры компонентов Data Controls. Предназначен для просмотра и редактирования всех записей связанного с ним набора данных в развернутом виде. Данные структурированы в табличном формате, представление полей и расположение колонок зависит от значений свойств компонентов типа TField набора данных.

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

Компонент TDBText. TObject-> TPersistent->TComponent->TControl->TGraphicControl->TCustomLabel->TDBText. Модуль DBCTRLS. Страница Палитры компонентов Data Controls. Позволяет отображать содержимое поля текущей записи связанного набора данных. Ближайший аналог в VCL — компонент TLabel, поэтому TDBText не предоставляет возможность изменять отображаемое поле. Все изменения данных в соответствующем поле текущей записи оперативно отражаются в компоненте. Компонент не имеет свойств или методов, которые бы не были рассмотрены выше.

Компонент TDBEdit. TObject-> TPersistent->TComponent->TControl->TWinControl->TCustornEdit->TCustomMaskEdit->TDBEdit

Компонент TDBListBox. TObject-> TPersistent->TComponent->TControl->TWinControl->TCustomListBox->TDBListBox. Модуль DBCTRLS. Страница Палитры компонентов Data Controls. Является модификацией для работы с базами данных компонента TListBox, у которого он позаимствовал все основные свойства и методы. Позволяет редактировать связанное поле текущей записи набора данных путем выбора возможного значения из списка. Список заполняется при помощи свойства Items. Компонент не имеет свойств или методов, которые бы не были рассмотрены выше.

Компонент TDBComboBox. TObject-> TPersistent->TComponent->TControl->TWinControl->TCustomComboBox->TDBComboBox. Модуль DBCTRLS. Страница Палитры компонентов Data Controls. Представляет из себя комбинацию компонентов TDBEdit и TDBListBox, объединяя поле редактирования и список выбора. Модификация значения связанного поля текущей записи набора данных осуществляется путем выбора существующего значения из списка или набором нового значения в поле ввода. Компонент не имеет свойств или методов, которые бы не были рассмотрены выше.

Компонент TDBLookupCombobox. TObject-> TPersistent->TCornponent->TControl->TWinControl->TCustoniEdit->TDBLookupCombo. Модуль DBLOOKUP. Страница Палитры компонентов Data Controls. Интегрирует свойства компонентов TDBComboBox и TDBLookupUst, создавая комбинированный список.

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

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

Возможности программы:

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

· наглядный и функциональный механизм установки связей между таблицами, в том числе «многие ко многим» с созданием таблицы связей;

· reverse engineering — восстановление структуры таблиц из уже существующей на сервере БД (связи восстанавливаются в InnoDB, при использовании MyISAM — связи необходимо устанавливать вручную);

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

· возможность редактирования данных в таблице в визуальном режиме.

Создание таблиц

Рассмотрим пример создания таблицы в MySQL. Создадим таблицу «Отделы» в базе данных, используя команду «Create Table» (рисунок 2. 1):

Рисунок 2.1 — Создание таблицы

Структура связей между таблицами

В базе данных имеется 5 таблиц, это «Сотрудники» (sotrud), «Расходы» (rash), «Виды расходов» (vid_rashodov), «Отделы» (otdel) и «Список сотрудников отдела» (otdel_sotrud). Между некоторыми из таблиц существуют связи по определенным полям. Все эти связи показаны на рисунке 2.2.

Рисунок 2.2 — Связи между таблицами

Содержимое таблиц с данными

Таблица «Виды расходов» (vid_rashodov) содержит информацию о всех расходах отдела (рисунок 2. 3).

Рисунок 2.3 — Таблица «Виды расходов»

Таблица «Сотрудники» (sotrud) содержит в себе список всех сотрудников компании (рисунок 2. 4).

Рисунок 2.4 — Таблица «Сотрудники»

Таблица «Расходы» (rash) содержит информацию о расходах каждого сотрудника (рисунок 2. 5).

Рисунок 2.5 — Таблица «Расходы»

В таблице «Список сотрудников отдела» (otdel_sotrud) содержится информация о том, в каком отделе состоит каждый из сотрудников компании (рисунок 2. 6).

Рисунок 2.6 — Таблица «Список сотрудников отдела»

В таблице «Отделы» (otdel) содержится информация о количестве сотрудников в каждом отделе компании (рисунок 2. 7).

Рисунок 2.7 — Таблица «Отделы»

Таблица «Запросы». В данной таблице имеются различные запросы по базе данных. Например, можно вывести список сотрудников определенного отдела, выбрав нужный нам отдел (рисунок 2. 8).

Рисунок 2.8 — Таблица «Запросы»

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

Первая форма «From1» содержит все вышеуказанные таблицы. Здесь находятся кнопки, с помощью которых можно добавлять, редактировать и удалять данные из таблиц, кроме таблицы «Запросы» (рисунок 2. 9).

Рисунок 2.9 — Первая форма «Form1»

Вторая форма «Form2» используется для добавления данных в таблицу «Вид расходов» (рисунок 2. 10).

Рисунок 2. 10 — Вторя форма «Form2»

Третья форма «Form3» используется для добавления данных в таблицу «Сотрудники» (рисунок 2. 11).

Рисунок 2. 11 — Третья форма «Form3»

Четвертая форма «Form4» используется для добавления данных в таблицу «Расходы» (рисунок 2. 12).

Рисунок 2. 12 — Четвертая форма «Form4»

Пятая форма «Form5» используется для добавления данных в таблицу «Список сотрудников отдела» (рисунок 2. 13).

Рисунок 2. 13 — Пятая форма «Form5»

Шестая форма «Form6» используется для добавления данных в таблицу «Отделы» (рисунок 2. 14).

Рисунок 2. 14 — Шестая форма «Form6»

Соединение с Delphi

Для соединения БД MySQL с Delphi используются встроенные компоненты Delphi для управления базами данных, такие как ADOConnection для настройки соединения с сервером, ADODataSet и ADOQuery для получения доступа к таблицам, DataSource для реального отображения данных из таблиц, DBGrid для визуального отображения данных таблиц и др.

Заключение

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

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

Список использованных источников

1. Материалы сайта «wikipedia. org», [Электронный ресурс] - http: //ru. wikipedia. org/wiki/MySQL

2. Материалы сайта «joomlovod. ru», [Электронный ресурс] - http: //www. joomlovod. ru/xxx/742-opisanie-i-ustanovka-programmy-mysql-. html

3. Материалы сайта «php. su», [Электронный ресурс] - http: //www. php. su/mysql/? info

4. Материалы сайта «baza-referat. ru», [Электронный ресурс] - http: //baza-referat. ru/База_данных_при_мной_комиссии

5. Материалы сайта «podgoretsky. com», [Электронный ресурс] - http: //podgoretsky. com/ftp/Docs/Delphi/Flenov/Bibble/Ch%2014−1

Приложения

Приложение А

Список SQL запросов

Вывод списка сотрудников отдела:

SELECT otdel. nazv_otdel, sotrud. sotrudniki

FROM sotrud, otdel, otdel_sotrud

WHERE (otdel. id=otdel_sotrud. id_otdel) AND (sotrud. id = otdel_sotrud. id_sotr)

group by otdel_sotrud. id_sotr

Вывод предельной нормы расходов отдела:

SELECT otdel. nazv_otdel, sum (vid_rashodov. pred_norm)

FROM vid_rashodov, otdel

WHERE vid_rashodov. id_otd=otdel. id

group by otdel. id

Вывод суммы расходов отдела:

SELECT otdel. nazv_otdel, sum (rash. summ)

FROM rash, vid_rashodov, otdel

WHERE (vid_rashodov. id_otd=otdel. id) AND (rash. id_vid=vid_rashodov. id)

group by otdel. id

Вывод данных о расходах определенного сотрудника:

SELECT rash. id_sotrud, sotrud. sotrudniki, sum (rash. summ), rash. date, vid_rashodov. nazv_rash

from rash, sotrud, vid_rashodov

where (rash. id_sotrud= sotrud. id) and (vid_rashodov. id=rash. id_vid)

group by rash. id_sotrud

Приложение Б

Исходный код форм

Форма «Form1»:

unit Unit1;

interface

uses

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

Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls, Unit2, ComCtrls, DBCtrls;

type

TForm1 = class (TForm)

con1: TADOConnection;

ds1: TADODataSet;

ds2: TDataSource;

btn1: TButton;

btn2: TButton;

btn3: TButton;

pgc1: TPageControl;

ts1: TTabSheet;

ts2: TTabSheet;

ts3: TTabSheet;

ts4: TTabSheet;

ds4: TADODataSet;

ts5: TTabSheet;

dbgrd2: TDBGrid;

ds5: TDataSource;

ds6: TADODataSet;

dbgrd3: TDBGrid;

ds7: TDataSource;

ds8: TADODataSet;

dbgrd4: TDBGrid;

ds9: TDataSource;

ds10: TADODataSet;

dbgrd5: TDBGrid;

ds11: TADODataSet;

ds12: TDataSource;

ts6: TTabSheet;

pgc2: TPageControl;

ts7: TTabSheet;

ts8: TTabSheet;

ts9: TTabSheet;

dbgrd6: TDBGrid;

ds13: TADODataSet;

ds14: TADODataSet;

ds15: TADODataSet;

ds16: TADODataSet;

ds17: TDataSource;

ds18: TDataSource;

ds19: TDataSource;

ds20: TDataSource;

dbgrd7: TDBGrid;

dbgrd8: TDBGrid;

ts10: TTabSheet;

dbgrd9: TDBGrid;

dblkcbbsotrudniki: TDBLookupComboBox;

dblkcbb1: TDBLookupComboBox;

dblkcbb2: TDBLookupComboBox;

dblkcbb3: TDBLookupComboBox;

lbl1: TLabel;

lbl2: TLabel;

lbl3: TLabel;

lbl4: TLabel;

procedure btn1Click (Sender: TObject);

procedure btn2Click (Sender: TObject);

procedure btn3Click (Sender: TObject);

procedure dblkcbbsotrudnikiCloseUp (Sender: TObject);

procedure dblkcbb1CloseUp (Sender: TObject);

procedure dblkcbb2CloseUp (Sender: TObject);

procedure dblkcbb3CloseUp (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Unit3, Unit4, Unit5, Unit6;

{$R *. dfm}

procedure TForm1. btn1Click (Sender: TObject);

begin

if pgc1. ActivePageIndex = 0 then

begin

Form1. ds1. Insert;

if Form2. ShowModal = MrOk then

Form1. ds1. Post;

end;

if pgc1. ActivePageIndex = 1 then

begin

Form1. ds4. Insert;

if Form3. ShowModal = MrOk then

Form1. ds4. Post;

end;

if pgc1. ActivePageIndex = 2 then

begin

Form1. ds6. Insert;

if Form4. ShowModal = MrOk then

Form1. ds6. Post;

end;

if pgc1. ActivePageIndex = 3 then

begin

Form1. ds8. Insert;

if Form5. ShowModal = MrOk then

Form1. ds8. Post;

end;

if pgc1. ActivePageIndex = 4 then

begin

Form1. ds10. Insert;

if Form6. ShowModal = MrOk then

Form1. ds10. Post;

end;

end;

procedure TForm1. btn2Click (Sender: TObject);

begin

if pgc1. ActivePageIndex = 0 then

begin

ds1. Delete;

end;

if pgc1. ActivePageIndex = 1 then

begin

ds4. Delete;

end;

if pgc1. ActivePageIndex = 2 then

begin

ds6. Delete;

end;

if pgc1. ActivePageIndex = 3 then

begin

ds8. Delete;

end;

if pgc1. ActivePageIndex = 4 then

begin

ds10. Delete;

end;

end;

procedure TForm1. btn3Click (Sender: TObject);

begin

if pgc1. ActivePageIndex = 0 then

begin

Form2. Show;

end;

if pgc1. ActivePageIndex = 1 then

begin

Form3. Show;

end;

if pgc1. ActivePageIndex = 2 then

begin

Form4. Show;

end;

if pgc1. ActivePageIndex = 3 then

begin

Form5. Show;

end;

if pgc1. ActivePageIndex = 4 then

begin

Form6. Show;

end;

end;

procedure TForm1. dblkcbbsotrudnikiCloseUp (Sender: TObject);

begin

ds15. Active: =False;

ds15. commandText: ='SELECT rash. id_sotrud, sotrud. sotrudniki, sum (rash. summ), rash. date, vid_rashodov. nazv_rash'+

' from rash, sotrud, vid_rashodov ' +

'where (vid_rashodov. id=rash. id_vid) and (rash. id_sotrud=sotrud. id) and (sotrud. id = ' + IntToStr (dblkcbbsotrudniki. keyvalue) +') '+

'group by rash. id_sotrud';

ds15. Active: =True;

end;

procedure TForm1. dblkcbb1CloseUp (Sender: TObject);

begin

ds11. Active: =False;

ds11. commandText: ='SELECT otdel. nazv_otdel, sotrud. sotrudniki' +

' FROM sotrud, otdel, otdel_sotrud' +

' WHERE (otdel. id=otdel_sotrud. id_otdel) and (sotrud. id = otdel_sotrud. id_sotr) and (otdel. id = ' + IntToStr (dblkcbb1. keyvalue) +') '+

'group by otdel_sotrud. id_sotr';

ds11. Active: =True;

end;

procedure TForm1. dblkcbb2CloseUp (Sender: TObject);

begin

ds14. Active: =False;

ds14. commandText: ='SELECT otdel. nazv_otdel, sum (rash. summ) ' +

' FROM rash, vid_rashodov, otdel' +

' WHERE (vid_rashodov. id_otd=otdel. id) AND (rash. id_vid=vid_rashodov. id) AND (otdel. id = ' + IntToStr (dblkcbb2. keyvalue) +') '+

'group by otdel. id';

ds14. Active: =True;

end;

procedure TForm1. dblkcbb3CloseUp (Sender: TObject);

begin

ds13. Active: =False;

ds13. commandText: ='SELECT otdel. nazv_otdel, sum (vid_rashodov. pred_norm) ' +

' FROM vid_rashodov, otdel' +

' WHERE (vid_rashodov. id_otd=otdel. id) AND (otdel. id = ' + IntToStr (dblkcbb3. keyvalue) +') '+

'group by otdel. id';

ds13. Active: =True;

end;

end.

Форма «Form2»:

unit Unit2;

interface

uses

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

Dialogs, StdCtrls, DB, ADODB, Mask, DBCtrls;

type

TForm2 = class (TForm)

btn1: TButton;

btn2: TButton;

ds1: TADODataSet;

lbl1: TLabel;

lbl2: TLabel;

lbl3: TLabel;

lbl4: TLabel;

lbl5: TLabel;

dbedtNazv_rash: TDBEdit;

dbedtOpis_rash: TDBEdit;

dbedtPred_norm: TDBEdit;

cbb1: TComboBox;

dblkcbbNazv_otdel: TDBLookupComboBox;

procedure btn1Click (Sender: TObject);

procedure btn2Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

uses Unit1;

{$R *. dfm}

procedure TForm2. btn1Click (Sender: TObject);

begin

Form1. ds1. FieldByName ('month'). AsString: = cbb1. Text;

ModalResult: = mrOk;

Close;

end;

procedure TForm2. btn2Click (Sender: TObject);

begin

ModalResult: = mrCancel;

Close;

end;

end.

Форма «Form3»:

unit Unit3;

interface

uses

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

Dialogs, StdCtrls, Mask, DBCtrls;

type

TForm3 = class (TForm)

lbl1: TLabel;

dbedtsotrudniki: TDBEdit;

btn1: TButton;

btn2: TButton;

procedure btn1Click (Sender: TObject);

procedure btn2Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

uses Unit1;

{$R *. dfm}

procedure TForm3. btn1Click (Sender: TObject);

begin

ModalResult: = mrOk;

Close;

end;

procedure TForm3. btn2Click (Sender: TObject);

begin

ModalResult: = mrCancel;

Close;

end;

end.

Форма «Form4»:

unit Unit4;

interface

uses

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

Dialogs, StdCtrls, Mask, DBCtrls;

type

TForm4 = class (TForm)

lbl1: TLabel;

lbl2: TLabel;

lbl3: TLabel;

lbl4: TLabel;

dbedtsumm: TDBEdit;

dbedtdate: TDBEdit;

btn1: TButton;

btn2: TButton;

dblkcbbsotrudniki: TDBLookupComboBox;

dblkcbbNazv_rash: TDBLookupComboBox;

procedure btn1Click (Sender: TObject);

procedure btn2Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

implementation

uses Unit1;

{$R *. dfm}

procedure TForm4. btn1Click (Sender: TObject);

begin

ModalResult: = mrOk;

Close;

end;

procedure TForm4. btn2Click (Sender: TObject);

begin

ModalResult: = mrCancel;

Close;

end;

end.

Форма «Form5»:

unit Unit5;

interface

uses

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

Dialogs, StdCtrls, Mask, DBCtrls;

type

TForm5 = class (TForm)

lbl1: TLabel;

lbl2: TLabel;

btn1: TButton;

btn2: TButton;

dblkcbbNazv_otdel: TDBLookupComboBox;

dblkcbbsotrudniki: TDBLookupComboBox;

procedure btn1Click (Sender: TObject);

procedure btn2Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

implementation

uses Unit1;

{$R *. dfm}

procedure TForm5. btn1Click (Sender: TObject);

begin

ModalResult: = mrOk;

Close;

end;

procedure TForm5. btn2Click (Sender: TObject);

begin

ModalResult: = mrCancel;

Close;

end;

end.

Форма «Form6»:

unit Unit6;

interface

uses

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

Dialogs, StdCtrls, Mask, DBCtrls;

type

TForm6 = class (TForm)

lbl1: TLabel;

lbl2: TLabel;

dbedtNazv_otdel: TDBEdit;

dbedtKolvo_sotrud: TDBEdit;

btn1: TButton;

btn2: TButton;

procedure btn1Click (Sender: TObject);

procedure btn2Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form6: TForm6;

implementation

uses Unit1;

{$R *. dfm}

procedure TForm6. btn1Click (Sender: TObject);

begin

ModalResult: = mrOk;

Close;

end;

procedure TForm6. btn2Click (Sender: TObject);

begin

ModalResult: = mrCancel;

Close;

end;

end.

ПоказатьСвернуть
Заполнить форму текущей работой