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: 

I WANT TO LEARN ALV GRID

Former Member
0 Kudos

I WANT TO LEARN ALV GRID CAN U TELL ME WHICH ONE WILL BE GOOD TO LEARN AND REFER.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

check * BCALV * programme in se38.

5 REPLIES 5

Former Member
0 Kudos

check * BCALV * programme in se38.

Former Member
0 Kudos

Hi,

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

Check this for basic concepts of OOPS

https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/abap/abap%20...

https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/abap/abap%20...

Tabstrip

https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/abap/abap%20...

Editable ALV

https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/abap/abap%20...

Tree

http://www.sapdevelopment.co.uk/reporting/alv/alvtree/alvtree_usrint.htm

General Tutorial for OOPS

https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/abap/an%20ea...

http://www.sapdevelopment.co.uk/reporting/alvhome.htm

http://www.sap-img.com/abap/what-is-alv-programming.htm

http://www.sap-img.com/abap-function.htm

http://www.geocities.com/mpioud/Abap_programs.html

http://www.sapdevelopment.co.uk/reporting/alv/alvtree%5Calvtree_basic.htm

http://esnips.com/doc/ad20dca9-6182-4903-8d8f-96a66dc8590c/ALV.pdf

http://www.sap-img.com/abap-function.htm

Thanks

VIkranth

Former Member
0 Kudos

Hi Ansuman,

Please check this link

http://www.geocities.com/mpioud/Z_ALV_LIST_TRANSPOSED_V2.html

CONSTANTS :
  c_x VALUE 'X'.
*---------------------------------------------------------------------*
TYPE-POOLS: slis.                      " ALV Global types

SELECTION-SCREEN :
BEGIN OF LINE, COMMENT 1(35) v_1 FOR FIELD p_table.         "#EC NEEDED
PARAMETERS p_table TYPE dd03l-tabname OBLIGATORY.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN :
  SKIP, BEGIN OF LINE,COMMENT 5(27) v_2 FOR FIELD p_max.    "#EC NEEDED
PARAMETERS p_max(2) TYPE n DEFAULT '10' OBLIGATORY.
SELECTION-SCREEN END OF LINE.

FIELD-SYMBOLS :
  <gt_data> TYPE STANDARD TABLE.       " Read Data

*---------------------------------------------------------------------*
INITIALIZATION.

  v_1 = 'Table or view'.
  v_2 = 'Maximum of records to read'.

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

  PERFORM f_check_table.

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

  PERFORM f_read_data.

*---------------------------------------------------------------------*
END-OF-SELECTION.

  PERFORM f_display_data.

*---------------------------------------------------------------------*
*      Form  f_read_data
*---------------------------------------------------------------------*
FORM f_read_data.

  DATA:
    lp_table TYPE REF TO data.         " Pointer to dynamic table

* Create internal table
  CREATE DATA lp_table TYPE STANDARD TABLE OF (p_table)
                       WITH NON-UNIQUE DEFAULT KEY.
  ASSIGN lp_table->* TO <gt_data>.

  SELECT * INTO CORRESPONDING FIELDS OF TABLE <gt_data>
             UP TO p_max ROWS
           FROM (p_table).

ENDFORM.                               " F_READ_DATA
*---------------------------------------------------------------------*
*      Form  F_DISPLAY_DATA
*---------------------------------------------------------------------*
FORM f_display_data.

  DATA:
    l_column    TYPE sy-tabix,
    lp_struct   TYPE REF TO data,
    lp_table    TYPE REF TO data,      " Pointer to dynamic table
    ls_lvc_cat  TYPE lvc_s_fcat,
    lt_lvc_cat  TYPE lvc_t_fcat,       " Field catalog
    lt_fcat     TYPE slis_t_fieldcat_alv,  " Field catalog
    ls_fieldcat TYPE slis_fieldcat_alv,
    lt_fieldcat TYPE slis_t_fieldcat_alv,  " Field catalog
    ls_layout   TYPE slis_layout_alv.

  FIELD-SYMBOLS :
    <ls_header>    TYPE ANY,
    <field_header> TYPE ANY,
    <field_data>   TYPE ANY,
    <ls_data>      TYPE ANY,
    <lt_data>      TYPE STANDARD TABLE." Data to display

  ls_lvc_cat-fieldname = 'COLUMNTEXT'.
  ls_lvc_cat-ref_table = 'LVC_S_DETA'.
  APPEND ls_lvc_cat TO lt_lvc_cat.

  ls_fieldcat-fieldname = 'COLUMNTEXT'.
  ls_fieldcat-ref_tabname = 'LVC_S_DETA'.
  ls_fieldcat-key  = c_x.
  APPEND ls_fieldcat TO lt_fieldcat.

  DESCRIBE TABLE <gt_data>.

  DO sy-tfill TIMES.
