Application Development and Automation 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: 
Read only

alv grid display

Former Member
0 Likes
738

hi

iam working with alv reuse_alv_grid_display.

my requirements are:

1) i hav to display the variants in the out put.

2) the second is to display the lights(red green and yellow)

hi

iam working with alv reuse_alv_grid_display.

my requirements are:

1) i hav to display the variants in the out put.

2) the second is to display the lights(red green and yellow)

3 REPLIES 3
Read only

krzysztof_konitz4
Contributor
0 Likes
709

Hi,

Please have a look at sample programs: BALV*

regards

Krzys

Read only

uwe_schieferstein
Active Contributor
0 Likes
709

Hello Prasad

The following sample report shows how to handle status lights and variants. I highly recommend to use the more modern function module <b>REUSE_ALV_GRID_DISPLAY_LVC</b>.

*&---------------------------------------------------------------------*
*& Report  ZUS_SDN_REUSE_ALV_GRID_DISP
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zus_sdn_reuse_alv_grid_disp.


TYPES: BEGIN OF ty_s_outtab.
TYPES: status    TYPE i_status.
INCLUDE TYPE knb1.
TYPES: END OF ty_s_outtab.
TYPES: ty_t_outtab  TYPE STANDARD TABLE OF ty_s_outtab
                         WITH DEFAULT KEY.

DATA:
  gs_variant   TYPE disvariant,
  gs_layout    TYPE lvc_s_layo,
  gt_fcat      TYPE lvc_t_fcat,
*
  gs_outtab    TYPE ty_s_outtab,
  gt_outtab    TYPE ty_t_outtab.




START-OF-SELECTION.

  SELECT * FROM  knb1 INTO CORRESPONDING FIELDS OF TABLE gt_outtab
         WHERE  bukrs  = '1000'.


  PERFORM build_fieldcatalog.

  PERFORM set_layout_and_variant.


  PERFORM modify_list.


  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
*     I_INTERFACE_CHECK                 = ' '
*     I_BYPASSING_BUFFER                =
*     I_BUFFER_ACTIVE                   =
*     I_CALLBACK_PROGRAM                = ' '
*     I_CALLBACK_PF_STATUS_SET          = ' '
*     I_CALLBACK_USER_COMMAND           = ' '
*     I_CALLBACK_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_GRID_SETTINGS                   =
      IS_LAYOUT_LVC                     = gs_layout
      it_fieldcat_lvc                   = gt_fcat
*     IT_EXCLUDING                      =
*     IT_SPECIAL_GROUPS_LVC             =
*     IT_SORT_LVC                       =
*     IT_FILTER_LVC                     =
*     IT_HYPERLINK                      =
*     IS_SEL_HIDE                       =
*     I_DEFAULT                         = 'X'
      i_save                            = 'A'
      is_variant                        = gs_variant
*     IT_EVENTS                         =
*     IT_EVENT_EXIT                     =
*     IS_PRINT_LVC                      =
*     IS_REPREP_ID_LVC                  =
*     I_SCREEN_START_COLUMN             = 0
*     I_SCREEN_START_LINE               = 0
*     I_SCREEN_END_COLUMN               = 0
*     I_SCREEN_END_LINE                 = 0
*     I_HTML_HEIGHT_TOP                 =
*     I_HTML_HEIGHT_END                 =
*     IT_EXCEPT_QINFO_LVC               =
*     IR_SALV_FULLSCREEN_ADAPTER        =
*   IMPORTING
*     E_EXIT_CAUSED_BY_CALLER           =
*     ES_EXIT_CAUSED_BY_USER            =
    TABLES
      t_outtab                          = gt_outtab
    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.





END-OF-SELECTION.

*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM build_fieldcatalog .
* define local data
  DATA:
    ls_fcat      TYPE lvc_s_fcat.


  REFRESH: gt_fcat.

  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
*       I_BUFFER_ACTIVE              =
      i_structure_name             = 'KNB1'
*       I_CLIENT_NEVER_DISPLAY       = 'X'
*       I_BYPASSING_BUFFER           =
*       I_INTERNAL_TABNAME           =
    CHANGING
      ct_fieldcat                  = gt_fcat
    EXCEPTIONS
      inconsistent_interface       = 1
      program_error                = 2
      OTHERS                       = 3.
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


  " Add I_STATUS field from this structure to fieldcatalog
  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
*       I_BUFFER_ACTIVE              =
      i_structure_name             = 'RIHEA'
*       I_CLIENT_NEVER_DISPLAY       = 'X'
*       I_BYPASSING_BUFFER           =
*       I_INTERNAL_TABNAME           =
    CHANGING
      ct_fieldcat                  = gt_fcat
    EXCEPTIONS
      inconsistent_interface       = 1
      program_error                = 2
      OTHERS                       = 3.
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  DELETE gt_fcat WHERE ( ref_table = 'RIHEA'   AND
                         fieldname NE 'I_STATUS' ).
  READ TABLE gt_fcat INTO ls_fcat
             WITH KEY fieldname = 'I_STATUS'.
  IF ( syst-subrc = 0 ).
    DELETE gt_fcat INDEX syst-tabix.
    ls_fcat-fieldname = 'STATUS'.
    INSERT ls_fcat INTO gt_fcat INDEX 1.
  ENDIF.

  " Renumbering of columns
  LOOP AT gt_fcat INTO ls_fcat.
    ls_fcat-col_pos = syst-tabix.
    MODIFY gt_fcat FROM ls_fcat.
  ENDLOOP.




ENDFORM.                    " BUILD_FIELDCATALOG


*&---------------------------------------------------------------------*
*&      Form  SET_LAYOUT_AND_VARIANT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM set_layout_and_variant .

  CLEAR: gs_layout,
         gs_variant.


  gs_layout-zebra = 'X'.
  gs_layout-cwidth_opt = 'X'.

  gs_layout-excp_fname = 'STATUS'.
  gs_layout-excp_led     = 'X'. " display LED instead of lights

  gs_variant-report = syst-repid.
  gs_variant-handle = 'GRID'.     " required for saving variants

ENDFORM.                    " SET_LAYOUT_AND_VARIANT
*&---------------------------------------------------------------------*
*&      Form  MODIFY_LIST
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM modify_list .
* define local data
  DATA:
    ls_outtab    TYPE ty_s_outtab.


  LOOP AT gt_outtab INTO ls_outtab.

"   Define reasonable conditions for status
    IF ( syst-tabix > 20 ).
      ls_outtab-status = '3'.  " = green
    ELSEIF ( syst-tabix > 10 ).
      ls_outtab-status = '2'.  " = yellow
    ELSEIF ( syst-tabix > 5 ).
      ls_outtab-status = '1'.  " = red
    ELSE.
      ls_outtab-status = '0'.  " = no status
    ENDIF.

    MODIFY gt_outtab FROM ls_outtab.
  ENDLOOP.

ENDFORM.                    " MODIFY_LIST

Regards

Uwe

Read only

Former Member
0 Likes
709

Hi

Check this program

&----


*& Report ZLAXMI_ALVEXER2 *

*& *

&----


*& NAME : VENKATA LAXMI *

*& DATE : 24-02-2006 *

*& PROGRAM TO PRINT THE REPORT IN ALV LIST FORMAT AND GRID FORMAT *

*& WITH TRAFFIC LIGHTS *

&----


REPORT ZLAXMI_ALVEXER2 MESSAGE-ID ZZ .

&----


*& TABLES DECLARATION *

&----


TABLES: VBAK.

&----


*& TYPE POOLS DECLARATION *

&----


TYPE-POOLS: SLIS.

&----


*& INTERNAL TABLE DECLARATION *

&----


DATA: BEGIN OF ITAB OCCURS 0,

ICON TYPE ICON-ID,

VBELN LIKE VBAK-VBELN,

AUDAT LIKE VBAK-AUDAT,

VBTYP LIKE VBAK-VBTYP,

AUART LIKE VBAK-AUART,

AUGRU LIKE VBAK-AUGRU,

NETWR LIKE VBAK-NETWR,

WAERK LIKE VBAK-WAERK,

END OF ITAB.

*INTERNAL TABLE FOR FIELD CATALOG

DATA: WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,

IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

  • IT_FIELDCAT TYPE STANDARD TABLE OF SLIS_FIELDCAT_ALV

  • WITH HEADER LINE,

*INTERNAL TABLE FOR EVENTS

DATA: IT_EVENT TYPE SLIS_T_EVENT,

WA_EVENT TYPE SLIS_ALV_EVENT,

*INTERNAL TABLE FOR SORTING

IT_SORT TYPE SLIS_T_SORTINFO_ALV,

WA_SORT TYPE SLIS_SORTINFO_ALV,

*INTERNAL TABLE FOR LAYOUT

WA_LAYOUT TYPE SLIS_LAYOUT_ALV.

&----


*& VARIABLE DECLARATION *

&----


DATA : V_REPID TYPE SY-REPID,

V_PAGNO(4) TYPE N,

V_DATE(8) TYPE C.

&----


*& CONSTANTS *

&----


CONSTANTS: C_X TYPE C VALUE 'X'.

&----


*& SELECTION SCREEN *

&----


SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS: S_VBELN FOR VBAK-VBELN,

