Show TOC

HintergrundProgrammgesteuertes Drucken Dieses Dokument in der Navigationsstruktur finden

 

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

Syntax Syntax

  1. NEW-PAGE PRINT ON [NEW-SECTION]
  2.                   [PARAMETERS pripar] 
  3.                   [ARCHIVE PARAMETERS arcpar] 
  4.                   [NO DIALOG].
Ende des Codes

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-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:

  • 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.

Syntax Syntax

  1. REPORT demo_list_new_page_print_on NO STANDARD PAGE HEADING.
  2. DATA: val(1) TYPE c,
  3.       pripar TYPE pri_params,
  4.       arcpar TYPE arc_params,
  5.       lay   TYPE pri_params-paart,
  6.       lines TYPE pri_params-linct,
  7.       rows  TYPE pri_params-linsz.
  8. CALL FUNCTION 'GET_PRINT_PARAMETERS'
  9.      IMPORTING
  10.           out_parameters         = pripar
  11.           out_archive_parameters = arcpar
  12.           valid                  = val
  13.      EXCEPTIONS
  14.           archive_info_not_found = 1
  15.           invalid_print_params   = 2
  16.           invalid_archive_params = 3
  17.           OTHERS                 = 4.
  18. IF val <> space AND sy-subrc = 0.
  19.   SET PF-STATUS 'PRINT'.
  20.   WRITE '   Select a format!'.
  21. ENDIF.
  22. TOP-OF-PAGE DURING LINE-SELECTION.
  23.   WRITE: 'Page', sy-pagno.
  24.   ULINE.
  25. AT USER-COMMAND.
  26.   CASE sy-ucomm.
  27.     WHEN 'PORT'.
  28.       lay = 'X_65_80'.
  29.       lines = 60.
  30.       rows  = 55.
  31.       PERFORM format.
  32.     WHEN 'LAND'.
  33.       lay = 'X_65_132'.
  34.       lines = 60.
  35.       rows  = 110.
  36.       PERFORM format.
  37.   ENDCASE.
  38. FORM format.
  39.   CALL FUNCTION 'GET_PRINT_PARAMETERS'
  40.        EXPORTING
  41.             in_archive_parameters  = arcpar
  42.             in_parameters          = pripar
  43.             layout                 = lay
  44.             line_count             = lines
  45.             line_size              = rows
  46.             no_dialog              = 'X'
  47.        IMPORTING
  48.             out_archive_parameters = arcpar
  49.             out_parameters         = pripar
  50.             valid                  = val
  51.        EXCEPTIONS
  52.             archive_info_not_found = 1
  53.             invalid_print_params   = 2
  54.             invalid_archive_params = 3
  55.             OTHERS                 = 4.
  56.   IF val <> space AND sy-subrc = 0.
  57.     PERFORM list.
  58.   ENDIF.
  59. ENDFORM.
  60. FORM list.
  61.   NEW-PAGE PRINT ON
  62.     NEW-SECTION
  63.     PARAMETERS pripar
  64.     ARCHIVE PARAMETERS arcpar
  65.     NO DIALOG.
  66.   DO 440 TIMES.
  67.     WRITE (3) sy-index.
  68.   ENDDO.
  69.   NEW-PAGE PRINT OFF.
  70. ENDFORM.
Ende des Codes

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:

Die Abbildung wird im Begleittext erläutert.

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:

Die Abbildung wird im Begleittext erläutert.

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

Die Abbildung wird im Begleittext erläutert.