码迷,mamicode.com
首页 > 其他好文 > 详细

ABAP-动态ALV

时间:2018-12-24 18:20:28      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:parameter   客户   esc   assign   规格   res   nts   面积   form   

1.参数定义

"ALV
type-pools:slis,rsds,vrm.
data:gt_fieldcat type lvc_t_fcat with header line,
     gt_events type slis_t_event with header line,
     gs_layout type lvc_s_layo,
     g_repid like sy-repid.
data:wa_sort type slis_sortinfo_alv,
     it_sort type lvc_t_sort,
     lw_alv_title type lvc_title.
data:l_grid type ref to cl_gui_alv_grid,
     ls_stable type lvc_s_stbl.

data:struct_type type ref to cl_abap_structdescr,
     itab_type   type ref to cl_abap_tabledescr,
     elem_type   type ref to cl_abap_elemdescr,
     comp_type   type cl_abap_structdescr=>component_table,
     comp_field  type cl_abap_structdescr=>component,
     comp_line   like line of comp_type,
     dref        type ref to data,
     dline       type ref to data.

field-symbols:<ztab> type standard table,
              <itab> type any,
              <fild> type any,
              <frat> type any.

"dynamic alv parameters
data:ztab type standard table of tab with header line,
     mtab type standard table of tab with header line.

 

2.结构生成

form structure_data.

  struct_type ?= cl_abap_typedescr=>describe_by_name( TAB ).
  comp_type = struct_type->get_components( ).

  perform zdtb_ms using:
    DATAB       日期从,
    DATBI       日期至.

  "****** 增加字段 vkorg+fkdat+ekgrp+kunnr+vkbur+ktgrm+matnr+matkl+maabc+kosch+labor+groes

  perform struc_xz tables s_vkorg using VKORG  销售组织   VBRK-VKORG  VTEXT  TVKOT-VTEXT.
  "perform struc_xz tables s_fkdat using ‘FKDAT‘  ‘开票日期‘   ‘VBRK-FKDAT‘  ‘‘       ‘‘.
  perform struc_xz tables s_fkart using FKART  订单类型   VBRK-FKART  FKTXT  TVFKT-VTEXT.
  perform struc_xz tables s_ekgrp using EKGRP  品牌       MARC-EKGRP  EKNAM  T024-EKNAM.
  perform struc_xz tables s_kunnr using KUNAG  客户编码   VBRK-KUNAG  NAME1  KNA1-NAME1.
  perform struc_xz tables s_vkbur using VKBUR  产品线     KNVV-VKBUR  BEZEI  TVKBT-BEZEI.
  perform struc_xz tables s_ktgrm using KTGRM  科目设置组 VBRP-KTGRM  KMEXT  TVKMT-VTEXT.
  perform struc_xz tables s_matnr using MATNR  物料号     VBRP-MATNR  MAKTX  MAKT-MAKTX.

  perform struc_xz tables s_matkl using MATKL  物料组     MARA-MATKL  WGBEZ  T023T-WGBEZ.
  perform struc_xz tables s_maabc using MAABC  等级       MARC-MAABC  TMABC  TMABCT-TMABC.
  perform struc_xz tables s_kosch using KOSCH  产品分配   MARA-KOSCH  KOTXT  T190ST-VTEXT.
  perform struc_xz tables s_labor using LABOR  产品档次   MARA-LABOR  LBTXT  T024X-LBTXT.
  perform struc_xz tables s_groes using GROES  规格       MARA-GROES  ‘‘       ‘‘.

  "*****************************

  perform zdtb_ms using:
    FKIMG       数量,
    NETWR       金额,
    VOLUM       面积,
    NTGEW       重量,
    VOLTJ       体积,
    SLRAT       数量占比(%),
    JERAT       金额占比(%),
    WAVWR       成本,
    MLNET       毛利,
    MLRAT       毛利率(%).

  struct_type = cl_abap_structdescr=>create( comp_type ).
  itab_type   = cl_abap_tabledescr=>create( struct_type ).

  create data dref type handle itab_type.
  assign dref->* to <ztab>.

endform.

form field_app using zd zelem.
  clear:comp_line,elem_type.
  comp_line-name = zd.
  elem_type ?= cl_abap_elemdescr=>describe_by_name( zelem ).
  comp_line-type = elem_type.
  append comp_line to comp_type.
endform.

form zdtb_ms using zd zdms.
  zdtb-zd = zd.
  zdtb-zdms = zdms.
  append zdtb.
  clear:zdtb.
endform.

 

3.赋值

 

 create data dline like line of <ztab>.
  assign dline->* to <itab>.

  loop at mtab.
    move-corresponding mtab to <itab>.
    append <itab> to <ztab>.
    clear:ztab,<itab>.
  endloop.

  clear:mtab. refresh:mtab.

  loop at <ztab> assigning <itab>.
    clear:mtab.
    move-corresponding <itab> to mtab.
    move-corresponding mtab to <itab>.
    clear:mtab.
  endloop.

 

ABAP-动态ALV

标签:parameter   客户   esc   assign   规格   res   nts   面积   form   

原文地址:https://www.cnblogs.com/ricoo/p/10169872.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!