Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *&---------------------------------------------------------------------*
- *& Report Z_Y_DISPOSAL_REQ_INQ
- *&
- *&---------------------------------------------------------------------*
- *&
- *&
- *&---------------------------------------------------------------------*
- REPORT Z_Y_DISPOSAL_REQ_INQ.
- ******************************************************************************************************
- *Internal table which will be used in filling the alv by returning the data from the fm inquiry.
- TYPES : BEGIN OF IT_req,
- zzsr_number TYPE ZFI_DISPOSAL_REQ-ZZSR_NUMBER,
- zzcompany_code TYPE ZFI_DISPOSAL_REQ-ZZCOMPANY_CODE,
- zzcost_center TYPE ZFI_DISPOSAL_REQ-ZZCOST_CENTER,
- zzdate TYPE ZFI_DISPOSAL_REQ-ZZDATE,
- s_zzdesc TYPE ZFI_LOOKUP-ZZDESC,
- rs_zzdesc TYPE ZFI_LOOKUP-ZZDESC,
- crea_user TYPE ZFI_DISPOSAL_REQ-CREA_USER,
- crea_time TYPE ZFI_DISPOSAL_REQ-CREA_TIME,
- chng_user TYPE ZFI_DISPOSAL_REQ-CHNG_USER,
- chng_time TYPE ZFI_DISPOSAL_REQ-CHNG_TIME,
- END OF IT_req.
- *Internal Table & work area for it.
- DATA : it_reqs TYPE TABLE OF it_req,
- wa_reqs TYPE it_req.
- ********************************************************************************************************************************************************
- *Internal tables we will need for the search help filtering
- *Cost Center
- TYPES: BEGIN OF ty_req,
- company_code TYPE ZFI_DISPOSAL_REQ-ZZCOMPANY_CODE,
- cost_center TYPE ZFI_DISPOSAL_REQ-ZZCOST_CENTER,
- END OF ty_req.
- * Request Status & Service
- TYPES: BEGIN OF ty_lookup,
- code TYPE ZFI_LOOKUP-ZZCODE,
- END OF ty_lookup.
- DATA: gwa_req TYPE ty_req,
- gt_req TYPE TABLE OF ty_req,
- gwa_lookup TYPE ty_lookup,
- gt_lookup TYPE TABLE OF ty_lookup,
- gt_return TYPE TABLE OF ddshretval,
- gwa_return TYPE ddshretval,
- gwa_dynpfields TYPE dynpread,
- gt_dynpfields TYPE TABLE OF dynpread,
- gv_company_code TYPE ZFI_DISPOSAL_REQ-ZZCOMPANY_CODE,
- gv_type TYPE ZFI_LOOKUP-ZZTYPE.
- *Working area for the three tables we will need to work on .
- DATA: wa_req TYPE ZFI_DISPOSAL_REQ,
- wa_service TYPE ZFI_LOOKUP,
- wa_req_status TYPE ZFI_LOOKUP.
- *Fields for ALV
- DATA:
- gs_fieldcatalog TYPE lvc_s_fcat OCCURS 0,
- gv_fcat LIKE LINE OF gs_fieldcatalog,
- gs_layout TYPE lvc_s_layo.
- *Container & Grid we need for the alv
- DATA :
- g_Container TYPE scrfname VALUE 'CC_CONTAINER_GRID',
- g_Custom_Container TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
- g_Grid TYPE REF TO CL_GUI_ALV_GRID.
- *Handle User interaction
- DATA :
- OK_CODE LIKE sy-ucomm,
- SAVE_OK LIKE sy-ucomm.
- ********************************************************************************************************************************************************
- *Before Screen Output
- MODULE STATUS_0100 OUTPUT.
- SET PF-STATUS 'MAINSTATUS'.
- SET TITLEBAR 'TITLE'.
- IF g_Custom_Container IS INITIAL.
- " Create CONTAINER object with reference to container name in the screen
- CREATE OBJECT g_Custom_Container EXPORTING CONTAINER_NAME = g_Container.
- " Create GRID object with reference to parent name
- CREATE OBJECT g_Grid EXPORTING I_PARENT = g_Custom_Container.
- PERFORM u_prepare_fieldcatalog.
- gs_layout-ZEBRA = 'X'.
- "gs_layout-edit = 'X'. " Makes all Grid editable
- " SET_TABLE_FOR_FIRST_DISPLAY
- CALL METHOD g_Grid->SET_TABLE_FOR_FIRST_DISPLAY
- EXPORTING
- is_layout = gs_layout
- CHANGING
- it_fieldcatalog = gs_fieldcatalog
- IT_OUTTAB = it_reqs. " Data
- ELSE.
- CALL METHOD g_Grid->REFRESH_TABLE_DISPLAY.
- ENDIF.
- ENDMODULE. " STATUS_0100 OUTPUT
- START-OF-SELECTION.
- CALL SCREEN 100.
- MODULE USER_COMMAND_0100 INPUT.
- SAVE_OK = OK_CODE.
- CLEAR OK_CODE.
- CASE SAVE_OK.
- WHEN 'EXIT' OR 'BACK' OR 'CNCL'.
- LEAVE PROGRAM.
- WHEN 'SEARCH'.
- PERFORM SEARCH.
- WHEN 'RESET'.
- PERFORM RESET.
- WHEN OTHERS.
- ENDCASE.
- ENDMODULE. " USER_COMMAND_0100 INPUT
- *********************************************************************************************************************************************************
- *On Value Request for cost center - filter it depending on company code
- AT SELECTION-SCREEN .
- REFRESH gt_dynpfields.
- *Field i will filter upon
- gwa_dynpfields-fieldname = 'COM_CODE'.
- APPEND gwa_dynpfields TO gt_dynpfields.
- CALL FUNCTION 'DYNP_VALUES_READ'
- EXPORTING
- DYNAME = sy-repid
- DYNUMB = sy-dynnr
- TABLES
- DYNPFIELDS = gt_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
- .
- READ TABLE gt_dynpfields INTO gwa_dynpfields
- WITH KEY fieldname = 'COM_CODE'.
- *If there are no errors , assign the company code the value returned.
- IF SY-SUBRC = 0.
- gv_company_code = gwa_dynpfields-fieldvalue.
- ENDIF.
- *Select statement to get the cost center depending on the dynamic value for the company code & assign it to the table we created.
- SELECT ZZCOMPANY_CODE ZZCOST_CENTER
- INTO TABLE gt_req
- FROM ZFI_DISPOSAL_REQ
- WHERE ZZCOMPANY_CODE = gv_company_code.
- *Get cost center search help values depending on the company code.
- CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
- EXPORTING
- RETFIELD = 'COST_CENTER'
- VALUE_ORG = 'S'
- TABLES
- VALUE_TAB = gt_req
- RETURN_TAB = gt_return
- EXCEPTIONS
- PARAMETER_ERROR = 1
- NO_VALUES_FOUND = 2
- OTHERS = 3
- .
- READ TABLE gt_return INTO gwa_return INDEX 1.
- *If there are no errors , assign the returned table to the cost_cnt selection paramter.
- IF SY-SUBRC = 0.
- COST_CNT = gwa_return-fieldval.
- ENDIF.
- *********************************************************************************************************************************************************
- FORM SEARCH.
- ENDFORM.
- FORM RESET.
- ENDFORM.
- FORM u_prepare_fieldcatalog.
- ENDFORM.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement