Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

MCSI Transaction code

Former Member
0 Kudos

hi friends, any body using MCSI transaction code ?

In this switch drill down box is there . I want like that dirll down box for our requiement. How to develop like that screens in output screen.

if any body know plz send me the coding.

Plz help me iam new to this requirement.

Sreerama

2 REPLIES 2

naimkhans_babi
Active Participant
0 Kudos

Hi How are you..

This is the source code of that drill down button.. in MCSI transaction code. well some of the comments here are in german.. to understand this you need german to english translator, u can have this service from this website. enjoy...

http://translation2.paralink.com/

Reward point if helpfull...

Regards

Naeem

*----


*

  • FORM AKT_DRILLDOWN_AKTUALISIEREN *

*----


*

  • Table AKT_DRILLDOWN according to the topical cunning step aktualis. *

*----


*

FORM AKT_DRILLDOWN_AKTUALISIEREN.

DATA: AA_LSIND LIKE SY-LSIND. " logische Liststufe

IF FLG_VERGLEICH = FALSE OR

SY-LSIND <= 1 OR

SY-PFKEY CS 'LIST'.

AA_LSIND = SY-LSIND.

ELSE.

  • Im Normalfall ist sy-lsind = 0 bei 1. Liste (=Grundliste), 1 bei

  • 2. Liste (= 1. Aufrißliste), usw.. Bei Vergleich (Plan/Ist usw.)

  • ist aber sy-lsind um 1 erhöht. Deshalb wird aa_lsind um 1 verringert

AA_LSIND = SY-LSIND - 1.

ENDIF.

  • aa_lsind = sy-lsind. "vorläufig

IF DRILLDOWN_EINTRAEGE > AA_LSIND AND AA_LSIND > 0 OR

SAV_FCODE = 'CLOS'.

  • Aufriß mit größerer Liststufe wurde erzeugt und es soll nicht als

  • nächstes die Grundliste ausgegeben werden => AUSTAB nicht aktuell

  • oder: Nach Verlassen Vergleichspopup muß immer der alte Zustand

  • zurückgesetzt werden

REFRESH AKT_DRILLDOWN.

  • AKT_DRILLDOWN aktualisieren, weil nicht mehr aktuell

LOOP AT SAV_AKT_DRILLDOWN.

IF SAV_AKT_DRILLDOWN-LSIND > SY-LSIND.

DELETE SAV_AKT_DRILLDOWN.

ELSEIF SAV_AKT_DRILLDOWN-LSIND = SY-LSIND.

AKT_DRILLDOWN = SAV_AKT_DRILLDOWN.

INSERT AKT_DRILLDOWN INDEX 1.

    • if flg_vergleich = false or

    • sav_akt_drilldown-lsind >= mainlist_lsind.

DELETE SAV_AKT_DRILLDOWN.

    • endif.

ELSE.

EXIT.

ENDIF.

ENDLOOP.

FLG_AUSTAB_AKTUELL = FALSE.

  • ausgewählte Kennzahlen wiederherstellen

REFRESH: AKT_KENNZAHLEN.

LOOP AT SAV_KENNZAHLEN.

IF SAV_KENNZAHLEN-LSIND > SY-LSIND.

DELETE SAV_KENNZAHLEN.

ELSEIF SAV_KENNZAHLEN-LSIND = SY-LSIND.

AKT_KENNZAHLEN = SAV_KENNZAHLEN.

INSERT AKT_KENNZAHLEN INDEX 1.

    • if flg_vergleich = false or

    • sav_kennzahlen-lsind >= mainlist_lsind.

DELETE SAV_KENNZAHLEN.

    • endif.

ELSE.

EXIT.

ENDIF.

ENDLOOP.

PERFORM AUSTAB_TEXT_ZUWEISEN.

DESCRIBE TABLE AKT_KENNZAHLEN LINES KENNZAHL_ANZAHL.

LOOP AT AKT_KENNZAHLEN.

PERFORM AUSGABEFELD_ZUWEISEN USING SY-TABIX.

ENDLOOP.

  • ausgewählte Sortier- und Gruppierkriterien wiederherstellen

REFRESH: SORT_KENNZAHLEN.

LOOP AT SAV_SORT_KENNZAHLEN.

IF SAV_SORT_KENNZAHLEN-LSIND > SY-LSIND.

DELETE SAV_SORT_KENNZAHLEN.

ELSEIF SAV_SORT_KENNZAHLEN-LSIND = SY-LSIND.

SORT_KENNZAHLEN = SAV_SORT_KENNZAHLEN.

INSERT SORT_KENNZAHLEN INDEX 1.

    • if flg_vergleich = false or

    • sav_sort_kennzahlen-lsind >= mainlist_lsind.

DELETE SAV_SORT_KENNZAHLEN.

    • endif.

ELSE.

EXIT.

ENDIF.

ENDLOOP.

  • Anzahl Sortier- und Gruppenkriterien bestimmen

CLEAR ANZ_GRUPPENKRIT.

LOOP AT SORT_KENNZAHLEN WHERE FLG_GRUPPE = TRUE.

ADD 1 TO ANZ_GRUPPENKRIT.

ENDLOOP.

DESCRIBE TABLE SORT_KENNZAHLEN LINES ANZ_SORTKRIT.

ANZ_SORTKRIT = ANZ_SORTKRIT - ANZ_GRUPPENKRIT.

IF ANZ_SORTKRIT = 1.

  • Es existiert genau ein Sortierkriterium

SORT_KRITERIUM = SORT_KENNZAHLEN-AUSTABFELD.

ELSE.

CLEAR SORT_KRITERIUM.

ENDIF.

PERFORM GRUPPENFELDER_ZUWEISEN IN PROGRAM (LIS_PROGNAME) IF FOUND.

ENDIF.

CLEAR ANZ_HIERARCHIE_AUFRISSE.

LOOP AT AKT_DRILLDOWN.

IF SY-TABIX > AA_LSIND.

  • Überflüssig, da AKT_DRILLDOWN sowie so ganz zurückgelesen wird

  • Nicht mehr benötigte Aufrißinfo löschen

  • delete akt_drilldown.

ELSE.

IF AKT_DRILLDOWN-FCODE(1) = 'H'.

  • Hierarchieaufriß

ADD 1 TO ANZ_HIERARCHIE_AUFRISSE.

ENDIF.

IF SY-TABIX = AA_LSIND.

IF FLG_AUSTAB_AKTUELL = FALSE.

  • Merkmalsausprägung des Aufrisses löschen

CLEAR AKT_DRILLDOWN-OBJEKT.

MODIFY AKT_DRILLDOWN.

  • Layouteinstellung wiederherstellen

ANALYSE_WAEHRUNG = AKT_DRILLDOWN-WAEHRUNG.

FLG_HEADER_PATH = AKT_DRILLDOWN-FLG_HEADER_PATH.

FLG_OBJEKTTEXT = AKT_DRILLDOWN-FLG_OBJEKTTEXT.

FLG_PROZENTWERT = AKT_DRILLDOWN-FLG_PROZENTWERT.

FLG_TOPLISTE = AKT_DRILLDOWN-FLG_TOPLISTE.

FLG_SORT_ABST = AKT_DRILLDOWN-FLG_SORT_ABST.

SPALTEN_ANFANG = AKT_DRILLDOWN-SPALTEN_ANFANG.

SPALTEN_BREITE = AKT_DRILLDOWN-SPALTEN_BREITE.

SPALTEN_BREITE_P = SPALTEN_BREITE - 1.

HITLISTEN_GROESSE = AKT_DRILLDOWN-HITL_GROESSE.

HITL_KRITERIUM = AKT_DRILLDOWN-HITL_KRITERIUM.

ENDIF.

ENDIF.

ENDIF.

ENDLOOP.

DESCRIBE TABLE AKT_DRILLDOWN LINES DRILLDOWN_EINTRAEGE.

IF FLG_AUSTAB_AKTUELL = FALSE AND FLG_STD_DRILLDOWN = FALSE.

  • Aufriß- und Standardaufriß waren bei tieferer Aufrißstufe verschie-

  • den => es muß überprüft werden, ob dies noch immer der Fall ist

FLG_STD_DRILLDOWN = TRUE.

LOOP AT AKT_DRILLDOWN.

READ TABLE STD_DRILLDOWN WITH KEY FCODE = AKT_DRILLDOWN-FCODE.

IF SY-SUBRC <> 0.

FLG_STD_DRILLDOWN = FALSE.

EXIT.

ENDIF.

ENDLOOP.

ENDIF.

PERFORM SPEZIAL_AKT_DRILLDOWN IN PROGRAM (LIS_PROGNAME) IF FOUND.

ENDFORM. "AKT_DRILLDOWN_AKTUALISIEREN