Anwendungsbeispiel Klassenattribut
Hier ein sinnvolles Beispiel für ein Klassenattribut, wie es in einem Projekt genutzt wurde.
Selektion Daten
In einer Methode GET_HEADERTEXTE werden aus einer Tabelle DD04T u. a. die Feldlängen zu einer Reihe von Datenelementen in eine itab LT_TEXTE geschrieben.
DATA: lt_texte TYPE TABLE OF dd04t. lv_spras = sy-langu. SELECT * into TABLE lt_texte FROM dd04t WHERE ( rollname = 'AUFTYP' OR "Auftragstyp rollname = 'CRMT_ORDER_NO' OR "Auftrags-ID ... rollname = 'CRMT_ISA_AUC_QUOTE_TYPE' ) "Angebotsart AND ddlanguage = lv_spras.
Schreiben interne Tabelle in Klassenattribut
Diese Tabelle wird nun als Instanzattribut "GT_TEXTE" in die Klasse geschrieben.
me->gt_texte = lt_texte.
Definition Klassenattribut in Klasse
Das Klassenattribut GT_TEXTE wird unter dem Reiter "Attribute" mit der Sichtbarkeit "Private" (da es nur innerhalb der Klasse gelesen wird) definiert.
Lesen Klassenattribut in Methode
In der Methode FILL_HEADERTEXT wird das Klassenattribut GT_TEXTE gelesen. Aus dem Importparameter IV_ROLLNAME und dem Klassenattribut GT_TEXTE wird nun die Feldlänge mittlerer Länge zurückgegeben in den Returningparameter RV_SCRTEXT_M.
Das Klassenattribut kann hier ausgelesen werden mit dem Befehl
me->gt_texte
Aufruf private Methode FILL_HEADERTEXT
Die Methode FILL_HEADERTEXT wird nun aufgerufen mit den jeweiligen Datenelementen, z. B. "AUFTYP". Da in der Methode FILL_HEADERTEXT die Texte aus dem Klassenattribut GT_TEXTE gelesen werden, muss hier nicht die Tabelle übergeben werden.
CALL METHOD me->FILL_HEADERTEXT EXPORTING IV_ROLLNAME = 'AUFTYP' RECEIVING RV_SCRTEXT_M = es_forms_headertext-text_auftyp. CALL METHOD me->FILL_HEADERTEXT EXPORTING IV_ROLLNAME = 'CRMT_ORDER_NO' RECEIVING RV_SCRTEXT_M = es_forms_headertext-text_aufid. ...