ALV简介和Fieldcat与Layout相关参数属性

目录

 

ALV简介和Fieldcat与Layout相关参数属性

1.ALV简介

2.ALV报表开发的相关参数及属性

3 Layout的相关属性

4 Fieldcat的相关属性

5 调用ALV输出函数


ALV简介和Fieldcat与Layout相关参数属性

 

1.ALV简介

ALV(SAP List Viewer) 是SAP常用的屏幕显示列表控件对象,通过传递数据内表方式显示数据;

ALV显示格式分为Grid 和 List两种模式:

Grid模式有栏位选择按钮功能,允许用户直接输出格式,操作更为灵活;

List 模式则固定格式,应用于较严格的标准报表。


 

Grid Mode:

alv_grid_mode

alv_grid_mode

 

List Mode:

alv_list_mode

alv_list_mode

 

输出ALV的 Function有两个:REUSE_ALV_GRID_DISPLAY 和 REUSE_ALV_GRID_DISPLAY_LVC

两个函数都可以将数据用ALV的形式显示出来,只是一些小部分有所不同。

 

2.ALV报表开发的相关参数及属性

2.1 在调用 ALV 函数前,需要引入一个类型池:SLIS

2.2 Layout和Fieldcat的定义

Layout   主要用于设定 ALV 的输出格式,为 ALV 输出的可选项

Fieldcat 主要用于ALV的结构定义,包括具体的栏位及名称、类型、格式等属性,为 ALV 输出的必选项

在调用ALV之前,需要先定义Layout 和Fieldcat,他们同属于类型池 SLIS

其中,对于两个ALV函数用到的全局变量定义有所区别:

1) REUSE_ALV_GRID_DISPLAY 函数用到的全局变量:

1

2

3

4

5

6

7

DATA:

    

    wa_fieldcat TYPE slis_fieldcat_alv ,    " 相当于工作区

 

    i_fieldcat  TYPE slis_t_fieldcat_alv ,  " 存放输出栏位名称的列表

 

    i_layout    TYPE slis_layout_alv .      " 负责整个ALV的全局属性

 

2)     REUSE_ALV_GRID_DISPLAY_LVC函数用到的全局变量:

1

2

3

4

5

6

7

DATA:

 

     wa_fieldcat TYPE lvc_s_fcat ,  " 相当于工作区

 

     i_fieldcat  TYPE lvc_t_fcat ,  " 存放输出栏位名称的列表

 

     i_layout    TYPE lvc_s_layo .  " 负责整个ALV的全局属性

 

可以看出:

REUSE_ALV_GRID_DISPLAY 的Layout 类型为 slis_layout_alv, Fieldcat 的类型为 slis_fieldcat_alv

REUSE_ALV_GRID_DISPLAY_LVC 的Layout 类型为 lvc_s_layo, Fieldcat 的类型为 lvc_s_fcat

其中,对于‘SLIS_’开头的,可以在类型池 SLIS 中查看,‘LVC_’开头的可以在数据字典(SE11)中查看。

 

SLIS 类型池中 slis_layout_alv 的定义:

slis_layout_alv

slis_layout_alv

SE11中,lvc_s_layo的定义:

lvc_s_layo

lvc_s_layo

 

3 Layout的相关属性

3.1 slis_fieldcat_alv 常用具体字段栏位如下:

1) 公共部分

字段名称描述输入值备注
no_colhead(1)不显示标题X-不显示,space-显示 
no_hotspot(1)标题不设热点X-没有,space-有 
zebra(1)使ALV表格按斑马线间隔条码方式显示X-有,space-没有 
no_vline(1)设置列间竖线X-不显示,space-显示 
no_hline(1)设置行间隔线X-不显示,space-显示 
cell_merge(1)设置是否压域复制X-可复制,space-不可复制 
edit(1)设置所有单元格可编辑X-可编辑,space-不可编辑 
edit_mode(1)编辑模式  
numc_sum(1)设置仅NUMC类型字段进行总计X-仅Numc类型,

 

