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

List In grid control

Former Member
0 Likes
761

Hi,

wher i fill the field for list in grid control?

Thanks,Rayeez

6 REPLIES 6
Read only

Former Member
0 Likes
714

Hi

You have to fill the catalog table and move it to the method SET_TABLE_FOR_FIRST_DISPLAY.

See programs demo BCALV*

Max

Read only

Former Member
0 Likes
714

hi

chk this code

TYPE-POOLS : SLIS.

TABLES:

VBRK,

VBRP.

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

SELECT-OPTIONS:

S_VBELN FOR VBRK-VBELN.

SELECTION-SCREEN END OF BLOCK B1.

DATA: BEGIN OF IT_VBRP OCCURS 0,

VBELN LIKE VBRK-VBELN,

POSNR LIKE VBRP-POSNR,

UEPOS LIKE VBRP-UEPOS,

FKIMG LIKE VBRP-FKIMG,

NETWR LIKE VBRP-NETWR,

MEINS LIKE VBRP-MEINS.

DATA : END OF IT_VBRP.

DATA : GR_ALVGRID TYPE REF TO CL_GUI_ALV_GRID,

GC_CUSTOM_CONTROL_NAME TYPE SCRFNAME VALUE 'CC_ALV',

GR_CCONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,

GT_FIELDCAT TYPE LVC_T_FCAT,

GS_LAYOUT TYPE LVC_S_LAYO,

V_FLAG VALUE 'X'.

INITIALIZATION.

S_VBELN-LOW = 1.

S_VBELN-HIGH = 1000000000.

S_VBELN-OPTION = 'EQ'.

S_VBELN-SIGN = 'I'.

APPEND S_VBELN.

AT SELECTION-SCREEN.

PERFORM VALIDATION.

START-OF-SELECTION.

----


PERFORM GET_DATA.

CALL SCREEN 0100.

TOP-OF-PAGE.

END-OF-PAGE.

----


----


  • AT USER-COMMAND *

&----


*& Form VALIDATION

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM VALIDATION .

SELECT SINGLE VBELN

FROM VBRK

INTO VBRK-VBELN

WHERE VBELN IN S_VBELN.

IF SY-SUBRC <> 0.

MESSAGE E000 WITH 'no billing documents found'.

ENDIF.

ENDFORM. " VALIDATION

&----


*& Form GET_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_DATA .

SELECT VBELN

POSNR

UEPOS

FKIMG

NETWR

MEINS

FROM VBRP

INTO TABLE IT_VBRP

WHERE VBELN IN S_VBELN.

ENDFORM. " GET_DATA

&----


*& Module DISPLAY_ALV OUTPUT

&----


  • text

----


MODULE DISPLAY_ALV OUTPUT.

IF V_FLAG = 'X'.

PERFORM DISPLAY_ALV.

PERFORM PREPARE_FIELD_CATALOG CHANGING GT_FIELDCAT.

PERFORM PREPARE_LAYOUT CHANGING GS_LAYOUT.

CALL METHOD GR_ALVGRID-><b>SET_TABLE_FOR_FIRST_DISPLAY</b> EXPORTING

  • I_BUFFER_ACTIVE =

  • I_BYPASSING_BUFFER =

  • I_CONSISTENCY_CHECK =

  • I_STRUCTURE_NAME = 'VBRP'

  • IS_VARIANT =

  • I_SAVE =

  • I_DEFAULT = 'X'

IS_LAYOUT = GS_LAYOUT

  • IS_PRINT =

  • IT_SPECIAL_GROUPS =

  • IT_TOOLBAR_EXCLUDING =

  • IT_HYPERLINK =

  • IT_ALV_GRAPHICS =

  • IT_EXCEPT_QINFO =

CHANGING

IT_OUTTAB = IT_VBRP[]

IT_FIELDCATALOG = GT_FIELDCAT

  • IT_SORT =

  • IT_FILTER =

EXCEPTIONS

INVALID_PARAMETER_COMBINATION = 1

PROGRAM_ERROR = 2

TOO_MANY_LINES = 3

OTHERS = 4

.

IF SY-SUBRC <> 0.

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

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

CALL METHOD GR_ALVGRID->SET_READY_FOR_INPUT

EXPORTING

I_READY_FOR_INPUT = 1.

ELSE.

CALL METHOD GR_ALVGRID->REFRESH_TABLE_DISPLAY

  • EXPORTING

  • IS_STABLE =

  • I_SOFT_REFRESH =

EXCEPTIONS

FINISHED = 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.

ENDIF.

CLEAR V_FLAG.

ENDIF.

ENDMODULE. " DISPLAY_ALV OUTPUT

&----


*& Form DISPLAY_ALV

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM DISPLAY_ALV .

IF GR_ALVGRID IS INITIAL.

CREATE OBJECT GR_ALVGRID

EXPORTING

  • I_SHELLSTYLE = 0

  • I_LIFETIME =

I_PARENT = GR_CCONTAINER

  • I_APPL_EVENTS = space

  • I_PARENTDBG =

  • I_APPLOGPARENT =

  • I_GRAPHICSPARENT =

  • I_NAME =

EXCEPTIONS

ERROR_CNTL_CREATE = 1

ERROR_CNTL_INIT = 2

ERROR_CNTL_LINK = 3

ERROR_DP_CREATE = 4

OTHERS = 5

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

ENDIF.

ENDFORM. " DISPLAY_ALV

&----


*& Form PREPARE_FIELD_CATALOG

&----


  • text

----


  • <--P_GT_FIELDCAT text

----


FORM PREPARE_FIELD_CATALOG CHANGING P_GT_FIELDCAT TYPE LVC_T_FCAT.

DATA : LS_FCAT TYPE LVC_S_FCAT,

L_POS TYPE I.

L_POS = L_POS + 1.

LS_FCAT-FIELDNAME = 'VBELN'.

LS_FCAT-TABNAME = 'IT_VBRP'.

LS_FCAT-COL_POS = L_POS.

LS_FCAT-SCRTEXT_M = 'Billing Document'.

LS_FCAT-OUTPUTLEN = '10'.

APPEND LS_FCAT TO P_GT_FIELDCAT.

CLEAR LS_FCAT.

L_POS = L_POS + 1.

LS_FCAT-FIELDNAME = 'POSNR'.

LS_FCAT-TABNAME = 'IT_VBRP'.

LS_FCAT-COL_POS = L_POS.

LS_FCAT-SCRTEXT_M = 'Billing Item'.

LS_FCAT-OUTPUTLEN = '6'.

APPEND LS_FCAT TO P_GT_FIELDCAT.

CLEAR LS_FCAT.

L_POS = L_POS + 1.

LS_FCAT-FIELDNAME = 'UEPOS'.

LS_FCAT-TABNAME = 'IT_VBRP'.

LS_FCAT-COL_POS = L_POS.

LS_FCAT-SCRTEXT_M = 'Higher Level Item'.

LS_FCAT-OUTPUTLEN = '6'.

APPEND LS_FCAT TO P_GT_FIELDCAT.

CLEAR LS_FCAT.

L_POS = L_POS + 1.

LS_FCAT-FIELDNAME = 'FKIMG'.

LS_FCAT-TABNAME = 'IT_VBRP'.

LS_FCAT-COL_POS = L_POS.

LS_FCAT-SCRTEXT_M = 'Invoice Quantity'.

LS_FCAT-OUTPUTLEN = '13'.

APPEND LS_FCAT TO P_GT_FIELDCAT.

CLEAR LS_FCAT.

L_POS = L_POS + 1.

LS_FCAT-FIELDNAME = 'NETWR'.

LS_FCAT-TABNAME = 'IT_VBRP'.

LS_FCAT-COL_POS = L_POS.

LS_FCAT-SCRTEXT_M = 'Net Value'.

LS_FCAT-OUTPUTLEN = '15'.

APPEND LS_FCAT TO P_GT_FIELDCAT.

CLEAR LS_FCAT.

L_POS = L_POS + 1.

LS_FCAT-FIELDNAME = 'MEINS'.

LS_FCAT-TABNAME = 'IT_VBRP'.

LS_FCAT-COL_POS = L_POS.

LS_FCAT-SCRTEXT_M = 'Unit of Measure'.

LS_FCAT-OUTPUTLEN = '3'.

APPEND LS_FCAT TO P_GT_FIELDCAT.

CLEAR LS_FCAT.

L_POS = L_POS + 1.

ENDFORM. " PREPARE_FIELD_CATALOG

&----


*& Form PREPARE_LAYOUT

&----


  • text

----


  • <--P_GS_LAYOUT text

----


FORM PREPARE_LAYOUT CHANGING P_GS_LAYOUT TYPE LVC_S_LAYO.

P_GS_LAYOUT-ZEBRA = 'X'.

P_GS_LAYOUT-GRID_TITLE = 'INVOICE DETAILS'.

P_GS_LAYOUT-SMALLTITLE = 'X'.

P_GS_LAYOUT-EDIT = 'X'.

ENDFORM. " PREPARE_LAYOUT

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE STATUS_0100 OUTPUT.

SET PF-STATUS 'CANCEL'.

  • SET TITLEBAR 'xxx'.

ENDMODULE. " STATUS_0100 OUTPUT

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE USER_COMMAND_0100 INPUT.

CASE SY-UCOMM.

WHEN 'BACK'.

LEAVE TO SCREEN 0.

WHEN 'CANCEL'.

LEAVE TO SCREEN 0.

WHEN 'EXIT'.

CALL TRANSACTION 'SE38'.

WHEN 'CHANGE'.

IF GR_ALVGRID->IS_READY_FOR_INPUT( ) = 0.

CALL METHOD GR_ALVGRID->SET_READY_FOR_INPUT

EXPORTING

I_READY_FOR_INPUT = 1.

ELSE.

CALL METHOD GR_ALVGRID->SET_READY_FOR_INPUT

EXPORTING

I_READY_FOR_INPUT = 0.

ENDIF.

ENDCASE.

ENDMODULE.

Read only

Former Member
0 Likes
714

Hi,

Refer the link below. It has everything related to ALV.

http://sapfans.com/forums/viewtopic.php?t=94198&sid=faa1b3ecd13879a721df1236e7dbc182

<b>Reward points if it helps.</b>

Read only

Former Member
0 Likes
714

hi check this lnk it's gud tutorial for beginners.

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

Please reward for the same.

Read only

Former Member
0 Likes
714

Hi,

you have to fill the fieldcatalog using the FM or manually and pass it to <b>SET_TABLE_FOR_FIRST_DISPLAY</b>

check the sample program <b>BCALV_EDIT_01.</b>

Regards

vijay

Read only

aris_hidalgo
Contributor
0 Likes
714

Hi Rayeezuddin,

Below is an example. You would fill the field to be outputted in the display in fieldcat as shown below:

PERFORM display_alv.

FORM display_alv.

sort order_details by vbeln posnr.

  • PERFORM f_build_comment USING gt_list_top_of_page[].

PERFORM f_build_layout USING gs_layout.

PERFORM f_init_fieldcat USING gt_fieldcat[].

PERFORM f_init_events USING 'TOP' gt_events[].

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = g_repid

i_callback_top_of_page = 'TOP_OF_PAGE'

i_callback_user_command = 'USER_COMMAND'

is_layout = gs_layout

it_fieldcat = gt_fieldcat[]

it_events = gt_events[]

i_save = 'X'

  • it_sort = gt_sort

TABLES

t_outtab = order_details

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

----


  • FORM top_of_page *

----


  • ........ *

----


  • --> %TOP_OF_PAGE *

----


FORM top_of_page.

*ALV Header declarations

DATA: t_header TYPE slis_t_listheader,

wa_header TYPE slis_listheader,

t_line LIKE wa_header-info,

lv_title(60),

lv_user(60),

lv_date(10),

lv_time(10),

lv_time_n_date(30),

lv_dlr_n_desc(100),

ld_lines TYPE i,

ld_linesc(10) TYPE c.

  • Title

CLEAR: lv_title, wa_header.

MOVE sy-title TO lv_title.

wa_header-typ = 'H'.

wa_header-info = lv_title.

APPEND wa_header TO t_header.

CLEAR wa_header.

  • User

CLEAR: lv_user, wa_header.

CONCATENATE: 'Generated by:' sy-uname

INTO lv_user SEPARATED BY space.

wa_header-typ = 'A'.

wa_header-info = lv_user.

APPEND wa_header TO t_header.

CLEAR wa_header.

*Date and time

CLEAR: lv_date, lv_time.

WRITE: sy-datum TO lv_date MM/DD/YYYY,

sy-uzeit TO lv_time USING EDIT MASK '__:__:__'.

CONCATENATE: 'Generated on:' lv_date lv_time

INTO lv_time_n_date SEPARATED BY space.

wa_header-typ = 'A'.

wa_header-info = lv_time_n_date.

APPEND wa_header TO t_header.

CLEAR wa_header.

*Dealer code and description

CONCATENATE: 'Dealer:' p_dcode p_name1

INTO lv_dlr_n_desc SEPARATED BY space.

wa_header-typ = 'A'.

wa_header-info = lv_dlr_n_desc.

APPEND wa_header TO t_header.

CLEAR wa_header.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = t_header.

ENDFORM. " TOP_OF_PAGE

----


  • FORM f_build_layout *

----


  • ........ *

----


  • --> %LAYOUT *

----


FORM f_build_layout USING %layout TYPE slis_layout_alv.

%layout-zebra = 'X'.

%layout-colwidth_optimize = 'X'.

ENDFORM. " F_BUILD_LAYOUT

----


  • FORM f_init_fieldcat *

----


  • ........ *

----


  • --> %FIELDCAT *

----


FORM f_init_fieldcat USING %fieldcat TYPE slis_t_fieldcat_alv.

DATA: lc_fieldcat TYPE slis_fieldcat_alv.

CLEAR lc_fieldcat.

DEFINE m_field.

add 1 to lc_fieldcat-col_pos.

lc_fieldcat-fieldname = &1.

lc_fieldcat-outputlen = &2.

lc_fieldcat-seltext_l = &3.

lc_fieldcat-do_sum = &4.

lc_fieldcat-inttype = &5.

lc_fieldcat-hotspot = &6.

lc_fieldcat-fix_column = &7.

lc_fieldcat-just = &8.

lc_fieldcat-decimals_out = '0'.

lc_fieldcat-ddictxt = 'L'.

lc_fieldcat-no_zero = 'X'.

append lc_fieldcat to %fieldcat.

END-OF-DEFINITION.

m_field 'VBELN' '10' 'Ref Doc' '' '' 'X' '' ''.

m_field 'POSNR' '06' 'Item' '' '' '' '' ''.

m_field 'MATNR' '18' 'Material' '' '' '' '' ''.

m_field 'ARKTX' '40' 'Description' '' '' '' '' ''.

m_field 'KWMENG' '15' 'Quantity' '' '' '' '' 'R'.

m_field 'ZIEME' '3' 'UM' '' '' '' '' ''.

m_field 'LS_LINES2' '132' 'Ship-To' '' '' '' '' ''.

m_field 'LS_LINES3' '132' 'Contact Person' '' '' '' '' ''.

m_field 'LS_LINES4' '132' 'Contact Number' '' '' '' '' ''.

ENDFORM. " f_init_fieldcat

----


  • FORM f_init_events *

----


  • ........ *

----


  • --> P_TYPE *

  • --> %EVENTS *

----


FORM f_init_events USING p_type CHANGING %events TYPE slis_t_event.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = %events

EXCEPTIONS

list_type_wrong = 1

OTHERS = 2.

IF sy-subrc = 0.

PERFORM f_build_events USING: slis_ev_user_command.

IF p_type = 'TOP'.

PERFORM f_build_events USING: gc_top.

  • ELSEIF p_type = 'SUM'.

  • PERFORM f_build_events_sum USING: gc_topsum.

ENDIF.

ELSE.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM. " F_INIT_EVENTS

----


  • FORM f_build_events *

----


  • ........ *

----


  • --> %EVENT *

----


FORM f_build_events USING %event.

READ TABLE gt_events WITH KEY name = %event.

IF sy-subrc = 0.

MOVE: %event TO gt_events-form.

  • MOVE 'USER_COMMAND' TO gt_events-form.

MODIFY gt_events INDEX sy-tabix.

ENDIF.

ENDFORM. " F_BUILD_EVENTS

----


  • FORM top_of_page *

----


  • ........ *

----


*AVH - start of modification - 05/17/06

**use this header if ALV_LIST_DISPLAY will be used

FORM top-of-page.

  • CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

  • EXPORTING

  • it_list_commentary = gt_list_top_of_page.

WRITE: sy-title,

/ 'Generated by:', sy-uname,

/ 'Generated on:', sy-datum MM/DD/YYYY, sy-uzeit USING

EDIT MASK '__:__:__'.

SKIP 1.

WRITE: / 'Dealer', AT 13 ':' , p_dcode, p_name1.

ENDFORM.

----


  • FORM user_command *

----


  • ........ *

----


  • --> P_UCOMM *

  • --> P_SELFIELD *

----


FORM user_command USING p_ucomm LIKE sy-ucomm

p_selfield TYPE slis_selfield.

CASE p_ucomm.

WHEN '&IC1'.

IF p_selfield-fieldname = 'VBELN'.

SET PARAMETER ID 'AUN' FIELD p_selfield-value.

CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.

ENDIF.

ENDCASE.

ENDFORM. " user_command

----


  • FORM f_init_sort *

----


  • ........ *

----


  • --> %SORT *

----


FORM f_init_sort USING %sort TYPE slis_t_sortinfo_alv.

DATA: gs_sort TYPE slis_sortinfo_alv.

CLEAR gs_sort.

gs_sort-fieldname = 'VBELN'.

gs_sort-up = 'X'.

gs_sort-spos = 1.

APPEND gs_sort TO %sort.

CLEAR gs_sort.

gs_sort-fieldname = 'POSNR'.

gs_sort-up = 'X'.

gs_sort-spos = 2.

APPEND gs_sort TO %sort.