Zu diesem Dokument gehören auch:
Eingabe-Dynpro für Tabelleneinträge
Fortsetzung Eingabe-Dynpro mit Sperrverwaltung
Dynprofelder als Druck ausgeben
Nun soll das im Artikel “Dynprofelder als Druck ausgeben” beschriebene Formular aufgerufen werden.
Als erstes sollten wir den Druckbutton in der Symbolleiste aktivieren und mit einem Funktionscode belegen. Hier werden wir einfach (im GUI-Status D902 unseres Beispiels) den Code “PRINT” eintragen. Dies bewirkt bereits die Aktivierung in der Symbolleiste.
Im PAI-Module “USER_COMMAND_0902” wird dieser Code ausgewertet und in ein Unterprogramm verzweigt.
Das Formular aus Smartforms wird aufgerufen wie ein Funktionsbaustein. Der Name des Formulares ist bekannt aber wie kommt man an die Bezeichnung des Funktionsbausteins? Dazu gibt es einen weiteren Funktionsbaustein, dieser bekommt als Einagbeparameter den Formularnamen mitgegeben und man erhält dafür den Namen des Funktionsbausteins des Formulars.
FORM P_PRINT . * Aufruf des Formulars * holen des Namen des generierten FB zum Formular und lesen der Parameterdefinitionen
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING FORMNAME = 'ZINVEST_EINZ' * VARIANT = ' ' * DIRECT_CALL = ' ' IMPORTING FM_NAME = FM_NAME EXCEPTIONS NO_FORM = 1 NO_FUNCTION_MODULE = 2 OTHERS = 3. IF SY-SUBRC 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF.
Hier folgt nun der eigentliche Aufruf des Formulars
CALL FUNCTION FM_NAME EXPORTING * ARCHIVE_INDEX = * ARCHIVE_INDEX_TAB = * ARCHIVE_PARAMETERS = * CONTROL_PARAMETERS = * MAIL_APPL_OBJ = * MAIL_RECIPIENT = * MAIL_SENDER = * OUTPUT_OPTIONS = * USER_SETTINGS = 'X' INVEST_PLAN = ZMM_INVEST_PLAN KSTXT = KSTXT HERST = HERST EKTXT = EKTXT * IMPORTING * DOCUMENT_OUTPUT_INFO = * JOB_OUTPUT_INFO = * JOB_OUTPUT_OPTIONS = * EXCEPTIONS * FORMATTING_ERROR = 1 * INTERNAL_ERROR = 2 * SEND_ERROR = 3 * USER_CANCELED = 4 * OTHERS = 5 . IF SY-SUBRC 0. * Implement suitable error handling here ENDIF. ENDFORM. " P_PRINT
So, das war’s auch schon mit dem Aufruf.