Eigenprogrammierung Druckcockpit Nachrichten
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.
ALV-Liste
In der ALV-Liste können Nachrichten selektiert werden zur Verarbeitung (Druck, Fax, E-Mail).
Nach Klick auf den Button wird die Verarbeitung angestossen.
Druckselektion
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.
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.