abapALV总结.docx

上传人:b****3 文档编号:3941075 上传时间:2023-05-06 格式:DOCX 页数:32 大小:137.25KB
下载 相关 举报
abapALV总结.docx_第1页
第1页 / 共32页
abapALV总结.docx_第2页
第2页 / 共32页
abapALV总结.docx_第3页
第3页 / 共32页
abapALV总结.docx_第4页
第4页 / 共32页
abapALV总结.docx_第5页
第5页 / 共32页
abapALV总结.docx_第6页
第6页 / 共32页
abapALV总结.docx_第7页
第7页 / 共32页
abapALV总结.docx_第8页
第8页 / 共32页
abapALV总结.docx_第9页
第9页 / 共32页
abapALV总结.docx_第10页
第10页 / 共32页
abapALV总结.docx_第11页
第11页 / 共32页
abapALV总结.docx_第12页
第12页 / 共32页
abapALV总结.docx_第13页
第13页 / 共32页
abapALV总结.docx_第14页
第14页 / 共32页
abapALV总结.docx_第15页
第15页 / 共32页
abapALV总结.docx_第16页
第16页 / 共32页
abapALV总结.docx_第17页
第17页 / 共32页
abapALV总结.docx_第18页
第18页 / 共32页
abapALV总结.docx_第19页
第19页 / 共32页
abapALV总结.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

abapALV总结.docx

《abapALV总结.docx》由会员分享,可在线阅读,更多相关《abapALV总结.docx(32页珍藏版)》请在冰点文库上搜索。

abapALV总结.docx

abapALV总结

目录

1.将得到并整理好的数据以ALV的形式显示出来4

1.1.在子FORM(这里如:

F_FIELDS)指定需要显示的字段4

1.2.在子FORM(这里如:

F_BUILD_LAYOUT)里设置ALV的全局属性4

1.3.在子FORM(这里如:

F_DISPLAY)里将内表中的数据进行显示5

1.4.为ALV程序添加表头标题(这里以添加HTML表头标题为主)5

1.4.1.在显示ALV的函数(REUSE_ALV_GRID_DISPLAY_LVC)里添加一个参数5

1.4.2.在子FORM(F_TOP_OF_PAGE)里定义好需要的变量5

1.4.3.准备好所需数据,如登录用户的描述、制表日期等6

1.4.4.将表头数据输出6

2.函数“REUSE_ALV_GRID_DISPLAY_LVC”中输入参数的应用7

2.1.排序7

2.1.1.在显示ALV的子FORM里定义排序用到的变量7

2.1.2.设置好需要排序的字段8

2.1.3.在显示ALV的函数的输入参数里添加排序的属性8

2.2.隐藏不必要的标准按钮8

2.2.1.先在显示ALV的子FORM里定义隐藏按钮用到的变量8

2.2.2.得到需要隐藏的标准按钮的“FCODE”8

2.3.自定义“工具栏”9

2.3.1.在显示ALV的函数的输入参数里指定自定义按钮的子FORM9

3.热点链接、用户动作的捕捉、调用其他程序或标准事务程序11

3.1.在显示ALV的函数的输入参数里指定捕捉用户动作的子FORM11

3.2.在“字段和列名”的子FORM(F_FIELDS)里,对需要链接的列添加“热点”属性11

3.3.操作代码11

3.4.显示具体细节12

3.5.调用其他事务14

3.6.打开并选择文件:

14

4.关于设置字段和列名的子FORM(F_FIELDS)的参数设置:

15

4.1.单列优化宽度15

4.2.单列求和或者取消求和,添加属性15

4.3.对其方式15

4.4.作为图标输出16

4.5.固定列和关键列16

4.6.列的字符宽度16

5.单元格的F1、F4帮助:

17

5.1.F1帮助:

17

5.2.F4帮助:

17

6.输入并保存、回调修改内表(输入时的小数位错位的问题、指定数据类型、小说位数)17

7.界面颜色的更改18

7.1.更改单元格(字体)的前景、背景颜色19

7.2.更改行的颜色和列的颜色:

19

7.3.利用设置字段和列名子的FORM(F_FIELDS)里来设置列的颜色20

8.ALV自带的最左端复选框按钮和自定义复选框按钮20

8.1.ALV自带的复选框按钮:

20

8.2.自定义复选框按钮20

9.按照上传的模板格式导出为本地文件21

9.1.定义导出为EXCEL用到的数据变量21

9.2.上传模板21

9.3.代码22

10.为ALV标题添加图片26

10.1.上传图片26

10.2.在子FORM(F_TOP_OF_PAGE2)里的代码27

 

ALV:

SAPLISTVIEW,一种比较美观的报表显示工具

ALV用到的函数,目前我们有2个:

REUSE_ALV_GRID_DISPLAY、REUSE_ALV_GRID_DISPLAY_LVC;两个函数都可以将数据用ALV的形式显示出来,只是方在一些小的地方有些不同。

其中第两个函数都用到的全局变量为:

1个类型池SLIS和一个指定列数的变量

DATA:

 v_pos       TYPE i .  " 指定第几列

第1个函数用到的全局变量如下:

DATA:

 wa_fieldcat TYPE slis_fieldcat_alv ,    " 相当于工作区

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

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

第2个函数用到的全局变量:

DATA:

 wa_fieldcat TYPE lvc_s_fcat , " 相当于工作区

      i_fieldcat  TYPE lvc_t_fcat , " 存放列名的捏表

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

下面以第2个函数(REUSE_ALV_GRID_DISPLAY_LVC)来介绍ALV的用法;

1.将得到并整理好的数据以ALV的形式显示出来

1.1.在子FORM(这里如:

F_FIELDS)指定需要显示的字段

  v_pos = v_pos + 1 .

  wa_fieldcat-col_pos       = v_pos .       " 指定列数

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

  wa_fieldcat-scrtext_l     = '项目定义 '.  " 字段的描述-长字段标签

  wa_fieldcatscrtext_m     = '项目定义 '.  " 字段描述-中字段标签

  wa_fieldcat-scrtext_s     = '项目定义 '.  " 字段描述-短字段标签

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

  APPENDwa_fieldcat TO i_fieldcat_lvc .

  CLEAR wa_fieldcat .

这样逐步的将需要显示的字段都添加到内表i_fieldcat中;

1.2.在子FORM(这里如:

F_BUILD_LAYOUT)里设置ALV的全局属性

  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   = '详细内容' . " 细节屏幕标题

1.3.在子FORM(这里如:

F_DISPLAY)里将内表中的数据进行显示

  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.

通过这一步后,一个基本的ALV程序就完成了;下面是对ALV程序的优化和扩展。

1.4.为ALV程序添加表头标题(这里以添加HTML表头标题为主)

1.4.1.在显示ALV的函数(REUSE_ALV_GRID_DISPLAY_LVC)里添加一个参数

i_callback_html_top_of_page       = 'F_TOP_OF_PAGE'

其中“F_TOP_OF_PAGE”是书写ALV表头标题的子FORM,只是在这里使用,没有明显的“PERFORM”调用,如下:

FORM f_top_of_page USING p_cl_dd TYPE REF TO cl_dd_document.

1.4.2.在子FORM(F_TOP_OF_PAGE)里定义好需要的变量

  " 定义登录用户的描述

  DATA:

 l_name TYPE string ,

        name_first LIKE adrp-name_first ,

        name_last  LIKE adrp-name_last .

  " 定义登录日期

  DATA:

 l_date TYPE string .

  " 定义缓冲区变量

  DATA:

 m_p TYPE i ,

        m_buffer TYPE string .

1.4.3.准备好所需数据,如登录用户的描述、制表日期等

  " 得到登录用户的描述

  SELECT SINGLE adrp~name_first

                adrp~name_last

   INTO (name_first,name_last)

   FROM adrp

         INNER JOIN usr21 ON adrp~persnumber = usr21~persnumber

  WHERE usr21~bname = sy-uname .

  IF sy-subrc = 0 .

    CONCATENATE name_last name_first INTO l_name .

  ELSE .

    l_name = sy-uname .

  ENDIF.

  CLEAR name_first .

  CLEAR name_last .

  " 拼接制表日期

  CONCATENATE sy-datum+0

(2) '.'

              sy-datum+4

(2) '.'

              sy-datum+6

(2) '.'

         INTO l_date .

1.4.4.将表头数据输出

  " 开始输出表头标题

  m_buffer = '

ALV测试

' .

  CALL METHOD p_cl_dd->html_insert

    EXPORTING

      contents = m_buffer

    CHANGING

      position = m_p.

  " 输出制表人和制表日期

  CONCATENATE '出表人:

' l_name

            '                  '

            '                  '

            '                  '

            '                  '

            '                  '

            '                  '

            '出表日期:

' l_date INTO m_buffer .

  CALL METHOD p_cl_dd->html_insert

    EXPORTING

      contents = m_buffer

    CHANGING

      position = m_p.

现将需要显示的表头数据放到变量“M_BUFFER”中,然后调用方法“P_CL_DD->HEML_INSERT”将数据插入到HTML页面中显示,至此显示表头数据完成;

2.函数“REUSE_ALV_GRID_DISPLAY_LVC”中输入参数的应用

2.1.排序

排序之前,如果同一列有相同的数据,则排好序以后,在该列会自动将相同的数据合并为一行显示,不再出现多行重复的情况(但是若该ALV中有字段设置了“可编辑”,合并这一现象会失效),步骤如下:

2.1.1.在显示ALV的子FORM里定义排序用到的变量

 " 定义排序变量

  DATA:

 wa_sort_lvc TYPE lvc_s_sort ,

        it_sort_lvc TYPE lvc_t_sort .

2.1.2.设置好需要排序的字段

 " 设置排序参数

  wa_sort_lvc-spos        = 1 .           " 排序顺序

  wa_sort_lvc-fieldname   = 'CITYFROM' .  " 排序字段

  wa_sort_lvc-up          = 'X' .         " 升序

  APPEND wa_sort_lvc TO it_sort_lvc .

  CLEAR wa_sort_lvc .

  wa_sort_lvc-spos        = 2 .           " 排序顺序

  wa_sort_lvc-fieldname   = 'CITYTO' .  " 排序字段

  wa_sort_lvc-up          = 'X' .         " 升序

  APPEND wa_sort_lvc TO it_sort_lvc .

  CLEAR wa_sort_lvc .

2.1.3.在显示ALV的函数的输入参数里添加排序的属性

it_sort_lvc                       = it_sort_lvc

2.2.隐藏不必要的标准按钮

2.2.1.先在显示ALV的子FORM里定义隐藏按钮用到的变量

  " 定义隐藏标准按钮的变量

  DATA:

 wa_excluding TYPE slis_t_extab ,

        it_excluding TYPE slis_extab .

2.2.2.得到需要隐藏的标准按钮的“FCODE”

首先用事务码“SE24”进入SAP的“类别制作器”,在“Objecttype”后面输入ALV的类“CL_GUI_ALV_GRID”,点击“Display”进入显示界面,点击“Attributes”选项卡,找到自己需要的“属性”和“初始值”,这个初始值就是我们要找的标准按钮的“FCODE”(注意:

每一个标准按钮代表的FCODE是靠经验积累而掌握的);

1>、设将需要隐藏的标准按钮的“FCODE”添加到内表IT_EXCLUDING中,代码如下:

  " 设置要隐藏的按钮的“FCODE”

  wa_excluding-fcode = '&ABC' .

  APPEND wa_excluding TO it_excluding .

2>、在显示ALV的函数的输入参数里添加隐藏按钮的属性参数:

it_excluding                      = it_excluding

1、ALV标题,定义标题变量并赋值,然后在显示ALV的函数的输入参数里添加“小标题”的参数,代码如下:

  " 小标题

  DATA:

 i_grid_title TYPE lvc_title .

  i_grid_title = '小标题' .

**********************************

i_grid_title                      = i_grid_title

2.3.自定义“工具栏”

2.3.1.在显示ALV的函数的输入参数里指定自定义按钮的子FORM

i_callback_pf_status_set          = 'F_SET_STATUS'

当然该子FORM和产生表头的子FORM一样,也不显式的调用,代码如下:

FORM f_set_status USING p_extab TYPE slis_t_extab .

  SET PF-STATUS 'Z_ALV_STATUS' .

ENDFORM.                    " f_set_status

双击其中的“Z_ALV_STATUS”,进入创建工具栏的界面,输入名字后进入最终的界面在界面右侧,

点击“应用工具条”后面的展开符号,在“项目”后面的白色方框内输入“自定义按钮”的代码后回车,选择静态文本回车,在“函数文本”后面输入想要显示的按钮的名称,在“图标名称”后面选择相应的图标(可选),回车在这一界面选择一个“快捷键”(必填)后回车,这样一个自定义按钮就做好了,也可以修改,记住刚刚创建的按钮的代码,在下面的捕捉用户的动作的自FORM(F_USER_COMMAND)会根据刚才的代码来进行相应的操作;

