首页 技术 正文
技术 2022年11月7日
0 收藏 957 点赞 650 浏览 6665 个字

ALV详解:OO SALV声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4291387.html

设置单元格颜色

OOset_all( abap_true)设置的按钮要少很多
  gr_table->display( ).

FORM inital .
  gt_data-key1 = ‘a’.
  gt_data-key2 = ‘aa’.
  APPEND gt_data.
ENDFORM.

可控模式

先绘制屏幕 100,然后在其上面放上用户自定义控件区域(Custom Control)ALV详解:OO SALV,并命名为CONTAINER_1:

ALV详解:OO SALV

ALV详解:OO SALV

可控模式(利用控制器的模式)的SALV是不能以弹出框来显示的

ALV详解:OO SALV

end_column
    start_line
    end_line = 5 ).
  gr_table->display( ).

FORM inital .
  gt_data-key1 = ‘a’.
  gt_data-key2 = ‘aa’.
  APPEND gt_data.
  gt_data-key1 = ‘b’.
  gt_data-key2 = ‘bbbbbbbb’.
  APPEND gt_data.
ENDFORM.

排序、分类汇总

该示例与前面Function ALV的示例效果是一样的

ALV详解:OO SALV

sequence .
  APPEND gt_data.
ENDFORM.

设置数据过滤条件

ALV 的标准按钮中已经有过滤的功能,我们也可以在初始显示的时候就设置过滤条件

ALV详解:OO SALV

.
  APPEND gt_data.
ENDFORM.

GUI Status

使用全屏模式全屏幕经典列表模式的SALV

全屏模式全屏幕经典列表模式的SALV
  gr_table->set_screen_status(
     pfstatus = ‘T002′”系统提示的标准Status为可控制模式(即用户对话屏幕)的SALV

ALV详解:OO SALV
.

FORM inital .
  gt_data-key1 = ‘a’.
  gt_data-key2 = ‘aa’.
  APPEND gt_data.
ENDFORM.

MODULE 100_pbo OUTPUT.
  PERFORM inital.
  “判断是否已分配了一个有效引用
  IF gr_container IS NOT BOUND.
    “创建容器
    CREATE OBJECT gr_container
      EXPORTING
        container_name = ‘CONTAINER_1’.”屏幕上用户自定义控件名
    “创建ALV
    cl_salv_table=>factory(
      EXPORTING
          r_container = gr_container
          container_name = ‘CONTAINER_1’
      IMPORTING
          r_salv_table = gr_table
      CHANGING
          t_table = gt_data[] ).

“附加刷新按钮
    DATA: lr_functions TYPE REF TO cl_salv_functions_list.
    lr_functions = gr_table->get_functions( ).
    lr_functions->在预设置工具栏上附加按钮”示例的基础上,增加按钮事件

ALV详解:OO SALV

.

FORM inital .
  gt_data-key1 = ‘a’.
  gt_data-key2 = ‘aa’.
  APPEND gt_data.
ENDFORM.

MODULE 100_pbo OUTPUT.
  PERFORM inital.
  “判断是否已分配了一个有效引用
  IF gr_container IS NOT BOUND.
    “创建容器
    CREATE OBJECT gr_container
      EXPORTING
        container_name = ‘CONTAINER_1’.”屏幕上用户自定义控件名
    “创建ALV
    cl_salv_table=>factory(
      EXPORTING
          r_container = gr_container
          container_name = ‘CONTAINER_1’
      IMPORTING
          r_salv_table = gr_table
      CHANGING
          t_table = gt_data[] ).

“附加刷新按钮
    DATA: lr_functions TYPE REF TO cl_salv_functions_list.
    lr_functions = gr_table->get_functions( ).
    lr_functions->set_all( abap_true ).
    INCLUDE <icon>.
    DATA: l_icon TYPE string.
    l_icon = icon_refresh.
    “附加按钮,只适用于 可控模式 下的SALV
    lr_functions->add_function(
      name = ‘REFRESH’
      icon = l_icon
      text = ‘刷新按钮’
      tooltip = ‘刷新数据’
      “按钮存放的位置:这里在右边附加。该参数的其他取值可以查看该方法源码,可以
      “找到该参数其他取值的蛛丝马迹
      position = if_salv_c_function_position=>right_of_salv_functions ).

“=====获取事件对象
    DATA: lr_event TYPE REF TO cl_salv_events_table.
    lr_event = gr_table->get_event( ).

“=====事件注册
    DATA: lr_handle_event TYPE REF TO l_cl_handle_events.
    CREATE OBJECT lr_handle_event.
    SET HANDLER lr_handle_event->on_user_command FOR lr_event.

“显示
    gr_table->display( ).

ENDIF.
ENDMODULE.

FORM handle_user_command USING p_function TYPE salv_de_function.
  CASE p_function.
    WHEN ‘REFRESH’.
      PERFORM inital.
      gr_table->refresh( ).
  ENDCASE.
ENDFORM.

红绿灯、灯提示信息

ALV详解:OO SALV

),
END OF gt_data.

START-OF-SELECTION.
  PERFORM inital.
  cl_salv_table=>factory(
    IMPORTING r_salv_table = gr_table
    CHANGING t_table = gt_data[] ).

gr_columns = gr_table->get_columns( ).
  gr_columns->set_exception_column( ‘LIGHT’ ).

gr_column ?= gr_columns->get_column( ‘LIGHT’ ).
  “如果不通过下面set_ddic_reference方法来设置参
  “照某词典类型,则异常列标题固定显示为 Exception
  gr_column->set_long_text( ‘异常灯’ ).
  DATA: s_ddic TYPE salv_s_ddic_reference.
  s_ddic-field = ‘FIELD’.
  s_ddic-table = ‘SALV_S_DDIC_REFERENCE’.

gr_column->set_ddic_reference( s_ddic ).
  gr_column ?= gr_columns->get_column( ‘VAL’ ).
  gr_column->set_long_text( ‘异常值’ ).

“==========为异常列单无格不同的值添加不同的冒泡提示
  DATA:lr_functional_settings TYPE REF TO cl_salv_functional_settings.
  lr_functional_settings = gr_table->get_functional_settings( ).
  DATA: lr_tooltips TYPE REF TO cl_salv_tooltips.
  lr_tooltips = lr_functional_settings->get_tooltips( ).

lr_tooltips->add_tooltip(
  “单元格显示类型:异常灯、图标、符号。即这里针对的是类型为 异常列 所有的单元格
    type = cl_salv_tooltip=>c_type_exception
    value = space”不同的图形不同的冒泡提示
    tooltip = ‘Undefined’).
  lr_tooltips->add_tooltip(
    type = cl_salv_tooltip=>c_type_exception
    value = ‘1’
    tooltip = ‘红灯’).
  lr_tooltips->add_tooltip(
    type = cl_salv_tooltip=>c_type_exception
    value = ‘2’
    tooltip = ‘黄灯’).
  lr_tooltips->add_tooltip(
    type = cl_salv_tooltip=>c_type_exception
    value = ‘3’
    tooltip = ‘绿灯’).
  gr_table->display( ). “调用实例方法显示表报

FORM inital .
  gt_data-light = ‘ ‘. “取值范围为:空、1~3
  gt_data-val = ‘空’.
  APPEND gt_data .

gt_data-light = ‘1’.
  gt_data-val = ‘1’.
  APPEND gt_data .

gt_data-light = ‘2’.
  gt_data-val = ‘2’.
  APPEND gt_data .

gt_data-light = ‘3’.
  gt_data-val = ‘3’.
  APPEND gt_data .
ENDFORM.

图标显示、图标提示信息

ALV详解:OO SALV

,
  icon TYPE icon_d, “图标
  val TYPE string,
END OF gt_data.

START-OF-SELECTION.
  PERFORM inital.
  cl_salv_table=>factory(
    IMPORTING r_salv_table = gr_table
    CHANGING t_table = gt_data[] ).

gr_columns= gr_table->get_columns( ).
  gr_column ?= gr_columns->get_column( ‘ICON’ ).
  gr_column->set_icon( if_salv_c_bool_sap=>true ).
  gr_column->set_long_text( ‘图标’ ).

gr_column ?= gr_columns->get_column( ‘VAL’ ).
  gr_column->set_long_text( ‘图标值’ ).

“==========为图标列单无格不同的值添加不同的冒泡提示
  DATA:lr_functional_settings TYPE REF TO cl_salv_functional_settings.
  lr_functional_settings = gr_table->get_functional_settings( ).
  DATA: lr_tooltips TYPE REF TO cl_salv_tooltips.
  lr_tooltips = lr_functional_settings->get_tooltips( ).

DATA: lvc_value TYPE lvc_value.
  lvc_value = icon_locked.
  lr_tooltips->add_tooltip(
  “单元格显示类型:异常灯、图标、符号。即这里针对的是类型为 图标列 所有的单元格
    type = cl_salv_tooltip=>c_type_icon
    value = lvc_value”不同的图形不同的冒泡提示
    tooltip = ‘锁定’).
  lvc_value = icon_message_warning.
  lr_tooltips->add_tooltip(
    type = cl_salv_tooltip=>c_type_icon
    value = lvc_value
    tooltip = ‘警告’).
  lvc_value = icon_unlocked.
  lr_tooltips->add_tooltip(
    type = cl_salv_tooltip=>c_type_icon
    value = lvc_value
    tooltip = ‘解锁’).

gr_table->display( ). “调用实例方法显示表报

FORM inital .

gt_data-icon = icon_locked.
  “在前面加了等号,如果不加,也会直接输出图标,而不是文字
  gt_data-val = `=@06@`.
  APPEND gt_data .

gt_data-icon = icon_message_warning.
  gt_data-val = `=@1A@`.
  APPEND gt_data .

gt_data-icon = icon_unlocked.
  gt_data-val = `=@07@`.
  APPEND gt_data .
ENDFORM.

设置单元格颜色

ALV详解:OO SALV

),
  color TYPE lvc_t_scol,
  END OF gt_data.

START-OF-SELECTION.
  PERFORM inital.
  cl_salv_table=>factory(
    IMPORTING r_salv_table = gr_table”用来接收工厂产生的实例
    CHANGING t_table = gt_data[] ).

FIELD-SYMBOLS: <ls_outtab> LIKE gt_data.
  DATA: lt_color TYPE lvc_t_scol,
        ls_color TYPE lvc_s_scol.

LOOP AT gt_data ASSIGNING <ls_outtab>.
    CLEAR: ls_color,lt_color.
    IF <ls_outtab>-key1 = ‘a’.
      ls_color-fname = ‘KEY1’.”为哪列设置颜色
      ls_color-color-col = ‘6’.”颜色值
      ls_color-color-int = ‘0’.”加深
      ls_color-color-inv = ‘0’.”前景背景颜色反转
      APPEND ls_color TO  lt_color.
    ENDIF.
    IF <ls_outtab>-key2 = ‘bb’.
      ls_color-fname = ‘KEY2’.
      ls_color-color-col = ‘5’.
      ls_color-color-int = ‘0’.
      ls_color-color-inv = ‘0’.
      APPEND ls_color TO  lt_color.
    ENDIF.
    <ls_outtab>-color = lt_color.
  ENDLOOP.

gr_columns = gr_table->get_columns( ).
  gr_columns->set_color_column( ‘COLOR’ ).
  gr_table->display( ).

FORM inital .
  gt_data-key1 = ‘a’.
  gt_data-key2 = ‘aa’.
  APPEND gt_data.
  gt_data-key1 = ‘b’.
  gt_data-key2 = ‘bb’.
  APPEND gt_data.
ENDFORM.

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,914
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,438
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,252
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,063
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,698
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,734