Anfang des InhaltsbereichsHintergrunddokumentation Implementierungsprogramm für ein virtuelles Attribut Dokument im Navigationsbaum lokalisieren

Die Erweiterungen im Implementierungsprogramm für ein virtuelles Attribut finden Sie zwischen den Makrobefehlen GET_TABLE_PROPERTY und END_PROPERTY

Sie müssen programmieren, wie der Wert des virtuellen Attributes zur Laufzeit entsteht. Der ermittelte oder errechnete Wert wird unter seiner Attributkennung im Container CONTAINER gespeichert. Verwenden sie dazu bei einzeiligen Attributen den Makrobefehl SWC_SET_ELEMENT bzw. bei mehrzeiligen Attributen den Makrobefehl SWC_SET_TABLE .

* Zugriff auf virtuelles Attribut
************************************************************
GET_PROPERTY Attribut CHANGING CONTAINER.
...
   SWC_SET_ELEMENT CONTAINER <Attribut> <Wert>.
END_PROPERTY.

Achtung

Der Quelltext wird als Vorschlag aus den Angaben, die Sie bei der Objekttypdefinition gemacht haben, automatisch erzeugt. Sie müssen bei der Implementierung von virtuellen Attributen den Quelltext bearbeiten.

Virtuelles Attribut als Objektreferenz und mehrzeiliges virtuelles Attribut

Virtuelle Attribute sind insbesondere in folgenden Fällen von Bedeutung:

Bauen Sie im Implementierungsprogramm den Schlüssel des referenzierten Objektes auf, erzeugen Sie eine Objektreferenz und geben Sie diese an den Aufrufer zurück.

Beispiel

Implementierung des virtuellen, mehrzeiligen Attributes Items ( Verkaufsbelegpositionen) beim Objekttyp VBAK ( Verkaufsbeleg).

Das Schlüsselfeld des Objekttyps VBAK ist SalesDocument ( Verkaufsbeleg). Dieses Schlüsselfeld referenziert das Feld VBAK-VBELN .

Das Attribut Items liefert eine mehrzeilige Referenz auf ein Objekt vom Typ VBAP ( Verkaufsbelegposition) zurück. Die Schlüsselfelder des Objekttyps VBAP sind SalesDocumentNo ( Verkaufsbeleg) und ItemNo ( Verkaufsbelegposition). Diese Schlüsselfelder referenzieren die Felder VBAP-VBELN (bzw. VBAK-VBELN ) und VBAP-POSNR .

Das System hat die Tabelle Object-Items im Datendeklarationsteil automatisch hinzugefügt.

Definieren Sie im Implementierungsprogramm, aus welchen Informationen sich diese mehrzeilige Objektreferenz zur Laufzeit aufbaut und wie sie in den Container eingetragen wird.

Mit dem Makrobefehl SWC_CREATE_OBJECT wird aus Objekttyp und zusammengesetztem Objektschlüssel eine Objektreferenz aufgebaut und diese Objektreferenz der mit SWC_OBJECT deklarierten Variable zugewiesen:

* virtuelles, mehrzeiliges Attribut Items
GET_PROPERTY ITEMS CHANGING CONTAINER.
* Datendeklarationen
***********************************************************
DATA ITEM TYPE SWC_OBJECT.
DATA:
  BEGIN OF VBAP_KEY,
    VBELN LIKE VBAP-VBELN,
    POSNR LIKE VBAP-POSNR,
  END OF VBAP_KEY.
DATA BEGIN OF VBAP_TAB OCCURS 0.
  INCLUDE STRUCTURE VBAP.
DATA END OF VBAP_TAB.
* Datenselektion
***********************************************************
  IF OBJECT-ITEMS IS INITIAL.
    SELECT * FROM VBAP INTO TABLE VBAP_TAB
      WHERE VBELN = OBJECT-KEY-SALESDOCUMENT.
    IF SY-SUBRC NE 0.
      EXIT.
    ENDIF.
    VBAP_KEY-VBELN = OBJECT-KEY-SALESDOCUMENT.
    LOOP AT VBAP_TAB.
      VBAP_KEY-POSNR = VBAP_TAB-POSNR.
* Erzeugen einer Objektreferenz aus Objekttyp und Objektschlüssel
************************************************************
      SWC_CREATE_OBJECT ITEM 'VBAP' VBAP_KEY.
      APPEND ITEM TO OBJECT-ITEMS.
    ENDLOOP.
  ENDIF.
* Zuweisung der Objektreferenz an Containerelement
************************************************************
  SWC_SET_TABLE CONTAINER 'Items' OBJECT-ITEMS.
END_PROPERTY.

Ende des Inhaltsbereichs