【原做】關於Dynpro中的紅綠燈顯示

問題源自李寧的需求,就不說了。app

關於ABAP中的紅綠燈網上也有不少資料,不過貌似都是ABAP的程序,沒怎麼注意。後來根據需求要在Dynpro上也作出那樣的效果,因此,研究了一下。ui

這種紅綠燈在ABAP中顯示時是以ICON的方式被建立並顯示的,作過ABAP開發的人應該都知道那個Type Group‘ICON’裏面有幾乎全部的ABAP的ICON。spa

像那種鎖標誌,自開發的話可能都是須要點擊後變成這樣的,其餘人怎麼作的我不清楚,不過,我從一開始研究這個就用  '@06@'來作按鈕的顯示,而後點擊後修改按鈕的顯示爲  '@07@'。這種方法簡單。其餘的按鈕圖標就不介紹了,有空的話能夠本身去ICON這個類型池裏看看,研究研究。3d

下面來講說此次的Dynpro的紅綠燈顯示:code

1:TABLE裏作顯示blog

由於對TABLE比較熟,因此一開始研究的時候就以TABLE來研究了。效果如圖:圖片

主要就是將TABLECOLUMN設成IMAGE類型,而後在賦值的時候賦上‘  ICON_RED_LIGHT’‘  ICON_YELLOW_LIGHT’‘  ICON_GREEN_LIGHT’就能顯示成這種效果。開發

2:ALV裏作顯示get

由於ALV裏顯示和TABLE的原理是同樣的,效果也同樣的。如圖:it

在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.

一樣可行。

相關文章
相關標籤/搜索