*   For each line, a column 'VALUEx' is created in the fieldcatalog
*   Build Fieldcatalog
    WRITE sy-index TO ls_lvc_cat-fieldname LEFT-JUSTIFIED.
    CONCATENATE 'VALUE' ls_lvc_cat-fieldname
           INTO ls_lvc_cat-fieldname.
    ls_lvc_cat-ref_field = 'VALUE'.
    ls_lvc_cat-ref_table = 'LVC_S_DETA'.
    APPEND ls_lvc_cat TO lt_lvc_cat.
*   Build Fieldcatalog
    CLEAR ls_fieldcat.
    ls_fieldcat-fieldname = ls_lvc_cat-fieldname.
    ls_fieldcat-ref_fieldname = 'VALUE'.
    ls_fieldcat-ref_tabname = 'LVC_S_DETA'.
    APPEND ls_fieldcat TO lt_fieldcat.
  ENDDO.

* Create internal table
  CALL METHOD cl_alv_table_create=>create_dynamic_table
    EXPORTING
      it_fieldcatalog = lt_lvc_cat
    IMPORTING
      ep_table        = lp_table.

  ASSIGN lp_table->* TO <lt_data>.

* Create structure = structure of the internal table
  CREATE DATA lp_struct LIKE LINE OF <lt_data>.
  ASSIGN lp_struct->* TO <ls_header>.

* Create structure = structure of the internal table
  CREATE DATA lp_struct LIKE LINE OF <gt_data>.
  ASSIGN lp_struct->* TO <ls_data>.

* Create field catalog from dictionary structure
  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
      i_structure_name       = p_table
    CHANGING
      ct_fieldcat            = lt_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.

  DESCRIBE TABLE lt_fcat.

* Fill the internal to display <lt_data>
  DO sy-tfill TIMES.
    IF sy-index = 1.
      READ TABLE lt_fcat INTO ls_fieldcat INDEX 1.
      IF ls_fieldcat-fieldname = 'MANDT'.
*       If 1st column is MANDT, it's not displayed
        CONTINUE.
      ENDIF.
    ENDIF.
*   For each field of GT_DATA
    ASSIGN COMPONENT 1 OF STRUCTURE <ls_header> TO <field_header>.
    IF sy-subrc NE 0. EXIT .ENDIF.
    READ TABLE lt_fcat INTO ls_fieldcat INDEX sy-index.
*   Fill 1st column
    <field_header> = ls_fieldcat-seltext_m.
    IF <field_header> IS INITIAL.
      <field_header> = ls_fieldcat-fieldname.
    ENDIF.

    LOOP AT <gt_data> INTO <ls_data>.
      l_column = sy-tabix + 1.
      ASSIGN COMPONENT sy-index OF STRUCTURE <ls_data> TO <field_data>.
      IF sy-subrc NE 0. EXIT .ENDIF.
      ASSIGN COMPONENT l_column OF STRUCTURE <ls_header> TO <field_header>.
      IF sy-subrc NE 0. EXIT .ENDIF.
      WRITE <field_data> TO <field_header> LEFT-JUSTIFIED.
    ENDLOOP.
    APPEND <ls_header> TO <lt_data>.
  ENDDO.

  ls_layout-zebra = c_x.
  ls_layout-no_colhead = c_x.
  ls_layout-colwidth_optimize = c_x.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      is_layout   = ls_layout
      it_fieldcat = lt_fieldcat
    TABLES
      t_outtab    = <lt_data>.

ENDFORM.                               " F_DISPLAY_DATA
*---------------------------------------------------------------------*
*      Form  F_CHECK_TABLE
*---------------------------------------------------------------------*
FORM f_check_table .

  DATA :
    l_tabclass  TYPE tabclass,            " Table category
    l_viewclass TYPE viewclass.           " View Type

* Read table category
  SELECT SINGLE tabclass viewclass
           INTO (l_tabclass, l_viewclass)
           FROM dd02l
          WHERE tabname  = p_table
            AND as4local = 'A'
            AND as4vers  = '0000'.
  IF sy-subrc NE 0.
*   Table & is not active in the Dictionary
    MESSAGE e402(mo) WITH p_table.
  ELSEIF l_tabclass = 'INTTAB'.
*   & is a structure, not a table
    MESSAGE e403(mo) WITH p_table.
  ELSEIF l_tabclass = 'VIEW' AND l_viewclass NE 'D'.
*   Only use views of type "Maintenance view"
    MESSAGE e309(sv).
  ENDIF.

ENDFORM.                    " F_CHECK_TABLE

Best regards,

raam

Former Member
0 Kudos

Hi,

You can find number of SAP standard programs for ALV grid.

Type : BCALV_GRID_* in SE38.

BCALV_GRID_02 is very simple program to refer.

Plz reward if useful.

Thanks,

Dhanashri

Edited by: Dhanashri Pawar on Jun 16, 2008 10:48 AM