space-不仅Numc类型

 
no_input(1)不允许输入,用于显示状态X-不允许,space-允许 
f2code设置触发弹出详细信息窗口的功能码sy-ucomm‘&ETA’ – 双击
no_keyfix (1)关键字不固定,可以随滚动条滚动X-不固定,space-固定 
expand_all (1)展开所有的node 对hierarchy ALV函数而言
no_author (1)设置是否需要系统标准权限检查X-不需要,space-需要 

 

2) ALV菜单栏

字段名称描述输入值备注
def_status (1)默认菜单状态A显示,space不显示‘A’ – 为显示所有标准菜单
item_text (20)菜单按钮文本  
countfname (1) lvc_fname 

 

3) 显示选项

字段名称描述输入值备注
colwidth_optimize(1)优化列宽设置X-优化默认:space
no_min_linesize(1)设置不允许最小宽度X-不允许,space-允许默认:space
min_linesizeALV列表的最小宽度sy-linsz,取值10到250可选参数
max_linesizeALV列表的最大宽度sy-linsz,可取值80-1020默认值250
window_titlebar窗口标题sy-title 
no_uline_hs(1)输出ALV表不显示水平格线X-不显示,space-显示 

 

4) 红绿灯显示异常

字段名称描述输入值备注
lights_fieldname输出内表中定义的字段名,该字段用来显示状态灯1:red,2:yellow,3:green 
lights_tabname输出字段的参考内表名称  
lights_rollname数据元素的名称,在灯字段按F1触发  
lights_condense对输出的内表分类汇总的时候,小计行显示状态灯X 

 

5) 汇总合计

字段名称描述输入值备注
no_sumchoice (1)不能进行选择总计  
no_totalline (1)不能总计,但可以小计  
no_subchoice (1)不能选择小计,但可以总计  
no_subtotals (1)不能小计,但可以总计  
no_unit_splitting有单位字段,不进行总计  
totals_before_items总行将会显示在最前面  
totals_only (1)仅显示合计  
totals_text (60)合计,第一列显示的文本  
subtotals_text      (60)总计和小计行,第一列显示的文本  

 

6) 交互

字段名称描述输入值备注
box_fieldname设置ALV表格是否显示选择按钮栏位  
box_tabnamebox_fieldname 参考内表名称  
box_rollname下拉框按钮名称  
expand_fieldname’展开’字段名称  
hotspot_fieldname热点字段  
confirmation_prompt退出ALV列表的确认对话框  
key_hotspot (1)关键字段作为热点  
flexible_key (1)关键字段可以移动  
group_buttons (1)COL1 – COL5 按钮组  
get_selinfos (1)获取选择屏幕  
group_change_edit (1)设置用户新的按钮组  
no_scrolling(1)滚动条无效,清单不随其滚动 仅list_alv有效

 

7) 明细窗口

字段名称描述输入值备注
detail_popup (1)行项目明细弹窗形式X-显示,space-不显示对list_alv有效
detail_initial_lines(1)明细中同时显示初始化行X-同时显示,space-不显示 
detail_titlebar明细窗口标题文本sy-title 

 

8) 显示变式

字段名称描述输入值备注
header_text表头按钮  
default_item (1)列表明细作为默认值X-激活,space-不激活 

 

9) 颜色

字段名称描述输入值备注
info_fieldname用于设置ALV输出报表每一行的颜色,

 

其参数为输出内表的栏位名称

C000~C999倘若其数据输出内表名为LT_OUT,则需要在改内表增加一个栏位“COLOR”,并为内表每行赋值,

 

LT_OUT-COLOR = ‘C500’

coltab_fieldname颜色值  

 

10) 其他

字段名称描述输入值备注
list_append设置是否Call屏幕  
xifunckeyeXtended interaction(SAPQuery)  
xidirecteXtended INTeraction(SAPQuery)  
dtc_layout设置Tabstip的布局格式配置DTC_S_LAYO 
allow_switch_to_list设置从Grid模式转换为List模式  

 

3.2 lvc_s_layo常用具体字段栏位如下:

1) 布局控制(ALV_S_LAYO)

字段名称描述输入值备注
ZEBRA(1)使ALV表格按斑马线间隔条码方式显示X-有,space-没有 
EDIT(1)准备编辑X-可编辑,space-不可编辑 
EDIT_MODE(1)编辑模式  
NO_KEYFIX(1)关键字不固定,可以随滚动条滚动X-不固定,space-固定 
FRONTEND(1)   
LANGUAGE语言标识符LANG 
SMALLTITLE(1)标题大小  
NO_HGRIDLN(1)是否隐藏水平网格线X-不显示,space-显示 
NO_VGRIDLN(1)是否隐藏垂直网格线X-不显示,space-显示 
NO_HEADERS(1)隐藏列抬头X-不显示,space-显示 
NO_MERGING(1)禁用单元格合并  
CWIDTH_OPT(1)自动优化列宽X-优化,space-不自动优化 
TOTALS_BEF(1)在个别记录前总计输出  
NO_TOTARR(1)汇总行前显示箭头表示汇总  
NO_TOTEXP(1)只显示小计,不显示总计  
NO_F4(1)屏蔽F4搜索帮助  
COUNTFNAME内部表字段的字段名称LVC_FNAME 

 

2) 一般显示选项(LVC_S_L001)

字段名称描述输入值备注
STYLEFNAME用来传输格表,以便把各显示为按钮LVC_FNAME 

 

3) 网格定制(LVC_S_L002)

字段名称描述输入值备注
NO_ROWMARK禁用行选择  
NO_TOOLBAR隐藏工具栏  
GRID_TITLE标题栏文本  
SEL_MODE(1)选择模式A-选择按钮,space-空白“A”在最左端有选择按钮
BOX_FNAME内部表字段的字段名称  
SGL_CLK_HD第一次点击列的头的时候升序排列,

 

第二次点击的时候降序排列

  

 

4) 总计选项(LVC_S_L003)

字段名称描述输入值备注
NO_TOTLINE(1)不输出总计行X-不输出,space-输出 
NUMC_TOTAL(1)禁止 NUMC 字段总计X-禁止,space-不禁止 
NO_UTSPLIT(1)按单元拆分总计行X-不拆分,space-拆分 

 

5) 例外(LVC_S_L004)

字段名称描述输入值备注
EXCP_FNAMEField name with exception coding  
EXCP_ROLLNData element for exception documentation  
EXCP_CONDS(1)Aggregate exceptions  
EXCP_LED(1)Exception as LED  
EXCP_GROUP(1)Exception Group  

 

6) 交互控制(LVC_S_L005)

字段名称描述输入值备注
DETAILINIT在细节屏幕显示初始值  
DETAILTITL细节屏幕的标题栏  
KEYHOT关键列作为热点  
NO_AUTHOR不执行 ALV 标准授权检查  
XIFUNCKEY附加功能名  
XIDIRECT一般标记  
    

 

7) 拖&放控制设置(LVC_S_DD01)

字段名称描述输入值备注
S_DRAGDROP拖&放控制设置结构LVC_S_DD01 

 

8) 颜色(LVC_S_L006)

字段名称描述输入值备注
INFO_FNAME带有简单行彩色代码的字段名称  
CTAB_FNAME代表颜色信息的字段名  

 

4 Fieldcat的相关属性

和Layout一样,REUSE_ALV_GRID_DISPLAY 函数中的 Fieldcat 结构: slis_t_fieldcat_alv 可在 SLIS 类型池中找到;

REUSE_ALV_GRID_DISPLAY_LVC函数中的 Fieldcat 结构: lvc_s_fcat 可在 SE11 中查看。

两者大同小异,常用具体字段栏位如下:

 

字段名称描述输入值备注
row_pos输出行位置1….n 
col_pos输出列位置1….n 
fieldname字段名称  
tabnamefieldname字段对应的内表名称  
currency货币单位  
cfieldname当前输出内表中的货币单位字段的字段名称  
ctabnameCfieldname字段值对应的内表名称  
ifieldname   
quantity计量单位  
qfieldname参考计量单位的字段名称  
qtabnameQfieldname  对应的输出内表名  
round四舍五入保留位数  
exponent流动表示的指数  
key(1)将栏位设置为Key值  
icon(1)将定义栏位以ICON的形式显示  
symbol(1)作为Symbol符号输出,

 

在ALV输出内表中的字段值可以是ABAP名称

  
checkbox(1)作为复选框输出  
just(1)定义栏位对齐方式(R)Right (L)Left (C)Center 
lzero(1)输出前置零  
no_sign(1)不输出正负号+、-  
no_zero(1)如果取值为零,则为空,既不输出零  
no_convext(1)   
edit_mask输出编辑掩码, 同write语句中的edit mas格式是一样的 一般用来格式化时间和日期等
emphasize(4)设置栏位的颜色  
fix_column(1)固定列  
do_sum(1)对当前列输出时自动求和  
no_out(1)当前列隐藏输出  
tech(1)技术字段,设置’X’后,该字段不会显示,

 

也不能输出,如同MANDT字段一样的效果

  
outputlen列的字符宽度  
offset偏移量  
seltext_l / scrtext_l长文本  
seltext_m / scrtext_m中文本  
seltext_s / scrtext_s短文本  
ddictxt(1)列标题描述格式(S)hort (M)iddle (L)ong 
rollname   
datatype数据类型  
inttype整型  
intlen整型长度  
lowercase是否允许小写字母  
decfloat_style浮点格式  
ref_fieldname参考字段名称,配合ref_tabname一起使用,

 

一般用来使单元格生成F4帮助

  
ref_tabname参考表名称,配合ref_fieldname使用  
roundfieldname四舍五入字段名称  
roundtabname四舍五入内表名称  
decimalsfieldname小数点字段名称  
decimalstabname小数点内表名称  
decimals_out(6)控制小数点的位数  
text_fieldname文本字段名称  
reptext_ddic与数据元素的主标题类似  
ddic_outputlen数据字典输出长度  
key_sel(1)这个参数只和设置了Key的字段相关,和Key一起使用

 

可以交互式的隐藏设置为Key的字段(alv_list有效)

  
no_sum(1)不自动汇总  
sp_group(4)分组需求  
reprep(1)selection for rep/rep  
input(1)输入  
edit(1)编辑  
hotspot(1)设置栏位是否有热点(热点栏位显示有下划线)  

 

5 调用ALV输出函数

使用ALV输出,可以直接参考数据字典中的现有透明表,也可以自定义Fieldcat来输出字段;

如若使用数据字典中的透明表或视图时,需要调用REUSE_ALV_FIELDCATALOG_MERGE 函数来对相应的Fieldcat 进行匹配;

另外,必须保证该结构或内表中的每个字段都参考数据字典中的Data Element,否则无法获取字段的相关信息.

