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

Hi all,

Former Member
0 Likes
764

I want to display the table data in an ALV grid control. However I don't have the necessary info to use the ALV grids.

To get rid of the start fear, is there anyone that can help me to use ALV grids easily?

Thanks in advance.

Deniz.

I want to display the table data in an ALV grid control. However I don't have the necessary info to use the ALV grids.

To get rid of the start fear, is there anyone that can help me to use ALV grids easily?

Thanks in advance.

Deniz.

6 REPLIES 6
Read only

Former Member
0 Likes
736

Hi Deniz,

Check this link...

http://www.erpgenie.com/sap/abap/controls/alvgrid.htm

Regards

SAB

Read only

Former Member
0 Likes
736

Simple ALV report

http://www.sapgenie.com/abap/controls/alvgrid.htm

http://wiki.ittoolbox.com/index.php/Code:Ultimate_ALV_table_toolbox

ALV

1. Please give me general info on ALV.

http://www.sapfans.com/forums/viewtopic.php?t=58286

http://www.sapfans.com/forums/viewtopic.php?t=76490

http://www.sapfans.com/forums/viewtopic.php?t=20591

http://www.sapfans.com/forums/viewtopic.php?t=66305 - this one discusses which way should you use - ABAP Objects calls or simple function modules.

2. How do I program double click in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=11601

http://www.sapfans.com/forums/viewtopic.php?t=23010

3. How do I add subtotals (I have problem to add them)...

http://www.sapfans.com/forums/viewtopic.php?t=20386

http://www.sapfans.com/forums/viewtopic.php?t=85191

http://www.sapfans.com/forums/viewtopic.php?t=88401

http://www.sapfans.com/forums/viewtopic.php?t=17335

4. How to add list heading like top-of-page in ABAP lists?

http://www.sapfans.com/forums/viewtopic.php?t=58775

http://www.sapfans.com/forums/viewtopic.php?t=60550

http://www.sapfans.com/forums/viewtopic.php?t=16629

5. How to print page number / total number of pages X/XX in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=29597 (no direct solution)

6. ALV printing problems. The favourite is: The first page shows the number of records selected but I don't need this.

http://www.sapfans.com/forums/viewtopic.php?t=64320

http://www.sapfans.com/forums/viewtopic.php?t=44477

7. How can I set the cell color in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=52107

8. How do I print a logo/graphics in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=81149

http://www.sapfans.com/forums/viewtopic.php?t=35498

http://www.sapfans.com/forums/viewtopic.php?t=5013

9. How do I create and use input-enabled fields in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=84933

http://www.sapfans.com/forums/viewtopic.php?t=69878

10. How can I use ALV for reports that are going to be run in background?

http://www.sapfans.com/forums/viewtopic.php?t=83243

http://www.sapfans.com/forums/viewtopic.php?t=19224

11. How can I display an icon in ALV? (Common requirement is traffic light icon).

http://www.sapfans.com/forums/viewtopic.php?t=79424

http://www.sapfans.com/forums/viewtopic.php?t=24512

12. How can I display a checkbox in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=88376

http://www.sapfans.com/forums/viewtopic.php?t=40968

http://www.sapfans.com/forums/viewtopic.php?t=6919

Go thru these programs they may help u to try on some hands on

ALV Demo program

BCALV_DEMO_HTML

BCALV_FULLSCREEN_DEMO ALV Demo: Fullscreen Mode

BCALV_FULLSCREEN_DEMO_CLASSIC ALV demo: Fullscreen mode

BCALV_GRID_DEMO Simple ALV Control Call Demo Program

BCALV_TREE_DEMO Demo for ALV tree control

BCALV_TREE_SIMPLE_DEMO

BC_ALV_DEMO_HTML_D0100

Read only

Former Member
0 Likes
736

Hi Deniz,

please see the following code wheather it is useful.

*-------------------------------------------------------------------
*                  INITIALIZATION
*-------------------------------------------------------------------

INITIALIZATION.

*-------------------------------------------------------------------
*                  AT SELECTION SCREEN
*-------------------------------------------------------------------
AT SELECTION-SCREEN .

  PERFORM VALIDATE_SCREEN.

*-------------------------------------------------------------------
*                  START OF SELECTION
*-------------------------------------------------------------------
START-OF-SELECTION.

*--Clear All the Internal tables to be used
  CLEAR : IT_MLGT   ,
          IT_MLGT[] .

