![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Здравствуйте! Вопрос такой: Есть DBGrid, связанный с базой MS Access. Задача заключена в том, чтобы при нажатии на определенную строку Грида генерировался отчет Ворд, содержащий все значения из выбраной строки в специально отведенных для этого местах документа)Каким способом это возможно реализовать? Как я понял использование шаблона более надежная и простая схема, тока вот как он подключается, как в нем задать координаты мест для вставки значений и самое главное как правильно указать эти координаты? Надеюсь на вашу помощь)
|
|
#2
|
||||
|
||||
|
Все верно, такая задача обычно реализуется шаблоном. Есть несколько вариантов заполнения такого шаблона, можно создать источник данных и из него вставить поля в нужные позиции документа, а можно просто вставить именованные закладки и просто искать их в шаблоне подставляя нужные значения. Например если в документе есть закладка с именем CompanyName то код будет примерно таким:
Код:
var
TempleateFileName, BookmarkName: String;
WordApp, Document, Range: OleVariant;
i: Integer;
begin
TempleateFileName := 'c:\CompanyInfo.dotx';
try
WordApp := GetActiveOleObject('Word.Application');
except
try
WordApp := CreateOleObject('Word.Application');
except on E: Exception
do begin
ShowMessage('Не удалось запустить Word!'#13#10 + E.Message);
Exit;
end;
end;
end;
try
Screen.Cursor := crHourGlass;
Document := WordApp.Documents.Add(Template := TempleateFileName, NewTemplate := False);
for i := Document.Bookmarks.Count downto 1
do begin
BookmarkName := Document.Bookmarks.Item(i).Name;
Range := Document.Bookmarks.Item(i).Range;
if BookmarkName = 'CompanyName' then Range.Text := 'Рога и Копыта';
end;
WordApp.Visible := True;
finally
WordApp := Unassigned;
Screen.Cursor := crDefault;
end;
end; |
|
#3
|
|||
|
|||
|
Большое спасибо!)) реализовал вставку в документ через закладки Ms Word. Получилось очень удобно))) спасибо))
|