S_VBTYP FOR VBAK-VBTYP DEFAULT 'C'.

SELECTION-SCREEN: END OF BLOCK B1.

SELECTION-SCREEN: BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.

SELECTION-SCREEN : BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(20) TEXT-003.

PARAMETERS: P_LIST RADIOBUTTON GROUP RAD1 DEFAULT 'X'.

SELECTION-SCREEN : END OF LINE.

SELECTION-SCREEN : BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(20) TEXT-004.

PARAMETERS: P_GRID RADIOBUTTON GROUP RAD1.

SELECTION-SCREEN : END OF LINE.

SELECTION-SCREEN: END OF BLOCK B2.

AT SELECTION-SCREEN.

PERFORM VALIDATE_SCREEN.

&----


*& START OF SELECTION *

&----


START-OF-SELECTION.

CLEAR: ITAB, ITAB[].

  • V_REPID = SY-REPID.

PERFORM GET_DATA.

PERFORM DISPLAY_DATA.

&----


*& END OF SELECTION *

&----


END-OF-SELECTION.

*--DO ALV Process

V_REPID = SY-REPID.

*--Sort the Output Fields

PERFORM SORT_FIELDS.

*--Build Field catalog for the Output fields

  • PERFORM BUILD_FIELDCAT.

*--Set the Layout for ALV

PERFORM SET_LAYOUT.

&----


*& Form GET_DATA

&----


  • text

----


  • TO GET THE DATA FROM TABLES INTO ITAB

----


FORM GET_DATA .

SELECT VBELN

AUDAT

VBTYP

AUART

AUGRU

NETWR

WAERK

INTO CORRESPONDING FIELDS OF TABLE ITAB

FROM VBAK

WHERE VBELN IN S_VBELN AND

AUDAT > '04.04.2005'

AND NETWR > 0.

LOOP AT ITAB.

IF ITAB-NETWR < 10000.

ITAB-ICON = '@08@'.

ELSEIF ITAB-NETWR > 10000 AND ITAB-NETWR < 100000.

ITAB-ICON = '@09@'.

ELSEIF ITAB-NETWR > 100000.

ITAB-ICON = '@0A@'.

ENDIF.

MODIFY ITAB INDEX SY-TABIX.

ENDLOOP.

ENDFORM. " GET_DATA

&----


*& Form sort_fields

&----


FORM SORT_FIELDS .

CLEAR WA_SORT.

WA_SORT-FIELDNAME = 'VBTYP'.

WA_SORT-SPOS = '1'.

WA_SORT-UP = 'X'.

APPEND WA_SORT TO IT_SORT.

CLEAR WA_SORT.

WA_SORT-FIELDNAME = 'NETWR'.

WA_SORT-SPOS = '2'.

WA_SORT-UP = 'X'.

WA_SORT-SUBTOT = 'X'.

APPEND WA_SORT TO IT_SORT.

ENDFORM. " sort_fields

&----


*& Form build_fieldcat

&----


*FORM BUILD_FIELDCAT .

*

  • IT_FIELDCAT-COL_POS = '1'.

  • IT_FIELDCAT-FIELDNAME = 'ICON'.

  • IT_FIELDCAT-KEY = 'X'.

  • IT_FIELDCAT-OUTPUTLEN = '10'.

  • IT_FIELDCAT-SELTEXT_L = 'LIGHT'.

  • APPEND IT_FIELDCAT.

  • CLEAR IT_FIELDCAT.

*

*

  • IT_FIELDCAT-COL_POS = '2'.

  • IT_FIELDCAT-FIELDNAME = 'VBELN'.

  • IT_FIELDCAT-KEY = 'X'.

  • IT_FIELDCAT-OUTPUTLEN = '10'.

  • IT_FIELDCAT-SELTEXT_L = 'SALES DOC NUMBER'(009).

  • APPEND IT_FIELDCAT.

  • CLEAR IT_FIELDCAT.

*

  • IT_FIELDCAT-COL_POS = '3'.

  • IT_FIELDCAT-FIELDNAME = 'AUDAT'.

  • IT_FIELDCAT-KEY = 'X'.

  • IT_FIELDCAT-OUTPUTLEN = '4'.

  • IT_FIELDCAT-SELTEXT_L = 'DOCUMENT DATE'(010).

  • APPEND IT_FIELDCAT.

  • CLEAR IT_FIELDCAT.

*

  • IT_FIELDCAT-COL_POS = '4'.

  • IT_FIELDCAT-FIELDNAME = 'VBTYP'.

  • IT_FIELDCAT-KEY = 'X'.

  • IT_FIELDCAT-OUTPUTLEN = '4'.

  • IT_FIELDCAT-SELTEXT_L = 'CATEGORY'(011).

  • APPEND IT_FIELDCAT.

  • CLEAR IT_FIELDCAT.

