AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Serienbrief einzeln speichern mit individuellem Dateinamen
Thema durchsuchen
Ansicht
Themen-Optionen

Serienbrief einzeln speichern mit individuellem Dateinamen

Ein Thema von H.Mathias · begonnen am 24. Feb 2010 · letzter Beitrag vom 24. Feb 2010
Antwort Antwort
Seite 1 von 2  1 2      
H.Mathias

Registriert seit: 24. Feb 2010
6 Beiträge
 
#1

Serienbrief einzeln speichern mit individuellem Dateinamen

  Alt 24. Feb 2010, 06:17
Hallo zusammen.

Ich möchte mit Delphi ein Seriendruckdokument in einzelne Seiten abspeichern. Dabei möchte ich die Dateinamen der einzelnen Dokumente nach dem Datenfeld "NAME" bennennen. Hier liegt mein Problem. Ich weiß nicht, wie ich an den Inhalt des jeweils aktiven Records komme um in als String und später als Dateiname zu verwenden.

Hat jemand eine Idee?

Danke.

Gruss Mathias
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.292 Beiträge
 
Delphi 12 Athens
 
#2

Re: Serienbrief einzeln speichern mit individuellem Dateinam

  Alt 24. Feb 2010, 07:51
Hallo und willkommen in der DP

Deine Informationen sind etwas dürftig...

- was ist das für ein Dokument ?
- wo holst du die Daten her ?
- ein klein wenig Quelltext ?

  Mit Zitat antworten Zitat
H.Mathias

Registriert seit: 24. Feb 2010
6 Beiträge
 
#3

Re: Serienbrief einzeln speichern mit individuellem Dateinam

  Alt 24. Feb 2010, 09:08
Hallo und danke für das Willkommen!

Ich habe eine Word-Datei, die auf eine Excel-Datei als Datenquelle zugreift. In der Excel-Datei sind Daten Name, Adresse, Email hinterlegt. Nun möchte ich einen Seriendruck starten, allerdings jedes Dokument einzeln abspeichern.
Momentan speicher ist die Dateien als Nummern (1..n) ab, würde aber gern einen eindeutigen Bezeichner nutzen.

Delphi-Quellcode:
WordDocument1.MailMerge.DataSource.ActiveRecord := wdLastRecord;
Amount := WordDocument1.MailMerge.DataSource.ActiveRecord;
//
for i:= 1 to Amount do begin
newfile:=Inttostr(i)+'.doc';
WordDocument1.MailMerge.DataSource.ActiveRecord := i;
WordDocument1.SaveAs(newFile);
In VBA-Foren habe ich gelesen, dass man die Funktion: "MailMerge.DataFields" nutzen kann, quasi:
newfile:=WordDocument1.MailMerge.DataSource.DataFields('NAME').Value; allerdings funktioniert das nicht:/ Was mache ich falsch?

Gruss Mathias
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Serienbrief einzeln speichern mit individuellem Dateinam

  Alt 24. Feb 2010, 10:00
Hallo Mathias,

was funktioniert denn da nicht?
Auf den ersten Blick sieht das doch ganz gut aus?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
H.Mathias

Registriert seit: 24. Feb 2010
6 Beiträge
 
#5

Re: Serienbrief einzeln speichern mit individuellem Dateinam

  Alt 24. Feb 2010, 11:35
Hallo!

Delphi-Quellcode:
var newfile:String
...
newfile:=WordDocument1.MailMerge.DataSource.DataFields('NAME').Value;
Oben genanntes Konstrukt lässt sich nicht kompilieren, es kommt die Fehlermeldung:
"Missing Operator or semicolon" und der Cursor spring direkt hinter .DataFields.

Wie würde man denn den Inhalt eines Datenfeldes eines Serienbrief auslesen?

Mfg
Mathias
  Mit Zitat antworten Zitat
schlecki

Registriert seit: 11. Apr 2005
Ort: Darmstadt
148 Beiträge
 
Delphi XE2 Enterprise
 
#6

Re: Serienbrief einzeln speichern mit individuellem Dateinam

  Alt 24. Feb 2010, 11:39
Hallo,

probier mal:

Delphi-Quellcode:
var newfile:String
...
newfile := WordDocument1.MailMerge.DataSource.DataFields['NAME'].Value;
Allerdings nur mal so fix geschossen
  Mit Zitat antworten Zitat
H.Mathias

Registriert seit: 24. Feb 2010
6 Beiträge
 
#7

Re: Serienbrief einzeln speichern mit individuellem Dateinam

  Alt 24. Feb 2010, 11:51
Hallo,

Zitat:
newfile := WordDocument1.MailMerge.DataSource.DataFields['NAME'].Value;
Da kommt die Fehlermeldung:
"Class does not have a default property" und der Cursor spring wieder hinter .DataFields.

Gruss Mathias
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#8

Re: Serienbrief einzeln speichern mit individuellem Dateinam

  Alt 24. Feb 2010, 12:00
Zitat von H.Mathias:
Hallo!

Delphi-Quellcode:
var newfile:String
...
newfile:=WordDocument1.MailMerge.DataSource.DataFields('NAME').Value;
hallo

probiers mal mit

WordDocument1.MailMerge.DataSource.DataFields.Item('Name').Value; das .item ist wichtig, da Du die Serverkpompos verwendest, kannst du Dir leicht mit der Codevervollständigung helfen. Array-Zugriffe laufen meistens iüber die Item-Eigenschaft, es gibt hier keine Default-Eigenschaften.

Gruß Frank

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
H.Mathias

Registriert seit: 24. Feb 2010
6 Beiträge
 
#9

Re: Serienbrief einzeln speichern mit individuellem Dateinam

  Alt 24. Feb 2010, 12:09
Hallo,

newfile:=WordDocument1.MailMerge.DataSource.DataFields.Item('Name').Value; Da kommt die Fehlermeldung:
"Types of actual and formal var parameters must be identical" und der Cursor spring wieder vor .Value.

Muss ich ggf. einen anderen Variablentyp nehmen?

Gruss Mathias
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#10

Re: Serienbrief einzeln speichern mit individuellem Dateinam

  Alt 24. Feb 2010, 12:13
dann versuche

Delphi-Quellcode:
Var newfile:string;
    _name:olevariant;
  ...
  _name:='Name';
  newfile:=WordDocument1.MailMerge.DataSource.DataFields.Item(_name).Value;

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz