Skip to Content
0
Former Member
Nov 24, 2006 at 07:22 AM

To Load ALV Layout in report selection screen

605 Views

Hi...

I want the selection screen option for user so that he can select any of the saved layouts.

I have done some coding after refering to some threads in here.But I can't proceed further...plz help

<b>selection screen</b>

SELECTION-SCREEN BEGIN OF BLOCK 006 WITH FRAME TITLE text-006.

PARAMETERS: p_layout LIKE disvariant-variant. " layout

SELECTION-SCREEN END OF BLOCK 006.

<b>data declarations</b>

DATA: wa_variant TYPE disvariant.

DATA: w_variant_save TYPE c VALUE 'A'.

DATA: gs_variant TYPE disvariant.

DATA: gs_layout TYPE lvc_s_layo.

DATA: g_repid LIKE sy-repid.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_layout.

PERFORM variant_input_help.

FORM variant_input_help .

DATA: tl_dynpfields TYPE TABLE OF dynpread.

DATA: wl_exit TYPE c.

DATA: wal_variant LIKE wa_variant.

DATA: wal_dynpfields TYPE dynpread.

  • Get values from the selection screen to determine layout set

wal_dynpfields-fieldname = p_layout.

APPEND wal_dynpfields TO tl_dynpfields.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

DYNAME = sy-cprog

DYNUMB = '1000'

  • TRANSLATE_TO_UPPER = ' '

  • REQUEST = ' '

  • PERFORM_CONVERSION_EXITS = ' '

  • PERFORM_INPUT_CONVERSION = ' '

  • DETERMINE_LOOP_INDEX = ' '

TABLES

DYNPFIELDS = tl_dynpfields

  • EXCEPTIONS

  • INVALID_ABAPWORKAREA = 1

  • INVALID_DYNPROFIELD = 2

  • INVALID_DYNPRONAME = 3

  • INVALID_DYNPRONUMMER = 4

  • INVALID_REQUEST = 5

  • NO_FIELDDESCRIPTION = 6

  • INVALID_PARAMETER = 7

  • UNDEFIND_ERROR = 8

  • DOUBLE_CONVERSION = 9

  • STEPL_NOT_FOUND = 10

  • OTHERS = 11

.

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 tl_dynpfields INTO wal_dynpfields.

CASE wal_dynpfields-fieldname.

WHEN 'p_layout'.

wa_variant-variant = wal_dynpfields-fieldvalue.

ENDCASE.

ENDLOOP.

wa_variant-report = sy-repid.

wa_variant-variant = p_layout.

wa_variant-username = sy-uname.

**Invoke function to provide drop down entries

CALL FUNCTION 'REUSE_ALV_VARIANT_F4'

EXPORTING

IS_VARIANT = wa_variant

  • I_TABNAME_HEADER =

  • I_TABNAME_ITEM =

  • IT_DEFAULT_FIELDCAT =

I_SAVE = w_variant_save

  • I_DISPLAY_VIA_GRID = ' '

IMPORTING

E_EXIT = wl_exit

ES_VARIANT = wal_variant

EXCEPTIONS

NOT_FOUND = 1

PROGRAM_ERROR = 2

OTHERS = 3

.

IF SY-SUBRC IS INITIAL.

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

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

IF wl_exit IS INITIAL.

p_layout = wal_variant-variant.

ENDIF.

ELSE.

message I033 WITH TEXT-034.

ENDIF.

*gs_variant-variant = p_layout.

*gs_variant-report = sy-repid.

FREE: tl_dynpfields.

g_repid = sy-repid.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = g_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 =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

<b>IS_LAYOUT </b> = <b>??</b>

<b> IT_FIELDCAT = ??</b>

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

IS_VARIANT = wal_variant

  • IT_EVENTS =

  • 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

  • I_HTML_HEIGHT_TOP = 0

  • I_HTML_HEIGHT_END = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • IR_SALV_FULLSCREEN_ADAPTER =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

<b>T_OUTTAB = </b><b>??</b>

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

wat steps shud i take