1. 程式人生 > >ooalv自定義按鈕、單擊、雙擊、列編輯切換的事件用法

ooalv自定義按鈕、單擊、雙擊、列編輯切換的事件用法

  1. TABLES t001w.
  2. TYPES:BEGIN OF typ_t001w ,
  3.      werks  TYPE t001w-werks,
  4.      name1  TYPE t001w-name1,
  5.      werks2 TYPE t001w-werks,
  6.   rowcolor  TYPE char10,
  7.   zcheckbox TYPE c,       "LAYOUT-CHECBOX   =  'ZCHECKBOX'.
  8. *  zflag     TYPE c,      "LAYOUT-BOX_FNAME = 'ZFLAG'.
  9.   zicon     TYPE char10, "LAYOUT-ICON      = 'ZICON'  圖示需要顯示的
  10.      END OF typ_t001w.
  11. TYPES:BEGIN OF typ_smf ,
  12.      werks  TYPE t001w-werks,
  13.      name1  TYPE t001w-name1,
  14.      END OF typ_smf.
  15. DATA:i_t001w  TYPE TABLE OF typ_t001w,"""""第一次ALV內表
  16.      i_detail TYPE TABLE OF typ_smf, """""單擊ALV內表列ZICON顯示的明細ALV內表
  17.      i_smf    TYPE TABLE OF typ_smf.""""SF內表
  18. DATA:fieldcat TYPE lvc_t_fcat,
  19.      grid TYPE REF TO cl_gui_alv_grid,  "alv控制元件名
  20.      grid2 TYPE REF TO cl_gui_alv_grid,  "alv控制元件名
  21.      g_container TYPE scrfname VALUE 'CONT1',"重新定義本地容器物件名
  22.      g_container2 TYPE scrfname VALUE 'CONT2',"重新定義本地容器物件名
  23.      is_layout TYPE lvc_s_layo,
  24.      ps_layout TYPE lvc_s_layo,
  25.      g_custom_container TYPE REF TO cl_gui_custom_container,
  26.      g_custom_container2 TYPE REF TO cl_gui_custom_container.
  27. DATA: ui_functions TYPE ui_functions. "隱藏按鈕的內表
  28. *********ALV上事件捕捉類
  29. DATA:gs_toolbar TYPE stb_button.             "按鈕
  30. CLASS alv_event_receiver DEFINITION DEFERRED. "宣告類物件
  31. *----------------------------------------------------------------------*
  32. *       CLASS alv_event_receiver DEFINITION
  33. *----------------------------------------------------------------------*
  34. *
  35. *----------------------------------------------------------------------*
  36. CLASS alv_event_receiver DEFINITION.                  "宣告類成員可見性
  37.   PUBLIC SECTION.                                      "定義相關類成員可以被程式中的所有物件呼叫
  38.     CLASS-METHODS:                                     "靜態方法
  39.       handle_toolbar                                   "初始化工具欄物件事件,如增加按鈕並設定其屬性
  40.         FOR EVENT toolbar OF cl_gui_alv_grid
  41.           IMPORTING e_object e_interactive,
  42.        handle_menu_button                              "用於在下拉選單中增加選項
  43.          FOR EVENT menu_button OF cl_gui_alv_grid
  44.           IMPORTING e_object e_ucomm,
  45.        handle_user_command                             "工具欄中的按鈕的單擊事件
  46.           FOR EVENT user_command OF cl_gui_alv_grid
  47.             IMPORTING e_ucomm,
  48.        handle_hotspot_click
  49.           FOR EVENT hotspot_click OF cl_gui_alv_grid    "螢幕中的單擊事件,可以具體到某行某列,需要設定熱點
  50.             IMPORTING  e_row_id e_column_id es_row_no,
  51.        handle_double_click
  52.           FOR EVENT double_click OF cl_gui_alv_grid     "螢幕中的雙擊事件,可以具體到某行某列,即使設定熱點也必須雙擊
  53.             IMPORTING e_row e_column es_row_no.
  54. ENDCLASS.                    "alv_event_receiver DEFINITION
  55. *&---------------------------------------------------------------------*
  56. *&       Class (Implementation)  alv_event_receiver
  57. *&---------------------------------------------------------------------*
  58. *        Text
  59. *----------------------------------------------------------------------*
  60. CLASS alv_event_receiver IMPLEMENTATION.  "實現類方法
  61.   METHOD handle_toolbar.
  62.     gs_toolbar-function =  'B_SUM'.       "為按鈕分配功能碼
  63.     gs_toolbar-icon     =  icon_display.  "為按鈕分配圖示
  64.     gs_toolbar-text     =  '總行數'.      "為按鈕分配文字
  65.     gs_toolbar-butn_type = '0'.           "定義按鈕型別,不填時預設為0
  66.     APPEND gs_toolbar TO e_object->mt_toolbar. "新增按鈕到工具欄
  67.     gs_toolbar-function =  'B_PRINT'.       "為按鈕分配功能碼
  68.     gs_toolbar-icon     =  icon_import.  "為按鈕分配圖示
  69.     gs_toolbar-text     =  '轉儲訂單列印'.      "為按鈕分配文字
  70.     gs_toolbar-checked  = 'X'.
  71.     gs_toolbar-butn_type = '0'.           "定義按鈕型別,不填時預設為0
  72.     APPEND gs_toolbar TO e_object->mt_toolbar. "新增按鈕到工具欄
  73.     gs_toolbar-function =  'B_LIST'.      "為按鈕分配功能碼
  74.     gs_toolbar-quickinfo = '自定義下拉選單'.
  75.     gs_toolbar-icon     =  icon_biw_report_view.  "為按鈕分配圖示
  76.     gs_toolbar-text     =  '下拉選單'.      "為按鈕分配文字
  77.     gs_toolbar-butn_type = '1'.           "定義按鈕型別
  78.     APPEND gs_toolbar TO e_object->mt_toolbar. "新增按鈕到工具欄
  79.     gs_toolbar-function =  'B_EDIT'.       "為按鈕分配功能碼
  80.     gs_toolbar-icon     =  icon_change.  "為按鈕分配圖示
  81.     gs_toolbar-text     =  '切換編輯狀態'.      "為按鈕分配文字
  82.     gs_toolbar-checked  = 'X'.
  83.     gs_toolbar-butn_type = '0'.           "定義按鈕型別,不填時預設為0
  84.     APPEND gs_toolbar TO e_object->mt_toolbar. "新增按鈕到工具欄
  85.   ENDMETHOD.                    "handle_toolbar
  86.   METHOD handle_menu_button.
  87.     IF e_ucomm = 'B_LIST'.
  88.       CALL METHOD e_object->add_function
  89.         EXPORTING
  90.           icon  = icon_display
  91.           fcode = 'B_SUM'
  92.           text  = '顯示ALV總數'.
  93.     ENDIF.
  94.   ENDMETHOD.                    "handle_menu_button
  95.   METHOD handle_user_command.
  96.     DATA sum TYPE i.
  97.     DATA text TYPE string.
  98.     DATA: lwa_t001w LIKE LINE OF i_t001w.
  99.     DATA: lwa_smf   LIKE LINE OF i_smf.
  100.     CASE e_ucomm.
  101.       WHEN  'B_SUM'.
  102.         DESCRIBE TABLE i_t001w[] LINES sum.
  103.         text = sum.
  104.         CONCATENATE  '當前表格中資料的總行數:' text  INTO text.
  105.         MESSAGE  text  TYPE 'I'. "為何訊息型別為 E 時執行時顯示A型別,異常終止到初始介面
  106.       WHEN 'B_PRINT'.
  107.         LOOP AT i_t001w  INTO lwa_t001w WHERE  zcheckbox = 'X'.
  108.           lwa_smf-werks = lwa_t001w-werks.
  109.           lwa_smf-name1 = lwa_t001w-name1.
  110.           APPEND  lwa_smf TO i_smf.
  111.           CLEAR :lwa_t001w,lwa_smf.
  112.         ENDLOOP.
  113.         IF i_smf[] IS INITIAL.
  114.           MESSAGE '請至少選擇一行資料區列印!' TYPE 'E'. "E型別訊息會轉化為A型別,很蛋疼,求破!
  115.         ELSE.
  116.           PERFORM frm_print_data.  "這個沒具體寫。
  117.         ENDIF.
  118.       WHEN 'B_EDIT'.
  119.         IF grid->is_ready_for_input( ) EQ 0.
  120.           CALL METHOD grid->set_ready_for_input
  121.             EXPORTING
  122.               i_ready_for_input = 1.
  123.         ELSE.
  124.           CALL METHOD grid->set_ready_for_input
  125.             EXPORTING
  126.               i_ready_for_input = 0.
  127.         ENDIF.
  128.       WHEN OTHERS.
  129.     ENDCASE.
  130.   ENDMETHOD.                    "handle_user_command
  131.   "ALV內表展示處單擊事件捕捉,需要設定熱點對單擊列欄位
  132.   METHOD handle_hotspot_click.
  133.     DATA:lwa_t001w LIKE LINE OF  i_t001w.
  134.     READ TABLE i_t001w INTO lwa_t001w INDEX es_row_no-row_id. "判斷行號
  135.     CASE e_column_id-fieldname . "判斷列名
  136.       WHEN 'NAME1'.
  137.         CALL TRANSACTION 'ME51N' AND SKIP FIRST SCREEN. "隨便寫的
  138.       WHEN 'ZICON'.         "
  139.         SELECT werks
  140.                name1
  141.           INTO TABLE i_detail
  142.           FROM t001w
  143.           WHERE werks = lwa_t001w-werks2.
  144.         CLEAR lwa_t001w.
  145.         IF sy-subrc NE 0.
  146.           MESSAGE  'No result finding!' TYPE 'I'.
  147.         ELSE.
  148.           CALL SCREEN 1002.
  149.         ENDIF.
  150.       WHEN OTHERS.
  151.     ENDCASE.
  152. *    MESSAGE i001(00) WITH '當前行:' es_row_no-row_id ',航線程式碼:' ls_lt001w-werks.
  153.   ENDMETHOD.                    "handle_hotspot_click
  154.   "ALV內表展示處雙擊擊事件捕捉,如果設定熱點雙擊不起作用
  155.   METHOD handle_double_click.
  156.     DATA:lwa_t001w LIKE LINE OF i_t001w.
  157.     READ TABLE i_t001w INTO lwa_t001w INDEX es_row_no-row_id.
  158.     IF e_column-fieldname = 'WERKS'.
  159.       SET PARAMETER ID 'AUN' FIELD lwa_t001w-werks.
  160.       CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
  161.     ENDIF.
  162.   ENDMETHOD.                    "handle_double_click
  163. ENDCLASS.               "alv_event_receiver
  164. START-OF-SELECTION.
  165.   CALL SCREEN 1001.
  166. *&---------------------------------------------------------------------*
  167. *&      Module  STATUS_1001  OUTPUT
  168. *&---------------------------------------------------------------------*
  169. *       text
  170. *----------------------------------------------------------------------*
  171. MODULE status_1001 OUTPUT.
  172.   SET PF-STATUS 'T001'.
  173. *  SET TITLEBAR 'xxx'.
  174. ENDMODULE.                 " STATUS_1001  OUTPUT
  175. *&---------------------------------------------------------------------*
  176. *&      Module  USER_COMMAND_1001  INPUT
  177. *&---------------------------------------------------------------------*
  178. *       text
  179. *----------------------------------------------------------------------*
  180. MODULE user_command_1001 INPUT.
  181.   FIELD-SYMBOLS <field> TYPE typ_t001w .
  182.   DATA: i TYPE i VALUE 0.
  183.   DATA ok_code TYPE sy-ucomm.
  184.   ok_code = sy-ucomm.
  185.   CLEAR sy-ucomm.
  186.   CASE ok_code.
  187.     WHEN 'BACK'.
  188.       LEAVE TO SCREEN 0.
  189.     WHEN 'EDIT'.
  190.       IF grid->is_ready_for_input( ) EQ 0.
  191.         CALL METHOD grid->set_ready_for_input
  192.           EXPORTING
  193.             i_ready_for_input = 1.
  194.       ELSE.
  195.         CALL METHOD grid->set_ready_for_input
  196.           EXPORTING
  197.             i_ready_for_input = 0.
  198.       ENDIF.
  199.     WHEN 'EXECU'.
  200.       SELECT * FROM t001w
  201.          INTO CORRESPONDING FIELDS OF TABLE i_t001w.
  202.       LOOP AT  i_t001w  ASSIGNING <field>  .
  203.         <field>-werks2 = <field>-werks.
  204.         <field>-zicon  = '@[email protected]'.  "圖示
  205.       ENDLOOP.
  206.       IF g_custom_container IS INITIAL.
Android PullToRrefresh 定義下拉刷新動畫 (listviewscrollview等)

appear ram nal ima cas 創建 protect tom inter PullToRefreshScrollView 自定義下拉刷新動畫,只需改一處。 以下部分轉載自http://blog.csdn.net/superjunjin/article/

dedecms定義模型之獨立模型在首頁列表頁內容調用內容

兩個 定義 blog typeid 註意 lists lis curl lds dedecms關於自定義模型(獨立模型)的首頁、列表頁、內容怎麽調用?在後臺自定義模型(獨立模型)的建立及自定義字段的添加比較簡單,需要註意兩點: (1)如果某個字段需要在前臺列表頁顯示,則在前

Struts2定義轉換器輸入生日日期輸出年年齡

  BirthAction.java package com.action; import java.util.Calendar; import java.util.Map; import com.bean.Birth; import com.opensymphony.xwor

S4 BP增強 BDT方式 新增定義螢幕 KNA1和KNVV 通用資料檢視銷售與分銷檢視(英文)

其他參考(中文):https://blog.csdn.net/guangcong2009/article/details/80569877 網上沒找到銷售與分銷 檢視:KNVV的新增方式,發出來分享下。 1、新增銷售區域螢幕時, 直接將下步驟KNA1改為 KNVV即可。 2、螢

#資料結構與演算法學習筆記#劍指Offer30:把陣列排成最小的數 + 定義比較器 + 測試用例(JavaC/C++)

2018.10.6 1.求全排列最小。事實上用全排列硬剛這道題確實是最直接的辦法,因為乍一眼看上去實在不好歸納數字之間的順序關係,全排列具體實現原理可以參考上述文章。 2.自定義比較器。為什麼說

定義按鈕提交

大家都知道了表單的自帶submit按鈕提交但是是否知道自定義按鈕提交呢?還有超連結提交方式呢?? 下面我就為大家直接開擼: 1、表單提交方式 * 使用submit提交 <form> ..... <input type="subm

MFC vc++ 中CTreeContrl如何定義實現滑鼠擊響應事件 ,即重寫類似於控制元件的響應事件或訊息

目的:自定義修改mfc視窗的FileView中已有的樹結構,而不是新增的樹控制元件 實現的效果如圖:點選“地圖”後彈出框提示,點選響應效果與控制元件的響應事件類似 首先需要重寫CtreeContrl: ① 在CViewTree類的.h標頭檔案中新增程式碼: a

angularjs的定義directive指令的繫結策略scope:”@””=””&”

通常我們知道指令預設是可以跟外界通訊的. 比如: <div ng-controller="mytest"> <test></test>

定義控制元件讓TextView(Radiobutton)Button的drawableLeft和drawableRight與文字一起居中顯示

TextView的drawableLeft、drawableRight和drawableTop是一個常用、好用的屬性,可以在文字的上下左右放置一個圖片,而不使用更加複雜佈局就能達到,我也常常喜歡用RadioButton的這幾個屬性實現很多效果,但是苦於不支援讓drawbl

Qt定義標題欄詳細介紹(可拖動放大縮小關閉標題欄具有漸變色)

前言 使用Qt自帶的標題欄可能沒有辦法適合我們的需求,例如標題欄的顏色,標題欄的寬度、高度,標題欄的放大、縮小、還原、關閉按鈕等都沒有辦法發生改變。因為預設的標題欄是和作業系統相關的、它會根據作業系統的變化而發生變化,在Window上不同風格的主題,在Qt程式

iOS開發-定義相機(仿微信)拍照視訊錄製

網上有很多自定義相機的例子,這裡只是我臨時寫的一個小demo,僅供參考: 用到了下面幾個庫: #import <AVFoundation/AVFoundation.h> #import <AssetsLibrary/AssetsLibra

ckeditor添加定義按鈕整合swfupload實現批量上傳圖片

下載 了解 nbsp 文件 mouseover 去掉 dial size pro ckeditor添加自定義按鈕整合swfupload實現批量上傳圖片給ckeditor添加自定義按鈕,由於ckeditor只能上傳一張圖片,如果要上傳多張圖片就要結合ckfinder,而ckf

IOS 定義按鈕(代碼實現)+九宮格

uifont 排列 end uiview height iyu void rec name 在一些下載應用裏整個頁面都是按鈕,有好多好多,但是仔細觀察不難發現他們很有規律。就像下面一樣?? 很有規律的排列在屏幕上,那麽這需要我們怎麽去做能。 正如標題,我們需要了解兩個知

CKEditor 定義按鈕插入服務端圖片

自定義按鈕 asp lap .get extra 版本 icp java conf CKEditor 富文本編輯器很好用,功能很強大,在加上支持服務端圖片上傳的CKFinder更是方便, 最近在使用CKFinder的時候發現存在很多問題,比如上傳圖片的時候,圖片不能按時間

Qt定義按鈕及不同狀態下圖片的切換

q自定義窗體、任意形狀的窗體、qt自定義按鈕 好久沒有使用Qt了,最近在做窗體時做了一個自定義的鈕銨,剛開始是想通過修改其MASK和ICON的 方式來實現。確發現效果總是不太如意,如是幹脆自已定義了一個XPushButton。也將其實現方式記錄發 布出來。以方便日後自已使用和給有相應問題的朋友一個小小的

編寫可復用的定義按鈕

可復用 定義 ongl aid music 編寫 自定義 按鈕 自定義按鈕 %E4%B8%80%E4%B8%AA%E5%B1%85%E5%BA%95%E6%98%BE%E7%A4%BA%E7%9A%84TaBHOsT http://music.baidu.com/songl