Ansicht
Dokumentation

FCLP_TREE_DISPLAY - Listprozessor (neu)

FCLP_TREE_DISPLAY - Listprozessor (neu)

RFUMSV00 - Advance Return for Tax on Sales/Purchases   CL_GUI_FRONTEND_SERVICES - Frontend Services  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Der Listprozessor ist ein Tool, das Datensätze in aufbereiteter Form dem Benutzer interaktiv zur Verfügung stellt.

Die Darstellung erfolgt hierarchisch, wobei auf jeder Hierarchistufe die darunterliegenden Kennzahlen(=Werte) summiert ausgegeben werden. Durch Doppelklick findet ein Aufriß der darunterliegenden, aufsummierten Kennzahlen statt.

Bisher existieren kompakte und hierarchische Listtypen. Die Verwendung mehrer Listen ist möglich, wobei der Übergang von einer Liste zu einer anderen durch die Branchlist-Tabelle it_blist beschrieben wird.

User-Interface:

Jede Liste, die vom Listprozessor dargestellt werden soll, benötigt eine eindeutige Listnummer und einen Eintrag in der Tabelle ET_LIST, der angibt, ob es sich um eine hierachische oder kompakte Liste handelt.

Dem Listprozessor werden die Datensätze in der Tabelle ET_DATA übergeben. Das erste Feld in ET_DATA dient dem Listprozessor intern als Summationsindex und sollte ein Feld vom Datenelement FC_SUMIND sein (oder ein Feld mindestens gleicher Länge, das nicht verwendet wird).

Dem Listprozessor muß bekanntgegeben werden, welche Felder die Datentabelle ET_DATA enthält, sowie die Feldart dieser Felder (d.h. ob es sich um Merkmale oder Kennzahlen handelt), sowie Zusatzinformationen wie Datenelement und Ausgabelänge.

Über die DDIC-Strukturen E_TAB_STRUCT und E_HLP_STRUCT wird dem Listprozessor mitgeteilt, welche Felder in der Tabelle ET_DATA vorkommen. Typischerweise ist die Tabelle ET_DATA von der Struktur E_TAB_STRUCT oder enthält nur Felder, die in E_TAB_STRUCT oder E_HLP_STRUCT vorkommen. Soll keine DDIC-Struktur für E_DATA verwendet werden, so kann E_TAB_STRUCT initial bleiben. In diesem Fall sind alle Felder, die nicht in E_HLP_STRUCT vorhanden sind, vollständig in CT_FUSED zu spezifizieren. Hiervon wird hinsichtlich der Aufwärtskompatibilität jedoch abgeraten.

Die Tabelle CT_FFIX legt die Überschrift und global wirksame Merkmale fest. Wiederum sollten nur Felder verwendet werden, die in der E_HLP_STRUCT-Struktur vorkommen.

Der Listprozessor unterscheidet zwischen Merkmalen und Kennzahlen. Merkmale(D) spezifizieren den Datensatz, während die Kennzahlen(B) summiert dargestellt werden. Diese Unterscheidung wird in Tabelle CT_FUSED "Fieldtyp" (D/B) vorgenommen. In dieser Tabelle lassen sich auch Überschriften (anstelle derer im DDIC) angeben. Für Wertfelder mit Datentyp (CURR/QUAN) muß, sofern keine Zuordnung im DDic erfolgt, das Feld "REFFIELD" angegeben werden.

Der Listprozessor stellt nur Merkmale dar, die in ET_DISP vorkommen. Die Felder in ET_DISP haben dabei folgende Bedeutung:

  • "DRD" (drill-down) : Schaffen einer neuen Hierarchiestufe
  • "KEY" : Merkmal wird durch Listprozessor angezeigt
  • "TXT" : Text wird zu diesem Merkmal gezeigt
  • "LINENR" : relative Zeile, auf der das Merkmal erscheint

Anzuzeigende Kennzahlen werden über das Feld "FIELDNAME" in der Tabelle ET_KDISP dem Listprozessor bekanntgegeben. Über das Flag "FLG_CQ" wird gesteuert, ob die zugehörige Währung/Mengeneinheit ausgegeben wird. Über die Felder CFrom und CTo kann die Summation eingeschränkt werden.

