日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ALV显示红绿灯(FMnbsp;ALVnbsp;和nbsp;OOnbsp;ALV两…

發(fā)布時間:2025/7/25 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ALV显示红绿灯(FMnbsp;ALVnbsp;和nbsp;OOnbsp;ALV两… 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
FM 方式ALV 紅綠燈
*&---------------------------------------------------------------------*
*&?Report??ZLM_ALV_07
*&
*&---------------------------------------------------------------------*
*1)在alv引用類型池定義時加入icon,如type-pools:?slis,?icon.
*
*2)給顯示內表itab定義一字段statu存儲狀態(tài)燈;
*
*3)循環(huán)內表itab給字段statu值賦:
*綠燈:itab-statu?=?icon_led_green.
*紅燈:itab-statu?=?icon_led_red.
*4)alv的fieldcat屬性i_fieldcat-icon?=?'X'.
*&---------------------------------------------------------------------*

REPORT??zlm_alv_07.

*&---------------------------------------------------------------------*
*&?聲明
*&---------------------------------------------------------------------*
TYPE-POOLS:?slis,?icon.

*&---------------------------------------------------------------------*
*&基本數(shù)據(jù)定義
*&---------------------------------------------------------------------*
DATA:
??????BEGIN?OF?str_data,
????????id?????TYPE?int4,
????????age????TYPE?int4,
????????statu??TYPE?char10,
??????END?OF?str_data.

DATA:
??????g_it_data?LIKE?TABLE?OF?str_data,
??????g_wa_data?LIKE?str_data.

*&---------------------------------------------------------------------*
*&?ALV相關定義
*&---------------------------------------------------------------------*
DATA:?fieldcat?TYPE?slis_t_fieldcat_alv?WITH?HEADER?LINE.

*&---------------------------------------------------------------------*
*&?宏定義
*&---------------------------------------------------------------------*
DEFINE?fill_fieldcat.
??fieldcat-fieldname?=?&1.
??fieldcat-seltext_l?=?&2.
??fieldcat-icon????=?'X'.??????"圖標功能
??append?fieldcat.
END-OF-DEFINITION.

*&---------------------------------------------------------------------*
*&?主邏輯
*&---------------------------------------------------------------------*

START-OF-SELECTION.
??PERFORM?zform_fill_data.
??PERFORM?zform_show.

*&---------------------------------------------------------------------*
*&?form區(qū)
*&---------------------------------------------------------------------*

FORM?zform_fill_data.
??fill_fieldcat??'ID'???'編號'.
??fill_fieldcat??'AGE'??'年齡'.
??fill_fieldcat??'STATU'?'燈飾'.

??g_wa_data-id????=?1.
??g_wa_data-age???=?12.
??g_wa_data-statu?=?icon_led_red.

??APPEND?g_wa_data?TO?g_it_data.

??g_wa_data-id????=?2.
??g_wa_data-age???=?13.
??g_wa_data-statu?=?icon_led_green.

??APPEND?g_wa_data?TO?g_it_data.
ENDFORM.????????????????????"zform_fill_data

*&---------------------------------------------------------------------*
*&??????Form??zform_show
*&---------------------------------------------------------------------*
*???????text
*----------------------------------------------------------------------*
FORM?zform_show.
??CALL?FUNCTION?'REUSE_ALV_LIST_DISPLAY'
????EXPORTING
??????it_fieldcat?=?fieldcat[]
????TABLES
??????t_outtab????=?g_it_data[].
ENDFORM.????????????????????"zform_show

OO 方式ALV 紅綠燈 效果:

主要代碼: *&---------------------------------------------------------------------* *& ?全局變量 *&---------------------------------------------------------------------* DATA: BEGIN OF str_spfli, checkbox TYPE char1, status ? TYPE icon_d, ? ? ? ? ? ? ? ? "檢查狀態(tài)圖標 carrid ? TYPE ?sflight-carrid ? ? ? , "航線承運人ID connid ? TYPE ?sflight-connid ? ? ? , "航班連接 Id fldate ? TYPE ?sflight-fldate ? ? ? , "航班日期 price ? ?TYPE ?sflight-price ? ? ? ?, "航空運費 cellstyle TYPE lvc_t_styl, ? ? ? ? ?"可編輯字段SORT表 END OF ?str_spfli.
DATA: g_it_show LIKE TABLE OF str_spfli WITH KEY checkbox carrid connid, g_wa_show LIKE str_spfli.

START-OF-SELECTION.
"獲取數(shù)據(jù) SELECT carrid connid fldate price FROM sflight INTO CORRESPONDING FIELDS OF ?TABLE g_it_show.
FIELD-SYMBOLS ?LIKE LINE OF ?g_it_show. DATA:l_dex TYPE int4.
LOOP AT g_it_show ASSIGNING . l_dex = sy-tabix MOD 3.
CASE l_dex. WHEN 1 . -status = icon_led_green. WHEN 2. -status = icon_led_red. WHEN OTHERS. -status = icon_led_yellow. ENDCASE. ENDLOOP. "調用屏幕 CALL SCREEN 9001.


