Advertisement
yaramohamed78

REQ

Mar 15th, 2017
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 8.87 KB | None | 0 0
  1. *&---------------------------------------------------------------------*
  2. *& Generates the ALV on the Selection Screen itself
  3. *&
  4. *&---------------------------------------------------------------------*
  5. REPORT  Z_YY_DISPOSAL_REQ_INQ.
  6.  
  7. TYPES: BEGIN OF ty_req,
  8.        company_code TYPE ZFI_DISPOSAL_REQ-ZZCOMPANY_CODE,
  9.        cost_center  TYPE ZFI_DISPOSAL_REQ-ZZCOST_CENTER,
  10.        END OF ty_req.
  11. TYPES: BEGIN OF ty_lookup,
  12.         code      TYPE ZFI_LOOKUP-ZZCODE,
  13.         desc      TYPE ZFI_LOOKUP-ZZDESC,
  14.        END OF ty_lookup.
  15. DATA:   gwa_req         TYPE ty_req,
  16.         gt_req          TYPE TABLE OF ty_req,
  17.         gwa_lookup      TYPE ty_lookup,
  18.         gt_lookup       TYPE TABLE OF ty_lookup,
  19.         gt_return       TYPE TABLE OF ddshretval,
  20.         gwa_return      TYPE ddshretval,
  21.         gwa_dynpfields  TYPE dynpread,
  22.         gt_dynpfields   TYPE TABLE OF dynpread,
  23.         gv_company_code TYPE ZFI_DISPOSAL_REQ-ZZCOMPANY_CODE,
  24.         gv_type         TYPE ZFI_LOOKUP-ZZTYPE.
  25.  
  26. DATA:   wa_req TYPE ZFI_DISPOSAL_REQ.
  27.  
  28.  
  29. *
  30. *----------------------------------------------------------------------*
  31. *  Local class for report
  32. *----------------------------------------------------------------------*
  33. CLASS lcl_report DEFINITION.
  34. *
  35.   PUBLIC SECTION.
  36. *
  37.     DATA: t_data   TYPE STANDARD TABLE OF ZFI_DISPOSAL_REQ,  " Output dat
  38.           r_carrid TYPE RANGE OF sflight-carrid.    " Select Option
  39. *
  40.     METHODS:
  41.       get_data,
  42. *
  43.       generate_output.
  44. *
  45. ENDCLASS.                    "lcl_report DEFINITION
  46. *
  47. DATA: lo_report TYPE REF TO lcl_report.
  48. *
  49. DATA: w_carrid TYPE sflight-carrid.
  50. *
  51. ** Selection Screen
  52. SELECTION-SCREEN BEGIN OF BLOCK SELECTION WITH FRAME TITLE text-001.
  53.  
  54. SELECTION-SCREEN BEGIN OF LINE.
  55.   SELECTION-SCREEN COMMENT (20) text-002 FOR FIELD COM_CODE .
  56. PARAMETERS :     COM_CODE LIKE ZFI_DISPOSAL_REQ-ZZCOMPANY_CODE DEFAULT '1200'.
  57. SELECTION-SCREEN POSITION 35.
  58. SELECTION-SCREEN COMMENT (20) text-003 FOR FIELD COST_CNT .
  59. PARAMETERS :     COST_CNT LIKE ZFI_DISPOSAL_REQ-ZZCOST_CENTER.
  60. SELECTION-SCREEN POSITION 70.
  61. SELECTION-SCREEN END OF LINE.
  62. SELECTION-SCREEN BEGIN OF LINE.
  63.   SELECTION-SCREEN COMMENT (20) text-004 FOR FIELD SER_NO .
  64. PARAMETERS :     SER_NO   LIKE ZFI_DISPOSAL_REQ-ZZSR_NUMBER.
  65. *SELECTION-SCREEN POSITION 10.
  66. SELECTION-SCREEN COMMENT (20) text-005 FOR FIELD SRV_TYPE .
  67. PARAMETERS :     SRV_TYPE LIKE ZFI_DISPOSAL_REQ-ZZSERVICE_TYPE.
  68. SELECTION-SCREEN POSITION 70.
  69. SELECTION-SCREEN END OF LINE.
  70. SELECTION-SCREEN BEGIN OF LINE.
  71.   SELECTION-SCREEN COMMENT (20) text-006 FOR FIELD DATE .
  72. PARAMETERS :     DATE LIKE ZFI_DISPOSAL_REQ-ZZDATE.
  73. *SELECTION-SCREEN POSITION 35.
  74. SELECTION-SCREEN COMMENT (20) text-007 FOR FIELD REQ_STS .
  75. PARAMETERS :     REQ_STS  LIKE ZFI_DISPOSAL_REQ-ZZRQSTTS.
  76. SELECTION-SCREEN PUSHBUTTON (10) BUT1 USER-COMMAND SEARCH.
  77. SELECTION-SCREEN PUSHBUTTON (10) BUT2 USER-COMMAND RESET.
  78. SELECTION-SCREEN END OF LINE.
  79. SELECTION-SCREEN END OF BLOCK SELECTION.
  80. *
  81.     WRITE : / 'ERROR2'.
  82. AT SELECTION-SCREEN ON VALUE-REQUEST FOR COST_CNT.
  83.   WRITE : / 'WELCOME1'.
  84.   REFRESH gt_dynpfields.
  85.  
  86.   gwa_dynpfields-fieldname = 'COM_CODE'.
  87.   APPEND gwa_dynpfields TO gt_dynpfields.
  88.  
  89.   CALL FUNCTION 'DYNP_VALUES_READ'
  90.     EXPORTING
  91.       DYNAME                               = sy-repid
  92.       DYNUMB                               = sy-dynnr
  93.     TABLES
  94.       DYNPFIELDS                           = gt_dynpfields
  95.    EXCEPTIONS
  96.      INVALID_ABAPWORKAREA                 = 1
  97.      INVALID_DYNPROFIELD                  = 2
  98.      INVALID_DYNPRONAME                   = 3
  99.      INVALID_DYNPRONUMMER                 = 4
  100.      INVALID_REQUEST                      = 5
  101.      NO_FIELDDESCRIPTION                  = 6
  102.      INVALID_PARAMETER                    = 7
  103.      UNDEFIND_ERROR                       = 8
  104.      DOUBLE_CONVERSION                    = 9
  105.      STEPL_NOT_FOUND                      = 10
  106.      OTHERS                               = 11
  107.             .
  108.   READ TABLE gt_dynpfields INTO gwa_dynpfields
  109.              WITH KEY fieldname = 'COM_CODE'.
  110.  
  111.   IF SY-SUBRC = 0.
  112.       gv_company_code = gwa_dynpfields-fieldvalue.
  113. *      MESSAGE ID 'ZALV_ERRORS' TYPE 'I' NUMBER '000' WITH gv_company_code.
  114.   ELSE.
  115.     WRITE : / 'ERROR1'.
  116.   ENDIF.
  117.  
  118.   SELECT ZZCOMPANY_CODE ZZCOST_CENTER
  119.          INTO TABLE gt_req
  120.          FROM ZFI_DISPOSAL_REQ
  121.          WHERE ZZCOMPANY_CODE = gv_company_code.
  122.  
  123.     CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
  124.       EXPORTING
  125.         RETFIELD               = 'COST_CENTER'
  126.         VALUE_ORG              = 'S'
  127.       TABLES
  128.         VALUE_TAB              = gt_req
  129.         RETURN_TAB             = gt_return
  130.      EXCEPTIONS
  131.        PARAMETER_ERROR        = 1
  132.        NO_VALUES_FOUND        = 2
  133.        OTHERS                 = 3
  134.               .
  135.  
  136.      READ TABLE gt_return INTO gwa_return INDEX 1.
  137.  
  138.     IF SY-SUBRC = 0.
  139.       COST_CNT = gwa_return-fieldval.
  140.         ELSE.
  141.     WRITE : / 'ERROR2'.
  142.     ENDIF.
  143.  
  144. AT SELECTION-SCREEN ON VALUE-REQUEST FOR  REQ_STS.
  145.   REFRESH gt_dynpfields.
  146.  
  147.   SELECT  ZZCODE ZZDESC
  148.          INTO TABLE gt_lookup
  149.          FROM ZFI_LOOKUP
  150.          WHERE ZZTYPE = '1'.
  151.  
  152.     CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
  153.       EXPORTING
  154.         RETFIELD               = 'TYPE'
  155.         VALUE_ORG              = 'S'
  156.       TABLES
  157.         VALUE_TAB              = gt_lookup
  158.         RETURN_TAB             = gt_return
  159.      EXCEPTIONS
  160.        PARAMETER_ERROR        = 1
  161.        NO_VALUES_FOUND        = 2
  162.        OTHERS                 = 3
  163.               .
  164.  
  165.      READ TABLE gt_return INTO gwa_return INDEX 1.
  166.  
  167.     IF SY-SUBRC = 0.
  168.       REQ_STS = gwa_return-fieldval.
  169.         ELSE.
  170.     WRITE : / 'ERROR2'.
  171.     ENDIF.
  172.  
  173.     AT SELECTION-SCREEN ON VALUE-REQUEST FOR  SRV_TYPE.
  174.   REFRESH gt_dynpfields.
  175.  
  176.   SELECT  ZZCODE ZZDESC
  177.          INTO TABLE gt_lookup
  178.          FROM ZFI_LOOKUP
  179.          WHERE ZZTYPE = '2'.
  180.  
  181.     CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
  182.       EXPORTING
  183.         RETFIELD               = 'TYPE'
  184.         VALUE_ORG              = 'S'
  185.       TABLES
  186.         VALUE_TAB              = gt_lookup
  187.         RETURN_TAB             = gt_return
  188.      EXCEPTIONS
  189.        PARAMETER_ERROR        = 1
  190.        NO_VALUES_FOUND        = 2
  191.        OTHERS                 = 3
  192.               .
  193.  
  194.      READ TABLE gt_return INTO gwa_return INDEX 1.
  195.  
  196.     IF SY-SUBRC = 0.
  197.       SRV_TYPE = gwa_return-fieldval.
  198.         ELSE.
  199.     WRITE : / 'ERROR2'.
  200.     ENDIF.
  201.  
  202. ** Initialization
  203. INITIALIZATION.
  204. BUT1 = 'Search'.
  205. BUT2 = 'Reset'.
  206. * object for the report
  207.   CREATE OBJECT lo_report.
  208. * generate output
  209.   lo_report->generate_output( ).
  210. *
  211. ** Start of Selection
  212. START-OF-SELECTION.
  213. * Get data
  214. *  lo_report->r_carrid = s_carrid[].
  215.   lo_report->get_data( ).
  216. *
  217. *----------------------------------------------------------------------*
  218. * Local Class Implementation
  219. *----------------------------------------------------------------------*
  220. CLASS lcl_report IMPLEMENTATION.
  221. *
  222.   METHOD get_data.
  223. *
  224. *   data selection
  225.     SELECT * FROM ZFI_DISPOSAL_REQ
  226.            INTO  TABLE me->t_data.
  227.     IF sy-dbcnt IS INITIAL.
  228.       MESSAGE s398(00) WITH 'No data selected'.
  229.     ENDIF.
  230. *
  231. *   export to memory
  232.     EXPORT data = me->t_data TO MEMORY ID sy-cprog.
  233. *
  234.   ENDMETHOD.                    "get_data
  235. *
  236.   METHOD generate_output.
  237. *
  238. *   local data
  239.     DATA: lo_dock TYPE REF TO cl_gui_docking_container,
  240.           lo_cont TYPE REF TO cl_gui_container,
  241.           lo_alv  TYPE REF TO cl_salv_table.
  242. *
  243. *   import output table from the memory and free afterwards
  244.     IMPORT data = me->t_data FROM MEMORY ID sy-cprog.
  245.     FREE MEMORY ID sy-cprog.
  246. *
  247. *   Only if there is some data
  248.     CHECK me->t_data IS NOT INITIAL.
  249. *
  250. *   Create a docking control at bottom
  251.     CHECK lo_dock IS INITIAL.
  252.     CREATE OBJECT lo_dock
  253.       EXPORTING
  254.         repid = sy-cprog
  255.         dynnr = sy-dynnr
  256.         ratio = 80
  257.         side  = cl_gui_docking_container=>dock_at_bottom
  258.         name  = 'DOCK_CONT'.
  259.     IF sy-subrc <> 0.
  260.       MESSAGE 'Error in the Docking control' TYPE 'S'.
  261.     ENDIF.
  262. *
  263. *   Create a SALV for output
  264.     CHECK lo_alv IS INITIAL.
  265.     TRY.
  266. *       Narrow Casting: To initialize custom container from
  267. *       docking container
  268.         lo_cont ?= lo_dock.
  269. *
  270. *       SALV Table Display on the Docking container
  271.         CALL METHOD cl_salv_table=>factory
  272.           EXPORTING
  273.             list_display   = if_salv_c_bool_sap=>false
  274.             r_container    = lo_cont
  275.             container_name = 'DOCK_CONT'
  276.           IMPORTING
  277.             r_salv_table   = lo_alv
  278.           CHANGING
  279.             t_table        = me->t_data.
  280.       CATCH cx_salv_msg .
  281.     ENDTRY.
  282. *
  283. *   Pf status
  284.     DATA: lo_functions TYPE REF TO cl_salv_functions_list.
  285.     lo_functions = lo_alv->get_functions( ).
  286.     lo_functions->set_default( abap_true ).
  287. *
  288. *   output display
  289.     lo_alv->display( ).
  290. *
  291.   ENDMETHOD.                    "generate_output
  292. *
  293. ENDCLASS.                    "lcl_report IMPLEMENTATION
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement