Hi Experts
I trying to print following Program Using Standard ALV Print option. It 's going to dump. Pls help me
TABLES: mara,marce,makt,marc,zmpkg,t005t,z1ychclientid.
TYPE-POOLS: slis. "ALV Declarations
DATA : BEGIN OF it_mara OCCURS 0,
mandt LIKE mara-mandt, "Client
matnr LIKE mara-matnr,
meins LIKE mara-meins,
laeda LIKE mara-laeda,
aenam LIKE mara-aenam,
END OF it_mara.
DATA : BEGIN OF it_marc OCCURS 0,
matnr LIKE marc-matnr,
lvorm like mara-lvorm,
werks LIKE marc-werks,
END OF it_marc.
DATA : BEGIN OF it_makt OCCURS 0,
matnr LIKE makt-matnr,
maktx LIKE makt-maktx,
END OF it_makt.
DATA : BEGIN OF it_zmpkg OCCURS 0,
matnr LIKE makt-matnr,
zppqt LIKE zmpkg-zppqt,
zspqt LIKE zmpkg-zspqt,
zpmqt_3 LIKE zmpkg-zpmqt_3,
END OF it_zmpkg .
DATA: BEGIN OF it_mvke OCCURS 0,
matnr LIKE mvke-matnr,
vkorg LIKE mvke-vkorg,
scmng LIKE mvke-scmng,
END OF it_mvke.
DATA : BEGIN OF it_material OCCURS 0 ,
mandt(3),
werks(4),
matnr(19),
maktx(40),
meins(3),
zppqt(9),
zspqt(9),
zpmqt_3(9),
laeda(8),
aenam(12),
date(8),
time(8),
user(8),
file(150),
END OF it_material.
DATA : BEGIN OF it_material1 OCCURS 0 ,
mandt(3),
werks(4),
matnr(18),
maktx(40),
meins(3),
zppqt(9),
zspqt(9),
zpmqt_3(9),
laeda(8),
aenam(12),
date(8),
time(8),
user(8),
file(150),
END OF it_material1.
*ALV data declarations
DATA :gi_fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
gi_layout TYPE slis_layout_alv,
gi_repid LIKE sy-repid,
gi_events TYPE slis_t_event,
gi_prntparams TYPE slis_print_alv,
it_sort TYPE slis_t_sortinfo_alv,
wa_sort TYPE slis_sortinfo_alv,
lv_dtl01_lines(7) TYPE n,
g_alv_variant LIKE disvariant.
DATA: lw_header TYPE slis_t_listheader,
lw_line TYPE slis_listheader,
t_line LIKE lw_line-info,
ld_lines TYPE i,
ld_linesc(10) TYPE c.
DATA: BEGIN OF it_z1ychclientid OCCURS 0.
INCLUDE STRUCTURE z1ychclientid.
DATA: END OF it_z1ychclientid.
DATA lv_earliest_date LIKE sy-datum.
* Display Variants
data: gs_variant like disvariant,
gx_variant like disvariant,
g_save,
g_repid like sy-repid.
************************************************************************
* P a r a m e t e r s *
************************************************************************
*
* Start of tabbed screens
*
SELECTION-SCREEN BEGIN OF TABBED BLOCK list FOR 20 LINES.
SELECTION-SCREEN TAB (30) gc_gen USER-COMMAND gen_tab
DEFAULT SCREEN 1001.
SELECTION-SCREEN TAB (30) gc_outp USER-COMMAND outp_tab
DEFAULT SCREEN 1003.
SELECTION-SCREEN END OF BLOCK list.
SELECTION-SCREEN BEGIN OF SCREEN 1001 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK box01 WITH FRAME TITLE text-401.
*
PARAMETERS : p_werks LIKE marc-werks OBLIGATORY.
PARAMETERS : p_vkorg LIKE mvke-vkorg OBLIGATORY.
*
SELECT-OPTIONS : s_matnr FOR mara-matnr.
SELECT-OPTIONS : s_mtart FOR mara-mtart.
SELECT-OPTIONS : s_mmsta FOR marc-mmsta. "A01
SELECT-OPTIONS : s_dispo FOR marc-dispo.
SELECT-OPTIONS : s_beskz FOR marc-beskz.
SELECT-OPTIONS : s_lgpro FOR marc-lgpro.
SELECT-OPTIONS : s_lgfsb FOR marc-lgfsb.
SELECTION-SCREEN END OF BLOCK box01.
SELECTION-SCREEN END OF SCREEN 1001.
SELECTION-SCREEN BEGIN OF SCREEN 1003 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK box04 WITH FRAME TITLE text-402.
PARAMETERS : p_vari LIKE ltdxt-variant. " obligatory
*
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(31) text-009.
PARAMETERS: p_report RADIOBUTTON GROUP sel1 DEFAULT 'X'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(31) text-007.
PARAMETERS: p_extpc RADIOBUTTON GROUP sel1.
SELECTION-SCREEN END OF LINE.
PARAMETERS: p_pcfile LIKE rlgrap-filename
DEFAULT 'D:\PCCCPPPPMMM_YYYYMMDD_HHMMSS.XLS'.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(40) text-015.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK box04.
SELECTION-SCREEN END OF SCREEN 1003.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF screen-name = 'P_PCFILE'.
screen-input = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
************************************************************************
* I N I T I A L I Z A T I O N *
************************************************************************
INITIALIZATION.
gc_gen = text-401.
gc_outp = text-402.
************************************************************************
AT SELECTION-SCREEN.
************************************************************************
perform retrieve_client_id.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_pcfile.
PERFORM get-file.
AT SELECTION-SCREEN
ON VALUE-REQUEST FOR p_vari.
PERFORM get_variant_list.
START-OF-SELECTION.
SELECT SINGLE * FROM z1ychclientid INTO it_z1ychclientid . "WHERE werks = p_werks.
IF sy-subrc = 0.
* set the file name at runtime to prevent file over write
GET TIME.
* set up the file names 'D:\PCCCPPPPXXX_YYYYMMDD_HHMMSS.XLS'.
REPLACE 'D:\' WITH it_z1ychclientid-lcdrive INTO p_pcfile.
REPLACE 'PCCCPPPP' WITH it_z1ychclientid-prefix INTO p_pcfile.
REPLACE 'YYYYMMDD' WITH sy-datum INTO p_pcfile.
REPLACE 'HHMMSS' WITH sy-uzeit INTO p_pcfile.
ENDIF.
PERFORM get_data.
IF p_extpc = 'X'.
PERFORM download_data_pc.
ENDIF.
PERFORM build_gi_fieldcatalog_detail.
PERFORM build_sort.
PERFORM build_layout.
PERFORM build_events.
PERFORM display_alv_report.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_data.
SELECT matnr lvorm werks
FROM marc
INTO TABLE it_marc
WHERE matnr IN s_matnr
AND lvorm NE 'X'
AND werks = p_werks
AND mmsta IN s_mmsta
AND dispo IN s_dispo
AND beskz IN s_beskz
AND lgpro IN s_lgpro
AND lgfsb IN s_lgfsb.
if sy-subrc ne 0.
MESSAGE I408.
endif.
IF NOT it_marc[] IS INITIAL.
SELECT matnr vkorg scmng FROM
mvke INTO TABLE it_mvke
FOR ALL ENTRIES IN it_marc
WHERE matnr = it_marc-matnr
AND vkorg = p_vkorg.
IF NOT it_mvke[] IS INITIAL.
SELECT mandt matnr meins laeda aenam
FROM mara
INTO TABLE it_mara
FOR ALL ENTRIES IN it_mvke
WHERE matnr = it_mvke-matnr
AND mtart IN s_mtart.
endif.
IF NOT it_mara[] IS INITIAL.
SELECT matnr maktx
FROM makt
INTO TABLE it_makt
FOR ALL ENTRIES IN it_mara
WHERE matnr = it_mara-matnr
AND spras = 'E'.
endif.
SELECT matnr zppqt zspqt zpmqt_3
INTO TABLE it_zmpkg
FROM zmpkg
FOR ALL ENTRIES IN it_mara
WHERE matnr = it_mara-matnr
AND werks = p_werks.
ENDIF.
sort it_marc by matnr.
sort it_makt by matnr.
sort it_zmpkg by matnr.
LOOP AT it_mara.
it_material-mandt = it_mara-mandt.
it_material-matnr = it_mara-matnr.
it_material-meins = it_mara-meins.
it_material-laeda = it_mara-laeda.
it_material-aenam = it_mara-aenam.
it_material-date = sy-datum.
it_material-time = sy-uzeit.
it_material-user = sy-uname.
it_material-file = p_pcfile.
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'
EXPORTING
input = it_material-meins
IMPORTING
output = it_material-meins.
READ TABLE it_marc WITH KEY matnr = it_mara-matnr binary search.
IF sy-subrc EQ 0.
it_material-werks = it_marc-werks.
ENDIF.
READ TABLE it_makt WITH KEY matnr = it_mara-matnr binary search.
IF sy-subrc EQ 0.
it_material-maktx = it_makt-maktx.
ENDIF.
READ TABLE it_zmpkg WITH KEY matnr = it_mara-matnr binary search.
IF sy-subrc EQ 0.
it_material-zppqt = it_zmpkg-zppqt.
it_material-zspqt = it_zmpkg-zspqt.
it_material-zpmqt_3 = it_zmpkg-zpmqt_3.
ENDIF.
APPEND it_material.
CLEAR : it_material, it_marc, it_makt, it_zmpkg, it_mara.
ENDLOOP.
it_material1[] = it_material[].
ENDFORM. " GET_DATA
*&---------------------------------------------------------------------*
*& Form DOWNLOAD_DATA_PC
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM download_data_pc .
loop at it_material.
CONCATENATE '''' it_material-matnr into it_material-matnr.
modify it_material.
endloop.
CALL FUNCTION 'SAP_CONVERT_TO_XLS_FORMAT'
EXPORTING
I_FIELD_SEPERATOR = 'X'
i_filename = p_pcfile
tables
i_tab_sap_data = it_material
EXCEPTIONS
CONVERSION_FAILED = 1
OTHERS = 2
.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form BUILD_GI_FIELDCATALOG_DETAIL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM build_gi_fieldcatalog_detail .
gi_fieldcatalog-fieldname = 'MANDT'.
gi_fieldcatalog-tabname = 'IT_MATERIAL1'.
gi_fieldcatalog-seltext_m = 'Client'.
gi_fieldcatalog-col_pos = 01.
APPEND gi_fieldcatalog TO gi_fieldcatalog.
CLEAR gi_fieldcatalog.
gi_fieldcatalog-fieldname = 'WERKS'.
gi_fieldcatalog-tabname = 'IT_MATERIAL1'.
gi_fieldcatalog-seltext_m = 'Plant Code'.
gi_fieldcatalog-col_pos = 02.
APPEND gi_fieldcatalog TO gi_fieldcatalog.
CLEAR gi_fieldcatalog.
gi_fieldcatalog-fieldname = 'MATNR'.
gi_fieldcatalog-tabname = 'IT_MATERIAL1'.
gi_fieldcatalog-seltext_m = 'Product Code'.
gi_fieldcatalog-lzero = ' '.
gi_fieldcatalog-col_pos = 03.
APPEND gi_fieldcatalog TO gi_fieldcatalog.
CLEAR gi_fieldcatalog.
gi_fieldcatalog-fieldname = 'MAKTX'.
gi_fieldcatalog-tabname = 'IT_MATERIAL1'.
gi_fieldcatalog-seltext_m = 'Product Description'.
gi_fieldcatalog-col_pos = 04.
APPEND gi_fieldcatalog TO gi_fieldcatalog.
CLEAR gi_fieldcatalog.
gi_fieldcatalog-fieldname = 'MEINS'.
gi_fieldcatalog-tabname = 'IT_MATERIAL1'.
gi_fieldcatalog-seltext_m = 'Base Unit of Measure'.
gi_fieldcatalog-col_pos = 05.
APPEND gi_fieldcatalog TO gi_fieldcatalog.
CLEAR gi_fieldcatalog.
gi_fieldcatalog-fieldname = 'ZPPQT'.
gi_fieldcatalog-tabname = 'IT_MATERIAL1'.
gi_fieldcatalog-seltext_m = 'Carton Pack Size(Inner)'.
gi_fieldcatalog-col_pos = 06.
APPEND gi_fieldcatalog TO gi_fieldcatalog.
CLEAR gi_fieldcatalog.
gi_fieldcatalog-fieldname = 'ZSPQT'.
gi_fieldcatalog-tabname = 'IT_MATERIAL1'.
gi_fieldcatalog-seltext_m = 'Carton Pack Size(Outer)'.
gi_fieldcatalog-col_pos = 07.
APPEND gi_fieldcatalog TO gi_fieldcatalog.
CLEAR gi_fieldcatalog.
gi_fieldcatalog-fieldname = 'ZPMQT_3'.
gi_fieldcatalog-tabname = 'IT_MATERIAL1'.
gi_fieldcatalog-seltext_m = 'Carton Pack Size(Ship)'.
gi_fieldcatalog-col_pos = 08.
APPEND gi_fieldcatalog TO gi_fieldcatalog.
CLEAR gi_fieldcatalog.
gi_fieldcatalog-fieldname = 'LAEDA'.
gi_fieldcatalog-tabname = 'IT_MATERIAL1'.
gi_fieldcatalog-seltext_m = 'MM Last Update Date'.
gi_fieldcatalog-col_pos = 09.
APPEND gi_fieldcatalog TO gi_fieldcatalog.
CLEAR gi_fieldcatalog.
gi_fieldcatalog-fieldname = 'AENAM'.
gi_fieldcatalog-tabname = 'IT_MATERIAL1'.
gi_fieldcatalog-seltext_m = 'MM Last Update By'.
gi_fieldcatalog-col_pos = 10.
APPEND gi_fieldcatalog TO gi_fieldcatalog.
CLEAR gi_fieldcatalog.
gi_fieldcatalog-fieldname = 'DATE'.
gi_fieldcatalog-tabname = 'IT_MATERIAL1'.
gi_fieldcatalog-seltext_m = 'Extracted Date'.
gi_fieldcatalog-col_pos = 11.
APPEND gi_fieldcatalog TO gi_fieldcatalog.
CLEAR gi_fieldcatalog.
gi_fieldcatalog-fieldname = 'TIME'.
gi_fieldcatalog-tabname = 'IT_MATERIAL1'.
gi_fieldcatalog-seltext_m = 'Extracted Time'.
gi_fieldcatalog-col_pos = 12.
APPEND gi_fieldcatalog TO gi_fieldcatalog.
CLEAR gi_fieldcatalog.
gi_fieldcatalog-fieldname = 'USER'.
gi_fieldcatalog-tabname = 'IT_MATERIAL1'.
gi_fieldcatalog-seltext_m = 'Extracted By'.
gi_fieldcatalog-col_pos = 13.
APPEND gi_fieldcatalog TO gi_fieldcatalog.
CLEAR gi_fieldcatalog.
gi_fieldcatalog-fieldname = 'FILE'.
gi_fieldcatalog-tabname = 'IT_MATERIAL1'.
gi_fieldcatalog-seltext_m = 'File Name'.
gi_fieldcatalog-col_pos = 14.
APPEND gi_fieldcatalog TO gi_fieldcatalog.
CLEAR gi_fieldcatalog.
ENDFORM. " BUILD_GI_FIELDCATALOG_DETAIL
*&---------------------------------------------------------------------*
*& Form BUILD_SORT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM build_sort .
wa_sort-fieldname = 'WERKS'.
wa_sort-tabname = 'IT_MATERIAL1'.
wa_sort-up = 'X'.
APPEND wa_sort TO it_sort.
CLEAR wa_sort.
ENDFORM. " BUILD_SORT
*&---------------------------------------------------------------------*
*& Form BUILD_LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM build_layout .
gi_layout-no_input = 'X'.
gi_layout-colwidth_optimize = 'X'.
gi_layout-totals_text = 'Totals'(301).
gi_layout-f2code = 'DISP'. "Sets fcode for when double
ENDFORM. " BUILD_LAYOUT
*&---------------------------------------------------------------------*
*& Form BUILD_EVENTS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM build_events .
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = gi_events[].
READ TABLE gi_events WITH KEY name = slis_ev_end_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE 'END_OF_PAGE' TO ls_event-form.
APPEND ls_event TO gi_events.
ENDIF.
READ TABLE gi_events WITH KEY name = slis_ev_end_of_list
INTO ls_event.
IF sy-subrc = 0.
MOVE 'END_OF_LIST' TO ls_event-form.
APPEND ls_event TO gi_events.
ENDIF.
ENDFORM. " BUILD_EVENTS
*&---------------------------------------------------------------------*
*& Form BUILD_PRINT_PARAMS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM build_print_params .
gi_prntparams-reserve_lines = '3'. "Lines reserved for footer
gi_prntparams-no_coverpage = 'X'.
ENDFORM. " BUILD_PRINT_PARAMS
*&---------------------------------------------------------------------*
*& Form DISPLAY_ALV_REPORT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM display_alv_report .
gi_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = gi_repid
i_callback_top_of_page = 'TOP-OF-PAGE' "see FORM
i_callback_user_command = 'USER_COMMAND'
i_grid_title = 'Material Master Item Detail'
is_layout = gi_layout
it_sort = it_sort[]
it_fieldcat = gi_fieldcatalog[]
* it_special_groups = gd_tabgroup
it_events = gi_events
is_print = gi_prntparams
* i_save = 'X'
* is_variant = z_template
TABLES
t_outtab = it_material1
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
ENDIF.
ENDFORM. " DISPLAY_ALV_REPORT
*---------------------------------------------------------------------*
*FORM top-of-page.
*
** Program Title
* lw_line-typ = 'H'.
* lw_line-info = 'ITEM MASTER DATA'.
* APPEND lw_line TO lw_header.
* CLEAR lw_line.
*
**Displar Date.
* lw_line-typ = 'S'.
* lw_line-key = 'Date: '.
* CONCATENATE sy-datum+6(2) '/'
* sy-datum+4(2) '/'
* sy-datum(4) INTO lw_line-info. "todays date
* APPEND lw_line TO lw_header.
* CLEAR: lw_line.
*
* IF it_material[] IS NOT INITIAL.
* DESCRIBE TABLE it_material LINES ld_lines.
* ENDIF.
* ld_linesc = ld_lines.
* CONCATENATE 'Total No. of Records Selected: ' ld_linesc
* INTO t_line SEPARATED BY space.
* lw_line-typ = 'A'.
* lw_line-info = t_line.
* APPEND lw_line TO lw_header.
* CLEAR: lw_line, t_line.
*
** WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
* CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
* EXPORTING
* it_list_commentary = lw_header
* i_logo = 'MX100RD'.
*ENDFORM. "top-of-page
*---------------------------------------------------------------------*
FORM top-of-page.
CLEAR lw_header.
IF p_report = 'X'.
lw_line-typ = 'S'.
lw_line-key = text-018.
lw_line-info = text-009.
APPEND lw_line TO lw_header.
CLEAR lw_line.
ENDIF.
* Program Title
lw_line-typ = 'H'.
lw_line-info = 'ITEM MASTER DATA'.
APPEND lw_line TO lw_header.
CLEAR lw_line.
*Displar Date.
lw_line-typ = 'S'.
lw_line-key = 'Date: '.
CONCATENATE sy-datum+6(2) '/'
sy-datum+4(2) '/'
sy-datum(4) INTO lw_line-info. "todays date
APPEND lw_line TO lw_header.
CLEAR: lw_line.
IF it_material1[] IS NOT INITIAL.
DESCRIBE TABLE it_material LINES ld_lines.
ENDIF.
ld_linesc = ld_lines.
CONCATENATE 'Total No. of Records Selected: ' ld_linesc
INTO t_line SEPARATED BY space.
lw_line-typ = 'A'.
lw_line-info = t_line.
APPEND lw_line TO lw_header.
CLEAR: lw_line, t_line.
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = lw_header
i_logo = 'MX100RD'.
ENDFORM. "top-of-page
*--------------------------------------------
FORM end_of_page.
DATA: listwidth TYPE i,
ld_pagepos(10) TYPE c,
ld_page(10) TYPE c.
WRITE: sy-uline(50).
SKIP.
WRITE:/40 'Page:', sy-pagno .
ENDFORM. "END_OF_PAGE
*---------------------------------------------------------------------*
* FORM alv_layout_init *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> rs_layout *
*---------------------------------------------------------------------*
FORM alv_layout_init USING rs_layout TYPE slis_layout_alv.
*"Build layout for list display
rs_layout-detail_popup = 'X'.
ENDFORM.
*FORM get-file.
**------------------------------------------------------------------
* CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
* EXPORTING
* mask = '*.*'
* static = 'X'
* CHANGING
* file_name = p_pcfile.
*ENDFORM.
*
*
**---------------------------------------------------------------------*
** FORM get_variant_list *
**---------------------------------------------------------------------*
** ........ *
**---------------------------------------------------------------------*
*FORM get_variant_list.
**
* CLEAR g_alv_variant.
* g_alv_variant-report = sy-repid.
*
* CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
* EXPORTING
* is_variant = g_alv_variant
* i_save = 'U'
* IMPORTING
** E_EXIT = g_exit
* es_variant = g_alv_variant
* EXCEPTIONS
* not_found = 1
* program_error = 2
* OTHERS = 3.
* IF sy-subrc <> 0.
* CLEAR g_alv_variant.
* ELSE.
* p_vari = g_alv_variant-variant.
* ENDIF.
*ENDFORM. " GET_VARIANT_LIST
*&---------------------------------------------------------------------*
*& Form GET-FILE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get-file .
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
mask = '*.*'
static = 'X'
CHANGING
file_name = p_pcfile.
ENDFORM. " GET-FILE
*&---------------------------------------------------------------------*
*& Form GET_VARIANT_LIST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_variant_list .
CLEAR g_alv_variant.
g_alv_variant-report = sy-repid.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = g_alv_variant
i_save = 'U'
IMPORTING
* E_EXIT = g_exit
es_variant = g_alv_variant
EXCEPTIONS
not_found = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
CLEAR g_alv_variant.
ELSE.
p_vari = g_alv_variant-variant.
ENDIF.
ENDFORM. " GET_VARIANT_LIST
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM tcode_auth_check .
IF sy-batch <> 'X'.
*
IF sy-tcode <> 'Z1YCH'.
MESSAGE e285(zz) WITH 'Z1YCH'.
EXIT.
ENDIF.
ENDIF.
ENDFORM. " tcode_auth_check
*&---------------------------------------------------------------------*
*& Form CHECK_USER_AUTHORITY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM check_user_authority .
AUTHORITY-CHECK OBJECT 'S_TABU_DIS'
ID 'DICBERCLS' FIELD 'ZYCH'
ID 'ACTVT' FIELD '02'.
*
IF sy-subrc > 0.
* DOESNT HAVE SUPPORT, TRY MAINTENANCE
AUTHORITY-CHECK OBJECT 'S_TABU_DIS'
ID 'DICBERCLS' FIELD 'ZYCH'
ID 'ACTVT' FIELD '03'.
* DOESNT HAVE it
IF sy-subrc > 0.
IF p_extpc = 'X'. " mod03
MESSAGE e284(zz).
ENDIF.
*
ENDIF.
ENDIF.
ENDFORM. " CHECK_USER_AUTHORITY
*&---------------------------------------------------------------------*
*& Form RETRIEVE_CLIENT_ID
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM retrieve_client_id .
CLEAR it_z1ychclientid.
REFRESH it_z1ychclientid.
*
SELECT * FROM
z1ychclientid INTO
TABLE it_z1ychclientid
WHERE werks = p_werks.
* and vstel in s_vstel.
IF sy-subrc > 0.
MESSAGE e274 WITH p_werks.
ELSE.
ENDIF.
ENDFORM. " RETRIEVE_CLIENT_ID.