FORM zform_alv_show . DATA: ? l_style ? ? ?TYPE i, ls_layout ? ?TYPE lvc_s_layo, is_stable ? ?TYPE lvc_s_stbl, l_disvariant TYPE disvariant.
* 屏幕初始化 IF alv_ctner IS INITIAL.
CREATE OBJECT alv_ctner EXPORTING repid ? ? ? ? ? ? ? ? ? ? ? = sy-repid dynnr ? ? ? ? ? ? ? ? ? ? ? = '9001' * ? ? ? side ? ? ? ? ? ? ? ? ? ? ? ?= cl_gui_docking_container=>dock_at_right ? ? ?”ALV貼屏幕右邊,從屏幕右邊開始算寬度 side ? ? ? ? ? ? ? ? ? ? ? ?= cl_gui_docking_container=>dock_at_left ? ? ? "ALV貼屏幕左邊,從左邊算屏幕寬度, extension ? ? ? ? ? ? ? ? ? = 900 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"屏幕寬度 * ? ? ? ?style ? ? ? ? ? ? ? ? ? ? ? = cl_gui_control=>ws_child ? ? ? ? ? ? ? ? ? ? "可選參數(shù),設置ALV是否可用手動拖動大小 EXCEPTIONS cntl_error ? ? ? ? ? ? ? ? ?= 1 cntl_system_error ? ? ? ? ? = 2 create_error ? ? ? ? ? ? ? ?= 3 lifetime_error ? ? ? ? ? ? ?= 4 lifetime_dynpro_dynpro_link = 5 OTHERS ? ? ? ? ? ? ? ? ? ? ?= 6.
IF sy-subrc <> 0. MESSAGE s001(00) WITH '屏幕初始化失敗'. LEAVE LIST-PROCESSING. ENDIF.
*添加自定義工具條 PERFORM frm_set_alv_toolbar. * CREATE OBJECT g_alv_grid EXPORTING i_parent = alv_ctner.
*構建顯示字段樣式 PERFORM frm_build_fieldcat.
"Set/Reset Ready for Input Status CALL METHOD g_alv_grid->set_ready_for_input EXPORTING i_ready_for_input = 1.
* layout 設定樣式 CLEAR ls_layout. ls_layout-cwidth_opt = 'X'. ? ? "優(yōu)化列寬
CLEAR l_disvariant. l_disvariant-report = sy-repid. "當前程序
* event ?綁定事件 CREATE OBJECT g_event.
SET HANDLER g_event->toolbar ? ? ? ? ? ? FOR g_alv_grid. SET HANDLER g_event->handle_data_changed FOR g_alv_grid. * ? ?SET HANDLER g_event->handle_f4 ? ? ? ? ? FOR g_alv_grid. SET HANDLER g_event->handle_cell_click ? FOR g_alv_grid. SET HANDLER g_event->handle_user_command FOR g_alv_grid. SET HANDLER g_event->handle_double_click FOR g_alv_grid. SET HANDLER g_event->handle_onf1 ? ? ? ? FOR g_alv_grid.
"以下兩個方法達到的效果是:光標離開正在編輯的單元格時,就觸發(fā)了handle_data_changed "如果不注釋掉以下兩個方法,則只有執(zhí)行下一操作時才會觸發(fā)handle_data_changed,比如點保存點刪除 CALL METHOD g_alv_grid->register_edit_event EXPORTING i_event_id = cl_gui_alv_grid=>mc_evt_modified.
CALL METHOD g_alv_grid->register_edit_event EXPORTING i_event_id = cl_gui_alv_grid=>mc_evt_enter.
* ? "顯示內表數(shù)據(jù) CALL METHOD g_alv_grid->set_table_for_first_display EXPORTING is_layout ? ? ? ? ? ?= ls_layout is_variant ? ? ? ? ? = l_disvariant it_toolbar_excluding = gt_tools CHANGING it_fieldcatalog ? ? ?= it_fieldcatalog[] it_outtab ? ? ? ? ? ?= g_it_show[].
ELSE.
"沖銷設置tcode 為 RELOAD,防止因為原來的tcode影響程序執(zhí)行 CALL METHOD cl_gui_cfw=>set_new_ok_code EXPORTING new_code = 'RELOAD'.
"ALV 控制:刷新穩(wěn)定性 按行刷新,可選參數(shù) CLEAR is_stable. is_stable-col = 'X'.
"刷新 CALL METHOD g_alv_grid->refresh_table_display EXPORTING is_stable ? ? ?= is_stable i_soft_refresh = 'X'.
"提交 CALL METHOD cl_gui_cfw=>flush.
ENDIF. ENDFORM. ? ? ? ? ? ? ? ? ? ?" ZFORM_ALV_SHOW

OOalv相關,可見;http://blog.sina.com.cn/s/blog_c0978c9b0101f1ee.html

轉載于:https://www.cnblogs.com/senlinmu110/p/3802248.html

總結

以上是生活随笔為你收集整理的ALV显示红绿灯(FMnbsp;ALVnbsp;和nbsp;OOnbsp;ALV两…的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。