Hallo Zusammen!!!
Ich habe leider ein Problem mit einer Ole Automation!
Ich möchte gerne Daten aus einem StringGrid in ein Word Dokument übergeben. In diesem Dokument befinden sich allerdings schon ausgefüllte Textformularfelder, die nicht verrückt werden sollen.
Die Tabelle soll nun unter den Textformularfelder eingefügt werden! Bis jetzt verschiebt die Tabelle jedoch die Formularfelder!
Habe hier im Forum etwas über Textmarken und dem Range Befehl gelesen und versuche das nun umzusetzen...leider bekomme ich immer Fehler.....
Weis jemand, wo der Fehler liegt?
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54:
| procedure TForm1.bergabean1Click(Sender: TObject); var iRows, iCols, iGridRows, jGridCols : Integer; BookMarkName, R :OleVariant; begin
word1 := CreateOleObject('Word.Application');
word1.Visible := True;
word1.Documents.Open(FileName := ExtractFilePath(Paramstr(0)) + 'daten_DIN.doc')
word1.ActiveDocument.FormFields.Item('Text1').Result := Edit16.Text; word1.ActiveDocument.FormFields.Item('Text2').Result := Edit14.Text; word1.ActiveDocument.FormFields.Item('Text3').Result := Edit15.Text; word1.ActiveDocument.FormFields.Item('Text4').Result := Edit17.Text; word1.ActiveDocument.FormFields.Item('Text5').Result := Edit18.Text; word1.ActiveDocument.FormFields.Item('Text6').Result := Edit1.Text; word1.ActiveDocument.FormFields.Item('Text7').Result := Edit2.Text; word1.ActiveDocument.FormFields.Item('Text8').Result := Edit3.Text; word1.ActiveDocument.FormFields.Item('Text9').Result := Edit4.Text; word1.ActiveDocument.FormFields.Item('Text10').Result := Edit5.Text; word1.ActiveDocument.FormFields.Item('Text11').Result := Edit6.Text; word1.ActiveDocument.FormFields.Item('Text12').Result := Edit7.Text; word1.ActiveDocument.FormFields.Item('Text13').Result := Edit11.Text; word1.ActiveDocument.FormFields.Item('Text14').Result := Edit19.Text; word1.ActiveDocument.FormFields.Item('Text15').Result := Edit8.Text;
Chart1.CopyToClipboardBitmap;
iCols := StringGrid1.ColCount; iRows := StringGrid1.RowCount;
BookmarkName := 'Messwerte'; if Word1.Bookmarks.Exists(BookmarkName) then begin
R := Word1.Bookmarks.Item(BookmarkName).Range; R.Insert;
WordTable := NewDoc.Tables.Add(Word1.Selection.Range,iRows,iCols);
for iGridRows := 1 to iRows do for jGridCols := 1 to iCols do
WordTable.Cell(iGridRows, jGridCols).Range.Text := StringGrid1.Cells[jGridCols-1, iGridRows - 1];
end; |