1. 程式人生 > >OO ALV 自定義按鈕

OO ALV 自定義按鈕

DATA ok_code TYPE sy-ucomm.
CLASS lcl_event_receiver DEFINITION DEFERRED.
CLASS cl_gui_cfw DEFINITION LOAD.
CLASS cl_gui_container DEFINITION LOAD.

DATA: go_grid TYPE REF TO cl_gui_alv_grid,
      go_container TYPE REF TO cl_gui_custom_container,
      go_receiver TYPE REF TO lcl_event_receiver,
      gs_stbl TYPE lvc_s_stbl,
      gv_soft,
      gs_layout TYPE lvc_s_layo,
      gt_fieldcat TYPE lvc_t_fcat,
      gs_fieldcat TYPE lvc_s_fcat.
*-----------------------------------------------------------


DATA r_pernr TYPE RANGE OF persno WITH HEADER LINE.

*----------------------------------------------------------------------*
*       CLASS lcl_event_receiver DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_receiver DEFINITION.

  PUBLIC SECTION.

    METHODS:
    handle_toolbar
        FOR EVENT toolbar OF cl_gui_alv_grid
            IMPORTING e_object e_interactive,

    handle_user_command
        FOR EVENT user_command OF cl_gui_alv_grid
            IMPORTING e_ucomm.

ENDCLASS.                    "lcl_event_receiver DEFINITION
*----------------------------------------------------------------------*
*       CLASS lcl_event_receiver IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_receiver IMPLEMENTATION.

  METHOD handle_toolbar.

    DATA: ls_toolbar  TYPE stb_button.

    CLEAR ls_toolbar.
    MOVE 3 TO ls_toolbar-butn_type.
    APPEND ls_toolbar TO e_object->mt_toolbar.

    CLEAR ls_toolbar.
*    MOVE 'SEND' TO ls_toolbar-function.
    move 'SEL' to ls_toolbar-function.
    MOVE icon_ws_post TO ls_toolbar-icon.
    MOVE '生成員工總體培訓計劃' TO ls_toolbar-quickinfo.
    MOVE '生成' TO ls_toolbar-text.
*    MOVE ' ' TO ls_toolbar-disabled.
    APPEND ls_toolbar TO e_object->mt_toolbar.

  ENDMETHOD.                    "handle_toolbar
  METHOD handle_user_command.

    DATA: lt_rows TYPE lvc_t_row.
*    DATA lt_error LIKE TABLE OF gs_error.
    DATA LV_SUBRC TYPE SY-SUBRC.

    CASE e_ucomm.
*      WHEN 'SEND'.
      when 'SEL'.
        CALL METHOD go_grid->get_selected_rows
          IMPORTING
            et_index_rows = lt_rows.
        CALL METHOD cl_gui_cfw=>flush.
        IF lt_rows[] IS NOT INITIAL.
*          PERFORM selection_lines TABLES lt_rows
*                                         Gt_error.
          REFRESH GT_ERROR.
          PERFORM selection_lines1 TABLES lt_rows
                                          Gt_error
                                   CHANGING LV_SUBRC.
          IF GT_ERROR[] IS NOT INITIAL.
             CALL SCREEN 300 STARTING AT 5 5
                               ENDING AT 100 20.
          ELSE.
            IF LV_SUBRC = 0.
             MESSAGE '成功' TYPE 'S'.
            ENDIF.
          ENDIF.
*             PERFORM SEND_EMAIL.
        ELSE.
          MESSAGE '請選擇有效行' TYPE 'S'.
        ENDIF.
    ENDCASE.
  ENDMETHOD.                           "handle_user_command
*-----------------------------------------------------------------
ENDCLASS.                    "lcl_event_receiver IMPLEMENTATION
TABLES: pa0002, hrp1000, pa9602, pa0001, hrp9825.
*PARAMETERS P_PERNR TYPE PERSNO MATCHCODE OBJECT PREM obligatory.
*SELECT-OPTIONS s_pernr FOR pa0001-pernr MATCHCODE OBJECT prem NO INTERVALS.
SELECTION-SCREEN BEGIN OF SCREEN 1100 AS WINDOW.
PARAMETERS: p_begda TYPE begda OBLIGATORY,
            p_year type ZZTEYJND as listbox VISIBLE LENGTH 10,
            p_mon type ZZTEYJYF as listbox VISIBLE LENGTH 8.
SELECTION-SCREEN END OF SCREEN 1100.

START-OF-SELECTION.

GET pernr.

  rp-provide-from-last p0002 space pn-begda pn-endda.
  CHECK pnp-sw-found = 1.
  r_pernr-sign = 'I'.
  r_pernr-option = 'EQ'.
  r_pernr-low = p0002-pernr.
  APPEND r_pernr.

END-OF-SELECTION.
  IF r_pernr[] IS INITIAL.
    MESSAGE '沒有資料' TYPE 'S'.
    STOP.
  ENDIF.
  PERFORM get_data.
  CALL SCREEN 100.
*&---------------------------------------------------------------------*
*&      Module  status_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'STA_0100'.
  CLEAR ok_code.
  SET TITLEBAR 'TIT_0100'.
  IF go_grid IS NOT BOUND.
    CREATE OBJECT go_grid
      EXPORTING
        i_parent = cl_gui_container=>screen0.
    gs_layout-sel_mode = 'A'.
    gs_layout-cwidth_opt = 'X'.

    PERFORM get_fieldcatalog.   "填充標題

    CALL METHOD go_grid->set_table_for_first_display
      EXPORTING
        is_layout       = gs_layout
      CHANGING
        it_outtab       = gt_output[]
        it_fieldcatalog = gt_fieldcat.
    CREATE OBJECT go_receiver.
    SET HANDLER go_receiver->handle_user_command FOR go_grid.
    SET HANDLER go_receiver->handle_toolbar FOR go_grid.
    CALL METHOD go_grid->set_toolbar_interactive.

  ELSE.
    gs_stbl-row = 'X'.
    gs_stbl-col = 'X'.
    gv_soft = 'X'.
    CALL METHOD go_grid->refresh_table_display
      EXPORTING
        is_stable      = gs_stbl
        i_soft_refresh = gv_soft.
  ENDIF.
ENDMODULE.                 " status_0100  OUTPUT

相關推薦

OO ALV 定義按鈕

DATA ok_code TYPE sy-ucomm. CLASS lcl_event_receiver DEFINITION DEFERRED. CLASS cl_gui_cfw DEFINITION LOAD. CLASS cl_gui_container DEFINITION LOAD. DATA: g

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

定義按鈕定義置灰

常見 -a js代碼 tdi poi microsoft font not clas js代碼如下: 大於0時為可點擊狀態;小於0時為不可點擊狀態。 if(totalCount>0){ $("#btnExport").removeClass("btnExpo

按鈕配置之定義按鈕使用(一)——JEPLUS軟件快速開發平臺

事件 proc oss In 需求 信息 ces otto 圖片 JEPLUS按鈕配置之自定義按鈕使用(一)系統開發過程中無論是表單的默認按鈕或是列表的默認按鈕以及Action的默認按鈕有時候並不能滿足我們的業務需求,這個時

按鈕配置之定義按鈕使用(二)——JEPLUS軟件快速開發平臺

bottom vpd 開發平臺 rem 按鈕 ros cto -c spa JEPLUS按鈕配置之自定義按鈕使用(二)之前的一篇筆記講的是在列表上添加自定義按鈕來完成自己的業務需求,今天這篇筆記就主要講一下如何在表

定義按鈕實現 video暫停和播放的方法

注:兩個方法只能用於原生獲取的<video></video>元素,對jquery獲取的元素不管用  1.play(); 實現播放 // dom元素如下 <video width="800" height="400" id="video"

VUE/使用echarts格式化浮窗定義按鈕及事件

注意看這一段程式碼    mounted() {             let that=this;       window.detal = function () { &n

easyui datagrid 定義按鈕列(4)

1.原始碼 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="keywords" content="jquery,u

學習OPENSEADRAGON之五 (工具條TOOLBAR與定義按鈕)

OpenSeadragon簡介:學習OpenSeadragon之一(一個顯示多層圖片的開源JS庫) 一、工具條toolbar設定 OpenSeadragon為我們提供了現成的工具條toolBar,工具條上有按鈕,可以預設實現放大、縮小、全屏、返回預設大小等功能, toolB

angular6定義按鈕元件 並實現父子元件見的傳值

在控制檯輸入命令建立一個按鈕元件 ng g component bigbutton,cli會自動建立一個BitbuttonComponent元件,提供了html、ts、css檔案。修改html、ts、css檔案: html內容: <div class='big-bt

WPF繪圖的工程應用:為按鈕定義按鈕新增向量圖作為背景,該向量圖來自Blend或Design設計的Path資料。

例1 :Button+Drawing繫結+GeometryDrawing 功能描述:為Button新增簡單的向量圖作為背景。 <Window x:Class="Drawing.Drawings" xmlns="http://schemas.microsoft

MUI、HTML5+、HBuilder實現透明漸變導航欄+定義按鈕(右上角分享按鈕

先上效果圖: js程式碼: mui.plusReady(function() { var ws = plus.webview.currentWebview(); ws.setStyle({ "titleNView":{ backgroundColor:

Qt定義按鈕彈窗控制元件

  一直以為做一個按鈕彈窗控制元件很簡單,可做起來發現並不是那麼順利,折騰了挺長時間的,先看下效果: 前言   嘗試過兩種方案,方案一:使用QToolButton控制元件,我們可以自定義一個widget,然後setMenu設定為該widget;方案二:點選一個

Ztree節點前加上兩個定義按鈕

前言: 在我的許可權管理模組遇到了給某些角色加許可權的問題,這時就需要實現將每個模組做成樹,在每個節點前加上預覽和編輯的按鈕,這樣可以根據資料庫的某個欄位給每個角色賦許可權。 需求: Ztree節點前新增編輯和預覽按鈕 實現效果: 實現步驟:前提是對ztree有些瞭解。 使用的是ztree官方文件

定義按鈕 圖片標題位置隨意放置

自定義按鈕UIControl 寫在前面 #圖示和文字在一起是開發難免的問題,系統的按鈕預設是圖片居左的文字居右的, 且圖片和文字的距離不好調整,圖片的位置更是讓人頭疼, 故在閒暇之餘封裝了一個控制元件。 複製程式碼 所用到知識的 # 1、蘋果系統自帶的自動佈局,減少第三方的依賴 # 2、kvo監聽UIC

定義按鈕

2018年11月14日 13:47:44 buhuiyaowen 閱讀數:6 個人分類: 自定義控制元件