为动态表中的行着色

2020-09-12 17:55发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


Hallo专家,

我需要根据某些条件对某些行进行着色,尽管对某些列和单元格进行着色工作正常,但是对某些行进行着色对我来说根本不起作用,我的编码如下所示,

1。 拾取数据,

在这里,我将与课程一起选择数据
 我在这种类型的DATA lts_data类型zz_ts_data中添加了一个名为" COLOR"类型lvc_t_scol的字段。

 FIELD-SYMBOLS 类似lts_data的行

 FIELD-SYMBOLS 类型任何表。

 FIELD-SYMBOLS  TYPE数据。

  zzcl_dd_process => get_instance()-> get_rprts_by_fsel_rng
 (出口
  iv_bukrs = gc_bukrs
  it_fsel_rng = lt_fsel_rng
 输入
  ets_data = lts_data)。

 循环至lts_data ASSIGNING 。

 将初始行插入表中,并分配。

 将移动到。
 ENDLOOP。

2。 显示数据,

数据ls_color类型lvc_s_colo。
 数据lo_not_fin_acr_ov_alv_cols类型参考cl_salv_columns_table。
 数据lo_not_fin_acr_ov_col类型参考cl_salv_column_table。
 数据:lt_s_color TYPE lvc_t_scol,
       ls_s_color类型为lvc_s_scol。
 数据ls_color类型lvc_s_colo。

 创建对象go_data
 出口

  container_name ='CON'。

 呼叫方法cl_salv_table => factoryEXPORTING

  r_container = go_data
 输入

  r_salv_table = go_alv
 改变

  t_table = 。

 万一。

 *******将红色设置为一列,一切正常************

  ls_color-col ='6'。

  lo_not_fin_acr_ov_alv_cols = go_not_fin_acr_ov_alv-> get_columns()。

  lo_not_fin_acr_ov_col?= lo_not_fin_acr_ov_alv_cols-> get_column('TG_RUN_NO')
 。
  lo_not_fin_acr_ov_col-> set_color(ls_color)。

 *******将颜色设置为行,一切都无法正常工作********

 循环分配。

 将结构的组件" BUKRS"分配给。

 将结构的组件"颜色"分配给。

 如果Bukrs =" 1130"。
  ls_s_color-color-col = cl_gui_resources => list_col_positive ..

  ls_s_color-color-int = 0。

  ls_s_color-color-inv = 0。

 附录ls_s_color至lt_s_color。
 万一。
  = lt_s_color。
 万一。
 从修改表。

 结局。
 go_alv-> display(
 

正如我提到的那样,对行进行着色完全无效,您的建议受到高度赞赏,

最好的问候

珍妮

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


Hallo专家,

我需要根据某些条件对某些行进行着色,尽管对某些列和单元格进行着色工作正常,但是对某些行进行着色对我来说根本不起作用,我的编码如下所示,

1。 拾取数据,

在这里,我将与课程一起选择数据
 我在这种类型的DATA lts_data类型zz_ts_data中添加了一个名为" COLOR"类型lvc_t_scol的字段。

 FIELD-SYMBOLS 类似lts_data的行

 FIELD-SYMBOLS 类型任何表。

 FIELD-SYMBOLS  TYPE数据。

  zzcl_dd_process => get_instance()-> get_rprts_by_fsel_rng
 (出口
  iv_bukrs = gc_bukrs
  it_fsel_rng = lt_fsel_rng
 输入
  ets_data = lts_data)。

 循环至lts_data ASSIGNING 。

 将初始行插入表中,并分配。

 将移动到。
 ENDLOOP。

2。 显示数据,

数据ls_color类型lvc_s_colo。
 数据lo_not_fin_acr_ov_alv_cols类型参考cl_salv_columns_table。
 数据lo_not_fin_acr_ov_col类型参考cl_salv_column_table。
 数据:lt_s_color TYPE lvc_t_scol,
       ls_s_color类型为lvc_s_scol。
 数据ls_color类型lvc_s_colo。

 创建对象go_data
 出口

  container_name ='CON'。

 呼叫方法cl_salv_table => factoryEXPORTING

  r_container = go_data
 输入

  r_salv_table = go_alv
 改变

  t_table = 。

 万一。

 *******将红色设置为一列,一切正常************

  ls_color-col ='6'。

  lo_not_fin_acr_ov_alv_cols = go_not_fin_acr_ov_alv-> get_columns()。

  lo_not_fin_acr_ov_col?= lo_not_fin_acr_ov_alv_cols-> get_column('TG_RUN_NO')
 。
  lo_not_fin_acr_ov_col-> set_color(ls_color)。

 *******将颜色设置为行,一切都无法正常工作********

 循环分配。

 将结构的组件" BUKRS"分配给。

 将结构的组件"颜色"分配给。

 如果Bukrs =" 1130"。
  ls_s_color-color-col = cl_gui_resources => list_col_positive ..

  ls_s_color-color-int = 0。

  ls_s_color-color-inv = 0。

 附录ls_s_color至lt_s_color。
 万一。
  = lt_s_color。
 万一。
 从修改表。

 结局。
 go_alv-> display(
 

正如我提到的那样,对行进行着色完全无效,您的建议受到高度赞赏,

最好的问候

珍妮

付费偷看设置
发送
4条回答
奄奄一息的小鱼
1楼-- · 2020-09-12 18:21

还必须使用方法SET_COLOR_COLUMN定义颜色列的名称。

您对SET_COLOR_COLUMN中的"列"一词感到困惑。 这并不表示显示该列,而是表示内部表中用于包含颜色的列。 将列命名为" COLOR"后,就必须

 go_alv-> get_columns()-> set_color_column('COLOR')。
绿领巾童鞋
3楼-- · 2020-09-12 18:02

请仔细检查以下线程 ,可能会对您有所帮助。

ALV输出中整行的颜色

N-Moskvin
4楼-- · 2020-09-12 18:08
< p>您正在分配组件,但未在任何地方使用

下面的代码将在等于1130时查找bukrs值,然后将显示颜色行。

 LOOP AT 分配。

 将结构的组件" BUKRS"分配给。

 如果 ='1130'。
  ls_s_color-color-col = 5。

  ls_s_color-color-int = 0。

  ls_s_color-color-inv = 0。

  附录ls_s_color至-颜色。  <-将内部颜色表附加到Bukrs字段行
 万一。

 ENDLOOP。

使用字段符号时无需使用"修改内部表"。

修改表

请再次检查,让我知道它是否有效

非常感谢!!! ...

一周热门 更多>