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

Former Member
0 Likes
752

Hi,

i really can't figure out what is wrong. i can't steer alv gird in a way to have possibility to set/change layout. I can olny get icon, which opens window where i can choose saved layout (couse i'm not able to save layouts so i can't choose any layout). What i have is:

  • setting alv grid for first display

CALL METHOD gr_alv_grid->set_table_for_first_display

EXPORTING

  • is_variant = ls_variant

i_save = 'A'

i_default = 'X'

  • is_layout = ls_layout

  • it_toolbar_excluding = lt_exclude_butt

CHANGING

it_outtab = gt_prestduso_alv

it_fieldcatalog = lt_fieldcatalog

it_sort = lt_sort

I you'll have any ideas please help me.

Thanks

Juzio

3 REPLIES 3
Read only

Former Member
0 Likes
597

Hello.

check the sample program

-


REPORT Zreprt.

DATA:

gd_okcode TYPE ui_func,

*

gt_fcat TYPE lvc_t_fcat,

go_docking TYPE REF TO cl_gui_docking_container,

go_grid1 TYPE REF TO cl_gui_alv_grid.

DATA:

gt_knb1 TYPE STANDARD TABLE OF knb1.

PARAMETERS:

p_bukrs TYPE bukrs DEFAULT '2000' OBLIGATORY.

----


  • CLASS lcl_eventhandler DEFINITION

----


*

----


CLASS lcl_eventhandler DEFINITION.

PUBLIC SECTION.

CLASS-DATA:

ms_row TYPE lvc_s_row.

CLASS-METHODS:

handle_context_menu_request

FOR EVENT context_menu_request OF cl_gui_alv_grid

IMPORTING

e_object " type ref to cl_ctmenu

sender,

handle_user_command

FOR EVENT user_command OF cl_gui_alv_grid

IMPORTING

e_ucomm

sender.

ENDCLASS. "lcl_eventhandler DEFINITION

----


  • CLASS lcl_eventhandler IMPLEMENTATION

----


*

----


CLASS lcl_eventhandler IMPLEMENTATION.

METHOD handle_user_command.

  • define local data

DATA:

ls_knb1 TYPE knb1,

ls_col_id TYPE lvc_s_col.

CHECK ( e_ucomm = 'XD03' ).

READ TABLE gt_knb1 INTO ls_knb1 INDEX ms_row-index.

CHECK ( ls_knb1-kunnr IS NOT INITIAL ).

SET PARAMETER ID 'KUN' FIELD ls_knb1-kunnr.

SET PARAMETER ID 'BUK' FIELD ls_knb1-bukrs.

CALL TRANSACTION 'XD03' AND SKIP FIRST SCREEN.

ENDMETHOD. "handle_user_command

METHOD handle_context_menu_request.

  • define local data

DATA:

lt_rows TYPE lvc_t_row.

CLEAR: ms_row.

CALL METHOD go_grid1->get_selected_rows

IMPORTING

et_index_rows = lt_rows.

READ TABLE lt_rows INTO ms_row INDEX 1.

e_object->add_separator( ).

CALL METHOD e_object->add_function

EXPORTING

fcode = 'XD03'

text = 'Display Customer'

  • ICON =

  • FTYPE =

  • DISABLED =

  • HIDDEN =

  • CHECKED =

  • ACCELERATOR =

.

ENDMETHOD. "handle_context_menu_request

ENDCLASS. "lcl_eventhandler IMPLEMENTATION

START-OF-SELECTION.

SELECT * FROM knb1 INTO TABLE gt_knb1

WHERE bukrs = p_bukrs.

  • Create docking container

CREATE OBJECT go_docking

EXPORTING

parent = cl_gui_container=>screen0

ratio = 90

EXCEPTIONS

OTHERS = 6.

IF sy-subrc <> 0.

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

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

ENDIF.

  • Create ALV grid

CREATE OBJECT go_grid1

EXPORTING

i_parent = go_docking

EXCEPTIONS

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.

  • Set event handler

SET HANDLER:

lcl_eventhandler=>handle_user_command FOR go_grid1,

lcl_eventhandler=>handle_context_menu_request for go_grid1.

  • Build fieldcatalog and set hotspot for field KUNNR

PERFORM build_fieldcatalog_knb1.

  • Display data

CALL METHOD go_grid1->set_table_for_first_display

CHANGING

it_outtab = gt_knb1

it_fieldcatalog = gt_fcat

EXCEPTIONS

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.

ENDIF.

  • Link the docking container to the target dynpro

CALL METHOD go_docking->link

EXPORTING

repid = syst-repid

dynnr = '0100'

  • CONTAINER =

EXCEPTIONS

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.

ENDIF.

  • ok-code field = GD_OKCODE

CALL SCREEN '0100'.

  • NOTE: no dynpro elements on screen. Flow logic as shown below:

*PROCESS BEFORE OUTPUT.

  • MODULE STATUS_0100.

**

*PROCESS AFTER INPUT.

  • MODULE USER_COMMAND_0100.

END-OF-SELECTION.

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE status_0100 OUTPUT.

SET PF-STATUS 'STATUS_0100'.

  • SET TITLEBAR 'xxx'.

ENDMODULE. " STATUS_0100 OUTPUT

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE user_command_0100 INPUT.

CASE gd_okcode.

WHEN 'BACK' OR

'END' OR

'CANC'.

SET SCREEN 0. LEAVE SCREEN.

WHEN OTHERS.

ENDCASE.

CLEAR: gd_okcode.

ENDMODULE. " USER_COMMAND_0100 INPUT

&----


*& Form BUILD_FIELDCATALOG_KNB1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build_fieldcatalog_knb1 .

  • define local data

DATA:

ls_fcat TYPE lvc_s_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.

  • LOOP AT gt_fcat INTO ls_fcat

  • WHERE ( fieldname = 'KUNNR' OR

  • fieldname = 'ERNAM' ).

  • ls_fcat-hotspot = abap_true.

  • MODIFY gt_fcat FROM ls_fcat.

  • ENDLOOP.

ENDFORM. " BUILD_FIELDCATALOG_KNB1

Read only

former_member194669
Active Contributor
0 Likes
597

Hi,

Check

ls_variant-report = sy-repid.

and pass ls_variant in set_table_for_first_display

aRs

Read only

Former Member
0 Likes
597

Hi,

check this

call function 'REUSE_ALV_GRID_DISPLAY'

exporting

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

i_callback_program = v_repid

i_callback_pf_status_set = 'SET_PF_STATUS_DELE'

i_callback_user_command = 'USER_COMMAND_DELE'

i_callback_top_of_page = 'TOP_OF_PAGE'

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

i_grid_title = phy_title

  • I_GRID_SETTINGS =

is_layout = s_layout

it_fieldcat = t_fieldcatalog_dele[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

it_events = it_events_dele

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IT_ALV_GRAPHICS =

  • IT_ADD_FIELDCAT =

  • IT_HYPERLINK =

  • I_HTML_HEIGHT_TOP =

  • I_HTML_HEIGHT_END =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

tables

t_outtab = it_ztable

exceptions

program_error = 1

others = 2

.

Thanks

venki