*--Getting the data from MLGT table
  PERFORM GET_DATA.
* Fetch the material master and UOM conversion data
  PERFORM GET_UOM_DATA.
* Convert MLGT data from EACH to CASES
  PERFORM CONVERT_TO_CASES.

*-------------------------------------------------------------------
*                  END OF SELECTION
*-------------------------------------------------------------------
END-OF-SELECTION.
  IF IT_MLGT[] IS INITIAL.
*--No Records found .
    MESSAGE I000 WITH
        'No Records found for the given Selection Criteria'(006).
  ELSE.
*--DO ALV Process
    V_REPID = SY-REPID.
    PERFORM SORT_FIELDS.
    PERFORM SET_EVENTS.
    PERFORM MODIFY_FIELDCAT.
    PERFORM SET_LAYOUT.
    PERFORM LIST_DISPLAY.
  ENDIF.

*&------------------------------------------------------------------
*&      Form  SORT_FIELDS
*&------------------------------------------------------------------
*       text : Sort the output fields
*-------------------------------------------------------------------
FORM SORT_FIELDS .

  CLEAR WA_SORT.
  WA_SORT-FIELDNAME = 'LGNUM'.
  WA_SORT-SPOS = '1'.
  WA_SORT-UP = 'X'.
  APPEND WA_SORT TO IT_SORT.

  CLEAR WA_SORT.
  WA_SORT-FIELDNAME = 'LGTYP'.
  WA_SORT-SPOS = '2'.
  WA_SORT-UP = 'X'.
  APPEND WA_SORT TO IT_SORT.

  CLEAR WA_SORT.
  WA_SORT-FIELDNAME = 'LGPLA'.
  WA_SORT-SPOS = '3'.
  WA_SORT-UP = 'X'.
  APPEND WA_SORT TO IT_SORT.

  CLEAR WA_SORT.
  WA_SORT-FIELDNAME = 'MATNR'.
  WA_SORT-SPOS = '4'.
  WA_SORT-UP = 'X'.
  APPEND WA_SORT TO IT_SORT.

ENDFORM.                    " SORT_FIELDS

*&------------------------------------------------------------------
*&      Form  MODIFY_FIELDCAT
*&------------------------------------------------------------------
*       text : Heading for the Output
*-------------------------------------------------------------------
FORM MODIFY_FIELDCAT .

  IT_FIELDCAT-COL_POS    = '1'.
  IT_FIELDCAT-FIELDNAME  = 'LGNUM'.
  IT_FIELDCAT-KEY        = 'X'.
  IT_FIELDCAT-OUTPUTLEN  = '13'.
  IT_FIELDCAT-SELTEXT_L  = 'Warehouse #'(007).
  APPEND IT_FIELDCAT.
  CLEAR  IT_FIELDCAT.

  IT_FIELDCAT-COL_POS    = '2'.
  IT_FIELDCAT-FIELDNAME  = 'LGTYP'.
  IT_FIELDCAT-KEY        = 'X'.
  IT_FIELDCAT-OUTPUTLEN  = '13'.
  IT_FIELDCAT-SELTEXT_L  = 'Storage Type'(008).
  APPEND IT_FIELDCAT.
  CLEAR  IT_FIELDCAT.

  IT_FIELDCAT-COL_POS    = '3'.
  IT_FIELDCAT-FIELDNAME  = 'LGPLA'.
  IT_FIELDCAT-KEY        = 'X'.
  IT_FIELDCAT-OUTPUTLEN  = '18'.
  IT_FIELDCAT-SELTEXT_L  = 'Storage Bin'(009).
  APPEND IT_FIELDCAT.
  CLEAR  IT_FIELDCAT.

  IT_FIELDCAT-COL_POS    = '4'.
  IT_FIELDCAT-FIELDNAME  = 'MATNR'.
  IT_FIELDCAT-KEY        = 'X'.
  IT_FIELDCAT-OUTPUTLEN  = '18'.
  IT_FIELDCAT-SELTEXT_L  = 'Material #'(010).
  APPEND IT_FIELDCAT.
  CLEAR  IT_FIELDCAT.

  IT_FIELDCAT-COL_POS    = '5'.
  IT_FIELDCAT-FIELDNAME  = 'LPMIN'.
  IT_FIELDCAT-OUTPUTLEN  = '18'.
  IT_FIELDCAT-SELTEXT_L  = 'Min Quantity'(011).
  APPEND IT_FIELDCAT.
  CLEAR  IT_FIELDCAT.

  IT_FIELDCAT-COL_POS    = '6'.
  IT_FIELDCAT-FIELDNAME  = 'LPMAX'.
  IT_FIELDCAT-OUTPUTLEN  = '18'.
  IT_FIELDCAT-SELTEXT_L  = 'Max Quantity'(012).
  APPEND IT_FIELDCAT.
  CLEAR  IT_FIELDCAT.

  IT_FIELDCAT-COL_POS    = '7'.
  IT_FIELDCAT-FIELDNAME  = 'MAMNG'.
  IT_FIELDCAT-OUTPUTLEN  = '18'.
  IT_FIELDCAT-SELTEXT_L  = 'Max Pick Quantity'(013).
  APPEND IT_FIELDCAT.
  CLEAR  IT_FIELDCAT.

  IT_FIELDCAT-COL_POS    = '8'.
  IT_FIELDCAT-FIELDNAME  = 'MEINS'.
  IT_FIELDCAT-OUTPUTLEN  = '6'.
  IT_FIELDCAT-SELTEXT_L  = 'UOM'(014).
  APPEND IT_FIELDCAT.
  CLEAR  IT_FIELDCAT.

