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]
                  [<params> | PARAMETERS <pripar>]
                  [ARCHIVE PARAMETERS <arcpar>]
                  [NO DIALOG].

Diese Anweisung bewirkt, daß 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-SECTION nicht 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-SECTION verwendet wird, gibt zwei Möglichkeiten:

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:

In verschiedenen Zusätzen <params> können Sie die Druckparameter einzeln angeben (z.B. DESTINATION <dest>). Diese Zusätze sind in der Schlüsselwortdokumentation beschrieben. Über den Zusatz NO DIALOG steuern Sie, ob das System das Druckparameter-Dialogfenster anzeigt oder nicht. Diese Art der Druckparameterfestlegung hat Nachteile, denn das System prüft nicht, ob die angegebenen Druckparameter vollständig sind. Wenn Sie die Druckparameter unvollständig festlegen, kann dies nur durch Verwendung des Druckparameter-Dialogfensters abgefangen werden. Dies ist aber beispielsweise nicht für Hintergrund-Jobs möglich. Bei unvollständigen Druckparametern und dem Zusatz NO DIALOG sendet das System beim Syntax-Check zwar eine Warnung, bricht aber nicht ab. Dies kann zu unvorhergesehenen Ergebnissen bei der Ausführung des Programms führen.

SAP empfiehlt daher die Zusätze <params> nicht zu verwenden. Verwenden Sie immer den Zusatz PARAMETERS und gegebenenfalls bei Archivierung den Zusatz ARCHIVE PARAMETERS. Die entsprechenden Argumente <pripar> und <arcpar> erstellen Sie mit den Exportparametern des Funktionsbausteins GET_PRINT_PARAMETERS. Nur so ist es gewährleistet, daß die Druckparameter vollständig gesetzt werden und daß 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 Abschluß 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, daß 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 duch 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