17. März 2010 00:01
Item.FINDFIRST;
TemplateName := 'C:\Item.dot';
IF ISCLEAR(wdApp) THEN
  IF NOT CREATE(wdApp, FALSE) THEN
    ERROR('Konnte keine Word-Instanz erstellen!');
IF NOT EXISTS(TemplateName) THEN 
  ERROR('Wordvorlage %1 existiert nicht!', TemplateName); 
wdDoc := wdApp.Documents.Add(TemplateName); 
wdBookMarks := wdDoc.Bookmarks; 
NameBookmark := 'BM01';
IF wdBookMarks.Exists(NameBookmark) THEN BEGIN
  wdBookMark := wdBookMarks.Item(NameBookmark);
  wdRange := wdBookMark.Range;
  wdRange.Text(Item.Description);
  wdRange.Bold(1);
END;
Path := 'C:\' + Item."No.";
wdDoc.SaveAs(Path);
wdApp.Visible(TRUE);
wdApp.ScreenUpdating(TRUE);
wdApp.Activate;
CLEAR(wdDoc);
CLEAR(wdApp);
CLEAR(wdRange);
CLEAR(wdBookMarks);
CLEAR(wdBookMark);
Name   DataType   Subtype   Length
wdApp   Automation   'Microsoft Word 11.0 Object Library'.Application   
wdDoc   Automation   'Microsoft Word 11.0 Object Library'.Document   
wdRange   Automation   'Microsoft Word 11.0 Object Library'.Range   
wdBookMarks   Automation   'Microsoft Word 11.0 Object Library'.Bookmarks   
wdBookMark   Automation   'Microsoft Word 11.0 Object Library'.Bookmark   
Item   Record   Item   
TemplateName   Text      30
NameBookmark   Text      30
Path   Text      30
17. März 2010 00:09
17. März 2010 10:01
Path := 'C:\' + Item."No.";
wdDoc.SaveAs(Path);
17. März 2010 15:13
wdDoc := wdApp.Documents.Add(TemplateName);
...
  repat
    // Erzeuge eine neue Seite auf Basis der Vorlage
  until 
...
Path := 'C:\' + Item."No.";
wdDoc.SaveAs(Path);
17. März 2010 17:38
Deurges hat geschrieben:Ich benötige aber ein Dokument, und für jeden Datensatz eine neue Seite.
19. März 2010 20:17
vsnase hat geschrieben:Deurges hat geschrieben:Ich benötige aber ein Dokument, und für jeden Datensatz eine neue Seite.
Hast Du schon mal nach Seriendruck oder Serienbrief gesucht?
Volker
20. März 2010 15:01
22. März 2010 11:11
vsnase hat geschrieben:Hallo Mike,
kannst Du mal Deinen Brief näher beschreiben? Was soll drin stehen? Von wo kommen die Daten? Wo sind die Bilder? Wie wird der Brief gestartet?
Volker
IF Item.FINDFIRST THEN BEGIN
  i := 0;
  TemplateName := 'C:\Item.dot';
  IF ISCLEAR(wdApp) THEN
    IF NOT CREATE(wdApp, FALSE) THEN
      ERROR('Konnte keine Word-Instanz erstellen!');
  IF NOT EXISTS(TemplateName) THEN
    ERROR('Wordvorlage %1 existiert nicht!', TemplateName);
  REPEAT
    i += 1;
    if i > 1 then
      // Ab dem zweiten Datensatz, erstelle eine neue Seite auf Basis der Vorlage
      ?????
    wdDoc := wdApp.Documents.Add(TemplateName);
    wdBookMarks := wdDoc.Bookmarks;
    NameBookmark := 'BM01';
    IF wdBookMarks.Exists(NameBookmark) THEN BEGIN
      wdBookMark := wdBookMarks.Item(NameBookmark);
      wdRange := wdBookMark.Range;
      wdRange.Text(Item.Description);
      wdRange.Bold(1);
    END;
  UNTIL Item.NEXT = 0;
  Path := 'C:\' + Item."No.";
  wdDoc.SaveAs(Path);
  wdApp.Visible(TRUE);
  wdApp.ScreenUpdating(TRUE);
  wdApp.Activate;
  CLEAR(wdDoc);
  CLEAR(wdApp);
  CLEAR(wdRange);
  CLEAR(wdBookMarks);
  CLEAR(wdBookMark);
END;
23. März 2010 09:24