Show TOC Anfang des Inhaltsbereichs

Programmgesteuertes Drucken  Dokument im Navigationsbaum lokalisieren

Um das Drucken einer Liste während ihrer Erstellung programmgesteuert zu starten, verwenden Sie die Anweisung NEW-PAGE mit dem Zusatz PRINT ON:

Syntax

NEW-PAGE PRINT ON [NEW-SECTION]
                  [PARAMETERS pripar]
                  [ARCHIVE PARAMETERS arcpar]
                  [NO DIALOG].

Diese Anweisung bewirkt, dass alle nachfolgenden Ausgaben auf einer neuen Seite plaziert werden  und das System interpretiert alle folgenden Ausgabeanweisungen als Druckanweisungen.

Mit dem Zusatz NEW-SECTION setzen Sie die Seitenzählung (Systemfeld sy-pagno) auf 1 zurück. Die übrigen Zusätze dienen zur Festlegung der Druckparameter (siehe unten).

Falls die bis dahin erstellte Liste eine Bildschirmliste ist, wird sie zwischengespeichert. Ab der Anweisung NEW-PAGE PRINT ON erstellt das System die Liste nicht mehr für das Ausgabebild, sondern für das Spool-System.

Falls schon eine Liste für das Spool-System erstellt wird, und der Zusatz NEW-SECTIONnicht verwendet wird, wird kein neuer Spool-Auftrag erzeugt. Die angegebenen Druckparameter gelten erst für den folgenden Spool-Auftrag.

Falls schon eine Liste für das Spool-System erstellt wird, und der Zusatz NEW-SECTIONverwendet wird, gibt zwei Möglichkeiten:

·        Falls die angegebenen Druckparameter mit denen der gerade erstellten Liste übereinstimmen und der Druckparameter PRNEW gleich SPACE ist, wird kein neuer Spool-Auftrag erzeugt.

·        Falls die angegebenen Druckparameter nicht mit denen der gerade erstellten Liste übereinstimmen oder der Druckparameter PRNEW ungleich SPACE ist, wird der aktuelle Spool-Auftrag abgeschlossen und ein neuer Spool-Auftrag erzeugt.

Eine mit NEW-PAGE PRINT ON eingeleiteter Anweisungsblock sollte mit dem Zusatz PRINT OFF der Anweisung NEW-PAGE beendet werden.

Syntax

NEW-PAGE PRINT OFF.

Diese Anweisung erzeugt einen Seitenvorschub und sendet die letzte Seite an das Spool-System.

Wenn die vorhergehende Liste eine Bildschirmliste war, wird sie vom Zwischenspeicher geholt und folgende Ausgabeanweisungen werden wieder in diese gestellt.

Wenn die vorhergehende Liste eine Druckliste war, wird ein neuer Spool-Auftrag erzeugt und folgende Ausgabeanweisungen werden wieder in eine neue Druckliste gestellt. Falls bei NEW-PAGE PRINT ON Druckparameter ohne den Zusatz NEW-SECTION angegeben wurden, gelten diese.

 

Die Anweisungsblöcke NEW-PAGE PRINT ON - NEW-PAGE PRINT OFF dürfen nicht geschachtelt werden und sollten innerhalb eines Verarbeitungblocks beendet werden.

Druckparameter festlegen

Um die Druckparameter für das Drucken der Ausgaben nach der Anweisung NEW- PAGE PRINT ON festzulegen, verwenden Sie folgende Zusätze dieser Anweisung:

Die Druckparameter geben Sie mit dem Zusatz PARAMETERS und gegebenenfalls bei Archivierung dem Zusatz ARCHIVE PARAMETERS an. Die entsprechenden Argumente pripar und arcpar erstellen Sie mit den Exportparametern des Funktionsbausteins GET_PRINT_PARAMETERS. Dieser gewährleistet, dass die Druckparameter vollständig gesetzt werden und dass der Druckauftrag ausführbar ist. Da der Funktionsbaustein GET_PRINT_PARAMETERS über einen eigenen Benutzerdialog verfügt, sollten Sie dann in der Anweisung NEW-PAGE PRINT ON immer den Zusatz NO DIALOG verwenden.

Beispiel

REPORT demo_list_new_page_print_on NO STANDARD PAGE HEADING.

DATA: val(1) TYPE c,
      pripar TYPE pri_params,
      arcpar TYPE arc_params,
      lay   TYPE pri_params-paart,
      lines TYPE pri_params-linct,
      rows  TYPE pri_params-linsz.

