Ansicht
Dokumentation

C1H0_SUB_SHOW_SUBLIST_OKCODE - EHS: User-Exit-Funktion zur Ok-Code-Verarbeitung nach der Listen-Anz.

C1H0_SUB_SHOW_SUBLIST_OKCODE - EHS: User-Exit-Funktion zur Ok-Code-Verarbeitung nach der Listen-Anz.

SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Dieser Baustein dient als User-Exit zur Ok-Code-Verarbeitung für das Anzeigen von Listen mit dem Baustein C14T_LISTTOOL_CALL.
Mit den Feldleisten I/E_SELFIELD kann man den momentanen Zustand der Liste erfragen/bearbeiten. Dabei sind folgende Komponenten von Bedeutung:
TABNAME - Cursorposition: Name der Tabelle
('X_MASTERTAB' - Mastertabelle,
'X_SLAVETAB' - Slavetabelle)
TABINDEX - Cursorposition: Index der Tabelle
SEL_TAB_FIELD - Cursorposition: Name des Feldes
VALUE - Cursorposition: Wert des Feldes
REFRESH - Kennz.: die Liste soll gemäß dem Inhalt der
Datentabellen neu aufgebaut werden
EXIT - Kennz.: die Verarbeitung der Liste soll beendet
werden

Beispiel

-

Hinweise

Innerhalb dieses Bausteines können die der Funktion C14T_LISTTOOL_CALL übergebenen Datentabellen (mit dem Listen-Inhalt) verarbeitet werden. Ist E_SELFIELD-REFRESH = 'X' , so werden Änderungen an den Tabellen in der Liste sichtbar. Enthält die Liste Checkboxes, so kann man nun anhand der Tabellen herausfinden, welche Zeilen der Liste angekreuzt wurden.
Der Funktionsbaustein C14T_USER_COMMAND dient als Kopier-Vorlage für einen User-Exit zur Ok-Code-Verarbeitung.
Mit Hilfe des Bausteines C14T_MARK_ON_DOUBLECLICK kann auf einfache Weise die Funktionalität 'Markieren bei Doppelklick' in die Ok-Code-Verarbeitung mit eingebunden werden. (Man betrachte dazu die Dokumentation dieses Bausteines.)
Mit dem Baustein C14T_LAYOUT_GET kann man sich Informationen zum Layout der aktuell angezeigten Liste beschaffen.

Achtung: Ist E_UCOMM <> I_UCOMM, so kehrt das Listtool nicht sofort zur Anzeige der Liste zurück, sondern der User-Exit-Baustein wird ein zweites Mal gerufen.

Achtung: Springt man aus der User-Command-Funktion in andere Dialoge, so kann es zu Problemen beim Status-Setzen kommen, wenn der Status dieser Dialoge nicht im PBO gesetzt wird.

Eine besondere Bedeutung hat der Ok-Code IC_OKVALUE-LIST_REFRESH im Include CBUI01. Setzt man

E_UCOMM = IC_OKVALUE-LIST_REFRESH. ,

so wird die Liste implizit (via SELFIELD-EXIT = 'X') verlassen und die Logik des Bausteines C14T_LISTTOOL_CALL noch einmal komplett durchlaufen.

Ist E_SELFIELD-REFRESH = SPACE, so wird der Status der Liste nicht neu gesetzt!

Weiterführende Informationen

siehe Funktionsbaustein K_KKB_HIER_SEQU_LIST_DISPLAY und REUSE_ALV_HIERSEQ_LIST_DISPLAY (ab Rel. 4.0).

wichtige Mitteilungen der Basis:

Rel. >=4.0a: Betr. Hier.sequ.-Listen

Erstellt...... @0 Falko S. am 09.05.1998 14:02:53
Geändert...... @0 Falko S. am 11.05.1998 15:48:36


Wichtige Hinweise für die Programmierung von hier.-sequentiellen Listen
(REUSE_ALV_HIERSEQ_LIST_DISPLAY):

o Die Itemtabelle wird vom ALV IMMER sortiert
Grund: Performanter Zugriff auf die zu einem Kopf gehörenden
Positionen kann nur über einen READ BINARY SEARCH erfolgen,
der eine nach Köpfen aufsteigend sortierte Positionstabelle
voraussetzt.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!! Die Item-Tabelle darf nach Übergabe an den ALV zu KEINEM !!!
!!!! Callback-Zeitpunkt durch den Aufrufer umsortiert werden !!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

o Wie wird die Item-Tabelle durch den ALV sortiert?

SORT t_outtab_item by
1) Schlüsselfelder des Kopfes (ASCENDING)
(KEYINFO-ITEM0x, für die es einen KEYINFO-HEADE0x Eintrag gibt)

2) Sortierkriterien für Positionsfelder aus der IT_SORT
(ASCENDING oder DESCENDING gem. Angabe in IT_SORT)
(sofern mitgegeben)

3) Restliche Schlüsselfelder der Position (ASCENDING)
(KEYINFO-ITEM0y, für die es KEINEN KEYINFO-HEADER0y Eintrag gibt,
um einen stabilen Sort zu erreichen)

==> über 2) und/oder 3) kann der Aufrufer somit die Sortierreihen-
folge der Positionseinträge steuern.
Die Positionstabelle schon entsprechend sortiert zu übergeben,
ist NICHT ausreichend!

o Die Sortierung bei hier.sequ.Listen ist somit immer binär.
Eine Sortierung AS TEXT (schauplatzgerecht) ist nicht möglich.

o Was tun, wenn der Schlüssel des Kopfes oder der Position mehr als
5 Keyfelder aufweist?

Einführung eines Künstlichen Schlüsselfeldes.

Beispiel:

Kopftabelle OUTTAB_ORIGINAL:

Key: x x x x x x
Feld: FLD_A FLD_B FLD_C FLD_D FLD_E FLD F FLD_G FLD_H
A A A A A A 10 20
A A A A A B 11 21
...
B A A A A A 54 89
...

Positionstabelle OUTTAB_ITEM_ORIGINAL:

Key: x x x x x x x
Feld: FLD_A FLD_B FLD_C FLD_D FLD_E FLD F FLD_X FLD_Y
A A A A A A A 30
A A A A A A B 31
A A A A A B A 32
...
B A A A A A A 50
B A A A A A B 50

==> Kopf: KEYINFO-HEADER06 existiert nicht in Struktur IS_KEYINFO
Neues Schlüsselfeld KEY einführen
KEYINFO-HEADER01 = 'KEY'
==> Position: Neuen Fremdschlüssel KEY übernehmen
KEYINFO-ITEM01 = 'KEY'
KEYINFO-ITEM02 = 'FLD_X'


Kopftabelle OUTTAB mit neuem Schlüsselfeld:
Key: x
Feld: KEY FLD_A FLD_B FLD_C FLD_D FLD_E FLD F FLD_G FLD_H
001 A A A A A A 10 20
002 A A A A A B 11 21
...
008 B A A A A A 54 89
...
==> KEYINFO-HEADER01 = 'KEY'

Positionstabelle OUTTAB_ITEM mit neuem Fremdschlüssel:

Key: x x
Feld: KEY FLD_A FLD_B FLD_C FLD_D FLD_E FLD F FLD_X FLD_Y

001 A A A A A A A 30
001 A A A A A A B 31
002 A A A A A B A 32
...
008 B A A A A A A 50
008 B A A A A A B 50
...

==> KEYINFO-ITEM01 = 'KEY'
KEYINFO-ITEM02 = 'FLD_X'





Parameter

E_SELFIELD
E_UCOMM
I_OBJTYPE
I_SELFIELD
I_UCOMM
X_TAB

Ausnahmen

ERROR

Funktionsgruppe

C1H0

TXBHW - Original Tax Base Amount in Local Currency   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 8055 Date: 20240523 Time: 105643     sap01-206 ( 68 ms )