Werden mehrere Listen verwendet, so muß eine Verbindung zwischen den Listen hergestellt werden. Dies geschieht über die Tabelle ET_BLIST. Im Feld "FIELDNAME" wird angegeben, durch welche Liste(blist) der Datensatz ausgegeben wird. Abhängig vom Wert(Value) dieses Feldes kann zu unterschiedlichen Listen verzweigt werden. Einträge in der Tabelle it_kcorr ermöglichen ein ausgerichtete, bündige Ausgabe von Kennzahlen in unterschiedlichen Listen.

Einbau des Listprozessors in eigene Programme

Der Listprozessor benötigt die Includes FICLPD00 und FICLPF00. In FICLPF00 sind die Form-Routinen zum Füllen der benötigten Tabellen aus FICLPD00 definiert.

Die dem FB übergebene Callback-Formroutine "E_CALL_BACK_USER_COMMAND" wird bei Eintreten eines dem Listprozessor unbekannten Ereignisses aufgerufen.

Beispiel

Folgendes Beispiel demonstriert die Möglichkeiten, die der

Listprozessor bietet.
REPORT ZSTOLP01 .

INCLUDE FICLPD00. "Listprozessor: Datendefinitionen
INCLUDE FICLPF00. "Listprozessor: Formroutinen

TABLES ECMCA.


DATA: PA_RVERS LIKE ECMCA-RVERS VALUE '100',
PA_RYEAR LIKE ECMCA-RYEAR VALUE '1995',
PA_DIMEN LIKE ECMCA-RDIMEN VALUE 'D1',
PA_ITCLG LIKE ECMCA-RITCLG VALUE 'I1'.

DATA: IT_ECMCA LIKE ECMCA OCCURS 0 WITH HEADER LINE,
IT_WORK LIKE ECMCA OCCURS 0 WITH HEADER LINE.

START-OF-SELECTION.

SELECT * FROM ECMCA INTO TABLE IT_ECMCA
WHERE RVERS = PA_RVERS
AND RYEAR = PA_RYEAR
AND RDIMEN = PA_DIMEN
AND RITCLG = PA_ITCLG.

LOOP AT IT_ECMCA.
IT_ECMCA-TSL = 1.
IT_ECMCA-KSL = 100.
MODIFY IT_ECMCA.
ENDLOOP.

* Überschrift füllen
PERFORM LIST_FFIX_FILL USING IT_FFIX[]:
'DIMEN ' PA_DIMEN ' ' 0 ' ' ' ',
'ITCLG ' PA_ITCLG ' ' 0 ' ' ' ',
'RVERS ' PA_RVERS ' ' 0 ' ' ' ',
'RYEAR ' PA_RYEAR ' ' 0 ' ' ' ',
'GCURR ' 'USD' ' ' 0 ' ' ' '.


PERFORM LIST_FUSED_FILL USING IT_FUSED[]:
* fieldname type hfl hfi l scrtext reptxt rollname
'RBUNIT ' 'D' ' ' ' ' 0 ' ' ' ' ' ',
'RITEM ' 'D' ' ' ' ' 0 ' ' ' ' ' ',
'SITYP ' 'D' ' ' ' ' 0 ' ' ' ' ' ',
'SUBIT ' 'D' ' ' ' ' 0 ' ' ' ' ' ',
'RTCUR ' 'D' ' ' ' ' 0 ' ' ' ' ' ',
'TSL ' 'B' ' ' ' ' 0 ' ' ' ' ' ',
'KSL ' 'B' ' ' ' ' 0 ' ' ' ' 'GCURR'. "in FC06TAB


*-Tabelle FDISP füllen - Merkmale:
PERFORM LIST_FDISP_FILL USING IT_FDISP[]:
* drd hry hryname descr key txt lnnr
1 'RBUNIT ' 'X' ' ' ' ' ' ' 'X' 'X' 1 ' ',
1 'RITEM ' 'X' ' ' ' ' ' ' 'X' 'X' 1 ' ',
2 'SITYP ' ' ' ' ' ' ' ' ' 'X' ' ' 1 ' ',
2 'SUBIT ' 'X' ' ' ' ' ' ' 'X' ' ' 1 ' ',
2 'RBUPTR ' ' ' ' ' ' ' ' ' 'X' ' ' 1 ' '.

*-Tabelle KDISP füllen - Kennzahlen (Werte):
* list keyfig linnr cfrom cto flg_cq
PERFORM LIST_KDISP_FILL USING IT_KDISP[]:
1 'TSL ' 1 ' ' ' ' 'X',
2 'KSL ' 1 ' ' ' ' 'X'.

*-Hierarchische Listformen:
PERFORM LIST_LIST_FILL USING IT_LIST[]:
1 FCLP_CON_LISTTYPE-HIER,
2 FCLP_CON_LISTTYPE-COMP.

* Bezug auf Vaterliste einstellen:
PERFORM LIST_BLIST_FILL USING IT_BLIST[]:
1 'SITYP ' 'I' 2. " Nur Unterpositionstyp I darstellen !!

* Ausgabe von TSL und HSL ausrichten !
PERFORM LIST_KCORR_FILL USING IT_KCORR[]:
* Gruppe Liste Felder untereinander
1 2 'KSL ',
1 1 'TSL '.


CALL FUNCTION 'FCLP_TREE_DISPLAY'
EXPORTING
E_TITLE = SY-TITLE
E_TAB_STRUCT = 'ECMCA'
E_HLP_STRUCT = 'FC06TAB'
ET_DATA = IT_ECMCA[]
ET_LIST = IT_LIST[]
ET_FDISP = IT_FDISP[]
ET_KDISP = IT_KDISP[]
ET_KCORR = IT_KCORR[]
ET_BLIST = IT_BLIST[]
E_CALL_HEADER = 'FC_PARAM_HEADER_LIST'
* e_callback_user_command = 'LIST_CALL_BACK'
CHANGING
C_DATA = IT_ECMCA
CT_WORK = IT_WORK[]
CT_FFIX = IT_FFIX[]
CT_FUSED = IT_FUSED[].

Hinweise

Weiterführende Informationen

Funktionalität

Beispiel

Hinweise

Arbeiten mit Hierarchien:

Sollen Hierarchien verwendet werden, so sind in der it_fused pro Hierarchie zwei zusätzliche Einträge zu machen:
'HL_CG ' 'T' ' ' ' ',
'HI_CG ' 'T' ' ' ' ',
'RCONGR ' 'D' 'HL_CG ' 'HI_CG ',

Die Steuerfelder 'HL_CG ' 'HI_CG ' müssen in it_data vorhanden, HL_CG vom Typ fclp_hlevel und HI_CG vom Typ fclp_hindex sein.

Die Darstellung einer bestimmten Hierarchie
data: ld_hcg type fc_hryname.
call function 'FC_HIERARCHY_NAME_GET'
exporting e_hry_congr = 'X'
e_dimen = ld_dimen
e_congr = ld_congr
e_rvers = ld_rvers
e_ryear = ld_ryear
e_perid = ld_perid
importing i_hryname = ld_hcg.

geschieht über die it_fdisp durch
1 'RCONGR ' 'X' 'X' ld_hcg ' ' 'X' 'X' 1 ' '.

Weiterführende Informationen





Parameter

CT_FFIX
CT_FUSED
CT_FUSED_FORKEY
CT_TXTSHOW
CT_WORK
C_DATA
ET_BLIST
ET_DATA
ET_FDISP
ET_KCORR
ET_KDISP
ET_LIST
ET_MSG
ET_RCALL
E_CALLBACK_RECURSE
E_CALLBACK_STATUS
E_CALLBACK_USER_COMMAND
E_CALL_HEADER
E_CALL_HINFO
E_CPROG
E_DATUM
E_FIELD_INFO_COMPLETE
E_HLP_STRUCT
E_REPORT
E_TAB_STRUCT
E_TITLE
E_UZEIT

Ausnahmen

DEP_ROLLNAME_NOT_FOUND

Funktionsgruppe

FCLP

CL_GUI_FRONTEND_SERVICES - Frontend Services   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 10979 Date: 20240523 Time: 144737     sap01-206 ( 132 ms )