SAP动态配置程序 Dialog ALV 报表下.docx
- 文档编号:9969593
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:20
- 大小:19.75KB
SAP动态配置程序 Dialog ALV 报表下.docx
《SAP动态配置程序 Dialog ALV 报表下.docx》由会员分享,可在线阅读,更多相关《SAP动态配置程序 Dialog ALV 报表下.docx(20页珍藏版)》请在冰豆网上搜索。
SAP动态配置程序DialogALV报表下
SAP动态配置程序DialogALV报表(下)
--Author:
SUNZKQQ:
1131341075WEIXIN:
DreamSunlight88
REPORT YMPSR9010 MESSAGE-ID YMCA NO STANDARD PAGE HEADING.
INCLUDE YMPSR9010_TOP.
INCLUDE YMPSR9010_CLS.
INCLUDE YMPSR9010_O01.
INCLUDE YMPSR9010_I01.
INCLUDE YMPSR9010_F01.
START-OF-SELECTION.
CALL SCREEN 100.
*********************************************************************
DATA:
ok_code TYPE sy-ucomm,
save_ok TYPE sy-ucomm,
g_error TYPE c,
l_answer TYPE c, "弹框返回值
g_action TYPE c VALUE '3'. "1创建 、 2、修改 3、显示
DATA:
gt_cs009 TYPE TABLE OF ympstcs009,
gs_cs009 TYPE ympstcs009,
gt_cs010 TYPE TABLE OF ympstcs010,
gs_cs010 TYPE ympstcs010.
DATA:
gc_alv100 TYPE REF TO cl_gui_alv_grid, "用户角色ALV
gc_container100 TYPE REF TO cl_gui_custom_container, "边ALV容器
gs_layout100 TYPE lvc_s_layo, "ALV布局结构
gt_fieldcat100 TYPE lvc_t_fcat. "标题头
DATA:
gc_alv200 TYPE REF TO cl_gui_alv_grid, "用户角色ALV
gc_container200 TYPE REF TO cl_gui_custom_container, "边ALV容器
gs_layout200 TYPE lvc_s_layo, "ALV布局结构
gt_fieldcat200 TYPE lvc_t_fcat, "标题头
gs_lvc_s_stbl TYPE lvc_s_stbl VALUE 'XX' .
CLASS lcl_event_handler DEFINITION.
PUBLIC SECTION.
METHODS:
handle_double_click FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row e_column es_row_no sender.
ENDCLASS.
CLASS lcl_event_handler IMPLEMENTATION.
METHOD handle_double_click.
*-- 双击事件
PERFORM handle_double_click100 CHANGING e_column es_row_no.
ENDMETHOD.
ENDCLASS.
MODULE status_0100 OUTPUT.
SET PF-STATUS '100'.
SET TITLEBAR '100'.
PERFORM frm_disp_alv100.
ENDMODULE. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0200 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0200 OUTPUT.
SET PF-STATUS '200'.
SET TITLEBAR '200'.
PERFORM frm_disp_alv200.
ENDMODULE. " STATUS_0200 OUTPUT
MODULE user_command_0100 INPUT.
CALL METHOD gc_alv100->check_changed_data.
save_ok = ok_code.
CLEAR ok_code.
CASE save_ok.
WHEN 'DISP'.
g_action = '3'.
WHEN 'MODIFY'.
g_action = '2'.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'CREAT'.
g_action = '1'.
PERFORM frm_create_date100.
WHEN 'DELE'.
PERFORM frm_delete_date100.
WHEN 'SAVE'.
PERFORM frm_save_date100.
WHEN OTHERS.
ENDCASE.
CALL METHOD gc_alv100->check_changed_data.
CALL METHOD gc_alv100->refresh_table_display
EXPORTING
is_stable = gs_lvc_s_stbl.
ENDMODULE. " USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0200 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_0200 INPUT.
CALL METHOD gc_alv200->check_changed_data.
save_ok = ok_code.
CLEAR ok_code.
CASE save_ok.
WHEN 'DISP'.
g_action = '3'.
WHEN 'MODIFY'.
g_action = '2'.
WHEN 'BACK'.
g_action = '3'.
LEAVE TO SCREEN 0.
WHEN 'CREAT'.
g_action = '1'.
PERFORM frm_create_date200.
WHEN 'DELE'.
PERFORM frm_delete_date200.
WHEN 'SAVE'.
PERFORM frm_save_date200.
WHEN OTHERS.
ENDCASE.
CALL METHOD gc_alv200->check_changed_data.
CALL METHOD gc_alv200->refresh_table_display
EXPORTING
is_stable = gs_lvc_s_stbl.
ENDMODULE. " USER_COMMAND_0200 INPUT
*&---------------------------------------------------------------------*
*& 包含 YMPSR9010_F01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form FRM_DISP_ALV100
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_disp_alv100 .
DATA:
l_event_receiver TYPE REF TO lcl_event_handler.
gs_layout100-sel_mode = 'A'.
* gs_layout100-zebra = abap_true.
gs_layout100-no_toolbar = 'X'.
gs_layout100-cwidth_opt = 'X'.
IF gt_cs009 IS INITIAL.
PERFORM frm_getdata100.
ENDIF.
IF gc_container100 IS INITIAL.
* create a container for the splitter control
CREATE OBJECT gc_container100
EXPORTING
container_name = 'ALV100'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
OTHERS = 6.
IF sy-subrc <> 0.
* *--Exception handling
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
* create an instance of alv control
CREATE OBJECT gc_alv100
EXPORTING
i_parent = gc_container100 "gc_container100
EXCEPTIONS
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CLEAR gt_fieldcat100.
PERFORM fm_add_fieldcat_alv100 USING 'SXFL' '项目属性分类编号' '15' ' ' '' '' ''.
PERFORM fm_add_fieldcat_alv100 USING 'SXFLT' '项目属性分类描述' '20' ' ' '' '' ''.
PERFORM fm_add_fieldcat_alv100 USING 'WBSCJ' '层级维护' '20' ' ' 'YMPSTCS007' 'WBSCJ' '==WBSCJ'.
CALL METHOD gc_alv100->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_modified
EXCEPTIONS
error = 1
OTHERS = 2.
* CREATE OBJECT gc_event100.
* SET HANDLER gc_event100->handle_double_click FOR gc_alv100.
CREATE OBJECT l_event_receiver.
SET HANDLER l_event_receiver->handle_double_click FOR gc_alv100.
CALL METHOD gc_alv100->set_table_for_first_display
EXPORTING
is_layout = gs_layout100
* it_toolbar_excluding = lt_exclude
CHANGING
it_outtab = gt_cs009
it_fieldcatalog = gt_fieldcat100.
ELSE.
IF g_action = '3'.
CLEAR gt_fieldcat100.
PERFORM fm_add_fieldcat_alv100 USING 'SXFL' '项目属性分类编号' '15' ' ' '' '' ''.
PERFORM fm_add_fieldcat_alv100 USING 'SXFLT' '项目属性分类描述' '20' ' ' '' '' ''.
PERFORM fm_add_fieldcat_alv100 USING 'WBSCJ' '层级维护' '20' ' ' 'YMPSTCS007' 'WBSCJ' '==WBSCJ'.
ELSE.
CLEAR gt_fieldcat100.
PERFORM fm_add_fieldcat_alv100 USING 'SXFL' '项目属性分类编号' '15' ' ' '' '' ''.
PERFORM fm_add_fieldcat_alv100 USING 'SXFLT' '项目属性分类描述' '20' 'X ' '' '' ''.
PERFORM fm_add_fieldcat_alv100 USING 'WBSCJ' '层级维护' '20' 'X ' 'YMPSTCS007' 'WBSCJ' '==WBSCJ'.
ENDIF.
CALL METHOD gc_alv100->set_frontend_fieldcatalog
EXPORTING
it_fieldcatalog = gt_fieldcat100.
CALL METHOD gc_alv100->refresh_table_display
EXPORTING
is_stable = gs_lvc_s_stbl.
ENDIF.
ENDFORM. " FRM_DISP_ALV100
*&---------------------------------------------------------------------*
*& Form FM_ADD_FIELDCAT_ALV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0117 text
* -->P_0118 text
* -->P_0119 text
* -->P_0120 text
*----------------------------------------------------------------------*
FORM fm_add_fieldcat_alv100 USING p1 p2 p3 p4 p5 p6 p7.
DATA ls_fcat TYPE lvc_s_fcat.
ls_fcat-fieldname = p1.
ls_fcat-scrtext_s = p1.
ls_fcat-scrtext_m = p1.
ls_fcat-scrtext_l = p1.
ls_fcat-coltext = p2.
ls_fcat-outputlen = p3.
ls_fcat-edit = p4.
IF p5 IS NOT INITIAL.
ls_fcat-ref_table = p5.
ENDIF.
IF p6 IS NOT INITIAL.
ls_fcat-ref_field = p6.
ENDIF.
ls_fcat-edit_mask = p7.
APPEND ls_fcat TO gt_fieldcat100.
ENDFORM. " FM_ADD_FIELDCAT_ALV100
*&---------------------------------------------------------------------*
*& Form FRM_DISP_ALV200
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_disp_alv200 .
gs_layout200-sel_mode = 'A'.
* gs_layout200-zebra = abap_true.
gs_layout200-no_toolbar = 'X'.
gs_layout200-cwidth_opt = 'X'.
IF gc_container200 IS INITIAL.
* create a container for the splitter control
CREATE OBJECT gc_container200
EXPORTING
container_name = 'ALV200'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
OTHERS = 6.
IF sy-subrc <> 0.
* *--Exception handling
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
* create an instance of alv control
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SAP动态配置程序 Dialog ALV 报表下 SAP 动态 配置 程序 报表