关于ALV

TYPE-POOLS: slis.
**ALV
DATA:gt_event_exit TYPE slis_t_event_exit.
DATA:gs_event_exit TYPE slis_event_exit.

DATA:gt_fieldcat TYPE lvc_t_fcat WITH HEADER LINE.
DATA:gc_glay TYPE lvc_s_glay.
DATA:gs_layout TYPE lvc_s_layo, “SLIS_LAYOUT_ALV,
wk_repid LIKE sy-repid.
DATA:gs_grid TYPE lvc_s_glay.
DATA:tem_grid TYPE REF TO cl_gui_alv_grid.
DATA:gt_events TYPE slis_t_event.
DATA:gs_events LIKE LINE OF gt_events.

ALV标准接口类:CL_GUI_ALV_GRID
类定义:
CLASS lcl_event_receiver DEFINITION. “定义类 捕捉各种事件
PUBLIC SECTION.
METHODS handle_modify “回车
FOR EVENT data_changed_finished OF cl_gui_alv_grid
IMPORTING e_modified et_good_cells.
ENDCLASS.
类实现:
CLASS lcl_event_receiver IMPLEMENTATION. “实现类 处理回车事件重点内容
METHOD handle_modify.重点内容
ENDMETHOD. “HANDLE_MODIFY
ENDCLASS. “LCL_EVENT_RECEIVER IMPLEMENTATION

DEFINE fill_alv.
CLEAR gt_fieldcat.
gt_fieldcat-fieldname = &1.
gt_fieldcat-scrtext_m = &2 .
gt_fieldcat-outputlen = &3.
gt_fieldcat-decimals_o = &4.
* begin add by yangq 保留小数点 不要去除小数点代码
* gt_fieldcat-decimals_o = 0.
* gt_fieldcat-decimals = 0.
* end add by yangq 保留小数点 不要去除小数点代码 .
APPEND gt_fieldcat.
END-OF-DEFINITION.
调用宏:
fill_alv ‘ZBZ’ ‘备注 ’ ‘10’ ”.

LOOP AT gt_fieldcat WHERE fieldname = ‘CHK’ OR fieldname = ‘ZMC’ OR fieldname = ‘ZZT’ OR fieldname = ‘ZBZ’.

  • IF gt_fieldcat-fieldname = ‘CHK’.
  • gt_fieldcat-checkbox = ‘X’.
  • gt_fieldcat-edit = ‘X’.
  • gt_fieldcat-fix_column = ‘X’.
  • ENDIF.

    IF gt_fieldcat-fieldname = ‘ZMC’ OR gt_fieldcat-fieldname = ‘ZZT’ OR gt_fieldcat-fieldname = ‘ZBZ’.
    gt_fieldcat-edit = ‘X’.
    IF gt_fieldcat-fieldname = ‘ZMC’.
    gt_fieldcat-ref_field = ‘ZMC’.
    gt_fieldcat-ref_table = ‘ZCLFS’.
    ELSEIF gt_fieldcat-fieldname = ‘ZZT’.
    gt_fieldcat-ref_field = ‘ZZT’.
    gt_fieldcat-ref_table = ‘ZCLJL’.
    ELSEIF gt_fieldcat-fieldname = ‘ZBZ’.
    gt_fieldcat-ref_field = ‘ZBZ’.
    gt_fieldcat-ref_table = ‘ZCLJL’.
    ENDIF.

    ENDIF.

    MODIFY gt_fieldcat.
    ENDLOOP.
    gs_events-name = ‘CALLER_EXIT’.
    gs_events-form = ‘CALLER_EXIT’.
    APPEND gs_events TO gt_events.

    CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY_LVC’
    EXPORTING
    i_callback_program = sy-repid
    i_callback_user_command = ‘USER_COMMAND’

  • I_CALLBACK_TOP_OF_PAGE = ‘TOP_OF_PAGE’
    i_callback_pf_status_set = ‘SET_PF’
    it_fieldcat_lvc = gt_fieldcat[]
  • i_grid_settings = gs_grid
    is_layout_lvc = gs_layout
    i_save = ‘X’
  • it_events = gt_events
    TABLES
    t_outtab = result.
    FORM user_command USING rf_ucomm LIKE sy-ucomm
    rs TYPE slis_selfield . “#EC CALLED
    DATA: wl_answer TYPE c.
    DATA: lr_grid TYPE REF TO cl_gui_alv_grid.
    CALL FUNCTION ‘GET_GLOBALS_FROM_SLVC_FULLSCR’
    IMPORTING
    e_grid = lr_grid.
    CALL METHOD lr_grid->check_changed_data.
    DATA:p_count TYPE i.
    rs-refresh = ‘X’. “自动刷新

    CASE rf_ucomm.

    WHEN ‘&WLGZ’.
    CLEAR wl_answer.
    CALL FUNCTION ‘POPUP_TO_CONFIRM’
    EXPORTING
    text_question = ‘确定要保存数据吗?’
    icon_button_1 = ‘是’ “是
    icon_button_2 = ‘否’ “否
    default_button = ‘2’
    display_cancel_button = ”
    start_column = 25
    start_row = 6
    IMPORTING
    answer = wl_answer
    EXCEPTIONS
    text_not_found = 1
    OTHERS = 2.

    IF wl_answer = ‘1’.
    PERFORM frm_flgz.
    ENDIF.
    WHEN ‘&SALL’.

  • LOOP AT itab.
  • itab-chk = ‘X’.
  • MODIFY itab.
  • CLEAR itab.
  • ENDLOOP.
    WHEN ‘&SCLL’.
  • LOOP AT itab.
  • itab-chk = ”.
  • MODIFY itab.
  • CLEAR itab.
  • ENDLOOP.
    ENDCASE.

    rs-refresh = ‘X’.
    ENDFORM. ” USER_COMMAND

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值