ХАРАКТЕРИСТИКА СРЕДСТВ ПРОЕКТИРОВАНИЯ


Инструменты разработки баз данных в MicrosoftAccess

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

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

Необходимо отметить, что Access 2007для новых баз данных по умолчанию использует формат файла Access 2007 (.accdb), но файл новой базы данных можно сохранить и в формате Access 2002-2003(.mdb) или формате Access 2000 (.mdb). Скриншот окна сохранения файла БД представлено на рис.1.1.1.

 


Рис. 1.1.1 Сохранение файла БД

После выбора директории, диска, имени файла и формата БД надо щелкнуть на кнопке Создать. Файл базы данных с выбранным именем будет сохранен в указанную папку, и откроется окно MicrosoftAccess 2007. В этом окне приложения отображается окно БД с назначенным именем на вкладке Режим таблицы и новая пустая таблица с именем Таблица 1 в режиме таблица, представленные на Рис.1.1.2. Далее необходимо перейти в режим Конструктор и создать структуру первой таблицы базы данных.


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

Уже сохраненную базу данных в формате файла Access 2007 можно также сохранить в других форматах, щелкнув на кнопке "Office" в окне БД и выбрав команду "Сохранить как". В появившемся окне диалога щелкнуть на требуемый формат.

Рассмотрим окно приложения MicrosoftAccess 2007. В верхней части окна расположены: кнопка Office, панель быстрого доступа с пиктограммами (сохранить, отменить), Строка заголовка и кнопки изменения размеров окна.

Ниже расположена Лента, которая состоит из вкладок (Главная, Создание, Внешние данные, работа с базами данных и другие вкладки, которые появляются в зависимости от режима работы). В приложении Access 2007 применяются контекстные инструменты, которые появляются при работе с определенным объектом. Так, например, при работе с таблицей появляются контекстные инструменты для объекта Таблица под названием "Работа с таблицами", которые имеют две вкладки: Режим таблицы и Конструктор.

Лента заменяет используемые в Access 2003 меню и панели инструментов, кроме меню Office и панели быстрого доступа. На Ленте отображаются определенные наборы команды в зависимости от того, какая вкладка выбрана. Группы команд на выбранной вкладке сгруппированы по выполняемым действиям. Так на вкладке Режим таблиц отображаются группы команд Представление, Поля и столбцы, Форматирование и тип данных, Связи. Имена перечисленных групп команд отображаются внизу Ленты.

Под лентой расположены слева Область переходов, а справа Окно редактирования, в котором отображается редактируемый объект. В области переходов находятся все объекты Access (таблицы, формы, запросы, отчеты и т.д.). В списке Все объекты Access можно выбрать требуемый объект. При двойном щелчке на имени объекта в области переходов этот объект будет отображаться в окне редактирования. Внизу окна Access расположена Строка состояния и Кнопки режимов просмотра.

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

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

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

Отчеты– это средство организации данных при выводе на печать.

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

 


 

1.2 Интегрированная среда разработки Borland Delphi 7

BORLAND DELPHI 7 - одно из самых популярных в мире средств быстрой разработки программ для Windows. Программный комплекс предоставляет разработчику богатейший инструментарий и позволяет использовать всю мощь и гибкость языка Pascal.

1.2.1. Интерфейс Borland Delphi 7

После запуски интерфейса Borland Delphi 7, автоматически открывается 5 основных окон (рис.1.2.1):

1. главное окно (Delphi 7 - Project 1);

2. окно редактора свойств объектов (Object Inspector);

3. окно формы (Form 1);

4. окно редактора кода (Unit1.pas);

5. окно дерева объектов (Object TreeView).

Рис 1.2.1 Интерфейс Borland Delphi 7

Главное окно находится в верхней части экрана. В нём расположены:

- строка заголовка;

- строка меню;

- панель инструментов;

- панель палитры компонентов.

Вид главного окна представлен на (рис. 1.2.1.1)

Рис 1.2.1.1 Вид главного окна

Оbject Inspector –окно редактора свойств объектов или инспектор объектов (рис. 1.2.1.2).Любой размещаемый на форме компонент характеризуется некоторым набором параметров: положением, размером, цветом и т. д. Часть этих параметров, например, положение и размеры компонента, можно изменять, манипулируя с компонентом в окне формы.  

 


Рис 1.2.1.2 Окно редактора свойств объектов

Object TreeView – окно дерева объектов (рис. 1.2.1.3) предназначено для наглядного отображения связей между отдельными компонентами, размещенными на активной форме или в активном модуле данных. Щелчок по любому компоненту в этом окне активизирует соответствующий компонент в окне формы и отображает свойства этого компонента в окне Инспектора объектов.

 

 


Рис 1.2.1.3 Окно редактора свойств объектов

Окно редактора кода, можно увидеть, отодвинув в сторону окно формы либо, как уже говорилось выше, нажать клавишу F12. В него следует набирать текст программы. В начале работы над новым проектом это окно редактора кода содержит сформированный Delphi шаблон программы. Окно кода программы представлено на (рис. 1.2.1.4)

Рис 1.2.1.4 Окно кода программы

1.2.2 Обзор использованных компонент Borland Delphi 7

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

1. помещение TMainMenu на форму;

2. вызов Дизайнера Меню через свойство Items в Инспекторе Объектов;

3. определение пунктов меню в Дизайнере Меню.

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

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

TImage – используя методы и свойства этого компонента, можно отобразить на форме графический файл с расширениями BMP, JPG, JPEG и WMF.

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

TButton позволяет выполнить какие-либо действия при нажатии кнопки во время выполнения программы.

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

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

Компонент TDbGrid обеспечивает табличный способ отображения на экране строк данных из компонентов TTable или TQuery.

Компонент TTable, метод создающий новую пустую таблицу заданной структуры.

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

 

 

2. ПРОЕКТИРОВАНИЕ СИСТЕМЫ СУБД «Добыча полезных ископаемых»

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

Создать структуры таблиц, ключевые поля. Заполнить таблицы данными. Количество данных в таблицах должно обеспечивать выдачу не менее 3-5 записей по каждому запросу задания за редким исключением.

Установить связи между таблицами.

Полезное ископаемое, единица измерения, годовая потребность, цена за единицу, тип;

Название месторождения, запасы, способ разработки, годовая добыча, себестоимость за единицу;

пункт вывоза, пропускная способность путей сообщения данного пункта.

Создать формы для ввода информации в удобном для пользователя формате. Создать простой запрос. Создать запрос для создания отчета.

Запросы:

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

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

Выбрать список мест, в которых добывается 'твердое топливо' 'открытым способом'.

Создать простой отчет и отчет на основе ранее созданного запроса с группировкой.

 

После создания СУБД «Добыча полезных ископаемых» нужно все это реализовать в Borland Delphi 7. Для этого необходимо:

Составить программу, реализующую работу с базами данных в Borland Delphi 7.

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

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

Должен быть реализован экспорт таблиц в Excel

Программа должна содержать справочную систему и информацию об авторе.

2.2 Схема данных в Microsoft Access

Один и тот же программный продукт может инсталлироваться (деинсталлироваться) разными пользователями и один пользователь может инсталлировать (деинсталлировать) разные продукты (Рис.2.2).

Рис 2.2Схема данных Microsoft Access

 

2.3 Структура каждой таблицы и ее назначение в Microsoft Access

С помощью конструктора СУБД MicroSoftAccess 2007 создана база данных, содержащая 7 таблиц: «Авто», «Владелец», «Категория работы», «Категория сотрудника», «Работа», «Сервис» и «Сотрудник».

Таблица «Вывоз» (табл.2.3.1) содержит информацию о точках вывоза.

Имя поля Тип данных Размер/формат поля
ID Счетчик Длинное целое
Пункт вывоза Текстовый
Пропускная способность Числовой Длинное целое

Таблица 2.3.1 «Вывоз»

Таблица «Ископаемые» (табл.2.3.2) содержит информацию о полезных ископаемых.

Имя поля Тип данных Размер/формат поля
ID Числовой Длинное целое
ID месторождения Числовой Длинное целое
Название полезного ископаемого Текстовый
Единица измерения Текстовый
Годовая потребность Числовой Длинное целое
Цена за единицу Денежный Денежный
Тип ископаемого Текстовый

 

Таблица 2.3.2 «Ископаемые»

Таблица «Месторождения» (2.3.3) содержит информацию овсех месторождениях.

Имя поля Тип данных Размер/формат поля
ID Числовой Длинное целое
ID ископаемого Числовой Длинное целое
Название месторождения Текстовый
Запасы Числовой Длинное целое
Способ разработки Текстовый
Годовая добыча Числовой Длинное целое
Себестоимость Денежный Денежный

 

Таблица 2.3.3 «Месторождения»

Таблица «Связная» (2.3.4), необходимая для реализации связей многие-ко-многим.

ID категории Счетчик Размер/формат поля
ID ископаемого Числовой Длинное целое
ID пункта вывоза Числовой Длинное целое

 

Таблица 2.3.4 «Связная»

 

2.4 Структура полезного ископаемого в Borland Delphi 7

 

Заставка

Заставка

t yUmCNS805sfxsAh09/FQjI9CP9L+y3z/RS/bcwPSY0QgurgN8l5ttxWZ9g0m8VnwiidQDb5T6/SH c48znjDLhTw7i3vMQMv9pb6xIhgPOIfGvt284WT7PvCYGy/NdhSi274eAkk2aGpztvSmauKECEgn XPsKYH5G+vYdFQb0/jlKPfwjnX4BAAD//wMAUEsDBBQABgAIAAAAIQCYFRDa4gAAAAkBAAAPAAAA ZHJzL2Rvd25yZXYueG1sTI/LTsMwEEX3SPyDNUjsqBMrStMQp4IiEI8N9CFYuvGQpI3tELtt+HuG FSxH9+jeM8V8NB074uBbZyXEkwgY2srp1tYS1qv7qwyYD8pq1TmLEr7Rw7w8PytUrt3JvuFxGWpG JdbnSkITQp9z7qsGjfIT16Ol7NMNRgU6h5rrQZ2o3HRcRFHKjWotLTSqx0WD1X55MBI28d1u85W+ 7tfx4mX38Hj79P7x3Et5eTHeXAMLOIY/GH71SR1Kctq6g9WedRKyWUKkhGQqgFEuplkKbEugSATw suD/Pyh/AAAA//8DAFBLAQItABQABgAIAAAAIQC2gziS/gAAAOEBAAATAAAAAAAAAAAAAAAAAAAA AABbQ29udGVudF9UeXBlc10ueG1sUEsBAi0AFAAGAAgAAAAhADj9If/WAAAAlAEAAAsAAAAAAAAA AAAAAAAALwEAAF9yZWxzLy5yZWxzUEsBAi0AFAAGAAgAAAAhAKx1kDRSAwAA2QYAAA4AAAAAAAAA AAAAAAAALgIAAGRycy9lMm9Eb2MueG1sUEsBAi0AFAAGAAgAAAAhAJgVENriAAAACQEAAA8AAAAA AAAAAAAAAAAArAUAAGRycy9kb3ducmV2LnhtbFBLBQYAAAAABAAEAPMAAAC7BgAAAAA= " fillcolor="white [3201]" stroked="f" strokeweight="2pt">
Таблицы

Таблицы

Запросы

Запросы

Справка

Справка

Главная форма

Главная форма

 


2.5 Обзор основных методов полезного ископаемого в Borland Delphi 7

procedure Timer1Timer(Sender: TObject)- таймер для заставки

procedure TForm1.N2Click(Sender: TObject)- вывод таблиц

procedure TForm1.N3Click(Sender: TObject)- вывод запросов

procedure TForm1.N6Click(Sender: TObject)- вывод информации о программе

procedure TForm1.N1Click(Sender: TObject)- выход из программы

procedure TForm1.N7Click(Sender: TObject)- вывод информации о руководстве программы

procedure Button1Click(Sender: TObject) - выход изформы

procedure TForm1.N1Excel1Click(Sender: TObject)- экспорт информации в Excel

procedure TForm1.N2Excel1Click(Sender: TObject)- экспорт информации в Excel

procedure TForm1.N3Excel1Click(Sender: TObject)- экспорт информации в Excel

procedure TForm1.N4Excel1Click(Sender: TObject) - экспорт информации в Excel

 


 

ЗАКЛЮЧЕНИЕ

В рамках курсового проекта был разработан продукт прикладного уровня СУБД «Добыча полезных ископаемых» в среде Microsoft Office Access 2007 .Создана база данных, формы управления базой данных, пользовательские запросы и отчеты, форма управления компонентами интерфейса пользователя. Созданная база послужила шаблоном-основой для переноса базы данных в программу Borland Delphi7. В ходе курсового проектирования в среде Borland Delphi7 создано приложение, осуществляющее добавление, редактирование записей в БД.

К перспективам развития БД «Добыча полезных ископаемых» можно отнести перенос базы данных с локального компьютера в сеть (например на основе SQL сервера) для обеспечения одновременной работы нескольких пользователей и повышения ее надежности, а также реализация показа таблиц и запросов путем постанавления данных в 1 компонент DBGrid вместо множества, из-за чего снизится нагрузка на систему, число компонентов на форме и объем кода.

Технические и программные требования:

Процессор Intel Pentium 233 МГц и выше
Операционная система Microsoft Windows XP, Windows 2000, Windows 98
Оперативная память 64 Мбайт (рекомендуется 128 Мбайт)
Пространство на жестком диске 75-160 Мбайт
Другое аппаратное обеспечение CD-ROM, мышь, клавиатура

 

Использованные источники

1. Delphi в примерах, играх и программах Рубанцев Валерий 2011 год. Страниц: 408

2. Разработка прикладных программ для Windows в Delphi Артём Зубов 2004 год. Страниц: 396

3. Разработка прикладных программ для Windows в Delphi 5 Автор: Архангельский А. Я. Издательство: БИНОМ Год: 1999. Страниц: 252

4. Delphi. Трюки и эффекты Автор: Чиртик А. А., Борисок В. В., Корвель Ю. И. Издательство: Трюки и эффекты Год: 2007. Страниц: 258

5. Delphi. Справочное пособие Автор: А. Я. Архангельский Издательство: Бином-Пресс Год: 2004. Страниц: 1024

6. Основы программирования в Delphi 7 Автор: Никита Культин Издательство: БХВ-Петербург Год: 2007. Страниц: 608

7. Технологии Delphi 2006. Новые возможности Автор: Сергей Бобровский Издательство: Питер Год: 2006. Страниц: 288

8. Delphi . Руководство разработчика Автор: Стив Тейксейра, Ксавье Пачеко Издательство: Вильямс Год: 2002. Страниц: 120

9. Проектирование струтуры и создание реляционных баз данных средствами СУБД Access. Автор: Г.П. Виноградов, Н.В. Кирсанова. Тверь Год: 2006. Страниц: 84

10. Базы данных. Автор: А.В. Кузин, С.В. Левонисово. Москва Год: 2012. Страниц: 317

11. http://www.delphibasics.ru/

12. http://helpdelphi.ru/

13. http://www.tepka.ru/

14. http://www.snkey.net/books/delphi/ch1-6.html

 

Приложение А

Данные таблиц БД

Данные таблицы «Вывоз»

Вывоз
ID Пункт вывоза Пропускная способность
Бурятия
Восточно - Сибирский район
Дальный Восток
Забайкалье
Западная Сибирь
Карелия
Красноярский край
Норильск
Сахалин
Северный Кавказ
Сибирь
Урал
Чукотка
Якутия
Ямал

 

Результат работы приведено в таблице А.1

Данные таблицы «Ископаемые»

Ископаемые
ID ID месторождения Название полезного ископаемого Единица измерения Годовая потребность Цена за единицу Тип ископаемого
Вольфрам Тонн 80,00р. Металл
Горючие сланцы Тонн 90,00р. Топливо
Железная руда Тонн 120,00р. Металл
Железная руда Тонн 110,00р. Металл
Золото Тонн 250,00р. Металл
Золото Тонн 160,00р. Металл
Золото Тонн 220,00р. Металл
Золото Тонн 170,00р. Металл
Кобальт Тонн 105,00р. Металл
Марганец Тонн 100,00р. Металл
Марганец Тонн 90,00р. Металл
Медь Тонн 120,00р. Металл
Медь Тонн 150,00р. Металл
Нефть Тонн 130,00р. Топливо
Нефть Тонн 130,00р. Топливо
Никель Тонн 11,00р. Металл
Олово Тонн 105,00р. Металл
Олово Тонн 95,00р. Легкий металл
Ртуть Тонн 145,00р. Жидкий металл
Ртуть Тонн 120,00р. Жидкий металл
Ртуть Тонн 150,00р. Жидкий металл
Серебро Тонн 200,00р. Металл
Серебро Тонн 210,00р. Металл
Серебро Тонн 200,00р. Металл
Торф Тонн 70,00р. Твердое Топливо
Уголь Тонн 65,00р. Твердое Топливо
Уголь Тонн 80,00р. Твердое топливо
Уран Тонн 85,00р. Металл
Уран Тонн 90,00р. Металл

 

Результат работы приведено в таблице А.2

Данные таблицы «Месторождения»

Месторождения
ID ID ископаемого Название месторождения Запасы Способ разработки Годовая добыча Себестоимость
Шахматинское Открытый 100,00р.
Волжское Открытый 90,00р.
Пудожгорское Шахта 150,00р.
Эльдорадо Открытый 240,00р.
Черемшанское Открытый 110,00р.
Юркинское Открытый 80,00р.
Ждановкское Гидрометаллургия 200,00р.
Прикаспийская Открытый 80,00р.
Серовское Открытый 150,00р.
Бургочанское Открытый 90,00р.
Белокаменный Открытый 100,00р.
Эльдорадо Открытый 190,00р.
Васюганское Открытый 70,00р.
Урюпское Открытый 130,00р.
15ч Стрельцовское Открытый 65,00р.

 

Результат работы приведено в таблице А.3


 

Приложение Б

Формы в Microsoft Access 2007

Рис.Б 1 Форма таблицы «Пункты вывоза»

 

Рис.Б.2 Форма таблицы «Полезное Ископаемые»

 

Рис.Б.3 Форма таблицы «Название Месторождения»

 

Рис.Б.4 Кнопочная форма

 


Приложение В

Запросы и результаты их работы в Microsoft Access