以REUSE_ALV_GRID_DISPLAY 函数为例:

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

    EXPORTING

      i_interface_check             = ' '

      i_bypassing_buffer            = ' '

      i_buffer_active               = ' '

      i_callback_program            = gv_repid            "程序名称

      i_callback_pf_status_set      = 'FRM_SET_GUI'       "定义触发工具栏定义的子程序

      i_callback_user_command       = 'FRM_USER_COMMAND'  "单击alv工具栏按钮或双击行项目时触发所定义的子程序

      i_callback_top_of_page        = ' ' 

      i_callback_html_top_of_page   = ' ' 

      i_callback_html_end_of_list   = ' '

      i_structure_name              =

      i_background_id               = ' '

      i_grid_title                  = 'ALV输出'      "ALV名称

      i_grid_settings               =

      is_layout                     = gt_layout      "程序所定义的layout名称

      it_fieldcat                   = gt_fieldcat[]  "定义fieldcat数据

      it_excluding                  =

      it_special_groups             =

      it_sort                       = gt_sort[]

      it_filter                     =

      is_sel_hide                   =

      i_default                     = 'X'

      i_save                        = 'X'

      is_variant                    =

      it_events                     = gt_event[]

      it_event_exit                 =

      is_print                      =

      is_reprep_id                  =

      i_screen_start_column         = '0'

      i_screen_start_line           = '0'

      i_screen_end_column           = '0'

      i_screen_end_line             = '0'

      i_html_height_top             = '0'

      i_html_height_end             = '0'

      it_alv_graphics               =

      it_hyperlink                  =

      it_add_fieldcat               =

      it_except_qinfo               =

      ir_salv_fullscreen_adapter    =

    IMPORTING

      e_exit_caused_by_caller       =

      es_exit_caused_by_user        =

    TABLES

       t_outtab                      = gt_print

      EXCEPTIONS

       program_error                 = 1

       OTHERS                        = 2.

 

下面看看两个函数各自输出的方式与操作;

1)    REUSE_ALV_GRID_DISPLAY 函数:

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

REPORT  ztest_jx_alv.

 

TYPES: slis.

 

TYPESBEGIN OF ty_s_matnr,

  matnr TYPE mara-matnr,

  END OF ty_s_matnr.

 

DATA: i_tab TYPE STANDARD TABLE OF ty_s_matnr.

 

SELECT matnr

  FROM mara

  INTO CORRESPONDING FIELDS OF TABLE i_tab

  UP TO 20 ROWS.

 

DATA: wa_fieldcat TYPE slis_fieldcat_alv ,    " 相当于工作区

      i_fieldcat  TYPE slis_t_fieldcat_alv ,  " 存放列名的列表

      i_layout    TYPE slis_layout_alv .      " 负责整个ALV的全局属性

 

DATA: lv_pos TYPE p.

 

wa_fieldcat-qtabname    =

wa_fieldcat-ctabname    =

wa_fieldcat-tabname     = 'I_TAB'.

wa_fieldcat-fieldname   = 'MATNR'.        " 需要输出的内表的字段名

wa_fieldcat-seltext_l   = 'Material NO.'. " 字段的描述-长字段标签

wa_fieldcat-seltext_m   = 'Material NO.'. " 字段描述-中字段标签

wa_fieldcat-seltext_s   = 'Material NO.'. " 字段描述-短字段标签

wa_fieldcat-fix_column  = 'X' .           " 是否是固定列

APPEND wa_fieldcat TO i_fieldcat.

CLEAR  wa_fieldcat.

 

 

i_layout-zebra                  = 'X' .          " 使ALV界面呈现颜色交替

i_layout-colwidth_optimize      = 'X' .          " 自动优化列宽

i_layout-detail_initial_lines   = 'X' .          " 是否出现细节屏幕

i_layout-detail_titlebar        = '详细内容' .   " 细节屏幕标题

 

 

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

  EXPORTING

    i_callback_program = sy-repid          " 当前程序

    is_layout          = i_layout          " 属性内表

    it_fieldcat        = i_fieldcat[]      " 列明内表

    i_save             = 'X'               " 是否保存布局

  TABLES

    t_outtab           = i_tab

  EXCEPTIONS

    program_error      = 1

    OTHERS             = 2.

 

输出结果:

reuse_alv_grid_display

reuse_alv_grid_display

 

2)    REUSE_ALV_GRID_DISPLAY_LVC 函数

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

REPORT  ztest_jx_alv_lvc.

 

* 引入类型池

TYPES: slis.

 

TYPESBEGIN OF ty_s_matnr,

  matnr TYPE mara-matnr,

  END OF ty_s_matnr.

 

DATA: i_tab TYPE STANDARD TABLE OF ty_s_matnr .

 

SELECT matnr

  FROM mara

  INTO CORRESPONDING FIELDS OF TABLE i_tab

  UP TO 20 ROWS.

 

DATA: wa_fieldcat_lvc   TYPE lvc_s_fcat ,       " 相当于工作区

      i_fieldcat_lvc    TYPE lvc_t_fcat ,       " 存放列名的列表

      i_layout_lvc      TYPE lvc_s_layo .       " 负责整个ALV的全局属性

 

wa_fieldcat_lvc-tabname       = 'I_TAB'.

wa_fieldcat_lvc-fieldname     = 'MATNR'.          " 需要输出的内表的字段名

wa_fieldcat_lvc-scrtext_l     = 'Material NO.'.   " 字段的描述-长字段标签

wa_fieldcat_lvc-scrtext_m     = 'Material NO.'.   " 字段描述-中字段标签

wa_fieldcat_lvc-scrtext_s     = 'Material NO.'.   " 字段描述-短字段标签

wa_fieldcat_lvc-fix_column    = 'X' .             " 是否是固定列

APPEND wa_fieldcat_lvc TO i_fieldcat_lvc .

CLEAR  wa_fieldcat_lvc.

 

i_layout_lvc-zebra        = 'X' .          " 使ALV界面呈现颜色交替

i_layout_lvc-sel_mode     = 'A' .          " 选择模式,"A"在最左端有选择按钮

i_layout_lvc-cwidth_opt   = 'X' .          " 自动优化列宽

i_layout_lvc-detailinit   = 'X' .          " 是否出现细节屏幕

i_layout_lvc-detailtitl   = '详细内容' .   " 细节屏幕标题

 

 

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'

  EXPORTING

    i_callback_program = sy-repid          " 当前程序

    is_layout_lvc      = i_layout_lvc      " 属性内表

    it_fieldcat_lvc    = i_fieldcat_lvc[]  " 列明内表

    i_save             = 'X'               " 是否保存布局

  TABLES

    t_outtab           = i_tab             " 数据内表

  EXCEPTIONS

    program_error      = 1

    OTHERS             = 2.

 

输出结果:

reuse_alv_grid_display_lvc

