Skip to Content
author's profile photo
Former Member

ALV group head title (with it_special_groups)

Hi,

Could someone show the most simple working ALV example using it_special_groups parameter? I would like to group titles in ALV. For some reason I cant make it work.

Maybe it is not working on 4.6C

thank you

Add comment
10|10000 characters needed characters exceeded

  • Follow
  • Get RSS Feed

2 Answers

  • author's profile photo
    Former Member
    Posted on Sep 28, 2007 at 08:44 AM

    hi

    good

    go through this code

    &----


    *& Report ZZ_22038_22098_002 *

    *& *

    &----


    *& This is an Interactive ALV report, where on line slection we can see

    *& the secondry list

    *&

    *& *

    &----


    REPORT ZZ_22038_22098_002 NO STANDARD PAGE HEADING LINE-SIZE 650

    MESSAGE-ID ZZ_9838 .

    TYPE-POOLS: SLIS.

    *type declaration for values from ekko

    TYPES: BEGIN OF I_EKKO,

    EBELN LIKE EKKO-EBELN,

    AEDAT LIKE EKKO-AEDAT,

    BUKRS LIKE EKKO-BUKRS,

    BSART LIKE EKKO-BSART,

    LIFNR LIKE EKKO-LIFNR,

    END OF I_EKKO.

    DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,

    WA_EKKO TYPE I_EKKO.

    *type declaration for values from ekpo

    TYPES: BEGIN OF I_EKPO,

    EBELN LIKE EKPO-EBELN,

    EBELP LIKE EKPO-EBELP,

    MATNR LIKE EKPO-MATNR,

    MENGE LIKE EKPO-MENGE,

    MEINS LIKE EKPO-MEINS,

    NETPR LIKE EKPO-NETPR,

    END OF I_EKPO.

    DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,

    WA_EKPO TYPE I_EKPO .

    *variable for Report ID

    DATA: V_REPID LIKE SY-REPID .

    *declaration for fieldcatalog

    DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

    WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

    DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.

    • declaration for events table where user comand or set PF status will

    • be defined

    DATA: V_EVENTS TYPE SLIS_T_EVENT,

    WA_EVENT TYPE SLIS_ALV_EVENT.

    • declartion for layout

    DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.

    • declaration for variant(type of display we want)

    DATA: I_VARIANT TYPE DISVARIANT,

    I_VARIANT1 TYPE DISVARIANT,

    I_SAVE(1) TYPE C.

    *PARAMETERS : p_var TYPE disvariant-variant.

    *Title displayed when the alv list is displayed

    DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.

    DATA: I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.

    INITIALIZATION.

    V_REPID = SY-REPID.

    PERFORM BUILD_FIELDCATLOG.

    PERFORM EVENT_CALL.

    PERFORM POPULATE_EVENT.

    START-OF-SELECTION.

    PERFORM DATA_RETRIEVAL.

    PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.

    PERFORM DISPLAY_ALV_REPORT.

    &----


    *& Form BUILD_FIELDCATLOG

    &----


    • Fieldcatalog has all the field details from ekko

    ----


    FORM BUILD_FIELDCATLOG.

    WA_FIELDCAT-TABNAME = 'IT_EKKO'.

    WA_FIELDCAT-FIELDNAME = 'EBELN'.

    WA_FIELDCAT-SELTEXT_M = 'PO NO.'.

    APPEND WA_FIELDCAT TO I_FIELDCAT.

    CLEAR WA_FIELDCAT.

    WA_FIELDCAT-TABNAME = 'IT_EKKO'.

    WA_FIELDCAT-FIELDNAME = 'AEDAT'.

    WA_FIELDCAT-SELTEXT_M = 'DATE.'.

    APPEND WA_FIELDCAT TO I_FIELDCAT.

    CLEAR WA_FIELDCAT.

    WA_FIELDCAT-TABNAME = 'IT_EKKO'.

    WA_FIELDCAT-FIELDNAME = 'BUKRS'.

    WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.

    APPEND WA_FIELDCAT TO I_FIELDCAT.

    CLEAR WA_FIELDCAT.

    WA_FIELDCAT-TABNAME = 'IT_EKKO'.

    WA_FIELDCAT-FIELDNAME = 'BUKRS'.

    WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.

    APPEND WA_FIELDCAT TO I_FIELDCAT.

    CLEAR WA_FIELDCAT.

    WA_FIELDCAT-TABNAME = 'IT_EKKO'.

    WA_FIELDCAT-FIELDNAME = 'LIFNR'.

    WA_FIELDCAT-NO_OUT = 'X'.

    WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.

    APPEND WA_FIELDCAT TO I_FIELDCAT.

    CLEAR WA_FIELDCAT.

    ENDFORM. "BUILD_FIELDCATLOG

    &----


    *& Form EVENT_CALL

    &----


    • we get all events - TOP OF PAGE or USER COMMAND in table v_events

    ----


    FORM EVENT_CALL.

    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

    EXPORTING

    I_LIST_TYPE = 0

    IMPORTING

    ET_EVENTS = V_EVENTS

    • EXCEPTIONS

    • LIST_TYPE_WRONG = 1

    • OTHERS = 2

    .

    IF SY-SUBRC <> 0.

    • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

    • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

    ENDIF.

    ENDFORM. "EVENT_CALL

    &----


    *& Form POPULATE_EVENT

    &----


    • Events populated for TOP OF PAGE & USER COMAND

    ----


    FORM POPULATE_EVENT.

    READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.

    IF SY-SUBRC EQ 0.

    WA_EVENT-FORM = 'TOP_OF_PAGE'.

    MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

    WA_EVENT-FORM.

    ENDIF.

    READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.

    IF SY-SUBRC EQ 0.

    WA_EVENT-FORM = 'USER_COMMAND'.

    MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

    WA_EVENT-NAME.

    ENDIF.

    ENDFORM. "POPULATE_EVENT

    &----


    *& Form data_retrieval

    &----


    • retreiving values from the database table ekko

    ----


    FORM DATA_RETRIEVAL.

    SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.

    ENDFORM. "data_retrieval

    &----


    *& Form bUild_listheader

    &----


    • text

    ----


    • -->I_LISTHEADEtext

    ----


    FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.

    DATA HLINE TYPE SLIS_LISTHEADER.

    HLINE-INFO = 'this is my first alv pgm'.

    HLINE-TYP = 'H'.

    ENDFORM. "build_listheader

    &----


    *& Form display_alv_report

    &----


    • text

    ----


    FORM DISPLAY_ALV_REPORT.

    V_REPID = SY-REPID.

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

    EXPORTING

    I_CALLBACK_PROGRAM = V_REPID

    • I_CALLBACK_PF_STATUS_SET = ' '

    I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

    I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

    I_GRID_TITLE = I_TITLE_EKKO

    • I_GRID_SETTINGS =

    • IS_LAYOUT = ALV_LAYOUT

    IT_FIELDCAT = I_FIELDCAT[]

    • IT_EXCLUDING =

    • IT_SPECIAL_GROUPS =

    • IT_SORT =

    • IT_FILTER =

    • IS_SEL_HIDE =

    • i_default = 'ZLAY1'

    I_SAVE = 'A'

    • is_variant = i_variant

    IT_EVENTS = V_EVENTS

    TABLES

    T_OUTTAB = IT_EKKO

    • EXCEPTIONS

    • PROGRAM_ERROR = 1

    • OTHERS = 2

    .

    IF SY-SUBRC <> 0.

    • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

    • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

    ENDIF.

    ENDFORM. "display_alv_report

    &----


    *& Form TOP_OF_PAGE

    &----


    • text

    ----


    FORM TOP_OF_PAGE.

    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

    EXPORTING

    IT_LIST_COMMENTARY = IT_LISTHEADER

    • i_logo =

    • I_END_OF_LIST_GRID =

    .

    ENDFORM. "TOP_OF_PAGE

    &----


    *& Form USER_COMMAND

    &----


    • text

    ----


    • -->R_UCOMM text

    • -->, text

    • -->RS_SLEFIELDtext

    ----


    FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

    RS_SELFIELD TYPE SLIS_SELFIELD.

    CASE R_UCOMM.

    WHEN '&IC1'.

    READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.

    PERFORM BUILD_FIELDCATLOG_EKPO.

    PERFORM EVENT_CALL_EKPO.

    PERFORM POPULATE_EVENT_EKPO.

    PERFORM DATA_RETRIEVAL_EKPO.

    PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.

    PERFORM DISPLAY_ALV_EKPO.

    ENDCASE.

    ENDFORM. "user_command

    &----


    *& Form BUILD_FIELDCATLOG_EKPO

    &----


    • text

    ----


    FORM BUILD_FIELDCATLOG_EKPO.

    WA_FIELDCAT-TABNAME = 'IT_EKPO'.

    WA_FIELDCAT-FIELDNAME = 'EBELN'.

    WA_FIELDCAT-SELTEXT_M = 'PO NO.'.

    APPEND WA_FIELDCAT TO I_FIELDCAT.

    CLEAR WA_FIELDCAT.

    WA_FIELDCAT-TABNAME = 'IT_EKPO'.

    WA_FIELDCAT-FIELDNAME = 'EBELP'.

    WA_FIELDCAT-SELTEXT_M = 'LINE NO'.

    APPEND WA_FIELDCAT TO I_FIELDCAT.

    CLEAR WA_FIELDCAT.

    WA_FIELDCAT-TABNAME = 'I_EKPO'.

    WA_FIELDCAT-FIELDNAME = 'MATNR'.

    WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.

    APPEND WA_FIELDCAT TO I_FIELDCAT.

    CLEAR WA_FIELDCAT.

    WA_FIELDCAT-TABNAME = 'I_EKPO'.

    WA_FIELDCAT-FIELDNAME = 'MENGE'.

    WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.

    APPEND WA_FIELDCAT TO I_FIELDCAT.

    CLEAR WA_FIELDCAT.

    WA_FIELDCAT-TABNAME = 'I_EKPO'.

    WA_FIELDCAT-FIELDNAME = 'MEINS'.

    WA_FIELDCAT-SELTEXT_M = 'UOM'.

    APPEND WA_FIELDCAT TO I_FIELDCAT.

    CLEAR WA_FIELDCAT.

    WA_FIELDCAT-TABNAME = 'I_EKPO'.

    WA_FIELDCAT-FIELDNAME = 'NETPR'.

    WA_FIELDCAT-SELTEXT_M = 'PRICE'.

    APPEND WA_FIELDCAT TO I_FIELDCAT.

    CLEAR WA_FIELDCAT.

    ENDFORM. "BUILD_FIELDCATLOG_EKPO

    &----


    *& Form event_call_ekpo

    &----


    • we get all events - TOP OF PAGE or USER COMMAND in table v_events

    ----


    FORM EVENT_CALL_EKPO.

    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

    EXPORTING

    I_LIST_TYPE = 0

    IMPORTING

    ET_EVENTS = V_EVENTS

    • EXCEPTIONS

    • LIST_TYPE_WRONG = 1

    • OTHERS = 2

    .

    IF SY-SUBRC <> 0.

    • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

    • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

    ENDIF.

    ENDFORM. "event_call_ekpo

    &----


    *& Form POPULATE_EVENT

    &----


    • Events populated for TOP OF PAGE & USER COMAND

    ----


    FORM POPULATE_EVENT_EKPO.

    READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.

    IF SY-SUBRC EQ 0.

    WA_EVENT-FORM = 'TOP_OF_PAGE'.

    MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

    WA_EVENT-FORM.

    ENDIF.

    ENDFORM. "POPULATE_EVENT

    &----


    *& Form TOP_OF_PAGE

    &----


    • text

    ----


    FORM F_TOP_OF_PAGE.

    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

    EXPORTING

    IT_LIST_COMMENTARY = IT_LISTHEADER

    • i_logo =

    • I_END_OF_LIST_GRID =

    .

    ENDFORM. "TOP_OF_PAGE

    &----


    *& Form USER_COMMAND

    &----


    • text

    ----


    • -->R_UCOMM text

    • -->, text

    • -->RS_SLEFIELDtext

    ----


    *retreiving values from the database table ekko

    FORM DATA_RETRIEVAL_EKPO.

    SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.

    ENDFORM.

    FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.

    DATA: HLINE1 TYPE SLIS_LISTHEADER.

    HLINE1-TYP = 'H'.

    HLINE1-INFO = 'CHECKING PGM'.

    ENDFORM.

    FORM DISPLAY_ALV_EKPO.

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

    EXPORTING

    • I_INTERFACE_CHECK = ' '

    • I_BYPASSING_BUFFER = ' '

    • I_BUFFER_ACTIVE = ' '

    I_CALLBACK_PROGRAM = V_REPID

    • I_CALLBACK_PF_STATUS_SET = ' '

    • I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND'

    I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

    • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

    • I_CALLBACK_HTML_END_OF_LIST = ' '

    • I_STRUCTURE_NAME =

    • I_BACKGROUND_ID = ' '

    I_GRID_TITLE = I_TITLE_EKPO

    • I_GRID_SETTINGS =

    • IS_LAYOUT =

    IT_FIELDCAT = I_FIELDCAT[]

    • IT_EXCLUDING =

    • IT_SPECIAL_GROUPS =

    • IT_SORT =

    • IT_FILTER =

    • IS_SEL_HIDE =

    • I_DEFAULT =

    I_SAVE = 'A'

    • IS_VARIANT =

    IT_EVENTS = V_EVENTS

    TABLES

    T_OUTTAB = IT_EKPO

    EXCEPTIONS

    PROGRAM_ERROR = 1

    OTHERS = 2

    .

    IF SY-SUBRC <> 0.

    • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

    • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

    ENDIF.

    ENDFORM.

    reward point if helpful

    thanks

    mrutyun^

    Add comment
    10|10000 characters needed characters exceeded

  • author's profile photo
    Former Member
    Posted on Sep 28, 2007 at 08:50 AM

    thank you, but I can not see where are you using <b>it_special_groups</b> here. It is commented.

    Add comment
    10|10000 characters needed characters exceeded