如何在ALV cl_salv_table中添加带有颜色的按钮单元格

2020-08-17 18:20发布

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

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


你好社区,我正在尝试使用cl_salv_table在我的alv内添加一个按钮,但我不知道是否可能

这就是我想要我的桌子的方式

这是我的代码:

报告zvim_monitor2。
 包括zvim_monitor2_top。
 " INCLUDE ZVIM_MONITOR2_scr。

 块标题为text-001的块a的选择屏幕开始。
 参数:p_bukrs类型/opt/vim_1head-bukrs必须," Sociedad
             p_lifnr类型/opt/vim_1head-lifnr," Acreedor
             p_name类型/opt/vim_1head-vend_name," Nombre
             p_ref类型/opt/vim_1head-xblnr," Referencia
             p_ddoc类型/opt/vim_1head-bldat," Fecha documento
             p_dexp类型/opt/vim_1head-zfbdt。  Fecha vencimiento
 选择屏幕的方框a。

 包括zvim_monitor2_f01。
 包括zvim_monitor2_alv。

 选择开始。

   使用sy-tcode执行Authority_check。
   执行get_data。
   执行display_alv。

 选择结束。



 类型:开始于st_datos,
          num_fac类型字符串,
          英亩型lifnr,
          名称类型字符串,
          monto类型的字符串,
          id_excp类型字符串,
          des_exc类型字符串,
          date_doc类型字符串,
          id_hes类型字符串,
          moneda类型的字符串,
          视觉类型的字符串,
          前叉类型的字符串,
          rechaz类型的字符串,
         结束于st_datos。
 E
  数据:ls_datos类型st_datos,
 塔布拉斯
        t_datos st_datos的类型表。

 ALV
 数据:gr_table类型参考cl_salv_table。


 FORM display_alv。
   尝试。
     cl_salv_table =>工厂(
       导入r_salv_table = gr_table
       更改t_table = t_datos)。
   捕捉cx_salv_msg。  " #EC NO_HANDLER
   ENDTRY。

   "身份状态为'STANDARD_FULLSCREEN'的国家或地区的积极性
   gr_table-> set_screen_status(report = sy-repid
                                pfstatus ='STANDARD_FULLSCREEN'
                                set_functions = 2)。  " 2 =全部

   数据:lr_columns类型参考cl_salv_columns。

   lr_columns = gr_table-> get_columns()。
   lr_columns-> set_optimize(abap_true)。

   执行set_columns_technical使用lr_columns。

   gr_table-> display()。


 ENDFORM。


 FORM set_columns_technical使用ir_columns类型参考cl_salv_columns。

   数据:lr_column类型参考cl_salv_column。

   尝试。
       lr_column = ir_columns-> get_column('MANDT')。
       lr_column-> set_technical(if_salv_c_bool_sap => true)。
     捕获cx_salv_not_found。  " #EC NO_HANDLER
   ENDTRY。
 ENDFORM。


 形式为get_data。
  ls_datos-num_fac ='4789'。
  ls_datos-acree ='678842'。
  ls_datos-name ='Softtek S.A'。
  ls_datos-monto = '12 .099.902,90'。
  ls_datos-id_excp ='1'。
  ls_datos-des_exc ='HES眼镜蛇与眼镜蛇'。
  ls_datos-date_doc = '04 .07.2020'。
  ls_datos-id_hes ='456'。
  ls_datos-moneda ='CLP'。
  ls_datos-visual ='Visualizar'。
  ls_datos-aprob ='Aprobar'。
  ls_datos-rechaz ='Rechazar'。
  将ls_datos附加到t_datos。

  清除:ls_datos。
  ls_datos-num_fac ='6661'。
  ls_datos-acree ='678880'。
  ls_datos-name ='Parque Arauco'。
  ls_datos-monto ='100.145.902,00'。
  ls_datos-id_excp ='3'。
  ls_datos-des_exc ='HES noestáLiberada'。
  ls_datos-date_doc = '01 .01.2022'。
  ls_datos-id_hes ='672'。
  ls_datos-moneda ='YN'。
  ls_datos-visual ='1234'。
  ls_datos-aprob ='Aprobar'。
  ls_datos-rechaz ='Rechazar'。
  将ls_datos附加到t_datos。
 最终形式。

(4.8 kB)

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

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


你好社区,我正在尝试使用cl_salv_table在我的alv内添加一个按钮,但我不知道是否可能

这就是我想要我的桌子的方式

这是我的代码:

