博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

弹出框显示ALV报表

Posted on 2012-09-28 11:53  Wayne2082  阅读(267)  评论(0编辑  收藏  举报

  METHOD GET_SEACH_MX_DATA .
  DATA CL_TABLE  TYPE REF TO CL_SALV_TABLE.
  DATA CL_FUNCT  TYPE REF TO CL_SALV_FUNCTIONS_LIST."alv 标准功能
  DATA CL_COLUMS TYPE REF TO CL_SALV_COLUMNS_TABLE."列属性
  DATA CL_COLUM  TYPE REF TO CL_SALV_COLUMN_TABLE."列字段设置


  DEFINE CL_FIELD. “定义宏,设定AVL列的属性
    CL_COLUM ?= CL_COLUMS->GET_COLUMN( &1 ).
    CL_COLUM->SET_LONG_TEXT( &2 ).
    CL_COLUM->SET_SHORT_TEXT( &2 ).
    CL_COLUM->SET_VISIBLE( &3 ).
  END-OF-DEFINITION.


  READ TABLE LT_DATA ASSIGNING <SC_MT011> INDEX I_TABIX. "读取鼠标选择的行索引
  IF SY-SUBRC = 0.
    
    LOOP AT SC_MT012[] INTO LS_DAT1.
      CLEAR SEACH_MXS.
      SEACH_MXS-ZSCNO = LS_DAT1-ZSCNO."扫描单号
      SEACH_MXS-SCITEM = LS_DAT1-SCITEM."扫描单行项目
      SEACH_MXS-SATNR = LS_DAT1-SATNR."款号
      SEACH_MXS-MAKTX = LS_DAT1-MAKTX."款号描述
      SEACH_MXS-MATNR = LS_DAT1-MATNR."物料号(SKU)
      SEACH_MXS-ZCONLORV = LS_DAT1-ZCOLORV."颜色
      SEACH_MXS-ZSIZEV = LS_DAT1-ZSIZEV."尺码
      SEACH_MXS-MENGE = LS_DAT1-MENGE."扫描数量
      APPEND SEACH_MXS TO SEACH_MXT. ”SEACH_MXT是定义好的一个表
    ENDLOOP.

"下面是调用代码
    CL_SALV_TABLE=>FACTORY(
            IMPORTING
              R_SALV_TABLE = CL_TABLE
            CHANGING
              T_TABLE      = SEACH_MXT ).

    CL_FUNCT = CL_TABLE->GET_FUNCTIONS( ).
    CL_FUNCT->SET_ALL( 'X' ).
    CL_COLUMS = CL_TABLE->GET_COLUMNS( ).
    CL_COLUMS->SET_OPTIMIZE( 'X' ).

    CL_FIELD 'SATNR' '款  号' 'X'.
    CL_FIELD 'MAKTX' '款号描述' 'X'.
    CL_FIELD 'MATNR' '物料号(SKU)' 'X'.

    CL_TABLE->SET_SCREEN_POPUP(
          START_COLUMN = 1
            END_COLUMN = 120
            START_LINE = 1
              END_LINE = 20 ).
    CL_TABLE->DISPLAY( ).
    FREE SEACH_MXT.
  ELSE.
    MESSAGE '请选择行数据!' TYPE 'S'.
  ENDIF.
ENDMETHOD.                    " GET_S