reuse_alv_grid_display_lvc

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在信号处理领域,DOA(Direction of Arrival)估计是一项关键技术,主要用于确定多个信号源到达接收阵列的方向。本文将详细探讨三种ESPRIT(Estimation of Signal Parameters via Rotational Invariance Techniques)算法在DOA估计的实现,以及它们在MATLAB环境的具体应用。 ESPRIT算法是由Paul Kailath等人于1986年提出的,其核心思想是利用阵列数据的旋转不变性来估计信号源的角度。这种算法相比传统的 MUSIC(Multiple Signal Classification)算法具有较低的计算复杂度,且无需进行特征值分解,因此在实际应用颇具优势。 1. 普通ESPRIT算法 普通ESPRIT算法分为两个主要步骤:构造等效旋转不变系统和估计角度。通过空间平移(如延时)构建两个子阵列,使得它们之间的关系具有旋转不变性。然后,通过对子阵列数据进行最小二乘拟合,可以得到信号源的角频率估计,进一步转换为DOA估计。 2. 常规ESPRIT算法实现 在描述提到的`common_esprit_method1.m`和`common_esprit_method2.m`是两种不同的普通ESPRIT算法实现。它们可能在实现细节上略有差异,比如选择子阵列的方式、参数估计的策略等。MATLAB代码通常会包含预处理步骤(如数据归一化)、子阵列构造、旋转不变性矩阵的建立、最小二乘估计等部分。通过运行这两个文件,可以比较它们在估计精度和计算效率上的异同。 3. TLS_ESPRIT算法 TLS(Total Least Squares)ESPRIT是对普通ESPRIT的优化,它考虑了数据噪声的影响,提高了估计的稳健性。在TLS_ESPRIT算法,不假设数据噪声是高斯白噪声,而是采用总最小二乘准则来拟合数据。这使得算法在噪声环境下表现更优。`TLS_esprit.m`文件应该包含了TLS_ESPRIT算法的完整实现,包括TLS估计的步骤和旋转不变性矩阵的改进处理。 在实际应用,选择合适的ESPRIT变体取决于系统条件,例如噪声水平、信号质量以及计算资源。通过MATLAB实现,研究者和工程师可以方便地比较不同算法的效果,并根据需要进行调整和优化。同时,这些代码也为教学和学习DOA估计提供了一个直观的平台,有助于深入理解ESPRIT算法的工作原理。
ABAP OOALV是一种在ABAP编程语言面向对象的方式实现的ALV(ABAP List Viewer)报表。它提供了更灵活和可扩展的方式来创建和展示报表数据。 以下是ABAP OOALV的一些关键步骤和示例代码[^1][^2]: 1. 定义变量和选择屏幕定义:在ABAP程序定义所需的变量,并选择适当的屏幕定义。 2. 创建类:创建一个类来处理ALV报表的逻辑和功能。这个类应该继承自`CL_GUI_ALV_GRID`类。 3. 调用函数:在类定义一个方法来调用ALV函数模块,例如`REUSE_ALV_GRID_DISPLAY`。 4. 获取数据并展示:在类定义一个方法来获取报表数据,并将数据传递给ALV函数模块。 5. 表头字段设置:在类定义一个方法来设置ALV报表的表头字段。 6. ALV输出格式:在类定义一个方法来设置ALV报表的输出格式,例如列宽、对齐方式等。 7. 展示ALV:在类定义一个方法来展示ALV报表。 8. 其他:根据需要,可以在类定义其他方法来处理特定的功能,例如处理单击事件、排序等。 下面是一个简单的示例代码,演示了如何使用ABAP OOALV来创建和展示一个简单的报表: ```abap CLASS lcl_alv_report DEFINITION. PUBLIC SECTION. METHODS: constructor, display_alv. PRIVATE SECTION. DATA: lo_alv_grid TYPE REF TO cl_gui_alv_grid. METHODS: get_data, set_field_catalog, set_layout. ENDCLASS. CLASS lcl_alv_report IMPLEMENTATION. METHOD constructor. CREATE OBJECT lo_alv_grid EXPORTING i_parent = cl_gui_container=>screen0. ENDMETHOD. METHOD display_alv. CALL METHOD lo_alv_grid->set_table_for_first_display EXPORTING i_structure_name = 'SPFLI' CHANGING it_outtab = lt_spfli. ENDMETHOD. METHOD get_data. SELECT * FROM spfli INTO TABLE lt_spfli. ENDMETHOD. METHOD set_field_catalog. DATA: lt_fieldcat TYPE lvc_t_fcat. FIELD-SYMBOLS: <fs_fieldcat> TYPE lvc_s_fcat. CALL METHOD lo_alv_grid->get_frontend_fieldcatalog RECEIVING rt_fieldcatalog = lt_fieldcat. LOOP AT lt_fieldcat ASSIGNING <fs_fieldcat>. <fs_fieldcat>-outputlen = 20. ENDLOOP. CALL METHOD lo_alv_grid->set_frontend_fieldcatalog EXPORTING it_fieldcatalog = lt_fieldcat. ENDMETHOD. METHOD set_layout. DATA: lo_layout TYPE REF TO cl_gui_alv_layout. CREATE OBJECT lo_layout EXPORTING i_grid_title = 'ALV Report'. CALL METHOD lo_alv_grid->set_layout EXPORTING is_layout = lo_layout. ENDMETHOD. ENDCLASS. DATA: lo_report TYPE REF TO lcl_alv_report. START-OF-SELECTION. CREATE OBJECT lo_report. lo_report->get_data( ). lo_report->set_field_catalog( ). lo_report->set_layout( ). lo_report->display_alv( ). ``` 这是一个简单的ABAP OOALV报表的示例,它获取了`SPFLI`表的数据,并展示在ALV报表。你可以根据自己的需求进行修改和扩展。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值