![]() |
|
|
Регистрация | << Правила форума >> | 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. Получилось очень удобно))) спасибо))
|