Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания лабы БД программисты.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
797.7 Кб
Скачать

Экспорт в ms Word

  1. Добавляем в раздел uses модуль ComObj, в котором описаны все необходимые функции для работы с COM – объектами;

  2. Создаём обработчик события для пункта меню Экспорт – Word. В обработчике прописываем следующий код программы:

var count:longint;

s:string;

v:Variant;

begin

//создание объекта для управления документом

v:=CreateOleObject('Word.Basic');

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

v.filenew('normal');

//устанавливаем тип шрифта

v.Font('Times new Roman');

//устанавливаем размер шрифта 16

v.fontsize(16);

//указываем заголовок

v.insert('Список студентов');

//переход на новую строку

v.insert(#13#10);

//счетчик символов, которые необходимо затабулировать

count:=1;

v.fontsize(14);

//заголовки столбцов разделяем символом табулирования

s:='Код'+chr(9)+'ФИО'+chr(9)+'Форма обучения'+chr(9)+'Группа'+chr(9)+'Прописка'+chr(9)+'Паспорт';

//вставляем полученную строку в документ

v.insert(s);

v.insert(#13#10);

//количество символов заголовка + символ Enter

count:=count+length(s)+1;

with DataModule2 do

begin

//просматриваем всю таблицу

TStydent.First;

while not TStydent.Eof do

begin

//выводим необходимые данные через Tab

s:=TStydentKod_styd.AsString+' '+chr(9)+TStydentFIO.AsString+' '+chr(9)+TStydentForma_ob.AsString+' '+chr(9)+TStydentNazvanie_gr.AsString+' '+chr(9)+TStydentPropiska.AsString+' '+chr(9)+TStydentNom_ser_pasp_st.AsString;

v.insert(s);

v.insert(#13#10);

//накапливаем счётчик

count:=count+length(s)+1;

TStydent.Next;

end;

end;

//т.к. начальное значение было 1, уменьшаем счетчик

dec(count);

//выделяем текст для табулирования

v.setselrange(17,count+17);

//переводим текст в таблицу

v.texttotable;

v.borderinside;

v.borderoutside;

//переходим на начало документа

v.startofdocument;

//сохраняем файл

v.filesaveas('Spisok.doc');

v:=CreateOleObject('Word.application');

//открываем созданный документ

v.Visible:=true;

end;

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

  1. В шаблоне Word'a в нужные места расставляешь Bookmark (Insert-Bookmark).

  2. В программе позиционируем на эту закладку и вставляем необходимые данные.

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

var k,What, Which, Count, Name: OLEVariant;

begin

k:='Stydent.doc';

//открытие выбранного шаблона в Word

WordApplication1.Documents.Add(k,EmptyParam,EmptyParam,EmptyParam);

//переходим к закладке kod

what:=wdGoToBookmark;

Which:=Unassigned;

count:=unassigned;

name:='kod';

WordApplication1.Selection.GoTo_(What,which,count,name);

//на место закладки помещаем данные из БД

WordApplication1.Selection.TypeText(DataModule2.TStydentKod_styd.AsString);

//переходим к закладке stydent

what:=wdGoToBookmark;

Which:=Unassigned;

count:=unassigned;

name:='stydent';

WordApplication1.Selection.GoTo_(What,which,count,name);

//на место закладки помещаем данные из БД

WordApplication1.Selection.TypeText(DataModule2.TStydentFIO.AsString);

//переходим к закладке gryppa

what:=wdGoToBookmark;

Which:=Unassigned;

count:=unassigned;

name:='gryppa';

WordApplication1.Selection.GoTo_(What,which,count,name);

//на место закладки помещаем данные из БД

WordApplication1.Selection.TypeText(DataModule2.TStydentNazvanie_gr.AsString);

//переходим к закладке forma_ob

what:=wdGoToBookmark;

Which:=Unassigned;

count:=unassigned;

name:='forma_ob';

WordApplication1.Selection.GoTo_(What,which,count,name);

//на место закладки помещаем данные из БД

WordApplication1.Selection.TypeText(DataModule2.TStydentForma_ob.AsString);

//переходим к закладке propiska

what:=wdGoToBookmark;

Which:=Unassigned;

count:=unassigned;

name:='propiska';

WordApplication1.Selection.GoTo_(What,which,count,name);

//на место закладки помещаем данные из БД

WordApplication1.Selection.TypeText(DataModule2.TStydentPropiska.AsString);

//переходим к закладке pasport

what:=wdGoToBookmark;

Which:=Unassigned;

count:=unassigned;

name:='pasport';

WordApplication1.Selection.GoTo_(What,which,count,name);

//на место закладки помещаем данные из БД

WordApplication1.Selection.TypeText(DataModule2.TStydentNom_ser_pasp_st.AsString);

//открываем документ

WordApplication1.Visible:=true;

end;