• 【原作】关于Dynpro中的红绿灯显示


    问题源自李宁的需求,就不说了。

    关于ABAP中的红绿灯网上也有很多资料,不过貌似都是ABAP的程序,没怎么注意。后来根据需求要在Dynpro上也做出那样的效果,所以,研究了一下。

    这种红绿灯在ABAP中显示时是以ICON的方式被创建并显示的,做过ABAP开发的人应该都知道那个Type Group‘ICON’里面有几乎所有的ABAP的ICON。

    像那种锁标志,自开发的话可能都是需要点击后变成这样的,其他人怎么做的我不清楚,不过,我从一开始研究这个就用 '@06@'来做按钮的显示,然后点击后修改按钮的显示为 '@07@'。这种方法简单。其他的按钮图标就不介绍了,有空的话可以自己去ICON这个类型池里看看,研究研究。

    下面来说说这次的Dynpro的红绿灯显示:

    1:TABLE里做显示

    因为对TABLE比较熟,所以一开始研究的时候就以TABLE来研究了。效果如图:

    主要就是将TABLECOLUMN设成IMAGE类型,然后在赋值的时候赋上‘ ICON_RED_LIGHT’‘ ICON_YELLOW_LIGHT’‘ ICON_GREEN_LIGHT’就能显示成这种效果。

    2:ALV里做显示

    因为ALV里显示和TABLE的原理是一样的,效果也一样的。如图:

    在ALV初始化的时候给对应的列做个IMAGE类型

    when 'ICON'.
            lr_column_header = ls_column-r_column->create_header( ).
            lr_column_header->set_text( 'LIGHT' )."下面四行可以将显示的文本内容变为图标
            data: lr_image type ref to cl_salv_wd_uie_image.
            create object lr_image.
            lr_image->set_source_fieldname( ls_column-id ).
            ls_column-r_column->set_cell_editor( lr_image ).

    在赋值的时候

    ls_icon_s-item = '10001'.
      ls_icon_s-icon = 'ICON_GREEN_LIGHT'.
      append ls_icon_s to lt_icon_s.

    这样就能完美的显示出来了。因为是做的图片显示,所以对于那些显示图片的需求,这种方法同样适用。

    说明:ALV里的显示是我们的强总给研究的。

    最后申明一下:在赋值的时候不仅可以用‘ ICON_YELLOW_LIGHT’这种按钮名称的方法,还可以用 '@0A@'这种来显示。

    ls_icon-item = '100001'.
    ls_icon-icon = '@0A@'.
    APPEND ls_icon to lt_icon.

    同样可行。

  • 相关阅读:
    2017.7.27
    js 变量那些事
    JS初学之-效果没出来怎么办?-alert函数测试
    JS初学之-循环生成坐标
    JS初学之-if else图片顺序及循环切换
    JSP笔记与案例一览(JSP后半部分)
    Java基础一览(会不断补充)
    session和cookie一览
    request和response一览
    封装含义一览
  • 原文地址:https://www.cnblogs.com/sapSB/p/3395984.html
Copyright © 2020-2023  润新知