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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

ABAP:ALV中自定义搜索帮助

發布時間:2025/3/20 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ABAP:ALV中自定义搜索帮助 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如果希望ALV中某字段具有搜索幫助,第一種辦法當然是對表中某字段的引用,設置ref_table、ref_field,將自動觸發該字段所帶的搜索幫助。 可不可以直接設置Searh Help呢?應該不可以,找遍了field catalog的結構也沒發現有可以設置的字段。 第二種辦法就是利用自定義代碼來實現ALV的搜索幫助,顯然它的功能更強大、更靈活。針對在OO ALV中實現搜索幫助,其主要步驟有: 1,在ALV的事件處理類中添加個Method,其DEFINITION如下: handle_onf4 FOR EVENT onf4 OF cl_gui_alv_grid
????? IMPORTING e_fieldname es_row_no er_event_data. 其IMPLEMENTATION中就是我們希望執行的代碼,用來彈出可選擇對話框。e_fieldname代表用戶點擊了ALV的哪個字段來觸發搜索幫助,es_row_no代表了當前行信息, es_row_no-row_id就是ALV中內表記錄的INDEX。er_event_data代表了當前用戶對ALV進行了哪些編輯的信息。在Method的最后,記得加上 er_event_data->m_event_handled = 'X'. 通知系統搜索事件處理完畢,這樣就不會調用系統標準的Search Help。 2,那就是對需要自定義搜索幫助的字段,設置其field catalog時: ls_fieldcat-f4availabl = 'X'. 這一步往往容易被忽略。 3,在創建ALV對象之后,要對需要自定義搜索幫助的字段進行注冊。 DATA: lt_f4 TYPE lvc_t_f4 WITH HEADER LINE. CLEAR lt_f4.
????lt_f4-fieldname = 'FIELD_NAME'.
??? lt_f4-register = 'X'.
??? lt_f4-chngeafter = 'X'.
??? APPEND lt_f4.
??? CALL METHOD mygrid->register_f4_for_fields
????? EXPORTING
??????? it_f4 = lt_f4[]. lvc_s_f4中的字段getbefore和changeafter應該代表是否觸發data_changed事件。 然后我們為其指定事件處理類(假設go_evt_receiver是自定義事件處理類的一個對象): CREATE OBJECT go_evt_receiver. SET HANDLER go_evt_receiver->handle_onf4 FOR go_alv_grid. 至此,主要的設置步驟都介紹完畢。 下面貼一段Handle_onf4的代碼供參考: METHOD handle_onf4.
??? DATA:?ls_modi TYPE lvc_s_modi, lt_ret_tab TYPE TABLE OF ddshretval WITH HEADER LINE. FIELD-SYMBOLS <modtab> TYPE lvc_t_modi. IF e_fieldname = 'FIELD_NAME'. "我們自定義搜索的字段名
????? READ TABLE gt_alv_data INDEX es_row_no-row_id.
????? CHECK sy-subrc = 0.
**? 這里可以添加代碼以對lt_hitlist內表進行填充
????? CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
??????? EXPORTING
????????? retfield??????? = 'HIT_FIELD'
????????? value_org?????? = 'S'
??????? TABLES
????????? value_tab?????? = lt_hitlist
????????? return_tab????? = lt_ret_tab
??????? EXCEPTIONS
????????? parameter_error = 1
????????? no_values_found = 2
????????? OTHERS????????? = 3.
????? IF sy-subrc?= 0.
**??Update the value in ALV cell
????????READ TABLE lt_ret_tab INDEX 1.
????????IF sy-subrc = 0. " User didn't cancel
????????? ls_modi-row_id = es_row_no-row_id.
????????? ls_modi-fieldname = e_fieldname.
????????? ls_modi-value = lt_ret_tab-fieldval.
????????? ASSIGN er_event_data->m_data->* TO <modtab>.
????????? APPEND ls_modi TO <modtab>.
????????ENDIF.
????? ENDIF. **??Inform ALV Grid that event 'onf4' has been processed
????? er_event_data->m_event_handled = 'X'.
??? ENDIF.
? ENDMETHOD.??????????????????? "handle_onf4

總結

以上是生活随笔為你收集整理的ABAP:ALV中自定义搜索帮助的全部內容,希望文章能夠幫你解決所遇到的問題。

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