Irgendwie komme ich nicht drauf:

Ich möchte mehrere Seiten ausdrucken mit jeweils wechselnden Daten eines 
RecordSet.

Mit OpenPrinterDialog kann ich auch einen anderen als den Standard-Drucker 
auswählen und bekomme das Graphics-Objekt, in das ich drucken kann. OK.

Nun habe ich den Vorgang in 2 Routinen aufgeteilt, in der ersten wird das 
RecordSet durchlaufen und für jeden Datensatz die eigentliche Druck-Routine 
aufgerufen.

Damit nicht immer ein leeres Blatt nachgeschoben wird, wird für den letzten 
Datensatz NextPage nicht aufgerufen.

 

Aber der Fehler scheint woanders zu liegen: Der letzte Ausdruck kommt immer 
erst, wenn das Fenster, in dem R02_AusdruckSteuern liegt, geschlossen wird.

Was übersehe ich?

 

besten Dank für Rat und Hilfe, Christian Hahn.

 

'-----------------------------------------------------------------

Sub R02_AusdruckSteuern

 

  PrinterGrafikObjekt = OpenPrinterDialog()

   

    RSAusdruck.MoveFirst

    for i = 1 to RSAusdruck.RecordCount

        R03_BildAusdrucken PrinterGrafikObjekt

 

        if i < RSAusdruck.RecordCount then

           ReportFenster.R03_BildAusdrucken PrinterGrafikObjekt, True

        else

           ReportFenster.R03_BildAusdrucken PrinterGrafikObjekt, False

        end if

 

        RSAusdruck.MoveNext

    next

 

Sub End

'-----------------------------------------------------------------

Sub R03_Ausdrucken (PrinterGrafikObjekt As Graphics, NextPage as Boolean)

 

  Dim p as PrinterSetup

  p = New PrinterSetup

  

  if PrinterGrafikObjekt <> nil then

   

      PrinterGrafikObjekt.DrawPicture

      PrinterGrafikObjekt.DrawString

      ...

 

      if NextPage = true then

         PrinterGrafikObjekt.NextPage

      end if

 

  end if

 

End Sub

Antwort per Email an