1、点开“功能键”后面的展开符号,进入功能键的设置,下图是各个动作对应的代码:

2、没有自定义按钮时候,函数里的“i_callback_pf_status_set  = 'F_SET_STATUS'”这个参数可以不要,这时会显示ALV标准的按钮,当然这些按钮可以部分隐藏(见三、2);

3、当我们使用自定义按钮后,ALV自带的标准按钮,就会失效,这时我们需要将一些用户要求我们必须显示的按钮一一地在“应用工具条”后面补上,如下图:

其中“分隔符”的插入方法为:

在需要插入分隔符的方框内选择菜单“Edit”“Insert”“Separatorline”即可插入分隔符;

下面是上图中的标准工具的名称、代码、图标名称、快捷键

名称

代码

图标名称

快捷键

刷新

REFRESH

ICON_REFRESH

F8(可随便更改)

导出为EXCEL表格

EXCEL

Shift-F8(可随便更改)

ABC分析

&ABC

ICON_ABC

Ctrl-F1

按升序排列

&OUP

ICON_SORT_UP

Ctrl-F4

设置过滤器

&ILT

ICON_FILTER

Ctrl-F5

总计

&UMC

ICON_SUM

Ctrl-F6

邮件查收件

%SL

ICON_MAIL

Ctrl-F7

更改布局…

&OL0

ICON_ALV_VARIANTS

Ctrl-F8

选择布局…

&OAD

ICON_ALV_VARIANT_CHOOSE

Ctrl-F9

保存布局…

&AVE

ICON_ALV_VARIANT_SAVE

Ctrl-F10

信息

&INFO

ICON_INFORMATION

Ctrl-F12

明细

&ETA

ICON_SELECT_DETAIL

Ctrl-Shift-F3

按降序排列

&ODN

ICON_SORT_DOWN

Ctrl-Shift-F4

删除过滤器

&ILD

ICON_FILTER_UNDO

Ctrl-Shift-F5

小计…

&SUM

ICON_INTERMEDIATE_SUM

Ctrl-Shift-F6

Microsof

&VEXCEL

ICON_XLS

Ctrl-Shift-F7

字处理

&AQW

ICON_WORD_PROCESSING

Ctrl-Shift-F8

本地文件

%PC

ICON_EXPORT

Ctrl-Shift-F9

打印预览

&RNT_PREV

ICON_LAYOUT_CONTROL

Ctrl-Shift-F10

图形

&GRAPH

ICON_GRAPHICS

Ctrl-Shift-F11

上表中红色的属于自定义按钮,自定义按钮可以使用标准的图标名称,也可以不适用图标;

3.热点链接、用户动作的捕捉、调用其他程序或标准事务程序

3.1.在显示ALV的函数的输入参数里指定捕捉用户动作的子FORM

FORM f_user_command USING p_ucomm TYPE sy-ucomm

                          p_rs_selfield TYPE slis_selfield .

当然该子FORM和产生表头的子FORM一样,也不显式的调用;

3.2.在“字段和列名”的子FORM(F_FIELDS)里,对需要链接的列添加“热点”属性

  v_pos = v_pos + 1 .

  wa_fieldcat-col_pos       = v_pos .

  wa_fieldcat-fieldname     = 'CITYFROM' .

  wa_fieldcat-scrtext_l     = '起飞城市' .

  wa_fieldcat-fix_column    = 'X' .

  wa_fieldcat-hotspot       = 'X' .     " 热点,链接用

  APPEND wa_fieldcat TO i_fieldcat .

  CLEAR wa_fieldcat .

这样在显式界面上“起飞城市”所代表的字段“CITYFROM”的下面就会出现一条下划线,同时当鼠标移动到该列时,就会变成“等待”的手势,当用户单击每一条时,就会触动子FORM(F_USER_COMMAND)中的动作,进而引起某些操作;

3.3.操作代码

对于热点链接,所对应的动作码为“&IC1”,在子FORM(F_USER_COMMAND)中捕捉用户的动作,并进行相应的操作,代码如下:

  FORM f_user_command USING p_ucomm TYPE sy-ucomm

                          p_rs_selfield TYPE slis_selfield .

  CASE p_ucomm.

    WHEN '&IC1' .

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2