【SAP】ABAP——动态模板

本文介绍如何在SAP ABAP中根据输入条件动态地决定输出列的内容和结构,实现灵活的数据展示功能。
摘要由CSDN通过智能技术生成

需求:根据输入条件,动态显示输出的列。

REPORT ZMM001.
TABLES:rsddstat_olap, rsddstatheader .

DATA:lv_infoprov(30),
     lv_objname(30),
     lv_name_first(40),
     lv_name_last(40).

TYPES:BEGIN OF is_datail, "明细
  uname    TYPE rsddstat_olap-uname,   "用户ID
  uname_l(80),                         "用户名称
  calday   TYPE rsddstat_olap-calday,  "运行日期
  utime    TYPE rsddstat_olap-utime,   "运行时间
  infoprov TYPE rsddstat_olap-infoprov,"信息提供者
  objname  TYPE rsddstat_olap-objname, "QURRY ID
  txtlg    TYPE rszelttxt-txtlg,       "QURRY 名称
END OF is_datail.
DATA: ls_detail TYPE is_datail,
      wa_detail TYPE is_datail,
      lt_detail TYPE TABLE OF is_datail,
      lt_out    TYPE TABLE OF is_datail.


TYPES:BEGIN OF is_total,
  objname  TYPE rsddstat_olap-objname, "QURRY ID
  txtlg    TYPE rszelttxt-txtlg, " QURRY 名称
  uname    TYPE rsddstat_olap-uname,   "用户ID
  uname_l(80),                         "用户名称
  calday   TYPE rsddstat_olap-calday,  "运行日期
  utime    TYPE rsddstat_olap-utime,   "运行时间
  infoprov TYPE rsddstat_olap-infoprov,"信息提供者
END OF is_total.
DATA:ls_total TYPE is_total,
     lt_total TYPE TABLE OF is_total.


DATA:fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
     layout   TYPE slis_layout_alv.
DATA lv_repid LIKE sy-repid value sy-repid.

TYPES:BEGIN OF is_period,"汇总数据包含的月份期间
  period(6),  "期间
  pertx(10),  "期间描述
END OF is_period.
DATA:ls_period TYPE is_period,
     lt_period TYPE TABLE OF is_period.

TYPES:BEGIN OF is_compid,
  compid TYPE v_rep_join-compuid, "QURRY ID
  txtlg   TYPE rszelttxt-txtlg,   "QURRY 名称
END OF is_compid.
DATA:lt_compid TYPE TABLE OF is_compid.

DATA: lv_year(4),
      lv_line TYPE i,
      lv_index TYPE i,
      lv_last TYPE i.

DATA:dy_table    TYPE REF TO data,
     dy_line     TYPE REF TO data,
     ls_fieldcat TYPE lvc_s_fcat,
     lt_fieldcat TYPE lvc_t_fcat.


FIELD-SYMBOLS: <it_table> TYPE STANDARD TABLE,
               <wa_table>,
               <wa_field>,
               <wa_sum>.

SELECT-OPTIONS:s_calday FOR   rsddstat_olap-calday  OBLIGATORY,"运行日期
               s_uname  FOR   rsddstat_olap-uname,             "用户名
               s_oname  FOR  rsddstatheader-objname.           "Query ID
PARAMETERS:r_total  RADIOBUTTON GROUP g1 DEFAULT 'X',          "显示汇总
           r_detail RADIOBUTTON GROUP g1.                      "显示明细

INITIALIZATION.
  CONCATENATE 'Z' '%' INTO lv_infoprov.
  CONCATENATE 'Z' '%' INTO lv_objname.

"搜索帮助
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_oname-low.
  CLEAR:lt_compid.
  SELECT compid txtlg
    INTO CORRESPONDING FIELDS OF TABLE lt_compid
    FROM v_rep_join
    INNER JOIN rsze
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值