ENDFORM.                    " MODIFY_FIELDCAT
*&------------------------------------------------------------------
*&      Form  LIST_DISPLAY
*&------------------------------------------------------------------
*       text : List to display
*-------------------------------------------------------------------
FORM LIST_DISPLAY .

  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
       EXPORTING
            I_CALLBACK_PROGRAM = V_REPID
            IS_LAYOUT          = WA_LAYOUT
            IT_FIELDCAT        = IT_FIELDCAT[]
            IT_SORT            = IT_SORT[]
            IT_EVENTS          = IT_EVENTS[]
       TABLES
            T_OUTTAB           = IT_MLGT[]
       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  SET_EVENTS
*&------------------------------------------------------------------
*       text : Assign form names to the Events
*-------------------------------------------------------------------
FORM SET_EVENTS .

  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
            I_LIST_TYPE     = 0
       IMPORTING
            ET_EVENTS       = IT_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.

*--Text To be displayed at TOP OF LIST
  CLEAR WA_EVENT.
  READ TABLE IT_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_LIST'.
  WA_EVENT-FORM = 'HEADER'.
  MODIFY IT_EVENTS FROM WA_EVENT INDEX SY-TABIX.

*--Text To be displayed at END OF LIST
  CLEAR WA_EVENT.
  READ TABLE IT_EVENTS INTO WA_EVENT WITH KEY NAME = 'END_OF_LIST'.
  WA_EVENT-FORM = 'FOOTER'.
  MODIFY IT_EVENTS FROM WA_EVENT INDEX SY-TABIX.

ENDFORM.                    " SET_EVENTS

*&------------------------------------------------------------------
*&      Form  HEADER
*&------------------------------------------------------------------
*       text : Text to be displyed at the TOP OF LIST
*-------------------------------------------------------------------
FORM HEADER .
*-- standard top of page
*  PERFORM STD_TOP_OF_PAGE CHANGING SY-TITLE.
ENDFORM.                    " HEADER

*&------------------------------------------------------------------
*&      Form  FOOTER
*&------------------------------------------------------------------
*       text :Text to be displyed at the END OF LIST
*-------------------------------------------------------------------
FORM FOOTER .
*-- Standard end of report
*  PERFORM STD_END_OF_REPORT.

ENDFORM.                    " FOOTER
*&------------------------------------------------------------------
*&      Form  GET_DATA
*&------------------------------------------------------------------
*       text : Getting the data from MLGT table
*-------------------------------------------------------------------
FORM GET_DATA.

* Both the select statements are changed for fixed bin
  IF S_MATNR[] IS INITIAL.
    SELECT  LGNUM
            LGTYP
            LGPLA
            MATNR
            LPMIN
            LPMAX
            MAMNG
            INTO TABLE IT_MLGT
            FROM MLGT
            WHERE LGNUM = P_LGNUM
              AND LGTYP IN S_LGTYP
              AND LGPLA IN S_LGPLA.
*              AND LVORM <> 'X'
*              AND LGPLA NE ''.         " D01K939896
  ELSE.
    SELECT  LGNUM
            LGTYP
            LGPLA
            MATNR
            LPMIN
            LPMAX
            MAMNG
            INTO TABLE IT_MLGT
            FROM MLGT
            WHERE MATNR IN S_MATNR
              AND LGNUM = P_LGNUM
              AND LGTYP IN S_LGTYP
              AND LGPLA IN S_LGPLA
              AND LVORM <> 'X'
              AND LGPLA NE ''.         " D01K939896

  ENDIF.

ENDFORM.                    " GET_DATA
*&------------------------------------------------------------------
*&      Form  SET_LAYOUT
*&------------------------------------------------------------------
*       text : Set Layout
*-------------------------------------------------------------------
FORM SET_LAYOUT.

  WA_LAYOUT-F2CODE = '&ETA'(005).
  WA_LAYOUT-DETAIL_POPUP = 'X'.

ENDFORM.                    " SET_LAYOUT

*&------------------------------------------------------------------
*&      Form  VALIDATE_SCREEN
*&------------------------------------------------------------------
*       text : Validate the Selection Screen
*-------------------------------------------------------------------
FORM VALIDATE_SCREEN.

*--Validating Warehouse Number
  CLEAR T300.
  SELECT LGNUM
         INTO T300-LGNUM
         UP TO 1 ROWS
         FROM T300
         WHERE LGNUM = P_LGNUM.
  ENDSELECT.
  IF SY-SUBRC <> 0.
    MESSAGE E000 WITH 'Invalid Warehouse Number'(001).
  ENDIF.

*--Validating Storage Type.
  CLEAR T301.
  SELECT LGNUM
         LGTYP
         INTO (T301-LGNUM , T301-LGTYP )
         FROM T301
         UP TO 1 ROWS
         WHERE LGNUM = P_LGNUM
           AND LGTYP IN S_LGTYP.
  ENDSELECT.

IF T301-LGTYP IS INITIAL.
 MESSAGE E000 WITH 'Invalid Warehouse/Storage Type  combination'(002).

ENDIF.

*--Validating Storage Bin
  CLEAR LAGP.
  IF NOT S_LGPLA[] IS INITIAL.
    SELECT LGNUM
           LGTYP
           LGPLA
           INTO (LAGP-LGNUM , LAGP-LGTYP , LAGP-LGPLA )
           FROM LAGP
           UP TO 1 ROWS
           WHERE LGNUM = P_LGNUM
             AND LGTYP IN S_LGTYP
             AND LGPLA IN S_LGPLA.
    ENDSELECT.

    IF LAGP-LGPLA IS INITIAL.
      MESSAGE E000 WITH
      'Invalid Whse No/Storage Type/Bin combination'(003).
    ENDIF.
  ENDIF.

*--Validating Material Numbers
  CLEAR MARA.
  IF NOT S_MATNR[] IS INITIAL.
    SELECT MATNR
           INTO MLGT-MATNR
           FROM MLGT
           UP TO 1 ROWS
           WHERE MATNR IN S_MATNR
             AND LGNUM = P_LGNUM
             AND LGTYP IN S_LGTYP
             AND LGPLA IN S_LGPLA.
    ENDSELECT.
    IF MLGT-MATNR IS INITIAL.
      MESSAGE E000 WITH 'Invalid Material Number'(004).
    ENDIF.
  ENDIF.

ENDFORM.                    " VALIDATE_SCREEN
*&------------------------------------------------------------------
*&      Form  get_uom_data
*&------------------------------------------------------------------
*       text
*-------------------------------------------------------------------
*  -->  p1        text
*  <--  p2        text
*-------------------------------------------------------------------
FORM GET_UOM_DATA.

  IF NOT IT_MLGT[] IS INITIAL.
    SELECT MATNR MEINS
      INTO TABLE IT_MARA
      FROM MARA
      FOR ALL ENTRIES IN IT_MLGT
      WHERE MATNR = IT_MLGT-MATNR.

    SELECT MATNR MEINH UMREZ UMREN
      INTO TABLE IT_MARM
      FROM MARM
      FOR ALL ENTRIES IN IT_MARA
      WHERE MATNR = IT_MARA-MATNR
        AND MEINH = C_CAS.
  ENDIF.

ENDFORM.                    " get_uom_data

*&------------------------------------------------------------------
*&      Form  convert_to_cases
*&------------------------------------------------------------------
*       text
*-------------------------------------------------------------------
*  -->  p1        text
*  <--  p2        text
*-------------------------------------------------------------------

FORM CONVERT_TO_CASES.

  SORT IT_MLGT.
  LOOP AT IT_MLGT.
    V_TABIX = SY-TABIX.
    CLEAR: IT_MARA,
           IT_MARM.
    READ TABLE IT_MARA WITH KEY MATNR = IT_MLGT-MATNR.
    READ TABLE IT_MARM WITH KEY MATNR = IT_MLGT-MATNR.
    IF NOT IT_MARM-UMREZ IS INITIAL.
     IT_MLGT-LPMIN = ( IT_MLGT-LPMIN * IT_MARM-UMREN ) / IT_MARM-UMREZ.
     IT_MLGT-LPMAX = ( IT_MLGT-LPMAX * IT_MARM-UMREN ) / IT_MARM-UMREZ.
     IT_MLGT-MAMNG = ( IT_MLGT-MAMNG * IT_MARM-UMREN ) / IT_MARM-UMREZ.
     IT_MLGT-MEINS = 'CASES'.
    ELSE.
      IT_MLGT-MEINS = 'EACH'.
    ENDIF.
    MODIFY IT_MLGT INDEX V_TABIX.
  ENDLOOP.

ENDFORM.                    " convert_to_cases

Thanks,

Suma.

Read only

Former Member
0 Likes
736

Hi Deniz,

Use ALV grid function module instead of ALV list FM. It is almost same.

REUSE_ALV_GRID_DISPLAY

Thanks,

Suma.

Read only

Former Member
0 Likes
736

hi,

check the example

REPORT ZSR_ALV_GRID.

&----


*& declaratin of table *

*& *

&----


TABLES : lfa1.

&----


  • declaraing selectoptions *

&----


SELECT-OPTIONS : s_lifnr FOR lfa1-lifnr.

&----


  • declaraing internal table *

&----


DATA : BEGIN OF itab OCCURS 0,

lifnr LIKE lfa1-lifnr,

land1 LIKE lfa1-land1,

name1 LIKE lfa1-name1,

END OF itab.

&----


  • declaraing TYPEPOLL SLIS *

&----


TYPE-POOLS : slis.

DATA : b_lfa1 TYPE slis_t_fieldcat_alv,

w_lfa1 TYPE slis_fieldcat_alv.

&----


  • CALLING SUBROUTINE FOR DISPLAYING COLUM HEADINGS

&----


PERFORM GET_VAL.

START-OF-SELECTION.

&----


  • retrieving data from lfa1*

&----


SELECT lifnr

land1

name1

FROM lfa1

INTO TABLE itab

WHERE lifnr IN s_lifnr.

*CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

*EXPORTING

  • I_PROGRAM_NAME = SY-REPID

    • I_INTERNAL_TABNAME =

  • I_STRUCTURE_NAME = 'LFA1'

    • I_CLIENT_NEVER_DISPLAY = 'X'

    • I_INCLNAME =

    • I_BYPASSING_BUFFER =

    • I_BUFFER_ACTIVE =

  • CHANGING

  • ct_fieldcat = B_LFA1

    • 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.

&----


  • calling fn modlue alv_grid_display

&----


  • CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

i_callback_program = sy-repid

  • 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 = 'lfa1'

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

it_fieldcat = b_lfa1

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.

&----


*& Form GET_VAL

&----


FORM get_val .

w_lfa1-fieldname = 'LIFNR'.

w_lfa1-ref_tabname = 'LFA1'.

w_lfa1-ref_fieldname = 'LIFNR' .

APPEND w_lfa1 TO b_lfa1.

w_lfa1-fieldname = 'LAND1'.

w_lfa1-ref_tabname = 'LFA1'.

w_lfa1-ref_fieldname = 'LAND1' .

APPEND w_lfa1 TO b_lfa1.

w_lfa1-fieldname = 'NAME1'.

w_lfa1-ref_tabname = 'LFA1'.

w_lfa1-ref_fieldname = 'NAME1' .

APPEND w_lfa1 TO b_lfa1.

ENDFORM. " GET_VAL

Read only

0 Likes
736

http://www.sapdevelopment.co.uk/reporting/alv/alvgrid.htm

<u><b>Dont forget to reward if uesful</b></u>

Regards,

Sudheer