Advertisement
Mikecor

F01

Apr 14th, 2021
1,174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 8.05 KB | None | 0 0
  1. FORM alv_grid_report.
  2.   IF NOT go_alv_100 IS BOUND.
  3.     PERFORM instace_container_100.
  4.     PERFORM build_field_cat_100.
  5.     PERFORM build_layout_100.
  6.     PERFORM instance_alv_100.
  7.     PERFORM excluding_toolbar_functions.
  8.     PERFORM set_alv_handler.
  9.     PERFORM register_event.
  10.     PERFORM display_alv_100.
  11.   ELSE.
  12.     PERFORM refresh_alv_100.
  13.   ENDIF.
  14.  
  15. ENDFORM.
  16. FORM instace_container_100.
  17.  
  18.   CREATE OBJECT go_alv_container_100
  19.     EXPORTING
  20. *     parent         =
  21.       container_name = 'ALV_CONTAINER_0100'
  22. *     style          =
  23. *     lifetime       = LIFETIME_DEFAULT
  24. *     repid          =
  25. *     dynnr          =
  26. *     no_autodef_progid_dynnr     =
  27. *     EXCEPTIONS
  28. *     cntl_error     = 1
  29. *     cntl_system_error           = 2
  30. *     create_error   = 3
  31. *     lifetime_error = 4
  32. *     lifetime_dynpro_dynpro_link = 5
  33. *     others         = 6
  34.     .
  35.   IF sy-subrc <> 0.
  36. *    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  37. *               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  38.   ENDIF.
  39. ENDFORM.
  40. FORM build_field_cat_100.
  41.   FIELD-SYMBOLS: <ls_fieldcat> TYPE lvc_s_fcat.
  42.  
  43.   CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
  44.     EXPORTING
  45. *     i_buffer_active        =
  46.       i_structure_name       = 'ZST_ENVIAUNIDADES'
  47. *     i_client_never_display = 'X'
  48. *     i_bypassing_buffer     =
  49. *     i_internal_tabname     =
  50.     CHANGING
  51.       ct_fieldcat            = gt_field_catalog_100
  52.     EXCEPTIONS
  53.       inconsistent_interface = 1
  54.       program_error          = 2
  55.       OTHERS                 = 3.
  56.   IF sy-subrc <> 0.
  57.     MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  58.                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  59.   ELSE.
  60.     LOOP AT gt_field_catalog_100 ASSIGNING <ls_fieldcat>.
  61.       CASE <ls_fieldcat>-fieldname.
  62.         WHEN  'VBELN' OR 'MOTIVO' OR 'ERNAM' OR 'ASSING' OR 'FG' OR 'F_ASIG'
  63.            OR 'VGBEL' OR 'KUNNR' OR 'VSTEL'.
  64.           <ls_fieldcat>-tech = 'X'.
  65.         WHEN  'UNIDAD'.
  66.           <ls_fieldcat>-edit = 'X'.
  67.           <ls_fieldcat>-f4availabl = 'X'.
  68.         WHEN 'BEZEI'.
  69.           <ls_fieldcat>-outputlen = '30'.
  70.           <ls_fieldcat>-just = 'L'.
  71.       ENDCASE.
  72.     ENDLOOP.
  73.  
  74.  
  75.   ENDIF.
  76. ENDFORM.
  77. FORM build_layout_100.
  78.   DATA: ls_style_type TYPE lvc_s_styl.
  79.   gs_layout_100-zebra = abap_true.
  80. *  gs_layout_100-edit  = abap_true.
  81.   gs_layout_100-cwidth_opt = abap_true.
  82.   gs_layout_100-sel_mode = 'D'.
  83.   gs_layout_100-col_opt = ' '.
  84.   gs_layout_100-stylefname = 'FIELD_STYLE'.
  85. *  LOOP AT gt_report ASSIGNING FIELD-SYMBOL(<ls_field>).
  86. *    ls_style_type-fieldname = 'UNIDAD'.
  87. *    ls_style_type-style = cl_gui_alv_grid=>mc_style_disabled.
  88. *    INSERT ls_style_type INTO TABLE <ls_field>-field_style.
  89. *  ENDLOOP.
  90.  
  91. ENDFORM.
  92. FORM set_alv_handler.
  93.  
  94.   IF go_event_alv_100 IS NOT BOUND.
  95.     CREATE OBJECT go_event_alv_100.
  96.     SET HANDLER : go_event_alv_100->handler_onf4 FOR go_alv_100,
  97.                   go_event_alv_100->handler_data_changed FOR go_alv_100,
  98.                   go_event_alv_100->handler_data_changed_finish FOR go_alv_100,
  99.                   go_event_alv_100->handler_toolbar FOR go_alv_100,
  100.                   go_event_alv_100->handler_user_command FOR go_alv_100.
  101.   ENDIF.
  102.  
  103.  
  104. ENDFORM.
  105. FORM display_alv_100.
  106.   go_alv_100->set_table_for_first_display(
  107.     EXPORTING
  108. *         i_buffer_active               =
  109. *         i_bypassing_buffer            =
  110. *         i_consistency_check           =
  111. *         i_structure_name              =
  112. *         is_variant                    =
  113. *         i_save                        =
  114. *         i_default                     = 'X'
  115.       is_layout                     = gs_layout_100
  116. *         is_print                      =
  117. *         it_special_groups             =
  118.       it_toolbar_excluding          = gt_toolbar_exc
  119. *         it_hyperlink                  =
  120. *         it_alv_graphics               =
  121. *         it_except_qinfo               =
  122. *         ir_salv_adapter               =
  123.     CHANGING
  124.       it_outtab                      = gt_report
  125.       it_fieldcatalog               =  gt_field_catalog_100
  126. *         it_sort                       =
  127. *         it_filter                     =
  128.     EXCEPTIONS
  129.       invalid_parameter_combination = 1
  130.       program_error                 = 2
  131.       too_many_lines                = 3
  132.       OTHERS                        = 4
  133.   ).
  134.   IF sy-subrc <> 0.
  135. *      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  136. *                 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  137.   ENDIF.
  138. ENDFORM.
  139. FORM excluding_toolbar_functions.
  140.  
  141.   DATA : ls_exclude TYPE ui_func.
  142.   ls_exclude = cl_gui_alv_grid=>mc_fc_info.
  143.   APPEND ls_exclude TO gt_toolbar_exc.
  144.   ls_exclude = cl_gui_alv_grid=>mc_fc_find_more.
  145.   APPEND ls_exclude TO gt_toolbar_exc.
  146.   ls_exclude = cl_gui_alv_grid=>mc_fc_print.
  147.   APPEND ls_exclude TO gt_toolbar_exc.
  148.   ls_exclude = cl_gui_alv_grid=>mc_fc_graph.
  149.   APPEND ls_exclude TO gt_toolbar_exc.
  150.   ls_exclude = cl_gui_alv_grid=>mc_fc_views.
  151.   APPEND ls_exclude TO gt_toolbar_exc.
  152.   ls_exclude = cl_gui_alv_grid=>mc_fc_views.
  153.   APPEND ls_exclude TO gt_toolbar_exc.
  154.   ls_exclude = cl_gui_alv_grid=>mc_mb_variant .
  155.   APPEND ls_exclude TO gt_toolbar_exc.
  156.   ls_exclude = cl_gui_alv_grid=>mc_fc_loc_delete_row.
  157.   APPEND ls_exclude TO gt_toolbar_exc.
  158.   ls_exclude = cl_gui_alv_grid=>mc_fc_loc_append_row.
  159.   APPEND ls_exclude TO gt_toolbar_exc.
  160.   ls_exclude = cl_gui_alv_grid=>mc_fc_loc_append_row.
  161.   APPEND ls_exclude TO gt_toolbar_exc.
  162.   ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy_row.
  163.   APPEND ls_exclude TO gt_toolbar_exc.
  164.   ls_exclude = cl_gui_alv_grid=>mc_fc_loc_move_row.
  165.   APPEND ls_exclude TO gt_toolbar_exc.
  166.   ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy.
  167.   APPEND ls_exclude TO gt_toolbar_exc.
  168.   ls_exclude = cl_gui_alv_grid=>mc_fc_loc_cut.
  169.   APPEND ls_exclude TO gt_toolbar_exc.
  170.   ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste.
  171.   APPEND ls_exclude TO gt_toolbar_exc.
  172.   ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste_new_row.
  173.   APPEND ls_exclude TO gt_toolbar_exc.
  174.   ls_exclude = cl_gui_alv_grid=>mc_fc_loc_undo.
  175.   APPEND ls_exclude TO gt_toolbar_exc.
  176.   ls_exclude = cl_gui_alv_grid=>mc_fc_refresh.
  177.   APPEND ls_exclude TO gt_toolbar_exc.
  178.   ls_exclude = cl_gui_alv_grid=>mc_fc_check.
  179.   APPEND ls_exclude TO gt_toolbar_exc.
  180.   ls_exclude = cl_gui_alv_grid=>mc_fc_subtot.
  181.   APPEND ls_exclude TO gt_toolbar_exc.
  182.   ls_exclude = cl_gui_alv_grid=>mc_mb_sum.
  183.   APPEND ls_exclude TO gt_toolbar_exc.
  184.   ls_exclude = cl_gui_alv_grid=>mc_mb_export.
  185.   APPEND ls_exclude TO gt_toolbar_exc.
  186. ENDFORM.
  187. FORM instance_alv_100.
  188.  
  189.   CREATE OBJECT go_alv_100
  190.     EXPORTING
  191. *     i_shellstyle      = 0
  192. *     i_lifetime        =
  193.       i_parent = go_alv_container_100
  194. *     i_appl_events     = SPACE
  195. *     i_parentdbg       =
  196. *     i_applogparent    =
  197. *     i_graphicsparent  =
  198. *     i_name   =
  199. *     i_fcat_complete   = SPACE
  200. *     EXCEPTIONS
  201. *     error_cntl_create = 1
  202. *     error_cntl_init   = 2
  203. *     error_cntl_link   = 3
  204. *     error_dp_create   = 4
  205. *     others   = 5
  206.     .
  207.   IF sy-subrc <> 0.
  208. *    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  209. *               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  210.   ENDIF.
  211.  
  212. ENDFORM.
  213.  
  214. FORM refresh_alv_100.
  215.   go_alv_100->refresh_table_display(
  216. *     EXPORTING
  217. *       is_stable      =     " With Stable Rows/Columns
  218. *       i_soft_refresh =     " Without Sort, Filter, etc.
  219.      EXCEPTIONS
  220.        finished       = 1
  221.        OTHERS         = 2
  222.    ).
  223.   IF sy-subrc <> 0.
  224.     MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  225.                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  226.   ENDIF.
  227. ENDFORM.
  228.  
  229. FORM register_event.
  230.   DATA: lt_f4 TYPE lvc_t_f4,
  231.         ls_f4 TYPE lvc_s_f4.
  232.  
  233.  
  234.   ls_f4-fieldname = 'UNIDAD'.
  235.   ls_f4-register  = abap_true.
  236.   APPEND ls_f4 TO lt_f4.
  237.   go_alv_100->register_f4_for_fields( it_f4 = lt_f4 ).
  238.  
  239.   CALL METHOD go_alv_100->register_edit_event
  240.     EXPORTING
  241.       i_event_id = cl_gui_alv_grid=>mc_evt_enter " Event ID
  242.     EXCEPTIONS
  243.       error      = 1
  244.       OTHERS     = 2.
  245.   IF sy-subrc <> 0.
  246.     MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  247.                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  248.   ENDIF.
  249.  
  250. ENDFORM.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement