![]() |
|
|
#1
|
|||
|
|||
![]() Здравствуйте. Очень нужна ваша помощь. Мне нужно создать программу, которая будет работать с документом программы Word. Цель программы такая: в документе имеется несколько надписей(полей). В эти поля нужно переносить данные из edit'ов в программе. Заранее спасибо
|
#2
|
|||
|
|||
![]() Подключаешься к ворду через OLE, открываешь документ и вперед.
Для позиционирования удоюно пользоваться закладками (bookmarks). |
#3
|
|||
|
|||
![]() а я не умею. код подскажите пожалста
|
#4
|
|||
|
|||
![]() Учись. Всю жизнь за тебя никто работать не будет.
Код:
var WordObj: Variant; WordDoc: Variant; begin try WordObj := GetActiveOleObject('Word.Application'); except try WordObj := CreateOleObject('Word.Application'); except on E: Exception do begin MessageDlg('Ошибка открытия MS Word.'#13#10 + E.Message, mtError, [mbOk], 0); Exit; end; end; end; try try WordDoc := WordApp.Documents.Add(AFileName, false, true); if WordApp.Visible then for I := 1 to WordDoc.Windows.Count do WordDoc.Windows.Item(I).WindowState := wdWindowStateMinimize; for I := 0 to OracleDataModule.oqGetRepData.Fields.Count - 1 do try WordDoc.ActiveWindow.Selection.goto(What := -1, Name := OracleDataModule.oqGetRepData.Fields[i].FieldName); WordDoc.ActiveWindow.Selection.TypeText(Buf); except Continue; end; // Сохранить документ с новым именем with OracleDataModule.oqMain do if MakeRepFolder(FieldByName('First_Name').AsString, FieldByName('Middle_Name').AsString, FieldByName('Last_Name').AsString, FieldByName('R_UID').AsString, Dir) then try NewFileName := ChangeFileExt(IncludeTrailingPathDelimiter(Dir) + ExtractFileName(AFileName), '.doc'); WordApp.ActiveDocument.SaveAs(NewFileName); except on E: Exception do MessageDlg('Ошибка сохранения анкеты.'#13#10 + E.Message, mtError, [mbOK], 0); end; // Показать Word if FWorkPlaceOptions.PrintPreview then else WordDoc.PrintOut; Application.ProcessMessages; finally WordDoc := Unassigned; end; except on E: Exception do MessageDlg('Ошибка печати документа.'#13#10 + E.message, mtError, [mbOk], 0); end; end; Надергал кода из проекта. Напрямую работать, конечно, не будет, но понять что-то можно. |