*

  • IT_FIELDCAT-COL_POS = '5'.

  • IT_FIELDCAT-FIELDNAME = 'AUART'.

  • IT_FIELDCAT-OUTPUTLEN = '4'.

  • IT_FIELDCAT-SELTEXT_L = 'DOCUMENT TYPE'(012).

  • APPEND IT_FIELDCAT.

  • CLEAR IT_FIELDCAT.

*

  • IT_FIELDCAT-COL_POS = '6'.

  • IT_FIELDCAT-FIELDNAME = 'AUGRU'.

  • IT_FIELDCAT-OUTPUTLEN = '12'.

  • IT_FIELDCAT-SELTEXT_L = 'Order reason'(013).

  • APPEND IT_FIELDCAT.

  • CLEAR IT_FIELDCAT.

*

  • IT_FIELDCAT-COL_POS = '7'.

  • IT_FIELDCAT-FIELDNAME = 'NETWR'.

  • IT_FIELDCAT-OUTPUTLEN = '12'.

  • IT_FIELDCAT-SELTEXT_L = 'NET VALUE'(014).

  • APPEND IT_FIELDCAT.

  • CLEAR IT_FIELDCAT.

*

  • IT_FIELDCAT-COL_POS = '8'.

  • IT_FIELDCAT-FIELDNAME = 'WAERK'.

  • IT_FIELDCAT-OUTPUTLEN = '12'.

  • IT_FIELDCAT-SELTEXT_L = 'SD DOC CURR'(015).

  • APPEND IT_FIELDCAT.

  • CLEAR IT_FIELDCAT.

*

*

*ENDFORM. " build_fieldcat

*

&----


*& Form set_layout

&----


FORM SET_LAYOUT .

IF P_LIST = C_X .

WA_LAYOUT-WINDOW_TITLEBAR = 'LIST DISPLAY'(016).

WA_LAYOUT-ZEBRA = 'X'.

*-- ALV LIST DISPLAY

PERFORM LIST_DISPLAY TABLES ITAB.

*-- ALV GRID DISPLAY

ELSEIF P_GRID = C_X.

WA_LAYOUT-WINDOW_TITLEBAR = 'GRID DISPLAY'(017).

WA_LAYOUT-ZEBRA = 'X'.

PERFORM GRID_DISPLAY TABLES ITAB.

ENDIF.

ENDFORM. " set_layout

&----


*& Form list_display

&----


FORM LIST_DISPLAY TABLES P_ITAB .

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDCAT[]

IT_SORT = IT_SORT[]

TABLES

T_OUTTAB = ITAB

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. " list_display

&----


*& Form GRID_DISPLAY

&----


FORM GRID_DISPLAY TABLES P_ITAB .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDCAT[]

IT_SORT = IT_SORT[]

IT_EVENTS = IT_EVENT

TABLES

T_OUTTAB = ITAB

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. " GRID_DISPLAY

&----


*& Form VALIDATE_SCREEN

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM VALIDATE_SCREEN .

DATA: LV_VBELN LIKE VBAK-VBELN.

IF NOT S_VBELN IS INITIAL.

SELECT VBELN

INTO LV_VBELN

UP TO 1 ROWS

FROM VBAK

WHERE VBELN IN S_VBELN.

ENDSELECT.

IF SY-SUBRC <> 0.

MESSAGE E000 WITH 'INVALID SALES DOC'.

ENDIF.

ENDIF.

ENDFORM. " VALIDATE_SCREEN

&----


*& Form display_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM DISPLAY_DATA .

DEFINE M_FIELDCAT.

ADD 1 TO WA_FIELDCAT-COL_POS.

WA_FIELDCAT-FIELDNAME = &1.

WA_FIELDCAT-REF_TABNAME = 'VBAK'.

WA_FIELDCAT-DO_SUM = &2.

WA_FIELDCAT-CFIELDNAME = &3.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

END-OF-DEFINITION.

DATA:

ls_fieldcat TYPE slis_fieldcat_alv,

lt_fieldcat TYPE slis_t_fieldcat_alv.

m_fieldcat 'ICON' '' ''.

m_fieldcat 'VBELN' '' ''.

m_fieldcat 'AUDAT' '' ''.

m_fieldcat 'VBTYP' '' ''.

m_fieldcat 'AUART' '' ''.

m_fieldcat 'AUGRU' '' ''.

m_fieldcat 'NETWR' 'C' 'WAERK'.

m_fieldcat 'WAERK' '' ''.

ENDFORM. " display_data

Regards,

Laxmi.