Электронный документооборот в системе учета выдачи и возврата книг в библиотеке

Исследование особенностей разработки программы на основе Microsoft Aсcess 2003. Создание главной формы проекта и механизма экспорта данных в приложение Microsoft Word на основе компонентов OLE Automation. Описания реализации задачи при помощи Delphi.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 09.10.2012
Размер файла 2,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://allbest.ru/

ТУЛЬСКИЙ ИНСТИТУТ ЭКОНОМИКИ И ИНФОРМАТИКИ

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

КУРСОВАЯ РАБОТА

На тему ЭД в системе учета выдачи и возврата книг в библиотеке

Учебная дисциплина «Проектирование систем электронного документооборота»

Выполнил студент: группы ПИВЭ-07А Машкина А.В.

Руководитель: Маленко П.И.

Тула, 2012 год

Введение

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

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

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

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

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

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

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

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

Рассмотрим, что стоит понимать под терминами электронный и машиночитаемый документ.

В профессиональной печати (как библиотечной, так и отражающей проблемы информатики) часто встречается термин "машиночитаемый документ", что означает, документ, пригодный для автоматического считывания содержащейся на нем информации. При этом имеется в виду именно ЭВМ. Однако машиночитаемый по логике самого слова означает, что он читается при помощи машины и совсем не обязательно электронной. Микрофиша с большим сжатием - тоже машиночитаемый документ, поскольку ее невозможно прочесть без помощи аппарата.

Кроме того, история свидетельствует, что счетно-перфорационная машина создана в США во второй половине XIX в. и впервые использована для подсчета результатов переписи населения в 1890 г. В России машиночитаемые документы появились также в связи с необходимостью обработки данных всеобщей переписи населения 1897 г. На основе листов первичного учета было заполнено около 126 млн 22-колонных перфокарт, которые поступили в специальный архив Центрального статистического комитета, а затем после опубликования итогов переписи в 1905 г. Уничтожены.

Земсков А.И. пишет в своем научном труде.

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

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

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

Этапы разработки программы.

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

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

1. Спецификация (определение, формулирование требований к программе).

2. Разработка алгоритма.

3. Кодирование (запись алгоритма на языке программирования).

4. Отладка.

5. Тестирование.

6. Создание справочной системы.

7. Создание установочного диска (CD-ROM).

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

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

В настоящее время существует достаточно большое количество программных систем, позволяющих создавать и использовать локальные (dBASE, FoxPro, Access, Paradox) и удаленные (Interbase, Oracle, Sysbase, Infomix, Microsoft SQL Server) базы данных.

В состав Delphi входят компоненты, позволяющие создавать программы работы с файлами данных, созданными различными системами: от dBASE до Infomix и Oracle. Delphi также позволяет программисту, используя утилиту Borland Database Desktop, создавать файлы баз данных в различных форматах.

Классификация баз данных

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

Задание

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

Необходимо создать таблицы базы данных в Microsoft Access, описать структуру созданных таблиц. В Delphi необходимо создать главную форму проекта и механизма экспорта данных в приложения Microsoft Word, Microsoft Excel на основе компонентов OLE Automation - WordApplication, WordDocument, ExcelApplication, ExcelWorkbook, ExcelWorksheet, ExcelChart.

Реализация задачи при помощи программы Microsoft Acess 2003

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

Запускаем программу. Справа откроется меню «Создание файла». Выбираем из списка «Новая база данных» при этом программа предложит сохранить файл самой базы *.mdb на диск в соответствующем окне. Необходимо указать путь для сохранения этого файла и нажать кнопку «Сохранить». В окне *.mdb, изображённом на рисунке 1 в приложении 1 выбираем в объектах «Таблицы», затем «Создание таблицы в режиме констурктора». Появляется таблица - по умолчанию имя таблицы «Таблица1», а в нашем случае «Список студентов», изображённая на рисунке 2 приложения 1 с полями: «FAMILYA», «NAME», «OTCH.», «NUMBER», «ADR», «NAME_BOOK», «DATA_REG», «NUMB_BOOK». В нашем случае таблица называется «Список абонентов», в которой будут содержаться данные по абонентам. Далее заполняем поля. В поле «Имя поля» вводим «FAMILYA», в поле «Тип данных» выбираем «Текстовый». В свойствах поля выбираем размер поля 50, индексированное поле. Аналогично заполняем поля таблицы для имён «NAME» - текстовое, «OTCH.» - текстовое, «NUMBER» - текстовое, «ADR» - текстовое, «NAME_BOOK» - текстовое, «DATA_REG ET» и «NUMB_BOOK» - тип данных «Числовой», длинное целое.

Аналогично описанному выше создаём ещё одну таблицу с именем «Номер», в которой будут содержаться данные об изучаемых предметах с полями «NUMBER» - тип поля «Счетчик», «NAME» - тип поля «Текстовый».

Создаём ещё одну таблицу «Учет Выдачи», которая изображена на рисунке 4 приложения 1, в которой будут содержаться с полями «Номер» - тип поля «Счетчик», «ID_BOOK» - тип поля «Текстовый», размер поля 50, «PICATEL» - тип поля «Текстовый», размер поля 50, «REITING» - тип поля «Текстовый», размер поля 50.

Шаблоны формируемых документов приведены на рисунках 5 и 6 приложения.

Образцы заполненных формируемых документов приведены на рисунках 7 и 8 приложения.

Схемы данных с информацией о формировании документов приведены на рисунках 9 и 10 приложения.

Реализация задачи при помощи Delphi

Для реализации в среде Delphi создаем пустой проект, изображённый на рисунке 11 приложения 1. Далее с панели инструментов BDE перетаскиваем на форму компонент Query(DBTables). Для того чтобы из таблицы, ранее созданной в СУБД Microsoft Access можно было использовать данные в приложении на Delphi нам необходимо их экспортировать. В данном случае формат экспорта DBF.

У компонента Query(DBTables) в Object Insperctor, устанавливаем свойства DatabaseName в папку с экпортированным файлом DBF=C:\project1, свойство SQL, устанавливаем select * from абоненты.dbf, для запроса данных их таблицы.

Затем добавляем на форму компоненты:

С панели управления Servers:

MS Word

MS Excel

WordApplication - работа с приложением MS Word

ExcelApplication - работа с приложением MS Excel

ExcelWorkbook - работа с книгой MS Excel

WordDocument - работа с документом MS Word

ExcelWorksheet - работа с листом книги MS Excel

ExcelChart - работа с диаграммой

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

С панели управления Data Acces добавляем компонент DataSource(DB)

У компонента DataSource(DB) в Object Insperctor, устанавливаем свойства DataSet равным Query1.

С панели управления Data Controls добавляем компонент Dbgrid(Dbgrids)

У компонента Dbgrid(Dbgrids) в Object Insperctor, устанавливаем свойства DataSource равным DataSource1.

С панели управления Standart добавляем компоненты:

3 компонента Button

1 компонент GroupBox в него добавляем 2 компонента Label и 2 компонента StaticText с панели Additional.

Результат проектирования и размещения компонентов на форме приведён на рисунке 12 приложения 1.

Для подключения запроса используется Button1, для нее создаем событие по клику:

procedure TForm1.Button1Click(Sender: TObject);

begin

Query1.Active:=true;

end;

Cоздаем событие для Dbgrid DBGrid1CellClick:

procedure TForm1.DBGrid1CellClick(Column: TColumn);

begin

StaticText2.Caption:= Query1.fieldbyname('FAMILYA').AsString; //Показываем краткое содержание текущей записи

StaticText3.Caption:= Query1.fieldbyname('NUMBER').AsString; //Показываем краткое содержание текущей записи

NomClient:=Query1.RecNo; //фиксируем номер текущей записи для последующей работы

end;

Button3 формирует файлы Excel и Word.

Подключаемся к Word и делаем базовую настройку листа:

WordApplication1.Connect;

//Загрузка существующего файла Word

doc1:='C:\project1\pr1.doc'; //открыть существующий документ

WordApplication1.Documents.Open(doc1,EmptyParam, EmptyParam, EmptyParam,EmptyParam, EmptyParam, EmptyParam,

EmptyParam, EmptyParam, EmptyParam,EmptyParam, EmptyParam, EmptyParam,EmptyParam,EmptyParam);

WordDocument1.ConnectTo(WordApplication1.ActiveDocument);//Соединяемся с активным документом

//Настроим исходные параметры документа WordDocument1.PageSetup.Orientation:=0; //ориентация страницы

WordDocument1.PageSetup.PaperSize:=7; //формат А4

//Поля (2,54 см - 72 точки)

WordDocument1.PageSetup.LeftMargin:=25; //левое

WordDocument1.PageSetup.RightMargin:=70; //правое

WordDocument1.PageSetup.TopMargin:=70; //верхнее

WordDocument1.PageSetup.BottomMargin:=70;//нижнее

WordDocument1.PageSetup.TextColumns.SetCount(1); //кол-во колонок в тексте - 1

Формируем первую страницу, на которой расположена таблица со справочными данными:

Query1.Active:=true;//обращаемся к БД

Query1.First; //БД - на 1 запись

ColRows:=Query1.RecordCount+1;//задаем кол-во строк будущей таблицы Word по таблице БД

ColColumns:=Query1.FieldCount; //задаем кол-во столбцов будущей таблицы Word по таблице БД

//Вставляем таблицу

Range1:=WordDocument1.Paragraphs.Last.Range; //задаем местоположение в документе - после последнего параграфа

WordDocument1.Paragraphs.Item(WordDocument1.Paragraphs.Count).Alignment:=1; //выравнивание

WordDocument1.Tables.Add(Range1,ColRows,ColColumns,EmptyParam, EmptyParam);//задаем размеры таблицы

WordDocument1.Tables.Item(1).allowAutoFit:=true;//разрешение автонастройки таблицы

WordDocument1.Tables.Item(1).AutoFitBehavior(2); //автоподбор размера по ширине окна (1-по содержимому)

//Рисуем границы таблицы по ячейкам и заполняем их из БД

for i:=1 to ColRows do //строки

begin

for j:=1 to ColColumns do //столбцы

begin

WordDocument1.Tables.Item(1).cell(i,j).Range.Font.Color:=clGray; //форматируем цвет шрифта

WordDocument1.Tables.Item(1).cell(i,j).Borders.Enable:=1; //рисуем границы ячейки таблицы

if i < ColRows then WordDocument1.Tables.Item(1).cell(i+1,j).Range.InsertAfter(Query1.Fields[j-1].AsString); //Вводи данные из БД

end;

Query1.Next; //следующая запись БД

end;

//Заполняем строку заголовков

for j:=1 to ColColumns do

begin

with WordDocument1.Tables.Item(1).cell(1,j).Range.Font do //Форматируем шрифт для названий колонок таблицы

begin

Size:=10;

Name:='ArialCyr';

Color:=clBlue;

Bold:=1;

Italic:=1;

end;

WordDocument1.Tables.Item(1).cell(1,j).Range.InsertAfter(Query1.Fields[j-1].DisplayName); //Вводим названия полей БД

//WordDocument1.Tables.Item(1).cell(1,j).Range.AutoFormat;

end;

Создаем вторую страницу, на которой располагается справка о том, что человек является абонентом библиотеки и номером книг:

Razd:=wdSectionNewPage;

Range1:=WordDocument1.Paragraphs.Last.Range;

WordDocument1.Sections.Add(EmptyParam,Razd); // текущая секция документа отделена разрывом

//Вставка текста - создание типового документа

//Вставка 3 пустых абзацев, курсор в позиции последнего WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

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

//Пример применения диапазона "Range" для выравнивания двух абзацев из четырех ранее введенных --------------

Start1:=WordDocument1.Paragraphs.Item(1).Range.start; //начальный абзац

End1:=WordDocument1.Paragraphs.Item(2).Range.end_; //конечный абзац

WordDocument1.Range(Start1,End1).Paragraphs.Alignment:=2; //выравнивание вправо

WordDocument1.Paragraphs.Add(EmptyParam); //добавить абзац, курсор в его позиции

WordDocument1.Paragraphs.Item(WordDocument1.Paragraphs.Count).Alignment:=2; //выравнивание текущего абзаца вправо

WordDocument1.Range.InsertAfter('Для представления'); //вводим текст

WordDocument1.Paragraphs.Add(EmptyParam); //добавить абзац, курсор в его позиции

WordDocument1.Paragraphs.Item(WordDocument1.Paragraphs.Count).Alignment:=2; //выравнивание текущего абзаца вправо

WordDocument1.Range.InsertAfter('Для внутреннего использования); //вводим текст

//Вставка 3 пустых абзацев, курсор в позиции последнего------

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Item(WordDocument1.Paragraphs.Count).Alignment:=1; //выравнивание по центру

WordDocument1.Range.InsertAfter('СПРАВКА'); //вводим текст

//Вставка 4 пустых абзацев, курсор в позиции последнего -----

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

//Вводим текст после слова "СПРАВКА"

Query1.Active:=true;//обращаемся к базе данных

Query1.First; //БД - на первую запись

Query1.MoveBy(NomClient-1); //формируем документ для выбранной записи

WordDocument1.Paragraphs.Item(WordDocument1.Paragraphs.Count).Alignment:=3; //выравнивание по ширине

WordDocument1.Paragraphs.Item(WordDocument1.Paragraphs.Count).LineSpacingRule:=2; //межстрочный интервал - двойной

StrKomb:='Абонент ' + Query1.FieldByName('FAMILYA').Asstring + ' ' + Query1.FieldByName('NAME').Asstring + ' ' + Query1.FieldByName('OTCH.').Asstring + ', проживающий по адрессу ' + Query1.FieldByName('ADR').Asstring ;

WordDocument1.Range.InsertAfter(StrKomb); //вводим текст

StrKomb:=' зарегистрированный ' + Query1.FieldByName(' DATA_REG ').Asstring + ' числа, Получил на руки книгу ' + Query1.FieldByName(' NAME_BOOK').Asstring + ' ';

WordDocument1.Range.InsertAfter(StrKomb);

WordDocument1.Paragraphs.Add(EmptyParam); //добавить абзац, курсор в его позиции

StrKomb:= ' Книга под индексом: ' + Query1.FieldByName(' NUMB_BOOK').Asstring + ' ';

//вводим текст

WordDocument1.Range.InsertAfter(StrKomb);

//Вставка 4 пустых абзацев, курсор в позиции последнего -----

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

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

WordDocument1.Paragraphs.Item(WordDocument1.Paragraphs.Count).Alignment:=2; //выравнивание текущего абзаца вправо

WordDocument1.Paragraphs.Item(WordDocument1.Paragraphs.Count).LineSpacingRule:=0; //межстрочный интервал - снова одинарный

StrKomb:= 'Администратор зала ________________ ';

WordDocument1.Range.InsertAfter(StrKomb); //вводим текст

//Вставка 4 пустых абзацев, курсор в позиции последнего -----

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

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

Razd:=wdSectionNewPage;

Range1:=WordDocument1.Paragraphs.Last.Range;

WordDocument1.Sections.Add(EmptyParam,Razd); // текущая секция документа отделена разрывом

//Вставка текста - создание типового документа

//Вставка 3 пустых абзацев, курсор в позиции последнего -----

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

//Пример применения диапазона "Range" для выравнивания двух абзацев из четырех ранее введенных --------------

Start1:=WordDocument1.Paragraphs.Item(1).Range.start; //начальный абзац

End1:=WordDocument1.Paragraphs.Item(2).Range.end_; //конечный абзац

WordDocument1.Range(Start1,End1).Paragraphs.Alignment:=2; //выравнивание вправо

//Вставка 3 пустых абзацев, курсор в позиции последнего------

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Item(WordDocument1.Paragraphs.Count).Alignment:=1; //выравнивание по центру

WordDocument1.Range.InsertAfter(' НАПРАВЛЕНИЕ НА ВЫДАЧУ КНИГИ '); //вводим текст

//Вставка 4 пустых абзацев, курсор в позиции последнего -----

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

//Вводим текст после слова "НАПРАВЛЕНИЕ НА ВЫДАЧУ КНИГИ"

Query1.Active:=true;//обращаемся к базе данных

Query1.First; //БД - на первую запись

Query1.MoveBy(NomClient-1); //формируем документ для выбранной записи

WordDocument1.Paragraphs.Item(WordDocument1.Paragraphs.Count).Alignment:=3; //выравнивание по ширине

WordDocument1.Paragraphs.Item(WordDocument1.Paragraphs.Count).LineSpacingRule:=2; //межстрочный интервал - двойной

StrKomb:=' Абонент ' + Query1.FieldByName('FAMILYA').Asstring + ' ' + Query1.FieldByName('NAME').Asstring + ' ' + Query1.FieldByName('OTCH.').Asstring + ';

WordDocument1.Range.InsertAfter(StrKomb); //вводим текст

WordDocument1.Paragraphs.Add(EmptyParam);

StrKomb:=' Зарегистрированный ' + Query1.FieldByName(' DATA_REG `).Asstring + ' числа, выдать следующую книгу ' + Query1.FieldByName('GROUP').Asstring + ' ';

WordDocument1.Range.InsertAfter(StrKomb);

//добавить абзац, курсор в его позиции

//вводим текст

//Вставка 4 пустых абзацев, курсор в позиции последнего -----

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Item(WordDocument1.Paragraphs.Count).Alignment:=2; //выравнивание текущего абзаца вправо

WordDocument1.Paragraphs.Item(WordDocument1.Paragraphs.Count).LineSpacingRule:=0; //межстрочный интервал - снова одинарный

StrKomb:= 'Администратор зала ________________ ';

WordDocument1.Range.InsertAfter(StrKomb); //вводим текст

//Вставка 4 пустых абзацев, курсор в позиции последнего -----

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

WordDocument1.Paragraphs.Add(EmptyParam);

Затем активируем приложение Word и делаем все видимым:

WordApplication1.Documents.Item(doc1).Activate;//активирум документ Word

WordApplication1.Visible:=true; //Показываем все на экране

Переходим к формированию файла Excel:

//Загрузка существующего файла Excel

doc1:='C:\project1\pr1.xls'; //открыть существующий документ 1

ExcelApplication1.Workbooks.Open(doc1,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,

EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,Lcid); //открыть существующий документ 1

ExcelWorkbook1.ConnectTo(ExcelApplication1.ActiveWorkbook); //соединяем компонет ExcelWorkbook1 с активной книгой

ExcelWorksheet1.ConnectTo(ExcelApplication1.Worksheets.Item['Лист1'] as _Worksheet); //выбираем лист№3 книги

ExcelWorksheet1.Activate;//активируем лист

ExcelApplication1.Visible[Lcid]:=true; //показываем приложение полностью

Заполняем Лист1 на который выводится таблица «Справочная таблица» ColRows:=Query1.RecordCount+1;//задаем кол-во строк будущей таблицы Word

ColColumns:=Query1.FieldCount; //задаем кол-во столбцов будущей таблицы Word

//Сдвиг позиции отображения по отношению к началу координат

SRows:=2;

SColumns:=3;

//Имена полей - на лист Excel

for j:=0 to ColColumns-1 do

begin

ExcelWorksheet1.Cells.Item[1+SRows,j+SColumns].value:=Query1.Fields[j].DisplayName;

end;

//Авторазмер столбцов по ширине значений яеек (кол-во символов в строке Length) ---

max:=0;

for j:=0 to ColColumns-1 do

begin

Query1.First; //Выборка - на первую запись

max:=Length(Query1.Fields[j].AsString);

for i:=1 to ColRows do

begin

if (max<=Length(Query1.Fields[j].AsString)) then max:=Length(Query1.Fields[j].AsString);

Query1.Next; //Выборка - на одну запись вниз

end;

//сравниваем ширину не только по домену данных но и по заголовку таблицы

if (max<=Length(Query1.Fields[j].DisplayName)) then max:=Length(Query1.Fields[j].DisplayName);

ExcelWorksheet1.Cells.Item[i+SRows,j+SColumns].ColumnWidth:=max;

end;

Query1.First; //Выборка - на первую запись

//Значения домена - на лист Excel

for i:=1 to ColRows do

begin

for j:=0 to ColColumns-1 do

begin

if i < ColRows then ExcelWorksheet1.Cells.Item[i+SRows+1,j+SColumns].value:=Query1.Fields[j].AsString;//вставляем значения не с первой позиции

end;

Query1.Next; //Выборка - на следующую запись

end;

//Заголовок таблицы -----------------------------------------------------------------

//объединяем ячейки ---------------------------------------------------

ExcelWorksheet1.Cells.Range[ExcelWorksheet1.Cells.Item[SRows-1,SColumns],

ExcelWorksheet1.Cells.Item[SRows-1,ColColumns+2]].MergeCells:=true;

//Форматируем шрифт ---------------------------------------------------

ExcelWorksheet1.Cells.Item[SRows-1,SColumns].font.color:=clGreen; //цвет

ExcelWorksheet1.Cells.Item[SRows-1,SColumns].font.Bold:=1; //стиль

ExcelWorksheet1.Cells.Item[SRows-1,SColumns].font.Italic:=1; //стиль

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

ExcelWorksheet1.Cells.Item[SRows-1,SColumns].HorizontalAlignment:=xlVAlignCenter; //выравнивание по горизонтали - центр

ExcelWorksheet1.Cells.Item[SRows-1,SColumns].VerticalAlignment:=xlHAlignCenter; //выравнивание по вертикали - центр

ExcelWorksheet1.Cells.Item[SRows-1,SColumns].value:='СПРАВОЧНАЯ ТАБЛИЦА'; //пишем заголовок

//Размечаем границы таблицы

//Внешняя граница - толще

ExcelWorksheet1.Cells.Range[ExcelWorksheet1.Cells.Item[1+SRows,SColumns],

ExcelWorksheet1.Cells.Item[ColRows+SRows,ColColumns+SColumns-1]].BorderAround(1,4,1,EmptyParam);

//Вертикальная граница

//Цвет линий - базовый красный

ExcelWorksheet1.Cells.Range[ExcelWorksheet1.Cells.Item[1+SRows,SColumns],

ExcelWorksheet1.Cells.Item[ColRows+SRows,ColColumns+SColumns-1]].Borders.Item[11].color:=clRed;

ExcelWorksheet1.Cells.Range[ExcelWorksheet1.Cells.Item[1+SRows,SColumns],

ExcelWorksheet1.Cells.Item[ColRows+SRows,ColColumns+SColumns-1]].Borders.Item[11].LineStyle:=1;

//Горизонтальная граница

ExcelWorksheet1.Cells.Range[ExcelWorksheet1.Cells.Item[1+SRows,SColumns],

ExcelWorksheet1.Cells.Item[ColRows+SRows,ColColumns+SColumns-1]].Borders.Item[12].color:=clRed;

ExcelWorksheet1.Cells.Range[ExcelWorksheet1.Cells.Item[1+SRows,SColumns],

ExcelWorksheet1.Cells.Item[ColRows+SRows,ColColumns+SColumns-1]].Borders.Item[12].LineStyle:=1;

Заполняем Лист 2 на котором располагается направление на выдачу:

Query1.First; //Выборка - на первую запись

Query1.MoveBy(NomClient-1); //формируем документ для выбранной записи

ExcelWorksheet1.ConnectTo(ExcelApplication1.Worksheets.Item['Лист2'] as _Worksheet);

ExcelWorksheet1.Activate;//активируем лист

// Вводим текст документа ----------------------------------------------------

//Первое предложение "шапки" -----------

with ExcelWorksheet1.Range['G1','J1'] do

begin

VerticalAlignment:=xlVAlignCenter; //выравнивание вертикальное - по центру

HorizontalAlignment:=xlHAlignRight; //выравнивание горизонтальное - по центру

MergeCells:=true; //объединение ячеек

Value[EmptyParam]:='Для внутреннего пользования'; //пишем текст

end;

//Второе предложение "шапки" -----------

with ExcelWorksheet1.Range['G2','J2'] do

begin

VerticalAlignment:=xlVAlignCenter; //выравнивание вертикальное - по центру

HorizontalAlignment:=xlHAlignRight; //выравнивание горизонтальное - по центру

MergeCells:=true; //объединение ячеек

Value[EmptyParam]:='по месту требования'; //пишем текст

end;

//Печатаем текст - Cправка ---

with ExcelWorksheet1.Range['D6','G6'] do

begin

VerticalAlignment:=xlVAlignCenter; //выравнивание вертикальное - по центру

HorizontalAlignment:=xlHAlignRight; //выравнивание горизонтальное - по центру

MergeCells:=true; //объединение ячеек

font.Bold:=1; //шрифт - стиль

font.Italic:=1; //шрифт - стиль

Value[EmptyParam]:='НАПРАВЛЕНИЕ НА ВЫДАЧУ'; //пишем текст

end;

StrKomb:='Абонент ' + Query1.FieldByName('FAMILYA').Asstring + ' ' + Query1.FieldByName('NAME').Asstring + ' ' + Query1.FieldByName('OTCH.').Asstring + ';

ExcelWorksheet1.Cells.Item[10,1].value:= StrKomb;

StrKomb:='Зарегистрированный' + Query1.FieldByName('DATA_REG').Asstring + 'числа, выдать след книгу ' + Query1.FieldByName('GROUP').Asstring + ' ';

ExcelWorksheet1.Cells.Item[13,1].value:= StrKomb;

StrKomb:= 'Администратор зала ________________ ';

with ExcelWorksheet1.Range['E17','J17'] do

begin

VerticalAlignment:=xlVAlignCenter; //выравнивание вертикальное - по центру

HorizontalAlignment:=xlHAlignRight; //выравнивание горизонтальное - по центру

MergeCells:=true; //объединение ячеек

font.Bold:=1; //шрифт - стиль

font.Italic:=1; //шрифт - стиль

Value[EmptyParam]:=StrKomb;; //пишем текст

end;

ExcelWorksheet1.Range['A1','J18'].BorderAround(2,4,1,EmptyParam);// рамка - граница сформированного документа

//Форматируем лист Excel ----------------------------------------

with ExcelWorksheet1.PageSetup do

begin

ExcelWorksheet1.PageSetup.PaperSize:=DMPAPER_A4;//формат - А4

ExcelWorksheet1.PageSetup.LeftMargin:=20; //поле левое

ExcelWorksheet1.PageSetup.RightMargin:=20; //поле правое

ExcelWorksheet1.PageSetup.TopMargin:=20; //поле верхнее

ExcelWorksheet1.PageSetup.BottomMargin:=20; //поле нижнее

end;

Заполняем Лист 3, на котором располагается справка о том, что человек является абонентом библиотеки и номере его книг

//Работаем на листе № 3

Query1.First; //Выборка - на первую запись

Query1.MoveBy(NomClient-1); //формируем документ для выбранной записи

ExcelWorksheet1.ConnectTo(ExcelApplication1.Worksheets.Item['Лист3'] as _Worksheet); //выбираем лист№2 книги

ExcelWorksheet1.Activate;//активируем лист

ExcelApplication1.Visible[Lcid]:=true; //показываем приложение полностью

//Первое предложение "шапки" -----------

with ExcelWorksheet1.Range['G1','J1'] do

begin

VerticalAlignment:=xlVAlignCenter; //выравнивание вертикальное - по центру

HorizontalAlignment:=xlHAlignRight; //выравнивание горизонтальное - по центру

MergeCells:=true; //объединение ячеек

Value[EmptyParam]:='Для внутреннего пользования'; //пишем текст

end;

//Второе предложение "шапки" -----------

with ExcelWorksheet1.Range['G2','J2'] do

begin

VerticalAlignment:=xlVAlignCenter; //выравнивание вертикальное - по центру

HorizontalAlignment:=xlHAlignRight; //выравнивание горизонтальное - по центру

MergeCells:=true; //объединение ячеек

Value[EmptyParam]:='по месту требования'; //пишем текст

end;

//Печатаем текст - Cправка ---

with ExcelWorksheet1.Range['E6','F6'] do

begin

VerticalAlignment:=xlVAlignCenter; //выравнивание вертикальное - по центру

HorizontalAlignment:=xlHAlignRight; //выравнивание горизонтальное - по центру

MergeCells:=true; //объединение ячеек

font.Bold:=1; //шрифт - стиль

font.Italic:=1; //шрифт - стиль

Value[EmptyParam]:='С П Р А В К А'; //пишем текст

end;

StrKomb:='Студент ' + Query1.FieldByName('FAMILYA').Asstring + ' ' + Query1.FieldByName('NAME').Asstring + ' ' + Query1.FieldByName('OTCH.').Asstring + ', проживающий по адрессу ' + Query1.FieldByName('ADR').Asstring ;

ExcelWorksheet1.Cells.Item[10,1].value:= StrKomb;

StrKomb:=' Зарегестрированный ' + Query1.FieldByName('DATA_REG').Asstring + ' числа, получил на руки книгу ' + Query1.FieldByName('NAME_BOOK').Asstring + ' ';

ExcelWorksheet1.Cells.Item[11,1].value:= StrKomb;

StrKomb:= 'Книга под индексом ' + Query1.FieldByName('NUMB_BOOK').Asstring + ' ';

ExcelWorksheet1.Cells.Item[13,1].value:= StrKomb;

StrKomb:= 'Администратор зала ________________ ';

with ExcelWorksheet1.Range['E17','J17'] do

begin

VerticalAlignment:=xlVAlignCenter; //выравнивание вертикальное - по центру

HorizontalAlignment:=xlHAlignRight; //выравнивание горизонтальное - по центру

MergeCells:=true; //объединение ячеек

font.Bold:=1; //шрифт - стиль

font.Italic:=1; //шрифт - стиль

Value[EmptyParam]:=StrKomb;; //пишем текст

end;

ExcelWorksheet1.Range['A1','J18'].BorderAround(2,4,1,EmptyParam);// рамка - граница сформированного документа

//Форматируем лист Excel ----------------------------------------

with ExcelWorksheet1.PageSetup do

begin

ExcelWorksheet1.PageSetup.PaperSize:=DMPAPER_A4;//формат - А4

ExcelWorksheet1.PageSetup.LeftMargin:=20; //поле левое

ExcelWorksheet1.PageSetup.RightMargin:=20; //поле правое

ExcelWorksheet1.PageSetup.TopMargin:=20; //поле верхнее

ExcelWorksheet1.PageSetup.BottomMargin:=20; //поле нижнее

end;

После выполнения приложения, расположенного на рисунке 12 приложения у нас получается один документ Microsoft Word и одна книга Microsoft Excel:

В Документе Microsoft Word:

На первой странице документа Microsoft Word общая справочная таблица по всем абонентам, которые есть в БД, рисунок 13 приложения 1.

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

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

В Книге Microsoft Excel:

На первом листе располагается общая справочная таблица по всем абонентам которые есть в БД, рисунок 16 приложения.

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

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

программа приложение экспорт разработка

Заключение

В проекте были получены навыки создания базы данных в Microsoft Access. Просмотр созданных СУБД в Delphi, а так же экспорт данных в приложения Microsoft Word, Microsoft Excel на основе компонентов OLE Automation - WordApplication, WordDocument, ExcelApplication, ExcelWorkbook, ExcelWorksheet, ExcelChart.

Список литературы

1. «Delphi, язык и среда программирования» Фараонов В.В, Москва: 2009.

2. «Учебник по Delphi 7 для начинающих» Кирилин М.Н

3. Вейскас Д. Эффективная работа с Microsoft Access 2. С.- Петербург: «Питер Пресс», 1996. - 856 стр.

4. Ю. Бекаревич, Н. Пушкина. Самоучитель Microsoft Access 2000. - СПб.: БХВ - Санкт-Петербург, 1999. - 480 стр.

5. Спирли Э. Корпоративные хранилища данных. Планирование, разработка, реализация. - М.: АСТ, 2001.

Приложение

Рисунок 1 - Окно базы данных группа с объектами

Рисунок 2 - Таблица «Список абонентов»

Рисунок 3 - Таблица «Номер»

Рисунок 4 - таблица «Учет выдачи»

Для внутреннего пользования

СПРАВКА

Абонент _________________, проживающий по адресу: ________, зарегистрированный

_____ числа, получил на руки книгу ___________

Книга под индексом: ________

Администратор зала ________________

Рисунок 5 - Шаблон формируемого документа СПРАВКА

Для внутреннего пользования

НАПРАВЛЕНИЕ НА ВЫДАЧУ КНИГИ

Абоненту ___________________________________________________

Зарегистрированный : __________ числа, выдать след книгу________________________

Администратор зала ________________

Рисунок 6 - Шаблон формируемого документа НАПРАВЛЕНИЕ НА ВЫДАЧУ КНИГИ

Для внутреннего пользования

СПРАВКА

Абонент Иванов Петр Петрович, проживающий по адресу: Халтурина 8, кв 58

зарегистрированный 03.05.2006 числа, Получил на руки книгу Мертвые души

Книга под индексом: 52987

Администратор зала ________________

Рисунок 7 - Образцы заполненного формируемого документа СПРАВКА

Для внутреннего пользования

НАПРАВЛЕНИЕ НА ВЫДАЧУ КНИГИ

Абонент Иванов Петр Петрович

Зарегистрированный : 03.05.2006 числа, выдать след книгу: Мертвые души

Администратор зала ________________

Рисунок 8 - Образцы заполненного формируемого документа НАПРАВЛЕНИЕ НА ВЫДАЧУ КНИГИ

Рисунок 9 - Схема данных с информацией о формировании документа СПРАВКА о получении книги

Рисунок 10 - Схема данных с информацией о формировании документа НАПРАВЛЕНИЕ НА ВЫДАЧУ КНИГИ

Рисунок 11 - Пустая форма в среде Delphi

Рисунок 12 - Готовое приложение

Рисунок 13 - общая справочная таблица первого листа Microsoft Word

Рисунок 14 - СПРАВКА о получении книги второго листа Microsoft Word

Рисунок 15 - Направление на выдачу книги третьего листа Microsoft Word

Рисунок 16 - общая справочная таблица первого листа Microsoft Excel

Рисунок 17 - справка о получении книги второго листа Microsoft Excel

Рисунок 18 - направление на выдачу книги третьего листа Microsoft Excel

Размещено на Allbest.ru


Подобные документы

  • Методика создания приложений передающих данные в Microsoft Word. Технология взаимодействия приложений с текстовым редактором Microsoft Word. Создание и использование экземпляров серверов автоматизации. Взаимодействие с сервером на уровне документа.

    курсовая работа [120,7 K], добавлен 26.03.2010

  • Возможности создания визитной карточки программами Microsoft Word 2003 и Microsoft Publisher 2003. Требования к оформлению визитной карточки. Основные версии возникновения визитной карточки. Выбор оптимального дизайна и форматирование визитной карточки.

    курсовая работа [627,1 K], добавлен 06.03.2012

  • Разработка головоломки на основе гравюры Альбрехта Дюрера "Магический квадрат". Главные составные части среды программирования Delphi, особенности ее стандартных компонентов и процесса сохранения программы. Компоненты и алгоритмы создаваемой программы.

    курсовая работа [147,1 K], добавлен 05.02.2015

  • Сущность, структура и значение приложения Microsoft Office 2003, его основные возможности. Концепция электронного документа и его обязательные реквизиты. Особенности технологии создания и редактирования текстового документа в Microsoft Word 2003.

    реферат [23,0 K], добавлен 23.11.2010

  • Создание программы для учета выдачи и возврата книг. Методы создания четырех таблиц-справочников и основной таблицы. Создание базового, перекрестного, итогового запросов. Формирование форм. Формирование отчета по читателям и выданным книгам с итогами.

    практическая работа [1,3 M], добавлен 13.07.2010

  • Сущность, изготовление и оформление бланков предприятия, их основные реквизиты. Особенности использования и специфика работы с программами Microsoft Word, Microsoft Excel, ABBY FineReader, Microsoft Access, Microsoft PowerPoint, Promt 98 и Polyglossum.

    реферат [39,7 K], добавлен 09.10.2009

  • Программа перенесения данных из таблицы Word в таблицу базы данных. Алгоритм решения задачи в виде текстового описания. Описание базы данных (структура таблиц, схема). Копии с экрана форм для работы с базой данных при разработке их в конструкторе.

    контрольная работа [914,3 K], добавлен 26.03.2011

  • Основные понятия баз данных: нормализация, связи и ключи. Создание и этапы проектирования базы данных, решение задачи о предметной области. Изучение СУБД Microsoft Access s 2003: пользовательский интерфейс, главное окно приложения, создание таблиц.

    реферат [2,1 M], добавлен 10.11.2010

  • Устройство персонального компьютера и устройства внешней памяти. Создание и приемы редактирования документа в Microsoft Word. Возможности панели рисования в Word, работа с встроенным редактором формул Microsoft Equation 3.0, создание логотипа фирмы.

    контрольная работа [1,1 M], добавлен 10.11.2011

  • Компьютерные программы, предназначенные для хранения и обработки данных. Способы работы с таблицами в Microsoft Word. Система управления базами данных Microsoft Access. Способность электронных таблиц быстро и точно производить автоматические вычисления.

    контрольная работа [16,2 K], добавлен 22.11.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.