SAP ABAP ALV构建动态输出列与构建动态内表
来源:互联网 发布:用c语言写求整数绝对值 编辑:程序博客网 时间:2024/05/21 07:54
首先,简单说明一下要用到的表类型、类、函数:
LVC_S_FCAT- (LVC_T_FCAT类型的工作区类型)。 CL_ABAP_TABLEDESCR-(内表结构属性操作类,比如可以读取内表的列名称、内表值、内表列属性等等)。 CL_ABAP_TYPEDESCR=>DESCRIBE_BY_DATA( 内表 ):获取CL_ABAP_TABLEDESCR对象。 CL_ABAP_TABLEDESCR对象->GET_TABLE_LINE_TYPE( ):获取CL_ABAP_STRUCTDESCR对象(注意函数括号里面的空格)。 REUSE_ALV_GRID_DISPLAY:ALV显示内表结果。 REUSE_ALV_COMMENTARY_WRITE:ALV抬头信息。
表类型
LVC_T_FCAT-(存放自定义列属性的表类型,一般用到的属性有:FIELDNAME、OUTPUTLEN、DATATYPE、INTTYPE、INTLEN、DECIMALS)。
类
CL_ABAP_STRUCTDESCR-(CL_ABAP_TABLEDESCR的工作区类型)。
函数
CONVERSION_EXIT_CUNIT_OUTPUT-(单位输出转换)。
下面是一个开发实例的SAMPLE,根据给出的BOM循环查找BOM下面的所有最底层物料,根据工厂存在的物料价格动态地输出相应的列:
*&---------------------------------------------------------------------*
*&Report ZCOR017
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZCOR017.
TABLES:MAST,STPO.
TYPE-POOLS: SLIS.
*****************************TYPES*****************************************
TYPES:BEGIN OF TY_STPO,
STLNR TYPE STPO-STLNR,
STLTY TYPE STPO-STLTY,
STLKN TYPE STPO-STLKN,
STPOZ TYPE STPO-STPOZ,
IDNRK TYPE STPO-IDNRK,
END OF TY_STPO.
TYPES:BEGIN OF TY_MAST,
MATNR TYPE MAST-MATNR,
WERKS TYPE MAST-WERKS,
STLAN TYPE MAST-STLAN,
STLNR TYPE MAST-STLNR,
END OF TY_MAST.
TYPES:BEGIN OF TY_MAKT,
MATNR TYPE MAKT-MATNR,
MAKTX TYPE MAKT-MAKTX,
END OF TY_MAKT.
TYPES:BEGIN OF TY_MARA,
MATNR TYPE MARA-MATNR,
MEINS TYPE MARA-MEINS,
END OF TY_MARA.
TYPES:BEGIN OF TY_T001K,
BWKEY TYPE T001K-BWKEY,
END OF TY_T001K.
TYPES:BEGIN OF TY_MBEW,
MATNR TYPE MBEW-MATNR,
BWKEY TYPE MBEW-BWKEY,
STPRS TYPE MBEW-STPRS,
PEINH TYPE MBEW-PEINH,
END OF TY_MBEW.
*****************************DATA*****************************************
DATA:
GT_STPO TYPE TABLE OF TY_STPO,
GS_STPO TYPE TY_STPO,
LT_STPO TYPE TABLE OF TY_STPO,
LS_STPO TYPE TY_STPO,
GT_MAST TYPE TABLE OF TY_MAST,
GS_MAST TYPE TY_MAST,
LT_MAST TYPE TABLE OF TY_MAST,
LS_MAST TYPE TY_MAST,
GT_MAKT TYPE TABLE OF TY_MAKT,
GS_MAKT TYPE TY_MAKT,
GT_MARA TYPE TABLE OF TY_MARA,
GS_MARA TYPE TY_MARA,
GT_T001K TYPE TABLE OF TY_T001K,
GS_T001K TYPE TY_T001K,
GT_MBEW TYPE TABLE OF TY_MBEW,
GS_MBEW TYPE TY_MBEW,
DNY_TAB TYPE REF TO DATA,
DNY_LINE TYPE REF TO DATA,
IFC TYPE LVC_T_FCAT,
XFC TYPE LVC_S_FCAT,
GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
GT_FIELD TYPE SLIS_T_FIELDCAT_ALV,
GS_FIELD LIKE LINE OF GT_FIELD,
COUNTER TYPE I VALUE 0,
GV_STC_DESC TYPE REF TO CL_ABAP_STRUCTDESCR,
GV_TAB_DESC TYPE REF TO CL_ABAP_TABLEDESCR,
GT_TOP
*&
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT
TABLES:MAST,STPO.
TYPE-POOLS:
*****************************TYPES*****************************************
TYPES:BEGIN
END
TYPES:BEGIN
END
TYPES:BEGIN
END
TYPES:BEGIN
END
TYPES:BEGIN
END
TYPES:BEGIN
END
*****************************DATA*****************************************
DATA: