alv-event相關(guān)事件

回車(chē)低矮、雙擊、數(shù)據(jù)更改曹仗、button

DATA :  gt_events       TYPE slis_t_event.
DATA  ls_events  TYPE slis_alv_event .
"選擇屏幕之后
CLASS lcl_event_receiver DEFINITION.
  PUBLIC SECTION.
"button
    METHODS:
      handle_button_click
                  FOR EVENT button_click OF cl_gui_alv_grid
        IMPORTING es_col_id es_row_no.
"data change
  METHODS:
      handle_data_changed
                  FOR EVENT data_changed OF cl_gui_alv_grid
        IMPORTING er_data_changed.
"data change
  METHODS HANDLE_MODIFY
                  FOR EVENT DATA_CHANGED_FINISHED OF CL_GUI_ALV_GRID
      IMPORTING E_MODIFIED ET_GOOD_CELLS.
"回車(chē)
    METHODS:
      handle_enter
                  FOR EVENT data_changed_finished OF cl_gui_alv_grid
        IMPORTING e_modified et_good_cells.
"雙擊
    METHODS:
      handle_double_click
                  FOR EVENT double_click OF cl_gui_alv_grid
        IMPORTING e_row
                  e_column
                  es_row_no.
ENDCLASS.
DATA gt_event_receiver TYPE REF TO lcl_event_receiver .

CLASS lcl_event_receiver IMPLEMENTATION.
  METHOD handle_button_click.
    PERFORM button_click USING es_col_id es_row_no.
  ENDMETHOD.                    
  METHOD handle_data_changed.
    PERFORM frm_handle_data_changed CHANGING er_data_changed.
  ENDMETHOD.                    "HANDLE_CHANGED_DATA
  METHOD HANDLE_MODIFY.

    LOOP AT   IT_TAB INTO WA_TAB .
     *要處理的邏輯*
      MODIFY IT_TAB FROM WA_TAB.

    ENDLOOP.

    IF E_MODIFIED = 'X'.
      STBL-ROW = 'X'." 基于行的穩(wěn)定刷新
      STBL-COL = 'X'." 基于列穩(wěn)定刷新
      CALL METHOD REF_GRID->REFRESH_TABLE_DISPLAY
        EXPORTING
          IS_STABLE = STBL.
    ENDIF.
  ENDMETHOD.
*--DATA_CHANGED_FINISHED(ENTER)
  METHOD handle_enter.
    PERFORM frm_handle_enter.."直接寫(xiě)代碼
  ENDMETHOD.
*--Double Click
  METHOD handle_double_click.
    PERFORM frm_display_message."直接寫(xiě)代碼
  ENDMETHOD.

ENDCLASS.


  ls_events-name = 'CALLER_EXIT'.   "slis_ev_caller_exit_at_start事件
  ls_events-form = 'DATA_CHANGE'.
  APPEND ls_events TO gt_events.

FORM data_change USING e_grid TYPE slis_data_caller_exit .

  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      e_grid = cl_ref_grid.

* Set data changed evententer
  CALL METHOD cl_ref_grid->register_edit_event
    EXPORTING
      i_event_id = cl_gui_alv_grid=>mc_evt_modified
    EXCEPTIONS
      error      = 1
      OTHERS     = 2.

* Set enter event
  CALL METHOD cl_ref_grid->register_edit_event
    EXPORTING
      i_event_id = cl_gui_alv_grid=>mc_evt_enter
    EXCEPTIONS
      error      = 1
      OTHERS     = 2.


  CREATE OBJECT gt_event_receiver.
  SET HANDLER   gt_event_receiver->handle_button_click FOR cl_ref_grid.
  SET HANDLER   gt_event_receiver->handle_data_changed FOR cl_ref_grid."光標(biāo)移動(dòng)觸發(fā)
  SET HANDLER   gt_event_receiver->HANDLE_MODIFY FOR cl_ref_grid.
  SET HANDLER   gt_event_receiver->handle_enter        FOR cl_ref_grid.
  SET HANDLER   gt_event_receiver->handle_double_click        FOR cl_ref_grid.
ENDFORM.                    "FM_BUTTON

FORM button_click  USING    p_col
                            p_row TYPE lvc_s_roid.."button
  CLEAR gt_mess1.
  READ TABLE gt_tab INTO gs_tab INDEX p_row-row_id.
  IF sy-subrc = 0.
   
  ENDIF.
ENDFORM.

FORM frm_handle_data_changed CHANGING er_data_changed TYPE REF TO cl_alv_changed_data_protocol..
  FIELD-SYMBOLS: <f_so> LIKE LINE OF gt_so.
  DATA: ls_mod_cell TYPE lvc_s_modi.

  IF er_data_changed->mt_mod_cells IS NOT INITIAL.

    LOOP AT er_data_changed->mt_mod_cells INTO ls_mod_cell.
      CASE ls_mod_cell-fieldname .
        WHEN 'OLFMNG'. " 根據(jù)原因分析類型的變化提取對(duì)應(yīng)的描述
          READ TABLE gt_so INTO gs_so INDEX ls_mod_cell-row_id .
          IF sy-subrc = 0.
            LOOP AT gt_so ASSIGNING <f_so> WHERE vbeln = gs_so-vbeln   AND uepos = gs_so-posnr.
              <f_so>-olfmng = ls_mod_cell-value.“更改過(guò)的值
            ENDLOOP.
          ENDIF.
      ENDCASE.
    ENDLOOP.


    CALL METHOD cl_ref_grid->refresh_table_display
      EXPORTING
        i_soft_refresh = 'X'.
  ENDIF.
ENDFORM.


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末榨汤,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子怎茫,更是在濱河造成了極大的恐慌收壕,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件轨蛤,死亡現(xiàn)場(chǎng)離奇詭異蜜宪,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)祥山,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)端壳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人枪蘑,你說(shuō)我怎么就攤上這事损谦。” “怎么了岳颇?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵照捡,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我话侧,道長(zhǎng)栗精,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮悲立,結(jié)果婚禮上鹿寨,老公的妹妹穿的比我還像新娘。我一直安慰自己薪夕,他們只是感情好脚草,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著原献,像睡著了一般馏慨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上姑隅,一...
    開(kāi)封第一講書(shū)人閱讀 51,125評(píng)論 1 297
  • 那天写隶,我揣著相機(jī)與錄音,去河邊找鬼讲仰。 笑死慕趴,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鄙陡。 我是一名探鬼主播冕房,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼柔吼!你這毒婦竟也來(lái)了毒费?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤愈魏,失蹤者是張志新(化名)和其女友劉穎觅玻,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體培漏,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡溪厘,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了牌柄。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片畸悬。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖珊佣,靈堂內(nèi)的尸體忽然破棺而出蹋宦,到底是詐尸還是另有隱情,我是刑警寧澤咒锻,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布冷冗,位于F島的核電站,受9級(jí)特大地震影響惑艇,放射性物質(zhì)發(fā)生泄漏蒿辙。R本人自食惡果不足惜拇泛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望思灌。 院中可真熱鬧俺叭,春花似錦、人聲如沸泰偿。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)甜奄。三九已至柠横,卻和暖如春窃款,著一層夾襖步出監(jiān)牢的瞬間课兄,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工晨继, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留烟阐,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓紊扬,卻偏偏與公主長(zhǎng)得像蜒茄,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子餐屎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353