报告zvim_monitor2。
 包括zvim_monitor2_top。
 " INCLUDE ZVIM_MONITOR2_scr。

 块标题为text-001的块a的选择屏幕开始。
 参数:p_bukrs类型/opt/vim_1head-bukrs必须," Sociedad
             p_lifnr类型/opt/vim_1head-lifnr," Acreedor
             p_name类型/opt/vim_1head-vend_name," Nombre
             p_ref类型/opt/vim_1head-xblnr," Referencia
             p_ddoc类型/opt/vim_1head-bldat," Fecha documento
             p_dexp类型/opt/vim_1head-zfbdt。  Fecha vencimiento
 选择屏幕的方框a。

 包括zvim_monitor2_f01。
 包括zvim_monitor2_alv。

 选择开始。

   使用sy-tcode执行Authority_check。
   执行get_data。
   执行display_alv。

 选择结束。



 类型:开始于st_datos,
          num_fac类型字符串,
          英亩型lifnr,
          名称类型字符串,
          monto类型的字符串,
          id_excp类型字符串,
          des_exc类型字符串,
          date_doc类型字符串,
          id_hes类型字符串,
          moneda类型的字符串,
          视觉类型的字符串,
          前叉类型的字符串,
          rechaz类型的字符串,
         结束于st_datos。
 E
  数据:ls_datos类型st_datos,
 塔布拉斯
        t_datos st_datos的类型表。

 ALV
 数据:gr_table类型参考cl_salv_table。


 FORM display_alv。
   尝试。
     cl_salv_table =>工厂(
       导入r_salv_table = gr_table
       更改t_table = t_datos)。
   捕捉cx_salv_msg。  " #EC NO_HANDLER
   ENDTRY。

   "身份状态为'STANDARD_FULLSCREEN'的国家或地区的积极性
   gr_table-> set_screen_status(report = sy-repid
                                pfstatus ='STANDARD_FULLSCREEN'
                                set_functions = 2)。  " 2 =全部

   数据:lr_columns类型参考cl_salv_columns。

   lr_columns = gr_table-> get_columns()。
   lr_columns-> set_optimize(abap_true)。

   执行set_columns_technical使用lr_columns。

   gr_table-> display()。


 ENDFORM。


 FORM set_columns_technical使用ir_columns类型参考cl_salv_columns。

   数据:lr_column类型参考cl_salv_column。

   尝试。
       lr_column = ir_columns-> get_column('MANDT')。
       lr_column-> set_technical(if_salv_c_bool_sap => true)。
     捕获cx_salv_not_found。  " #EC NO_HANDLER
   ENDTRY。
 ENDFORM。


 形式为get_data。
  ls_datos-num_fac ='4789'。
  ls_datos-acree ='678842'。
  ls_datos-name ='Softtek S.A'。
  ls_datos-monto = '12 .099.902,90'。
  ls_datos-id_excp ='1'。
  ls_datos-des_exc ='HES眼镜蛇与眼镜蛇'。
  ls_datos-date_doc = '04 .07.2020'。
  ls_datos-id_hes ='456'。
  ls_datos-moneda ='CLP'。
  ls_datos-visual ='Visualizar'。
  ls_datos-aprob ='Aprobar'。
  ls_datos-rechaz ='Rechazar'。
  将ls_datos附加到t_datos。

  清除:ls_datos。
  ls_datos-num_fac ='6661'。
  ls_datos-acree ='678880'。
  ls_datos-name ='Parque Arauco'。
  ls_datos-monto ='100.145.902,00'。
  ls_datos-id_excp ='3'。
  ls_datos-des_exc ='HES noestáLiberada'。
  ls_datos-date_doc = '01 .01.2022'。
  ls_datos-id_hes ='672'。
  ls_datos-moneda ='YN'。
  ls_datos-visual ='1234'。
  ls_datos-aprob ='Aprobar'。
  ls_datos-rechaz ='Rechazar'。
  将ls_datos附加到t_datos。
 最终形式。

(4.8 kB)
付费偷看设置
发送
2条回答
hengyuye
1楼-- · 2020-08-17 18:53

您好 Naoto Amari

AFAIK,CL_SALV_TABLE无法实现。 您可以添加链接并使用IF_SALV_EVENTS_ACTIONS_TABLE〜LINK_CLICK事件进行处理。

以下是添加链接的示例: http://zevolving.com/2008/09/salv-table-8-add-handle-hotspot/

这是 有关如何为单元格着色的示例: http://zevolving.com/2008/10/ salv-table-9-apply-colors/

问候,
Mateusz
ZJXianG
2楼-- · 2020-08-17 18:58

你好桑德拉,

请提供示例代码 请问如何在CL_SALV_TABLE中创建按钮单元?

亲切的问候,
Mateusz

一周热门 更多>