Quantcast
Channel: SCN: Message List - ABAP Development
Viewing all articles
Browse latest Browse all 10425

Re: How can I display an internal table using ALV and field catalog?

$
0
0

Hi Rafael !

 

Please try this:

(and let me know if i am wrong)

 

************************************************************************

****      T-Y-P-ES - P-O-O-L-S   D-E-C-L-A-R-A-T-I-O-N  A-R-E-A    *****

************************************************************************

TYPE-POOLS:  SLIS.  " ALV Global types

 

************************************************************************

********    T-Y-P-E-S   D-E-C-L-A-R-A-T-I-O-N   A-R-E-A     ************

************************************************************************

 

 

TYPESBEGIN OF ty_aux,
                aux_1 TYPE c LENGTH 50,

                aux_2  TYPE i,
              END OF ty_aux.

 

************************************************************************

*DATA: IS_G_A_LAYOUT TYPE SLIS_LAYOUT_ALV.  "Layout

************************************************************************

*                  E-V-E-N-T-S

************************************************************************

DATA: FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

       GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME

       VALUE'TOP_OF_PAGE',

       GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,

       LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV,

       GT_EVENT TYPE SLIS_T_EVENT,

       LS_LINE TYPE SLIS_LISTHEADER,

       L_INFO(200) TYPEC.

 

************************************************************************

*            S-O-R-T  -  T-A-B-L-E-S

************************************************************************

DATA: GT_SORT       TYPE SLIS_T_SORTINFO_ALV,

       GS_SORT       TYPE SLIS_SORTINFO_ALV.        "Sort table

 

************************************************************************

*****  I-N-T-E-R-N-A-L  T-A-B-L-E-S  D-E-C-L-A-R-A-T-I-O-N  A-R-E-A ****

************************************************************************

i_aux TYPE STANDARD TABLE OF ty_aux.

 

************************************************************************

******    V-A-R-I-A-B-L-E-S   D-E-C-L-A-R-A-T-I-O-N   A-R-E-A    *******

************************************************************************

DATA : V_LAYOUT             TYPE  SLIS_LAYOUT_ALV,

        V_CNT                TYPE  I,

        V_REPID              TYPE  SYST-REPID,

 

INITIALIZATION.

    V_REPID = SY-REPID.

 


 

*  ************************************************************************

********           S-T-A-R-T O-F S-E-L-E-C-T-I-O-N          ************

************************************************************************

 

START-OF-SELECTION.

   PERFORM GET_DATA. " Perform your query here and put the final data in internal table i_aux.

     "You may perform your query using several performs, based on number of tables                                                    "you are using.

 

PERFORM PASS_FIELD_NAME USING FIELDCAT.

   PERFORM EVENTTAB_BUILD USING GT_EVENT[].

   PERFORM COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].

   PERFORM PASS_DATA_LIST_OUTPUT.

   PERFORM TOP_OF_PAGE.

 

*&---------------------------------------------------------------------*

*&      Form  GET_DATA

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

 

"Perform your queries....

 

 

*&---------------------------------------------------------------------*

*&      Form  PASS_FIELD_NAME

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*      -->P_FIELDCAT  text

*----------------------------------------------------------------------*

FORM PASS_FIELD_NAME USING P_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

CLEAR LS_FIELDCAT.

   LS_FIELDCAT-ROW_POS     = '01'.

   LS_FIELDCAT-COL_POS     = V_CNT.

LS_FIELDCAT-FIELDNAME   = 'AUX_1'. "Please remember to pass your field in UPPER CASE only

   LS_FIELDCAT-TABNAME     = 'I_AUX'.

   LS_FIELDCAT-DO_SUM      = SPACE.

   LS_FIELDCAT-OUTPUTLEN   = '10'.

   LS_FIELDCAT-KEY         = 'X'. "Use this if your current field (AUX_1) is a key field.

   LS_FIELDCAT-SELTEXT_S   = TEXT-001.

   LS_FIELDCAT-SELTEXT_M   = TEXT-001.

   LS_FIELDCAT-SELTEXT_L   = TEXT-001. "Here please give the column label for display, by                                                                     "double clicking on 'TEXT-001.

   APPEND LS_FIELDCAT TO P_FIELDCAT.

 

   LS_FIELDCAT-ROW_POS     = '01'.

   LS_FIELDCAT-COL_POS     = V_CNT.

LS_FIELDCAT-FIELDNAME   = 'AUX_2'. "Please remember to pass your field in UPPER CASE only

   LS_FIELDCAT-TABNAME     = 'I_AUX'.

   LS_FIELDCAT-DO_SUM      = SPACE.

   LS_FIELDCAT-OUTPUTLEN   = '10'.

   LS_FIELDCAT-SELTEXT_S   = TEXT-002.

   LS_FIELDCAT-SELTEXT_M   = TEXT-002.

   LS_FIELDCAT-SELTEXT_L   = TEXT-002.

   APPEND LS_FIELDCAT TO P_FIELDCAT.

 

*&---------------------------------------------------------------------*

*&      Form  EVENTTAB_BUILD

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*      -->P_GT_EVENT[]  text

*----------------------------------------------------------------------*

FORM EVENTTAB_BUILD  USING    P_GT_EVENTS TYPE SLIS_T_EVENT .

DATA: LS_EVENT TYPE SLIS_ALV_EVENT.

 

   CALLFUNCTION'REUSE_ALV_EVENTS_GET'

     EXPORTING

       I_LIST_TYPE = 0

     IMPORTING

       ET_EVENTS   = P_GT_EVENTS[].

 

   READTABLE P_GT_EVENTS WITHKEY NAME = SLIS_EV_TOP_OF_PAGE

   INTO LS_EVENT.

 

   IF SY-SUBRC = 0.

     MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.

     APPEND LS_EVENT TO P_GT_EVENTS.

   ENDIF.

ENDFORM.  

 

*&---------------------------------------------------------------------*

*&      Form  COMMENT_BUILD

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*      -->P_GT_LIST_TOP_OF_PAGE[]  text

*----------------------------------------------------------------------*


 

FORM COMMENT_BUILD  USING    P_GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.

CLEAR LS_LINE.

   LS_LINE-TYP = 'H'.

   LS_LINE-INFO = TEXT-016. "Type the text which you would like to display as Report Header

   APPEND  LS_LINE TO P_GT_LIST_TOP_OF_PAGE.

ENDFORM.  

 

*&---------------------------------------------------------------------*

*&      Form  PASS_DATA_LIST_OUTPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM PASS_DATA_LIST_OUTPUT .

CALLFUNCTION'REUSE_ALV_GRID_DISPLAY'

     EXPORTING

       I_CALLBACK_PROGRAM = V_REPID

       IS_LAYOUT          = V_LAYOUT

       IT_FIELDCAT        = FIELDCAT[]

       I_SAVE             = 'A'

       IT_EVENTS          = GT_EVENT

       IT_SORT            = GT_SORT

     TABLES

       T_OUTTAB           = I_AUX   "" -----------> This internal table's content will be finally displayed.

     EXCEPTIONS

       PROGRAM_ERROR      = 1

       OTHERS             = 2.

   IF SY-SUBRC <> 0.

     MESSAGEID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

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

   ENDIF.

   LEAVE LIST-PROCESSING.

ENDFORM.

 

*&---------------------------------------------------------------------*

*&      Form  TOP_OF_PAGE

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

 

FORM TOP_OF_PAGE .

   CALLFUNCTION'REUSE_ALV_COMMENTARY_WRITE'

     EXPORTING

       IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.

ENDFORM.   

 

Regards,

Khushboo

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



 



 

 

 


 


 

 

 

 

 



Viewing all articles
Browse latest Browse all 10425

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>