CALL FUNCTION 'GET_PRINT_PARAMETERS'
     IMPORTING
          out_parameters         = pripar
          out_archive_parameters = arcpar
          valid                  = val
     EXCEPTIONS
          archive_info_not_found = 1
          invalid_print_params   = 2
          invalid_archive_params = 3
          OTHERS                 = 4.

IF val <> space AND sy-subrc = 0.
  SET PF-STATUS 'PRINT'.
  WRITE '   Select a format!'.
ENDIF.

TOP-OF-PAGE DURING LINE-SELECTION.
  WRITE: 'Page', sy-pagno.
  ULINE.

AT USER-COMMAND.
  CASE sy-ucomm.
    WHEN 'PORT'.
      lay = 'X_65_80'.
      lines = 60.
      rows  = 55.
      PERFORM format.
    WHEN 'LAND'.
      lay = 'X_65_132'.
      lines = 60.
      rows  = 110.
      PERFORM format.
  ENDCASE.

FORM format.
  CALL FUNCTION 'GET_PRINT_PARAMETERS'
       EXPORTING
            in_archive_parameters  = arcpar
            in_parameters          = pripar
            layout                 = lay
            line_count             = lines
            line_size              = rows
            no_dialog              = 'X'
       IMPORTING
            out_archive_parameters = arcpar
            out_parameters         = pripar
            valid                  = val
       EXCEPTIONS
            archive_info_not_found = 1
            invalid_print_params   = 2
            invalid_archive_params = 3
            OTHERS                 = 4.
  IF val <> space AND sy-subrc = 0.
    PERFORM list.
  ENDIF.
ENDFORM.

FORM list.
  NEW-PAGE PRINT ON
    NEW-SECTION
    PARAMETERS pripar
    ARCHIVE PARAMETERS arcpar
    NO DIALOG.
  DO 440 TIMES.
    WRITE (3) sy-index.
  ENDDO.
  NEW-PAGE PRINT OFF.
ENDFORM.

Dieses Programm ruft gleich nach dem Start den Funktionsbaustein GET_PRINT_PARAMETERS auf. Es werden keine Importparameter übergeben. Der Benutzer kann auf dem Druckparameter-Selektionsbild die Druck- und Archivierungsparameter für dieses Programm eingeben. Diese Parameter werden über die Exportparameter an die Feldleisten pripar und arcpar übergeben. Das Führen des Benutzerdialogs über das Dialogfenster und die Abfrage des Rückgabewerts valid garantieren die Vollständigkeit und Konsistenz der Parameter.

Nach dem Abschluss des Dialogs erscheint folgende Grundliste:

Diese Grafik wird im zugehörigen Text erklärt

Im Status PRINT der Grundliste belegen die Funktionscodes PORT und LAND die Funktionstasten F5 und F6, sowie zwei Tasten in der Drucktastenleiste. Wählt der Benutzer eine dieser Funktionen, werden beim Ereignis AT USER-COMMAND den Variablen lay, lines und rows die Werte für ein hochformatiges bzw. querformatiges Ausgabeformat zugewiesen und das Unterprogramm format aufgerufen.

Das Unterprogramm format ruft den Funktionsbaustein GET_PRINT_PARAMETERS auf. Bei diesem Aufruf werden die vorher festgelegten Parameter pripar und arcpar als Importparameter übergeben. Den Importparametern layout, line_count und line_size werden die Werte in lay, lines und rows zugewiesen. Es wird kein Benutzerdialog geführt. Die Parameter werden wieder in die Feldleisten pripar und arcpar zurückgestellt. Der Aufruf bewirkt also, dass die Komponenten PAART, LINCT und LINSZ der Struktur pripar neu gesetzt werden.

Nach der Überprüfung der Vollständigkeit und Konsistenz wird das Unterprogramm list aufgerufen. Diese Unterprogramm sendet eine Liste über NEW-PAGE PRINT ON an das Spool-System, wobei die Druck- und Archivierungsparameter durch pripar und arcpar bestimmt werden. Es ist keine Benutzerdialog nötig, da alle notwendigen Einstellungen durch GET_PRINT_PARAMETERS vorgenommen wurden.

Über System Dienste Druckaufträge, kann der Benutzer sich die abgespeicherten Spool-Aufträge anzeigen lassen. Nach der Auswahl von PORTRAIT sieht der Spool-Auftrag wie folgt aus:

Diese Grafik wird im zugehörigen Text erklärt

Nach der Auswahl von LANDSCAPE sieht der Spool-Auftrag dagegen so aus:

Diese Grafik wird im zugehörigen Text erklärt

 

 

Ende des Inhaltsbereichs