zoukankan      html  css  js  c++  java
  • ABAP 模板

    REPORT XXXXX.
    TABLES:XXX.

    DATA:GC_GRID TYPE REF TO CL_GUI_ALV_GRID.
    DATA:GT_FCAT TYPE LVC_T_FCAT.
    DATA:GS_LOUT TYPE LVC_S_LAYO.
    DATA:GS_VARI TYPE DISVARIANT.

    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    PARAMETERS: P_WERKS TYPE MARD-WERKS OBLIGATORY.
    SELECT-OPTIONS:S_MATNR FOR MARA-MATNR .
    SELECTION-SCREEN END OF BLOCK B1.

    INITIALIZATION.

    AT SELECTION-SCREEN OUTPUT.

    START-OF-SELECTION.
    PERFORM AUTHORITY-CHECK.
    PERFORM FRM_GET_DATA.
    PERFORM FRM_PROCESS_DATA.
    PERFORM FRM_DISPLAY_DATA.

    FORM FRM_DISPLAY_DATA .

    PERFORM FRM_PREPARE_ALV.
    PERFORM FRM_CALL_ALV TABLES GT_LIST
    USING GT_FCAT
    GS_LOUT
    GS_VARI
    'FRM_PF_STATUS'
    'FRM_USER_COMMAND'
    ''.

    ENDFORM.

    FORM FRM_PREPARE_ALV .

    PERFORM FRM_FIELD_LVC TABLES GT_FCAT
    USING 'MATNR' 'MATNR' 'MAST' '' ''
    '物料' '' '' '' '' ''.
    GS_LOUT-BOX_FNAME = 'SEL'.
    GS_LOUT-ZEBRA = 'X'.
    GS_LOUT-CWIDTH_OPT = 'X'.
    GS_VARI-REPORT = SY-REPID.
    GS_VARI-LOG_GROUP = '1'.

    ENDFORM.

    FORM FRM_FIELD_LVC TABLES PT_FIELDCAT_LVC STRUCTURE LVC_S_FCAT
    USING PV_FIELDNAME TYPE LVC_RFNAME
    PV_REF_FIELD TYPE LVC_RFNAME
    PV_REF_TABLE TYPE LVC_TNAME
    PV_CFIELDNAME TYPE LVC_CFNAME
    PV_QFIELDNAME TYPE LVC_QFNAME
    PV_TEXT TYPE STRING
    PV_EDIT TYPE C
    PV_NZERO TYPE C
    PV_F4 TYPE C
    PV_NO_OUT TYPE C
    PV_OUTPUTLEN TYPE I.

    DATA:LS_FIELDCAT_LVC TYPE LVC_S_FCAT.

    CLEAR LS_FIELDCAT_LVC.
    LS_FIELDCAT_LVC-FIELDNAME = PV_FIELDNAME.
    LS_FIELDCAT_LVC-REF_FIELD = PV_REF_FIELD.
    LS_FIELDCAT_LVC-REF_TABLE = PV_REF_TABLE.
    LS_FIELDCAT_LVC-CFIELDNAME = PV_CFIELDNAME.
    LS_FIELDCAT_LVC-QFIELDNAME = PV_QFIELDNAME.
    LS_FIELDCAT_LVC-COLDDICTXT = 'L'.
    LS_FIELDCAT_LVC-SCRTEXT_L = PV_TEXT.
    LS_FIELDCAT_LVC-EDIT = PV_EDIT.
    LS_FIELDCAT_LVC-NO_ZERO = PV_NZERO.
    LS_FIELDCAT_LVC-F4AVAILABL = PV_F4.
    LS_FIELDCAT_LVC-NO_OUT = PV_NO_OUT.
    LS_FIELDCAT_LVC-OUTPUTLEN = PV_OUTPUTLEN.
    IF LS_FIELDCAT_LVC-FIELDNAME = 'SEL'.
    LS_FIELDCAT_LVC-CHECKBOX = 'X'.
    ENDIF.
    APPEND LS_FIELDCAT_LVC TO PT_FIELDCAT_LVC.
    ENDFORM.

    FORM FRM_CALL_ALV TABLES PT_OUTTAB
    USING PT_FIELDCAT TYPE LVC_T_FCAT
    PS_LAYOUT TYPE LVC_S_LAYO
    PS_VARIANT TYPE DISVARIANT
    PV_STATUS TYPE SLIS_FORMNAME
    PV_COMMAND TYPE SLIS_FORMNAME
    PV_TITLE TYPE SLIS_FORMNAME.

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
    I_CALLBACK_PROGRAM = SY-REPID
    I_CALLBACK_PF_STATUS_SET = PV_STATUS
    I_CALLBACK_USER_COMMAND = PV_COMMAND
    I_CALLBACK_TOP_OF_PAGE = PV_TITLE
    IS_LAYOUT_LVC = PS_LAYOUT
    IT_FIELDCAT_LVC = PT_FIELDCAT
    I_SAVE = 'A'
    IS_VARIANT = PS_VARIANT
    TABLES
    T_OUTTAB = PT_OUTTAB
    EXCEPTIONS
    PROGRAM_ERROR = 1
    OTHERS = 2.

    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

    ENDFORM.

    FORM FRM_PF_STATUS USING PT_EXTAB TYPE SLIS_T_EXTAB.
    SET PF-STATUS 'STATUS'.
    *
    * IF GC_GRID IS INITIAL.
    * CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    * IMPORTING
    * E_GRID = GC_GRID.
    *
    * CALL METHOD GC_GRID->REGISTER_EDIT_EVENT
    * EXPORTING
    * I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_MODIFIED. "MC_EVT_ENTER.
    *
    * CREATE OBJECT GC_RECEIVER.
    * SET HANDLER GC_RECEIVER->HANDLE_DATA_CHANGED_FINISHED FOR GC_GRID.
    * ENDIF.
    ENDFORM.

    FORM FRM_USER_COMMAND USING PV_UCOMM LIKE SY-UCOMM
    PS_SELFIELD TYPE SLIS_SELFIELD.

    PS_SELFIELD-COL_STABLE = 'X'.
    PS_SELFIELD-ROW_STABLE = 'X'.
    PS_SELFIELD-REFRESH = 'X'.

    * CALL METHOD GC_GRID->CHECK_CHANGED_DATA.

    READ TABLE GT_LIST INTO GS_LIST INDEX PS_SELFIELD-TABINDEX.
    CASE PV_UCOMM.
    WHEN '&IC1'.
    WHEN OTHERS.
    ENDCASE.
    ENDFORM.

  • 相关阅读:
    Java多态(更新中...)
    C语言free释放内存后为什么指针里的值不变?竟然还可以输出?
    LeetCode:344-反转字符串
    20150518 字符设备驱动
    20150517 Linux文件系统与设备文件系统
    20150514我读《深入理解linux内核》之虚拟文件系统笔记
    双系统Ubuntu下修复启动项的两种方法
    20150503 imx257下实现I2C驱动的四种方法
    20150502 调试分析之 使用gdb远程调试ARM开发板
    20150501 调试分析之 修改内核来定位系统僵死问题
  • 原文地址:https://www.cnblogs.com/WACBZWY/p/11141502.html
Copyright © 2011-2022 走看看