- •Практический раздел содержание
- •Лабораторная работа №1
- •Основные понятия диаграмм классов uml
- •Классы, атрибуты, операции
- •Категории связей. Связь-зависимость
- •Связи-обобщения и механизм наследования классов в uml
- •Связи-ассоциации: роли, кратность, агрегация
- •Получение схемы реляционной базы данных из диаграммы классов uml
- •Лабораторная работа №2
- •Лабораторная работа №3
- •Лабораторная работа №4
- •Лабораторная работа №5
- •Лабораторная работа №6
- •3Апрос 6-2-1
- •3Апрос 6-2-2
- •Лабораторная работа №7
- •Лабораторная работа №8
- •Создание макроса
- •Сведения о построителе макросов
- •Создание изолированного макроса
- •Создание группы макросов
- •Создание внедренного макроса
- •Изменение макроса
- •Использование условий для контроля за действиями макроса
- •Примеры условных выражений в макросах
- •Лабораторная работа №9
- •Описание
- •Порядок обработки элементов оператора select:
- •Конструкция where
- •Конструкция group by
- •Конструкция having
- •Конструкция order by
- •Seller (Продавцы)
- •Sale (Продажи)
- •Supplier (Поставщики)
- •Goods (Товары)
- •Model (Модели)
- •Custom (Заказ)
- •Простые запросы
- •Агрегатные функции
- •Лабораторная работа №10
- •Многотабличные запросы
- •Примеры многотабличных запросов
- •Подзапросы и многотабличные запросы
- •Лабораторная работа №11
- •Операторы манипулирования данными
- •Лабораторная работа №12
- •Лабораторная работа №13
- •Примеры
- •Синтаксис
- •Примеры
- •Лабораторная работа №14
- •Лабораторная работа №15
- •Лабораторная работа №16
- •Лабораторная работа №17
- •Лабораторная работа №18
- •Лабораторная работа №19
- •Работа с данными
- •Состояния и режимы набора данных
- •Поля и класс tField
- •Типы полей и типы данных
- •Сортировка
- •Навигация
- •Фильтрация
- •Редактирование
- •Добавление и удаление
- •Лабораторная работа №20
- •Лабораторная работа №21
- •Лабораторная работа №22
- •Лабораторная работа №23
- •Компонент dbCtrlGrid
- •Лабораторная работа №24
- •Импорт информации из Delphi в Word
- •1. Как определить установлен ли Excel
- •2. Как определить запущен ли Excel
- •3. Как вывести данные в Excel
- •Лабораторная работа №25
- •Поиск и фильтрация данных в Delphi
- •Общие положения
- •Поиск данных
- •Лабораторная работа №26
- •Лабораторная работа №27
- •Отчеты в Delphi
- •Лабораторная работа №28
- •Лабораторная работа №29
- •Лабораторная работа №30
- •Лабораторная работа №31
- •Лабораторная работа №32
- •Стандартные функции php для работы с MySql
- •Пример простейшей поисковой системы на php
- •Сортировка таблиц
- •Лабораторная работа №33
- •Работа с соединениями
- •Постоянные соединения с базами данных
- •Лабораторная работа №34
- •Создание бд и таблиц
- •Создание бд и таблиц с помощью php
- •Создание бд и таблиц с использованием phpMyAdmin
- •Лабораторная работа №35
- •Лабораторная работа №36
- •Применение информации о структуре таблицы
- •Лабораторная работа №37
- •Лабораторная работа №39
- •Роль сервера приложений: Настройка сервера приложений
- •Предварительная подготовка
- •Настройка сервера приложений
- •Параметры сервера приложений
- •Сводка выбранных параметров
- •Завершение работы мастера настройки сервера
- •Удаление роли сервера приложений
- •Дальнейшие действия: выполнение дополнительных задач
- •Подготовка данных для сервера приложений
- •Создание сервера приложений
- •Лабораторная работа №40
- •Создание локального клиентского приложения (на том же пк, что и сервер)
- •Удаленный клиент с использованием olEnterprise
- •Об удаленном клиенте с использованием dcom
- •Удаленный клиент с использованием ActiveForm
Лабораторная работа №24
Тема: Организация импорта и экспорта данных
Цель работы: Изучить использование и применение экспорта и импорта данных из Delphi/Builder в Word или Excel.
Время работы: 2 учебных часа.
Правила по ТБ: Общие.
Оборудование рабочего места: Практикум, ПК.
Программное обеспечение: Windows, MS Office, Delphi
Вопросы входного контроля:
Расскажите, какие компоненты доступа к базам данных вы использовали в своей работе.
Назовите отличие визуальных от невизуальных компонентов доступа к БД.
Продемонстрируйте подключение БД к проекту.
Расскажите о компоненте DBCtrlGrid.
Перечислите наиболее часто используемые компоненты для работы с БД.
Расскажите, как подключать компоненты DBLookUpComboBox, DBLookUpListBox и т.д.
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Импорт информации из Delphi в Word
Известно, что Word является OLE-объектом. Суть OLE технологии - возможность из разрабатываемого приложения(клиента) взаимодействовать с другими приложениями(серверами). Все приложения Microsoft Office являются так называемыми "серверами автоматизации". Microsoft Word, являясь сервером OLE, позволяет подключаться к себе клиентам и использовать свои методы и свойства.
Алгоритм импорта данных в Word следующий:
создаем подключение к серверу-приложению Word,
создаем или открываем существующий документ
вносим в документ изменения
манипулируем документом, как хотим (сохраняем его, не показывая при этом экране или же наоборот),
отсоединяемся от сервера.
Подключение к серверу Word производится следующим образом:
Var
Application: variant;
begin
Application:= CreateOleObject('Word.Application');
end;
Сначала вводим вариантную переменную, затем создаем объект OLE 'Word.Application', и присваиваем его этой переменной. Эта процедура называется "создание экземпляра сервера". Создав этот объект, мы затем программируем его свойства и методы.
2) после создания экземпляра сервера, нужно либо создать новый документ, либо открыть уже имеющийся, дабы только что созданный экземпляр сервера не содержит документов и, следовательно информацию импортировать нам пока что некуда.
Создание нового документа
Создание документа производится методом Add:
Синтаксис метода: Add (Template, NewTemplate, DocumentType, Visible)
Все параметры метода - типа Variant и необязательны,
Template |
Имя шаблона, по которому создается новый документ. Если значение не указано, то используется шаблон Normal. |
NewTemplate |
Если использовать значение True, то новый документ открывается как шаблон. Значение по умолчанию - False. |
DocumentType |
Может принимать одно из следующих значений констант типа WdNewDocumentType: wdNewBlankDocument (новый чистый документ), wdNewEmailMessage(электронное сообщение) или wdNewWebPage(Web-страница). Значение по умолчанию wdNewBlankDocument. |
Visible |
Управляет видимостью созданного документа. Если указать значение True, то документ будет видим. По умолчанию Microsoft Word открывает документ с свойством Visible установленным в True. |
Так как все параметры являются необязательными, то для создания нового документа по шаблону Normal метод можно применить без параметров:
Application.Documents.Add;
Для создания нового документа по шаблону <Шаблон.dot> метод применяется следующим образом
Application.Documents.Add('C:\ProgramFiles\Microsoft OfficeD9\Шаблон.dot');
Например, создание нового документа в виде Web-страницы будет выглядеть как
Var
DocumentType: OleVariant;
Application:variant;
Begin
Application:= CreateOleObject('Word.Application');
DocumentType:=wdNewWebPage;
Application.Documents.Add(EmptyParam,False,DocumentType,EmptyParam;
Все параметры в методах объявляются типа OleVariant. Если параметр не используется в методе, то вместо него указывается EmptyParam, что означает пустой параметр.
Открытие документа
Открытие существующего документа Word реализуется методом Open.
Синтаксис метода:
Open (FileName, ConfirmConversions, ReadOnly, AddToRecentFiles, PasswordDocument, PasswordTemplate, Revert, WritePasswordDocument, WritePasswordTemplate, Format, Encoding, Visible)
FileName |
В параметре указывается имя файла документа, включая путь. Обязательный параметр. |
ConfirmConversions |
Если в значении этого параметра указать значение True, то в случае открытия документа с форматом, отличного от Word, будет выводится диалоговое окно конвертирования файла. Необязательный параметр. |
ReadOnly |
Указывая True, открываем документ только для чтения. Необязательный параметр. |
AddToRecentFiles |
Устанавливая значение в True, позволяем добавлять имя открываемого файла в список недавно открытых файлов в меню Файл. Необязательный параметр. |
PasswordDocument |
Пароль открываемого документа. Необязательный параметр. |
PasswordTemplate |
Пароль открываемого шаблона. Необязательный параметр. |
Revert |
Параметр, предусмотренный для открытия файла с именем, уже открытого в данный момент. Если указать True то все изменения текущего документа не сохраняются и открывается файл с подобным именем. При значении False открытый файл активизируется, а новый не открывается. Необязательный параметр. |
WritePasswordDocument |
Пароль для сохраняемого документа. Необязательный параметр. |
WritePasswordTemplate |
Пароль для сохраняемого шаблона. Необязательный параметр. |
Format |
Конвертор файла, необходимый для открытия документа. Может принимать одно из следующих значений типа WdOpenFormat: wdOpenFormatAllWord, wdOpenFormatAuto, wdOpenFormatDocument, wdOpenFormatEncodedText, wdOpenFormatRTF, wdOpenFormatTemplate, wdOpenFormatText, wdOpenFormatUnicodeText, or wdOpenFormatWebPages. По умолчанию wdOpenFormatAuto. Необязательный параметр. |
Encoding |
Кодировка для просмотра документа, может принимать любое правильное значение из ряда констант MsoEncoding. По умолчанию используется системная кодовая станица, установленная по умолчанию. Необязательный параметр. |
Visible |
УстанавливаяTrue, предусматриваем видимое открытие документа. По умолчанию установлено True. Необязательный параметр. |
Например, для открытия документа "c:\Example.doc" метод Open применяется как
Application.Documents.Open('c:\Example.doc');
а для файла "C:\Exam.doc" с паролем на открытие "1" как:
Application.Documents.Open('c:\Exam.doc',EmptyParam,EmptyParam,EmptyParam,'1');
Все элементы рассматриваемого OLE объекта являются так называемыми коллекциями. Коллекция - есть объект, содержащий специфический набор методов и свойств. Коллекция похожа на динамический массив. В ней содержится набор объектов, которые обычно имеют один тип. Вы можете добавлять в нее элементы, удалять и получать их значения. Доступ к элементу осуществляется либо по его порядковому номеру, либо по его имени. Например, все открытые документы представляют собой коллекцию.
Обращение к документу
Обращение к открытому документу, как к элементу набора коллекции, можно по порядковому номеру методом Item. Например, обращение ко второму документу будет выглядеть как:
Application.Documents.Item(2);
Нумерация всех элементов в коллекции начинается с единицы, а не с нуля.
Аналогичную операцию можно осуществить еще как.
Application.Documents(2);
Для работы с документом, его сначала нужно активизировать, т.е. передать ему фокус, подготовить для редактирования или других операций. Активизирование документа производится методом Activate. Для активизации документа, его нужно выбрать из коллекции по его порядковому номеру:
Application.Documents.Item(2).Activate;
или по имени файла:
Application.Document("C:\Example.doc").Activate;
к активному документу можно обращаться, используя свойство ActiveDocument, например, закрыть активный документ:
Application.ActiveDocument.Close;
Внесение изменений в документы.
Теперь настала очередь изучить иерархию методов и свойств OLE объекта.В упрощенном виде картина выглядит следующим образом:
Суть иерархии следующая: объект Application содержит коллекцию документов Documents, тот в свою очередь содержит коллекцию Paragraphs (абзацев), областей документа Range, таблиц Table, закладок Bookmark.
Вставка текста в документ
Далее по тексту мы в основном будем манипулировать коллекций объектов Range, т.е. весь текст удобно будет рассматривать как несколько непрерывных областей. Добавление текста осуществляется следующим образом: сначала создается объект Range, представляющий собой непрерывную область документа, затем методами этого объекта добавляется текст. Объект Range может объявляться как
выражение.Range (начало области, конец области)
например, объявленный ниже объект Range1 охватывает собой первые 10 символов второго документа.
Var
Range1: variant;
Begin
Range1:= Application.Documents(2).Range(1,10);
end;
В документе сначала можно создавать абзацы, т.е. объекты Paragraphs, и затем объединять их в области. К примеру, в начале активного документа методом Add объекта Paragraphs создаем новый абзац, затем на его основе создаем объект Range1:
Var
Range1: variant;
Begin
Application.ActiveDocument.Paragraphs.Add;
Range1:=Application.ActiveDocument.Paragraphs.Item(1).Range;
end;
Вставка текста производится двумя методами объекта Range: InsertAfter и InsertBefore.
Спецификация методов проста:
выражение.InsertAfter(текст) этим методом производится вставка текста после начала объекта Range
выражение.InsertBefore(текст) ,а этим - до.
при использовании этих методов, в качестве параметра указать нужно только текст в апострофах. К примеру, вызов двух операторов
Range1.InsertAfter('это текст InsertAfter');
Range1.InsertBefore('это вставленный текст InsertBefore');
даст нам две строки:
это вставленный текст InsertBefore
это текст InsertAfter
У объекта Range есть много полезных свойств, которые вам неплохо было бы узнать:
свойство Font (шрифт), которое имеет свои подсвойства:
Font.Bold:=True - жирность шрифта
Font.Name:="Arial"-название шрифта
Font.Size:= 24 - размер шрифта
Font.Color:= clRed - цвет шрифта
Font.Italic:= True - наклонность шрифта
Например, вставка жирной строки зеленого цвета:
Range1.Font.Bold:= True;
Range1.Font.Size:= 24;
Range1.Font.Size:= clGreen;
Range1.InsertAfter('вставленная строка');
Объект типа Range можно форматировать. Например, следующей строкой содержимое объекта Range выравнивается по центру:
Range1.ParagraphFormat.Alignment = wdAlignParagraphCenter
Экспорт данных из Delphi в Excel
Рано или поздно практически каждый программист сталкивается с необходимостью организовать экспорт данных в MS Office. При этом каждое "поколение" программистов натыкается на одни и те же вилы.
Вот три часто встречающихся вопроса.
1. Как определить установлен ли Excel
2. Как определить запущен ли Excel
3. Как вывести данные в Excel
Большую помощь в понимании этих и других вопросов приносит чтение исходных текстов функций модуля ComObj. :)
Во всех случаях следует подключить модули ComObj и ActiveX
