这个是SAP的教学程序,今天在网上看到有人问这样的问题,现在就把它发在网上,希望对你有点帮助。

PROGRAM sapbc405_alvd_merge_icon .

TYPES: BEGIN OF t_con,
carrid LIKE sflight-carrid,
connid LIKE sflight-connid,
fldate LIKE sflight-fldate,
price LIKE sflight-price,
currency LIKE sflight-currency,
planetype LIKE sflight-planetype,
seatsmax LIKE sflight-seatsmax,
seatsocc LIKE sflight-seatsocc,
paymentsum LIKE sflight-paymentsum,
free_seats LIKE sflight-seatsmax,
icon_name(30),
END OF t_con.

* OK code handling
DATA: ok_code LIKE sy-ucomm,
save_ok_code LIKE sy-ucomm.

* Data, which will be displayed in the ALV Control
DATA: gt_outtab TYPE STANDARD TABLE OF t_con,
wa_outtab TYPE t_con.

* Field position
DATA: pos_free TYPE i VALUE 10,
pos_icon TYPE i VALUE 11.

* Fieldcatalog
DATA: gt_fieldcat TYPE lvc_t_fcat,
wa_fieldcat LIKE LINE OF gt_fieldcat.

* CONTROLS
DATA: g_custom_container TYPE REF TO cl_gui_custom_container,
alv_grid TYPE REF TO cl_gui_alv_grid.

* Selection Screen
SELECTION-SCREEN BEGIN OF BLOCK connection WITH FRAME.
SELECT-OPTIONS: so_car FOR wa_outtab-carrid.
SELECTION-SCREEN END OF BLOCK connection.

*&---------------------------------------------------------------------*
*& Modulpool SAPBC405_ALVD_MERGE_ICON *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*

INCLUDE bc405_alvd_merge_icontop.
INCLUDE <icon>.
*&---------------------------------------------------------------------*
*& Event START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION.
SELECT * FROM sflight INTO CORRESPONDING FIELDS OF wa_outtab
WHERE carrid IN so_car.
wa_outtab-free_seats = wa_outtab-seatsmax - wa_outtab-seatsocc.

**注意以下的这句话,就是把ICON中的信号灯的图标传到wa中
IF wa_outtab-free_seats GT 0.
wa_outtab-icon_name = icon_green_light.

ELSE.
wa_outtab-icon_name = icon_red_light.
ENDIF.
APPEND wa_outtab TO gt_outtab.
ENDSELECT.
CALL SCREEN 100.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'S100'.
SET TITLEBAR 'T100'.
ENDMODULE. " STATUS_0100 OUTPUT

*&---------------------------------------------------------------------*
*& Module EXIT INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE exit INPUT.
LEAVE PROGRAM.
ENDMODULE. " EXIT INPUT

*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
MOVE ok_code TO save_ok_code.
CLEAR ok_code.
CASE save_ok_code.
WHEN 'BACK'.
CALL METHOD g_custom_container->free.
LEAVE TO SCREEN 0.
WHEN 'EXIT'.
CALL METHOD g_custom_container->free.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT

*&---------------------------------------------------------------------*
*& Module CREATE_OBJECTS OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE create_objects OUTPUT.

IF g_custom_container IS INITIAL.
CREATE OBJECT g_custom_container
EXPORTING container_name = 'MY_CONTROL_AREA'.

CREATE OBJECT alv_grid
EXPORTING i_parent = g_custom_container.
ENDIF.

ENDMODULE. " CREATE_OBJECTS OUTPUT
*&---------------------------------------------------------------------*
*& Module TRANSFER_DATA OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE transfer_data OUTPUT.

CALL METHOD alv_grid->set_table_for_first_display
EXPORTING i_structure_name = 'SFLIGHT'
CHANGING it_outtab = gt_outtab
it_fieldcatalog = gt_fieldcat.

ENDMODULE. " TRANSFER_DATA OUTPUT
*&---------------------------------------------------------------------*
*& Module FIELD_CATALOG OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE field_catalog OUTPUT.

* Attributes of the additional fields, which is not included
* in the DIC sructure SFLIGHT

CLEAR wa_fieldcat.
* Name and types
wa_fieldcat-fieldname = 'FREE_SEATS'.
wa_fieldcat-ref_table = 'SFLIGHT'.
wa_fieldcat-ref_field = 'SEATSMAX'.
* Texts and position
wa_fieldcat-coltext = text-001.
wa_fieldcat-seltext = text-001.
wa_fieldcat-col_pos = pos_free.
APPEND wa_fieldcat TO gt_fieldcat.

CLEAR wa_fieldcat.
* Name and types
wa_fieldcat-fieldname = 'ICON_NAME'.
wa_fieldcat-icon = 'X'. " Displayed as Icon

* Texts and position
wa_fieldcat-coltext = text-001.
wa_fieldcat-seltext = text-001.
wa_fieldcat-col_pos = pos_icon.
APPEND wa_fieldcat TO gt_fieldcat.

ENDMODULE. " FIELD_CATALOG OUTPUT

使用ALV中输出ICON相关推荐

  1. 如何在ALV中输出标题头

    1.申明变量 DATA: GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.  DATA:  GT_EVENTS   TYPE SLIS_T_EVENT. 2.定义 ...

  2. ALV 后台输出时,增加spool假脱机的宽度

    [ALV 后台输出时,增加spool假脱机的宽度] 有多列的ALV报表在后台运行,当下载或输出时的界面数据可能会出现如下错位现象,或者部分负号丢失现象. 为了校正输出界面的效果,我们通常会在" ...

  3. 77 行代码实现 ABAP ALV 中的双击事件处理试读版

    零基础 ABAP 学习教程系列文章的目录 ABAP 标准培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍 ABAP 标准培训教程 BC400 学习笔记之二 ...

  4. html img调用js,html调用js变量 如何在html中输出js文件中的变量

    html页面代码中怎么调用js变量?html页面代码中怎么调用js变量,例如 在html代码中插入js代码: a=取浏览你把index1.js 中的onReady 去掉,把index1.js改成 fu ...

  5. 理解YOLOv2训练过程中输出参数含义

    转载自https://blog.csdn.net/dcrmg/article/details/78565440 原英文地址: https://timebutt.github.io/static/und ...

  6. 在网页中画Icon小图标

    在网页中画Icon小图标. 现代网页中,绝大部分都采用了Icon小图标的方式.其积分大致分为三类,CSS Sprite,font+HTML,font+CSS. CSS Sprite:又称为CSS雪碧, ...

  7. R语言使用edit函数在Rsudio中生成数据编辑器(在windows中生成编辑器)、在编辑器中输出需要的数据生成最终的dataframe

    R语言使用edit函数在Rsudio中生成数据编辑器(在windows中生成编辑器).在编辑器中输出需要的数据生成最终的dataframe 目录

  8. 用字体在网页中画Icon图标

    第一步,下载.IcoMoon网站选择字体图标并下载,解压后将fonts文件夹放在工程目录下.fonts文件夹内有四种格式的字体文件: 注:由于浏览器对每种字体的支持程度不一致,要想在所有浏览器中都显示 ...

  9. php中输出js语句

    怎样在php中输出js语句? 示例 php<?php $classState="";if($state==0){ $classState="已下课"; } ...

最新文章

  1. netapp更换硬盘
  2. 引用管理器没有程序集_Microsoft弃用远程桌面连接管理器
  3. 循环群的子群是循环群
  4. oracle获取序列跳号,Oracle sequence跳号知多少
  5. matlab信号分割与比对,matlab测量计算信号的相似度
  6. php 数组重复最多,PHP获取数组中重复最多元素的简单示例
  7. pip 更新版本失败问题解决
  8. maven安装jar包到本地仓库
  9. oracle的五种元素,五种元素
  10. VBA-获取指定行列最后一个非空单元格
  11. Servlet三大作用域
  12. 国外项目外包网站接活流程(新手上路版)
  13. stm32+DS18B20编程教学
  14. 关于为什么sklearn画出来的ROC曲线图是折线的问题
  15. 【React】React介绍环境搭建
  16. 为什么样本方差里面要除以(n-1)而不是n?
  17. jQuery选择器(二)
  18. random.RandomState()用处
  19. 两性情感关系中的核心价值是什么?
  20. 浮点数与十六进制转换

热门文章

  1. android访问html页面
  2. Git添加文件改动时出错
  3. [note]浏览器兼容性(embed标签、字体兼容相关
  4. 如何在picture上显示透明Label
  5. JDK 11 马上就要来了!JDK 12 还会远吗?
  6. selenium作业题
  7. Docker 镜像之存储管理
  8. MySQL • 源码分析 • 内存分配机制
  9. Hybrid框架UI重构之路:三、工欲善其事,必先利其器
  10. 无法创建文件系统以及无法创建PV时怎么办?