ABAP - SALV教程12 显示图标和提示信息

  • ALV要求字段的值为图标的需求并不多见,一般都用于红黄绿灯,来表示单据的执行状态,添加图标的方式也可以实现红黄绿灯的功能,也可以参考SALV实现红黄绿灯这篇文章:http://t.csdnimg.cn/Dzx7x
  • 效果图
  • SAVL列设置为图标图标显示实现步骤:
  1. 输出内表增加一个char30的字段类型,然后赋值。图标的值:SE38执行showicon程序
        TYPES:BEGIN OF TY_dATA,icon  TYPE char30,TYPES:END  OF ty_data.DATA mt_data TYPE TABLE OF ty_data.INCLUDE: <icon>.LOOP AT mt_data ASSIGNING FIELD-SYMBOL(<fs_data>).<fs_data>-icon = icon_checked.ENDLOOP.

  2. 将该字段设置为图标显示列
        DATA: lo_functional_settings  TYPE REF TO cl_salv_functional_settings.DATA: lo_tooltips TYPE REF TO cl_salv_tooltips,lv_value    TYPE lvc_value.DATA: lo_columns              TYPE REF TO cl_salv_columns.DATA: lo_column               TYPE REF TO cl_salv_column_table.INCLUDE: <icon>.lo_columns = co_alv->get_columns( ).TRY.lo_column ?= lo_columns->get_column( 'ICON' )." 将列设置为显示ICONlo_column->set_icon( if_salv_c_bool_sap=>true )." 设置列标签 labello_column->set_long_text( '图标' )." 图标对齐方式lo_column->set_alignment( if_salv_c_alignment=>centered )." 字段长度lo_column->set_output_length( 6 ).CATCH cx_salv_not_found.ENDTRY."这里做鼠标悬停时的提示信息lo_functional_settings = co_alv->get_functional_settings( ).lo_tooltips = lo_functional_settings->get_tooltips( ).TRY."当图标代码值为icon_checked,提示 Everything is Processedlv_value = icon_checked.lo_tooltips->add_tooltip(type    = cl_salv_tooltip=>c_type_iconvalue   = lv_valuetooltip = 'Everything is Processed' ).CATCH cx_salv_existing.ENDTRY.ENDMETHOD.


  • 完整代码 
    CLASS lcl_model DEFINITION.PUBLIC SECTION.TYPES:BEGIN OF TY_dATA,icon  TYPE char30,vbeln TYPE vbak-vbeln,erdat TYPE erdat,erzet TYPE erzet,ernam TYPE ernam,auart TYPE auart.TYPES:END  OF ty_data.DATA mt_data TYPE TABLE OF ty_data.DATA mo_salv TYPE REF TO cl_salv_table."获取数据的方法METHODS get_data."展示SALV的方法METHODS alv_show.PRIVATE SECTION.METHODS:set_icon CHANGING co_alv TYPE REF TO cl_salv_table.METHODS:set_status CHANGING co_alv TYPE REF TO cl_salv_table.ENDCLASS.CLASS lcl_model IMPLEMENTATION.METHOD get_data.SELECT vbeln erdat erzet ernam auartINTO CORRESPONDING FIELDS OF TABLE mt_dataFROM vbakUP TO 20 ROWS.INCLUDE: <icon>.LOOP AT mt_data ASSIGNING FIELD-SYMBOL(<fs_data>).<fs_data>-icon = icon_checked.ENDLOOP.ENDMETHOD.METHOD alv_show.DATA: lx_msg TYPE REF TO cx_salv_msg.TRY.cl_salv_table=>factory(IMPORTINGr_salv_table = mo_salvCHANGINGt_table      = mt_data ).CATCH cx_salv_msg INTO lx_msg.ENDTRY.me->set_status( CHANGING co_alv = mo_salv ).me->set_icon( CHANGING co_alv = mo_salv ).mo_salv->display( ).ENDMETHOD.METHOD set_status.DATA(lo_functions) = co_alv->get_functions( )."cl_salv_functions_list类型的实例对象的添加状态方法lo_functions->set_all( abap_true )."lo_functions->set_default( abap_true ).ENDMETHOD.METHOD set_icon.DATA: lo_functional_settings  TYPE REF TO cl_salv_functional_settings.DATA: lo_tooltips TYPE REF TO cl_salv_tooltips,lv_value    TYPE lvc_value.DATA: lo_columns              TYPE REF TO cl_salv_columns.DATA: lo_column               TYPE REF TO cl_salv_column_table.INCLUDE: <icon>.lo_columns = co_alv->get_columns( ).TRY.lo_column ?= lo_columns->get_column( 'ICON' )." 将列设置为显示ICONlo_column->set_icon( if_salv_c_bool_sap=>true )." 设置列标签 labello_column->set_long_text( '图标' )." 图标对齐方式lo_column->set_alignment( if_salv_c_alignment=>centered )." 字段长度lo_column->set_output_length( 6 ).CATCH cx_salv_not_found.ENDTRY."这里做鼠标悬停时的提示信息lo_functional_settings = co_alv->get_functional_settings( ).lo_tooltips = lo_functional_settings->get_tooltips( ).TRY."当图标代码值为icon_checked,提示 Everything is Processedlv_value = icon_checked.lo_tooltips->add_tooltip(type    = cl_salv_tooltip=>c_type_iconvalue   = lv_valuetooltip = 'Everything is Processed' ).CATCH cx_salv_existing.ENDTRY.ENDMETHOD.ENDCLASS.START-OF-SELECTION.DATA(lo_model) = NEW lcl_model( ).lo_model->get_data( ).lo_model->alv_show( ).

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/511583.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络-网络安全(二)

1.应用层安全协议&#xff1a; S-HTTP或SHTTP&#xff08;Sec HTTP&#xff09;&#xff0c;安全超文本传输协议&#xff0c;是HTTP扩展&#xff0c;使用TCP的80端口。HTTPS&#xff1a;HTTPSSL&#xff0c;使用TCP的443端口。和TLS&#xff08;传输层安全标准&#xff09;是双…

【论文笔记】Language Models are Unsupervised Multitask Learners

Language Models are Unsupervised Multitask Learners 回顾一下第一代 GPT-1 &#xff1a; 设计思路是 “海量无标记文本进行无监督预训练少量有标签文本有监督微调” 范式&#xff1b;模型架构是基于 Transformer 的叠加解码器&#xff08;掩码自注意力机制、残差、Layernorm…

森林消防常见难题|便携式森林灭火泵轻松化解|深圳恒峰

在自然生态系统中&#xff0c;森林火灾是一大严重威胁。它不仅破坏了生态平衡&#xff0c;还对人类生活和财产构成极大威胁。尤其是在偏远的森林地区&#xff0c;传统的消防设备往往难以及时到达现场&#xff0c;使得火势得以蔓延。然而&#xff0c;随着恒峰智慧科技的研发&…

01. Nginx入门-Nginx简介

Web基础知识 Web协议通信原理 Web协议通信过程 浏览器本身是一个客户端&#xff0c;当输入URL后&#xff0c;首先浏览器会请求DNS服务器&#xff0c;通过DNS获取相应的域名对应的IP。通过IP地址找到对应的服务器后&#xff0c;监理TCP连接。等浏览器发送完HTTP Request&…

FPGA-AXI4接口协议概述

假设我们要传一帧1080P的图片到显示屏显示&#xff0c;那么需要多大的储存空间呢&#xff1f; 一帧1080P的RGB565图像数据需要1920*1080*1633.1776Mb 存储空间 下图是ZYNQ-7000系列中Block RAM的大小&#xff1a; 可以看到最大存储空间的BRAM都不能存储一帧图片&#xff0c;那…

基于springboot+vue的医院挂号就诊系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

管家婆订货易在线商城 VshopProcess 任意文件上传漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

高级货,极大提高效率,个人非常喜欢

软件简介&#xff1a; 软件【下载地址】获取方式见文末。注&#xff1a;推荐使用&#xff0c;更贴合此安装方法&#xff01; FileConverter中文版是一款免费软件&#xff0c;具有强大的功能。它支持多种文件格式的转换&#xff0c;包括视频、音频、文档等。您可以批量转换文件…

代码随想录算法训练营第五一天 | 买股票3

目录 最佳买卖股票时机含冷冻期买卖股票的最佳时机含手续费 LeetCode 309.最佳买卖股票时机含冷冻期 LeetCode 714.买卖股票的最佳时机含手续费 最佳买卖股票时机含冷冻期 给定一个整数数组prices&#xff0c;其中第 prices[i] 表示第 i 天的股票价格 。​ 设计一个算法计算…

爬虫入门到精通_实战篇10(使用Redis+Flask维护动态代理池)

1 目标 为什么要用代理池 许多网站有专门的反爬虫措施&#xff0c;可能遇到封IP等问题。互联网上公开了大量免费代理&#xff0c;利用好资源。通过定时的检测维护同样可以得到多个可用代理。 代理池的要求 多站抓取&#xff0c;异步检测定时筛选&#xff0c;持续更新提供接…

Discuz IIS上传附件大于28M失败报错Upload Failed.修改maxAllowedContentLength(图文教程)

下图&#xff1a;Discuz X3.5的系统信息&#xff0c;上传许可为1024MB(1GB) 论坛为局域网论坛&#xff0c;仅供内部同事交流使用&#xff01; 使用官方最新的Discuz! X3.5 Release 20231221 UTF-8 下图&#xff1a;选择上传附件&#xff08;提示可以最大上传100M&#xff09;…

嵌入式中volatile关键字的使用方法

Hi,大家好&#xff01; 今天我们来学习一下volatile关键字&#xff0c;volatile关键字想必大家在平时编程中都见过或用过。可是小伙伴们有没有想过什么时候需要使用volatile关键字吗&#xff1f; 在C语言中&#xff0c;volatile是一个关键字&#xff0c;用于告诉编译器不要优化…