1. 程式人生 > >【轉載】BP增強 新增自定義螢幕 BUT000 (中文)

【轉載】BP增強 新增自定義螢幕 BUT000 (中文)

參考文章:https://blog.csdn.net/guangcong2009/article/details/80569877

1、 BUT000表增強CI_EEW_BUT000,CI_EEW_BUT000_X

2、 建立增強結構ZSBUT00_CUST,該結構在DSAVB事件中,會被使用到

3、 建立函式組ZSD_BP,增強相關的程式必須全部放在該程式中,包括函式、螢幕、變數

4、 在ZSD_BP的include top中定義變數如下:

5、 建立螢幕9001,螢幕欄位從表BUT000直接F6生成,命名格式必須為BUT000-XXXXX

6、9001螢幕的PBO、PAI如下

6、 螢幕增強配置,進入TCODE: BUPT 

7、 建立應用程式

8、 建立資料集

9、 建立欄位組

10、 建立檢視

11、 建立PBO函式無輸入輸出引數

function zsd_but000_pbo.
*"----------------------------------------------------------------------
*"*"本地介面:
*"-------------------------------------------------------------------
  data:
    lt_but000   type table of but000.

* step 1: request data from xo for dynpro structure
  "if gs_but000 is initial.
    cvi_bdt_adapter=>data_pbo(
      exporting
        i_table_name = table_name_but000
      importing
        e_data_table = lt_but000[]
    ).
  "endif.

  if lt_but000[] is initial.
    clear gs_but000.
  else.
    read table lt_but000 into gs_but000 index 1.
  endif.


endfunction.

12、 建立PAI函式,無輸入輸出引數

function zsd_but000_pai.
*"----------------------------------------------------------------------
*"*"本地介面:
*"----------------------------------------------------------------------
  data:
      lt_but000         type table of but000.
  field-symbols:
    <but000>          like line of lt_but000.

  check cvi_bdt_adapter=>is_direct_input_active( ) = false.
* step 1: update xo memory from dypro structure
  cvi_bdt_adapter=>get_current_bp_data(
    exporting
      i_table_name = table_name_but000
    importing
      e_data_table = lt_but000[]
  ).

  if lt_but000[] is initial.
    if gs_but000 is not initial.
      gs_but000-partner = cvi_bdt_adapter=>get_current_bp( ).
      append gs_but000 to lt_but000.
    endif.
  else.
    read table lt_but000 assigning <but000> index 1.
    <but000>-zbpmid = gs_but000-zbpmid.
    assign gs_but000 to <but000>.
  endif.

  cvi_bdt_adapter=>data_pai(
    i_table_name = table_name_but000
    i_data_new   = lt_but000[]
    i_validate   = false
  ).
endfunction.

13、 將程式名、螢幕號、PBO、PAI函式分配給檢視

14、 建立部分

15、 給部分分配檢視

16、 建立螢幕

17、 螢幕->部分

18、 建立螢幕順序

19、 業務夥伴檢視

20、定義事件


--------------------- 
作者:一毛 
來源:CSDN 
原文:https://blog.csdn.net/guangcong2009/article/details/80569877 
版權宣告:本文為博主原創文章,轉載請附上博文連結!