Определить те ископаемые, потребность в которых не удовлетворяется (Рис.В.1

 

Рис.В.1 «Определить те ископаемые, потребность в которых не удовлетворяется»

Результат работы приведено в таблице В.1.

Потребность
Название полезного ископаемого Название месторождения Годовая потребность Годовая добыча
Золото Эльдорадо
Золото Эльдорадо
Олово Бургочанское
Горючие сланцы Волжское
Нефть Прикаспийская
Нефть Прикаспийская
Никель Серовское
Уголь Урюпское
Кобальт Черемшанское
Вольфрам Шахматинское
Марганец Юркинское

 

Таблица 1 «Определить те ископаемые, потребность в которых не удовлетворяется»

Определить, какие ископаемые добываются в 'Эльдорадо', и добыча каких из них является прибыльной (Рис.В.2).

 

Рис.В.2 «Определить, какие ископаемые добываются в 'Эльдорадо', и добыча каких из них является прибыльной»

Результат работы приведено в таблице В.3

Эльдорадо
Название месторождения Полезное ископаемое Цена за единицу Прибыль
Эльдорадо Титан 270,00р. 480,00р.
Эльдорадо Рубины 240,00р. 450,00р.
Эльдорадо Сапфиры 195,00р. 405,00р.
Эльдорадо Торф 132,00р. 342,00р.
Эльдорадо Марганец 98,00р. 308,00р.

 

Таблица 2 «Определить, какие ископаемые добываются в 'Эльдорадо', и добыча каких из них является прибыльной»

 

Выбрать список мест, в которых добывается 'твердое топливо' 'открытым способом' (Рис.В.3).

 

Рис В.3 «Выбрать список мест, в которых добывается 'твердое топливо' 'открытым способом'»

Результат работы приведено в таблице В.3.

Топливо
Название месторождения Способ разработки Название полезного ископаемого "Тип ископаемого"
Сургут Открытый Уголь Твердое топливо
Черномор Открытый Горючие сланцы Твердое топливо

 

Таблица 3. «Выбрать список мест, в которых добывается 'твердое топливо' 'открытым способом'»


Приложение Г

Отчеты в Microsoft Access

Рис Г.1 Отчет «Ископаемые, не удовлетворяющие потребности»

Рис Г.2 Отчет «Ископаемые, добываемые в ‘Эльдорадо’»

Рис Г.3 Отчет «Твердое топливо, добываемое открытым способом»

 

Приложение Д

Блок-схемы методов в Borland Delphi 7

 

Начало
Form1.visible:=false Form2.visible:=true Gauge1.Progress:=Gauge1.Progress+1
Gauge1.Progress>=100
Да
Form2.visible:=false Timer1.Enabled:=false Form1.visible:=true
Конец

 

 


Начало
Form2.Show;   Form1.Hide; Form1.Hide;
Конец
Рис.Д.1 Procedure TForm2.Timer1Timer(Sender: TObject;

 

Начало
Form3.Show
Конец
Рис.Д.2 Procedure TForm1.N2Click(Sender: TObject);

 

 

Рис.Д.3 Procedure TForm1.N3Click(Sender: TObject);

 

Начало
Form4.Show
Конец

 


Рис.Д.4 Procedure TForm1.N6Click(Sender: TObject);

 

Начало
Close
Конец

 


Рис.Д.5 Procedure TForm1.N1Click(Sender: TObject);

 

Начало
Form1.Show;   Form2.Hide;
Конец

 

 


Рис.Д.6 Procedure TForm2.N1Click(Sender: TObject);

 

except
Начало
Form1.Show;
Конец
except

 

 


Рис.Д.7 Procedure TForm2. N6Click(Sender: TObject);

 

 

Рис.Д.8 Procedure TForm3.N1Click(Sender: TObject);

 

 

Начало
WordApp:=CreateOleObject('Word.Application') doc:=WordApp.documents.Open(ExtractFilePath(Application.ExeName)+'Руководство.docx')
WordApp.ActiveDocument.SaveAs(ExtractFilePath(Application.ExeName)+'Руководство1.docx')
WordApp.Visible:=true
Screen.Cursor:=crDefault
Конец
try
Начало
BeginCol := 1 BeginRow := 1 ExcelApp := CreateOleObject('Excel.Application') ExcelApp.Application.EnableEvents := false Workbook := ExcelApp.WorkBooks.Add
Form4.DBGrid5.DataSource.DataSet
Last
First
ArrayData :=VarArrayCreate([1, RecordCount, 1, FieldCount], varVariant)
I := 1 to RecordCount
J := 1 to FieldCount
ArrayData[I, J]:=Fields[j-1].AsVariant
Next
Cell1 := WorkBook.WorkSheets[1].Cells[BeginRow, BeginCol] Cell2 := WorkBook.WorkSheets[1].Cells[BeginRow + Form4.DbGrid5.DataSource.DataSet.RecordCount - 1, BeginCol + Form4.DbGrid5.DataSource.DataSet.FieldCount - 1]
Range :=WorkBook.WorkSheets[1].Range[Cell1, Cell2] Range.Value := ArrayData ExcelApp.Visible := true
Конец

 

 


Рис.Д.9 Procedure TForm2.N1Excel1Click(Sender: TObject)

 

ПРИЛОЖЕНИЕ Е

Код программы

 

Form1

unit Unit1;

 

interface

 

uses

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

Dialogs, Grids, DBGrids, StdCtrls, ExtCtrls, Buttons, jpeg, DBCtrls;

 

type

TForm1 = class(TForm)

GroupBox1: TGroupBox;

GroupBox2: TGroupBox;

GroupBox3: TGroupBox;

DBGrid1: TDBGrid;

DBGrid2: TDBGrid;

DBGrid3: TDBGrid;

RadioGroup1: TRadioGroup;

BitBtn1: TBitBtn;

RadioGroup2: TRadioGroup;

RadioGroup3: TRadioGroup;

GroupBox5: TGroupBox;

DBGrid5: TDBGrid;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Image1: TImage;

DBNavigator1: TDBNavigator;

procedure RadioGroup1Click(Sender: TObject);

procedure RadioGroup2Click(Sender: TObject);

procedure RadioGroup3Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedureFormShow(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

 

implementation

 

uses Unit2, ComObj, Unit3, Unit4;

 

{$R *.dfm}

 

varFirstShow: boolean = true;

 

procedure TForm1.RadioGroup1Click(Sender: TObject);

begin

case RadioGroup1.ItemIndex of

0: begin

RadioGroup2.Show;

RadioGroup3.Hide;

GroupBox1.Hide;

GroupBox2.Hide;

GroupBox3.Hide;

GroupBox5.Hide;

Button1.Hide;

Button2.Hide;

Button3.Hide;

DBNavigator1.Hide;

RadioGroup2.ItemIndex:=-1;

end;

1: begin

RadioGroup2.Hide;

RadioGroup3.Show;

GroupBox1.Hide;

GroupBox2.Hide;

GroupBox3.Hide;

GroupBox5.Hide;

Button1.Hide;

Button2.Hide;

Button3.Hide;

DBNavigator1.Hide;

RadioGroup3.ItemIndex:=-1;

end;

2: begin

RadioGroup2.Hide;

RadioGroup3.Hide;

GroupBox1.Hide;

GroupBox2.Hide;

GroupBox3.Hide;

GroupBox5.Hide;

Button1.Hide;

Button2.Hide;

Button3.Hide;

DBNavigator1.Hide;

RadioGroup2.ItemIndex:=-1;

RadioGroup3.ItemIndex:=-1;

Form3.Show;

end;

end;

end;

 

procedure TForm1.RadioGroup2Click(Sender: TObject);

begin

case RadioGroup2.ItemIndex of

0: begin

GroupBox1.Show;

GroupBox2.Hide;

GroupBox3.Hide;

GroupBox5.Hide;

Button1.Hide;

Button2.Hide;

Button3.Hide;

DBNavigator1.Show;

DBNavigator1.DataSource:=dm.dsVivz;

end;

1: begin

GroupBox1.Hide;

GroupBox2.Show;

GroupBox3.Hide;

GroupBox5.Hide;

Button1.Hide;

Button2.Hide;

Button3.Hide;

DBNavigator1.Show;

DBNavigator1.DataSource:=dm.dsIskop;

end;

2: begin

GroupBox1.Hide;

GroupBox2.Hide;

GroupBox3.Show;

GroupBox5.Hide;

Button1.Hide;

Button2.Hide;

Button3.Hide;

DBNavigator1.Show;

DBNavigator1.DataSource:=dm.dsMest;

end;

end;

end;

 

procedure TForm1.RadioGroup3Click(Sender: TObject);

begin

case RadioGroup3.ItemIndex of

0: begin

GroupBox1.Hide;

GroupBox2.Hide;

GroupBox3.Hide;

GroupBox5.Show;

Button1.Show;

Button2.Hide;

Button3.Hide;

GroupBox5.Caption:='Ископаемыедороже 160';

dm.Query.active:=false;

dm.Query.SQL.Clear;

dm.Query.SQL.Add('SELECT Ископаемые.[ID], Ископаемые.[ID_Mest] as [ID месторождения], Ископаемые.[PoIs] as [Названиеполезногоископаемого], Ископаемые.[EdIz] as [Единицаизмерения], Ископаемые.[GPt] as [Потребность],');

dm.Query.SQL.Add('Ископаемые.[CZE] as [Ценазаединицу], Ископаемые.[Type] as [Типископаемого]');

dm.Query.SQL.Add('FROM Ископаемые');

dm.Query.SQL.Add('WHERE Ископаемые.[CZE]>=160;');

dm.Query.active:=true;

DBGrid5.Columns[0].Width:=30;

DBGrid5.Columns[1].Width:=147;

DBGrid5.Columns[2].Width:=267;

DBGrid5.Columns[3].Width:=161;

DBGrid5.Columns[4].Width:=171;

DBGrid5.Columns[5].Width:=184;

DBGrid5.Columns[6].Width:=213;

GroupBox5.Width:=1217;

end;

1: begin

GroupBox1.Hide;

GroupBox2.Hide;

GroupBox3.Hide;

GroupBox5.Show;

Button1.Hide;

Button2.Show;

Button3.Hide;

GroupBox5.Caption:='Ископаемые, неудовлетворяющиепотребности';

dm.Query.active:=false;

dm.Query.SQL.Clear;

dm.Query.SQL.Add('SELECT DISTINCTROW Ископаемые.PoIs as [Названиеполезногоископаемого], Месторождения.NzMe as [Названиеместорождения], Ископаемые.GPt AS ["Годоваяпотребность"], Месторождения.GodDob AS ["Годоваядобыча"]');

dm.Query.SQL.Add('FROM Месторождения INNER JOIN Ископаемые ON Месторождения.ID = Ископаемые.ID_Mest');

dm.Query.SQL.Add('GROUP BY Ископаемые.PoIs, Месторождения.NzMe, Ископаемые.GPt, Месторождения.GodDob');

dm.Query.SQL.Add('HAVING (((Месторождения.GodDob)<[GPt]));');

dm.Query.active:=true;

DBGrid5.Columns[0].Width:=267;

DBGrid5.Columns[1].Width:=210;

DBGrid5.Columns[2].Width:=159;

DBGrid5.Columns[3].Width:=126;

GroupBox5.Width:=802;

end;

2: begin

GroupBox1.Hide;

GroupBox2.Hide;

GroupBox3.Hide;

GroupBox5.Show;

Button1.Hide;

Button2.Hide;

Button3.Show;

GroupBox5.Caption:='Ископаемые, добываемые в "Эльдорадо"';

dm.Query.active:=false;

dm.Query.SQL.Clear;

dm.Query.SQL.Add('SELECT DISTINCTROW Месторождения.NzMe as [Названиеместорождения], First(Ископаемые.PoIs) AS [Полезноеископаемое], Ископаемые.CZE AS [Ценазаединицу], [Ценазаединицу]+[SebeSt] AS Прибыль');

dm.Query.SQL.Add('FROM Месторождения INNER JOIN Ископаемые ON Месторождения.ID = Ископаемые.ID_Mest');

dm.Query.SQL.Add('GROUP BY Месторождения.NzMe, Ископаемые.CZE, Месторождения.SebeSt');

dm.Query.SQL.Add('HAVING (((Месторождения.NzMe)="Эльдорадо"));');

dm.Query.active:=true;

DBGrid5.Columns[0].Width:=267;

DBGrid5.Columns[1].Width:=210;

DBGrid5.Columns[2].Width:=159;

DBGrid5.Columns[3].Width:=126;

GroupBox5.Width:=802;

end;

end;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

var

XLApp,Sheet,Colum:Variant;

index,i:integer;

begin

XLApp:=CreateOleObject('Excel.Application');

XLApp.Visible:=true;

XLApp.Workbooks.Add(-4167);

XLApp.Workbooks[1].WorkSheets[1].Name:='Отчет';

Colum:=XLApp.Workbooks[1].WorkSheets['Отчет'].Columns;

Colum.Columns[1].ColumnWidth:=4;

Colum.Columns[2].ColumnWidth:=20;

Colum.Columns[3].ColumnWidth:=36;

Colum.Columns[4].ColumnWidth:=24;

Colum.Columns[5].ColumnWidth:=14;

Colum.Columns[6].ColumnWidth:=18;

Colum.Columns[7].ColumnWidth:=25;

 

Colum:=XLApp.Workbooks[1].WorkSheets['Отчет'].Rows;

Colum.Rows[2].Font.Bold:=true;

Colum.Rows[1].Font.Bold:=true;

Colum.Rows[1].Font.Color:=clBlack;

Colum.Rows[1].Font.Size:=28;

Colum.Rows[3].Font.Size:=12;

 

Sheet:=XLApp.Workbooks[1].WorkSheets['Отчет'];

Sheet.Cells[1,2]:='Ископаемые дороже 160';

Sheet.Cells[3,1]:='ID';

Sheet.Cells[3,2]:='ID месторождения';

Sheet.Cells[3,3]:='Название полезного ископаемого';

Sheet.Cells[3,4]:='Единица измерения';

Sheet.Cells[3,5]:='Потребность';

Sheet.Cells[3,6]:='Цена за единицу';

Sheet.Cells[3,7]:='Тип ископаемого';

 

index:=4;

dm.Query.First;

for i:=0 to dm.Query.RecordCount-1 do

begin

Sheet.Cells[index,1]:=dm.Query.Fields.Fields[0].AsString;

Sheet.Cells[index,2]:=dm.Query.Fields.Fields[1].AsString;

Sheet.Cells[index,3]:=dm.Query.Fields.Fields[2].AsString;

Sheet.Cells[index,4]:=dm.Query.Fields.Fields[3].AsString;

Sheet.Cells[index,5]:=dm.Query.Fields.Fields[4].AsString;

Sheet.Cells[index,6]:=dm.Query.Fields.Fields[5].AsString;

Sheet.Cells[index,7]:=dm.Query.Fields.Fields[6].AsString;

Inc(index);

dm.Query.Next;

end;

end;

 

procedure TForm1.Button2Click(Sender: TObject);

var

XLApp,Sheet,Colum:Variant;

index,i:integer;

begin

XLApp:=CreateOleObject('Excel.Application');

XLApp.Visible:=true;

XLApp.Workbooks.Add(-4167);

XLApp.Workbooks[1].WorkSheets[1].Name:='Отчет';

Colum:=XLApp.Workbooks[1].WorkSheets['Отчет'].Columns;

Colum.Columns[1].ColumnWidth:=36;

Colum.Columns[2].ColumnWidth:=26;

Colum.Columns[3].ColumnWidth:=21;

Colum.Columns[4].ColumnWidth:=17;

 

Colum:=XLApp.Workbooks[1].WorkSheets['Отчет'].Rows;

Colum.Rows[2].Font.Bold:=true;

Colum.Rows[1].Font.Bold:=true;

Colum.Rows[1].Font.Color:=clBlack;

Colum.Rows[1].Font.Size:=20;

Colum.Rows[3].Font.Size:=12;

 

Sheet:=XLApp.Workbooks[1].WorkSheets['Отчет'];

Sheet.Cells[1,1]:='Ископаемые, не удовлетворяющие потребности';

Sheet.Cells[3,1]:='Название полезного ископаемого';

Sheet.Cells[3,2]:='Название месторождения';

Sheet.Cells[3,3]:='Годовая потребность';

Sheet.Cells[3,4]:='Годовая добыча';

 

index:=4;

dm.Query.First;

for i:=0 to dm.Query.RecordCount-1 do

begin

Sheet.Cells[index,1]:=dm.Query.Fields.Fields[0].AsString;

Sheet.Cells[index,2]:=dm.Query.Fields.Fields[1].AsString;

Sheet.Cells[index,3]:=dm.Query.Fields.Fields[2].AsString;

Sheet.Cells[index,4]:=dm.Query.Fields.Fields[3].AsString;

Inc(index);

dm.Query.Next;

end;

end;

 

procedure TForm1.Button3Click(Sender: TObject);

var

XLApp,Sheet,Colum:Variant;

index,i:integer;

begin

XLApp:=CreateOleObject('Excel.Application');

XLApp.Visible:=true;

XLApp.Workbooks.Add(-4167);

XLApp.Workbooks[1].WorkSheets[1].Name:='Отчет';

Colum:=XLApp.Workbooks[1].WorkSheets['Отчет'].Columns;

Colum.Columns[1].ColumnWidth:=26;

Colum.Columns[2].ColumnWidth:=24;

Colum.Columns[3].ColumnWidth:=18;

Colum.Columns[4].ColumnWidth:=10;

 

Colum:=XLApp.Workbooks[1].WorkSheets['Отчет'].Rows;

Colum.Rows[2].Font.Bold:=true;

Colum.Rows[1].Font.Bold:=true;

Colum.Rows[1].Font.Color:=clBlack;

Colum.Rows[1].Font.Size:=20;

Colum.Rows[3].Font.Size:=12;

 

Sheet:=XLApp.Workbooks[1].WorkSheets['Отчет'];

Sheet.Cells[1,1]:='Ископаемые, не удовлетворяющие потребности';

Sheet.Cells[3,1]:='Название месторождения';

Sheet.Cells[3,2]:='Полезное ископаемое';

Sheet.Cells[3,3]:='Цена за единицу';

Sheet.Cells[3,4]:='Прибыль';

 

index:=4;

dm.Query.First;

for i:=0 to dm.Query.RecordCount-1 do

begin

Sheet.Cells[index,1]:=dm.Query.Fields.Fields[0].AsString;

Sheet.Cells[index,2]:=dm.Query.Fields.Fields[1].AsString;

Sheet.Cells[index,3]:=dm.Query.Fields.Fields[2].AsString;

Sheet.Cells[index,4]:=dm.Query.Fields.Fields[3].AsString;

Inc(index);

dm.Query.Next;

end;

end;



Дата добавления: 2016-06-18; просмотров: 3037;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.235 сек.