Eigenprogrammierung Druckcockpit Nachrichten

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

Die Nachrichten, die in der NAST sind, werden über ein Druckprogramm ausgegeben. Die Zuordnung einer Nachrichtenart zum Druckprogramm erfolgt in der Customizingtransaktion NACE. Diese Daten werden in der Tabelle TNAPR gespeichert.

Es kann nun ein Programm geschrieben werden, was für eine Reihe von den Kunden interessierende Nachrichtenarten und Belege die Nachrichten aus der NAST selektiert und in einer ALV-Liste darstellt und nach Selektion der zu verarbeitenden Nachrichten das passende Druckprogramm findet und aufruft und dabei mit den passenden Daten versorgt. In der Regel erfolgt die Datenversorgung über das Füllen der Variablen globalen Tabellenstruktur NAST, die über den Befehl "TABLES: NAST" im Programm bekannt gemacht wurde und so im Druckprogramm abgefragt wird.

Selektionsbildschirm

Hier wird im Selektionsbildschirm nach Lieferungen, Transporten oder Rechnungen vorselektiert.

Druckcockpit1.jpg

ALV-Liste

In der ALV-Liste können Nachrichten selektiert werden zur Verarbeitung (Druck, Fax, E-Mail).

Druckcockpit2.jpg

Nach Klick auf den Button Druckcockpit3.jpg wird die Verarbeitung angestossen.

Druckselektion

Druckcockpit4.jpg

Formularanzeige

Das Formular wird hier auf dem Bildschirm ausgegeben. Da in diesem Beispiel auf eine Vorlage gedruckt wird, sieht das Formular auf dem Bildschirm etwas unschön aus.

Druckcockpit5.jpg

Coding

Selektion der Druckprogramme

 SELECT *
   INTO CORRESPONDING FIELDS OF TABLE pt_tnapr
   FROM tnapr
   WHERE kschl IN pt_kschl.

NAST-Einträge lesen

     SELECT *
       INTO CORRESPONDING FIELDS OF TABLE lt_nast
       FROM nast
       WHERE kappl = gc_v2_versand  "V2 = Versand
         AND objky LIKE lv_objky
         AND kschl IN prt_kschl.

Druck ALV-Liste

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

Aufruf Druckprogramm Nachrichten

Verarbeitung zu druckende Nachrichten im USER_COMMAND der ALV-Liste und Aufruf der ENTRY-Routine des Druckprogramms.

LOOP AT gt_nast ASSIGNING <fs_nast> WHERE selkz = 'X'
   READ TABLE gt_tnapr INTO ls_tnapr
     WITH KEY kschl = ls_drtrdok-kschl
              nacha = gc_1_druck     "(1 = Druck, 2 = Fax, 5 = Mail)
              kappl = gv_kappl.      "'V(V2 = Lieferung, V7 = Transport)

   PERFORM (ls_tnapr-ronam) IN PROGRAM (ls_tnapr-pgnam)
      USING    lv_returncode
               lv_screen         "Druckdialog
      IF FOUND. 
ENDLOOP.