您的位置:首页 > 其它

99乘法表

2017-08-17 14:06 288 查看
REPORT ZTEST_CFB.
TYPE-POOLS:SLIS.

DATA:I_FIELDCAT_ALV TYPE SLIS_T_FIELDCAT_ALV, "定义列标题(属性信息)

     I_LAYOUT       TYPE SLIS_LAYOUT_ALV,

     I_FIELDCAT     TYPE SLIS_FIELDCAT_ALV, "定义对象

     W_REPID        LIKE SY-REPID. "当前程序

I_LAYOUT-ZEBRA = 'X'. "ALV表格按斑马线条纹显示

I_LAYOUT-COLWIDTH_OPTIMIZE = 'X'. "将ALV字段宽度设置为最优化
DATA: I_GRID_SETTINGS TYPE LVC_S_GLAY."修改状态

I_GRID_SETTINGS-EDT_CLL_CB = 'X'.

W_REPID = SY-REPID.

DATA: COLUMN(7) TYPE C.
*DATA it LIKE TABLE OF column.

DATA: BEGIN OF WA,

        CO1 LIKE COLUMN,

        CO2 LIKE COLUMN,

        CO3 LIKE COLUMN,

        CO4 LIKE COLUMN,

        CO5 LIKE COLUMN,

        CO6 LIKE COLUMN,

        CO7 LIKE COLUMN,

        CO8 LIKE COLUMN,

        CO9 LIKE COLUMN,

      END OF WA.
DATA ITAB LIKE TABLE OF WA.

*变量定义

DATA: GR_TABLE TYPE REF TO CL_SALV_TABLE.
DATA: WA_LAYOUT   TYPE LVC_S_LAYO.

FORM FRM_DISPLAY_DATA .

  PERFORM FRM_FILL_FIELD.
ENDFORM.

DATA: FIELDCAT TYPE LVC_T_FCAT WITH HEADER LINE.

DEFINE FILL_FIELD.

  CLEAR fieldcat.

  fieldcat-fieldname     = &1.

  fieldcat-col_pos       = &2.

  APPEND fieldcat.
END-OF-DEFINITION.

SELECTION-SCREEN BEGIN OF BLOCK BLK WITH FRAME.
PARAMETERS: P_FULL RADIOBUTTON GROUP RG,

            P_LIST RADIOBUTTON GROUP RG.
SELECTION-SCREEN END OF BLOCK BLK.

*----------------------------------------------------------------------*
*       CLASS lcl_alv DEFINITION
*----------------------------------------------------------------------*
*       ALV操作类(定义)
*----------------------------------------------------------------------*
CLASS LCL_ALV DEFINITION.

  PUBLIC SECTION.

    METHODS: GETDATA         "取得要显示的数据

      RETURNING VALUE(LT_TAB) LIKE ITAB,

      ALV_FULL        "全屏Grid列表处理方法

        IMPORTING VALUE(LT_TAB) LIKE ITAB,

      ALV_LIST        "普通List处理方法

        IMPORTING VALUE(LT_TAB) LIKE ITAB,

      MAIN.           "主方法
ENDCLASS.                    "lcl_alv DEFINITION

*----------------------------------------------------------------------*
*       CLASS lcl_alv IMPLEMENTATION
*----------------------------------------------------------------------*
*       ALV操作类(实现)
*----------------------------------------------------------------------*
CLASS LCL_ALV IMPLEMENTATION.
*取得要显示的数据

  METHOD GETDATA.

    DO 9 TIMES.

      DATA I1 TYPE I.

      I1 = SY-INDEX.

      DO I1 TIMES.

        DATA RESULT(2) TYPE C.

        DATA: C1 TYPE C,

              C2 TYPE C.

        RESULT = I1 * SY-INDEX.

        C1 = I1.

        C2 = SY-INDEX.

        CONCATENATE C1 '*' C2 '=' RESULT INTO COLUMN.

        CONCATENATE WA COLUMN INTO WA SEPARATED BY ' '.

      ENDDO.

      APPEND WA TO LT_TAB.

      CLEAR WA.

    ENDDO.

  ENDMETHOD.                    "getdata

*输出全屏网格列表的方法

  METHOD ALV_FULL.

    "创建实例

    TRY.

        CL_SALV_TABLE=>FACTORY(

        IMPORTING

          R_SALV_TABLE = GR_TABLE

        CHANGING

          T_TABLE      = LT_TAB

          ).

      CATCH CX_SALV_MSG.

    ENDTRY.

    "显示列表

    GR_TABLE->DISPLAY( ).

  ENDMETHOD.                    "alv_full

*输出全屏普通列表的方法

  METHOD ALV_LIST.

    "创建实例

    TRY.

        CL_SALV_TABLE=>FACTORY(

        EXPORTING

          LIST_DISPLAY = 'X'

        IMPORTING

          R_SALV_TABLE = GR_TABLE

        CHANGING

          T_TABLE      = LT_TAB

          ).

      CATCH CX_SALV_MSG.

    ENDTRY.

    "显示列表

    GR_TABLE->DISPLAY( ).

  ENDMETHOD.                    "alv_list

*主方法,整合数据

  METHOD MAIN.

    DATA: LT_TAB LIKE ITAB.

    "取得要显示的数据

    LT_TAB = ME->GETDATA( ).

    "判断选择屏幕的选择条件调用不同的方法

    CASE 'X'.

      WHEN P_FULL.

        ME->ALV_FULL( LT_TAB ).

      WHEN P_LIST.

        ME->ALV_LIST( LT_TAB ).

    ENDCASE.

  ENDMETHOD.                    "main
ENDCLASS.                    "lcl_alv IMPLEMENTATION
FORM FRM_LAYOUT .

  CLEAR: WA_LAYOUT."它用来定义ALV报表的整体属性
* WA_LAYOUT-ZEBRA         = 'X' ."ZBbra
*  WA_LAYOUT-DETAILINIT         = 'X' . "initial values on detail screen

  WA_LAYOUT-CWIDTH_OPT    = 'X'."优化列宽选项是否设置
*  WA_LAYOUT-DETAILTITL      = 'Detail Information' ."设置弹出窗口的标题栏

  WA_LAYOUT-BOX_FNAME = 'SEL'.
*  WA_LAYOUT-INFO_FNAME = 'ROWCOLOR'.

ENDFORM.
FORM FRM_FILL_FIELD.

  CLEAR FIELDCAT.

  FIELDCAT-FIELDNAME = 'BELNR'.

  FIELDCAT-COL_POS   = '9'.

  APPEND FIELDCAT.

  FILL_FIELD '1' '9'.

  FILL_FIELD '2' '9'.

  FILL_FIELD '3' '9'.

  FILL_FIELD '4' '9'.

  FILL_FIELD '5' '9'.

  FILL_FIELD '6' '9'.

  FILL_FIELD '7' '9'.

  FILL_FIELD '8' '9'.

  FILL_FIELD '9' '9'.

ENDFORM.                    " FRM_FILL_FIELD
*报表执行
START-OF-SELECTION.

  DATA  LR_ALV   TYPE REF TO LCL_ALV.

  CREATE OBJECT LR_ALV.

  LR_ALV->MAIN( ).
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: