Die Erstellung von Formularen ist im allgemeinen von den Vorschriftsarten und den verwendeten Datenstrukturen abhängig. Formulare werden i.d.R. neu erstellt. QPPD stellt Templates für das Formular und die Datenbeschaffung bereit:

Formular: /SCT/QPPD_FORM

Stil: /SCT/QPPD_STANDARD

ABAP-Klasse: /SCT/QP_CL_FORMS.

Das die ABAP-Klasse ermittelt alle Daten und die entsprechende Texte für alle hierarchisch untergeordneten Knoten:

  • Knoten Kopfinformationen

  • Objekttypen und deren Texte

  • Elemente mit konvertierten Werten und deren Kurztext

  • Spalten Elemente mit Werten und deren Kurztext und Überschriften für tabellarische Darstellungen

  • Technische Namen von Einheiten

  • Standard Texte

  • Prüfmerkmale

1. ABAP-Klasse erstellen 

eine Kopie der ABAP-Klasse /SCT/QP_CL_FORMS erstellen: 

Anpassung des Datenstrukturen Datenstrukturen für Namen und Spaltenelementen

Typendefinitionen von TS_FORMS-NAME,  TS_VAL

Methoden: SET_NAMES

Anpassung der Tabellen Zuordnungen und Defaults

METHOD set_default.
" toBe redefined
"excluded object types
ms_default-range_objtyp = VALUE #( sign = 'E' option = 'CP' ( low = 'STATUS' )
( low = 'ADMIN' )
( low = 'BUILDER' )
( low = 'HEADER' )
( low = 'LOG' )
( low = 'FORMS' )
( low = 'HEADER*' ) ).
"Objecttyp link to formualr table
ms_default-object_table = VALUE #( ( objekttyp = 'INSPCHAR' table = 'INSPECTION' )
( objekttyp = 'COLUMNGRID' table = 'XXX' ) ).
"Default table links and spras
ms_default = VALUE #( table_val = 'BASIC'
table_pmk = 'INSPECTION'
table_txt = 'TEXT'
spras = 'E' ).
ENDMETHOD.

Erweiterung der Sprachen als Selektion des Buttons

METHOD /sct/qp_if_forms~get_forms.
DATA lt_forms LIKE mt_forms.
 
IF mt_forms IS INITIAL.
super->/sct/qp_if_forms~get_forms( ).
"add multi language forms Formulare hinzufügen
LOOP AT mt_forms ASSIGNING FIELD-SYMBOL(<form>).
DATA(ls_form) = <form>.
ls_form-spras = 'D'. "German
ls_form-ident = |{ <form>-ident } [de]|.
ls_form-standard = abap_false.
INSERT ls_form INTO TABLE lt_forms.
ls_form-spras = 'E'.                         "English
ls_form-ident = |{ <form>-ident } [en]|.
ls_form-standard = abap_false.
INSERT ls_form INTO TABLE lt_forms.
ENDLOOP.
mt_forms = VALUE #( BASE mt_forms ( LINES OF lt_forms ) ).
SORT mt_forms BY sortnr ident.
ENDIF.
rt_forms = super->/sct/qp_if_forms~get_forms( iv_ident = iv_ident ).
ENDMETHOD.

2. Formular erstellen

eine Kopie des Formulars /SCT/QPPD_FORM erstellen

Formular Schnittelle anpassen

Import Parameter

Type

IS_FORM

ZCL_FORMS=>TS_FORM

Globale Strukturen anpassen

Variable Name

Type

MS_NODE

ZCL_FORMS=>TS_NODE

MS_OBJECT

ZCL_FORMS=>TS_OBJECT

MS_VAL

ZCL_FORMS=>TS_VAL

MS_PMK

ZCL_FORMS=>TS_PMK

MS_TXT

ZCL_FORMS=>TS_TXT