Hallo,
Ich habe in einer Listbox mehrere Adressen die ich für einen Brief brauche.
Wie ich eine Adresse in einen Word Dokument bekomme hab ich schon hin bekommen mit:
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: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80:
| procedure TForm2.Button1Click(Sender: TObject); var Word: OLEVariant;
begin try Word := CreateOleObject('Word.Application'); except ShowMessage('Word kann nicht geöffnet werden!'); Exit; end; Word.Visible := True; Word.Documents.Add; if Word.ActiveWindow.View.SplitSpecial <> 0 then Word.ActiveWindow.Panes[2].Close; if (Word.ActiveWindow.ActivePane.View.type = 1) or (Word.ActiveWindow.ActivePane.View.type = 2) or (Word.ActiveWindow.ActivePane.View.type = 5) then Word.ActiveWindow.ActivePane.View.type := 3; Word.ActiveWindow.ActivePane.View.SeekView := 9;
Word.Selection.Font.Name := 'Times New Roman'; Word.Selection.Font.Size := 12; Word.Selection.Font.Bold := True; Word.Selection.ParagraphFormat.Alignment := 2; Word.Selection.TypeText(FormatDateTime('dd.mm.yyyy', Now)); Word.Selection.TypeParagraph; Word.Selection.TypeParagraph; Word.Selection.TypeParagraph; Word.Selection.TypeParagraph; Word.Selection.TypeParagraph; Word.Selection.TypeParagraph; Word.Selection.Font.Name := 'Times New Roman'; Word.Selection.Font.Size := 12; Word.Selection.Font.Bold := True;
if Word.Selection.HeaderFooter.IsHeader = True then Word.ActiveWindow.ActivePane.View.SeekView := 10 else Word.ActiveWindow.ActivePane.View.SeekView := 9;
Word.ActiveWindow.ActivePane.View.SeekView := 0; Word.Selection.Font.Name := 'Times New Roman'; Word.Selection.Font.Size := 12; Word.Selection.Font.Bold := true; Word.Selection.TypeText(Text := Edit3.Text + ' ' + edit2.Text); Word.Selection.TypeParagraph; Word.Selection.TypeText(Text := edit4.Text); Word.Selection.TypeParagraph;
Word.Selection.Font.Name := 'Times New Roman'; Word.Selection.Font.Size := 12; Word.Selection.Font.Bold := true;
Word.Selection.TypeText(Text := edit5.Text ); Word.Selection.TypeParagraph; Word.Selection.TypeText(Text := edit6.Text); Word.Selection.TypeParagraph; Word.Selection.TypeParagraph; Word.Selection.TypeParagraph; Word.Selection.TypeParagraph; Word.Selection.Font.Name := 'Arial'; Word.Selection.Font.Size := 14; Word.Selection.Font.Bold := True; Word.Selection.TypeText(Text := Combobox1.Text); Word.Selection.TypeParagraph; Word.Selection.TypeParagraph; Word.Selection.TypeParagraph; Word.Selection.Font.Name := 'Times New Roman'; Word.Selection.Font.Size := 12; Word.Selection.Font.Bold := True; if radiogroup1.ItemIndex = 0 then Word.Selection.TypeText(Text := 'Sehr geehrter Herr ' + edit2.Text+','+#13#10+#13#10) else Word.Selection.TypeText(Text := 'Sehr geehrte Frau ' + edit2.Text+','+#13#10+#13#10) end; |
Allerdings hab ich ca. 100 Adressen in der Listbox und eine Briefvorlage.
Klickt man nun den Button Serienbrief an sollte man die Briefvorlage wählen können und der Brief wird in Hintergrund mit der Ersten Adresse geöffnet, gedruckt und Geschlossen und dann das gleiche mit der nächsten Adresse. Das sollte mit allen Markierten Adressen von der Listbox geschehen.
Oder wenn der erste Vorschlag nicht geht dann sollten alle Markierten Adressen Seperat in der Briefvorlage geöffnet werden.
Beispiel Lösung 1:
Ich habe 30Adressen Markiert und nun klicke ich auf Serienbrief.
Delphi öffnet nun den OpenDialog um die Briefvorlage zu wählen.
Nun wird die Briefvorlage in Hintergrund geöffnet, Adresse reingeladen, Brief gedruckt und wieder geschlossen und das mit 30 Verschiedenen Adressen.
Beispiel Lösung 2:
Wieder sind 30Adressen markiert.
Delphi Öffnet wieder den OpenDialog um die Briefvorlage zu wählen.
Nun wird die Briefvorlage 30Mal geöffnet und in jeden Dokument ist einer der 30Markierten Adressen drin.
Kann mir von euch wer weiter helfen?
lg