Advertisement
yaramohamed78

Untitled

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