亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

APAP?ALV進(jìn)階寫法及優(yōu)化詳解

 更新時(shí)間:2022年09月09日 10:26:42   作者:百里落云  
這篇文章主要為大家介紹了APAP?ALV進(jìn)階寫法及優(yōu)化詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

先導(dǎo)

上一期講了在ABAP中,ALV的普通寫法,流程以及相關(guān)屬性,還講了基本DEMO ,但是在真正開發(fā)中,不會(huì)寫這么多的代碼.原則上是一切從簡(jiǎn). o( ̄︶ ̄)oo( ̄︶ ̄)o.今天講下如何用少的代碼,標(biāo)準(zhǔn)套路,實(shí)現(xiàn)ALV基本功能,滿足開發(fā)生產(chǎn)需求.

流程搭建

萬變不離其宗,首先書寫的還是流程,比如讓你寫一個(gè)某某查詢報(bào)表. 上來啥都不用想你先這么寫

*數(shù)據(jù)準(zhǔn)備
*常規(guī)定義變量,內(nèi)表結(jié)構(gòu),工作區(qū),內(nèi)表,包。。。。
你的代碼
*系統(tǒng)變量準(zhǔn)備
*如layout,fieldcat 等 系統(tǒng)變量
你的代碼
*選擇屏幕
你的代碼
*INITIALIZATION
*at SELECTION-SCREEN .
"START-OF-SELECTION
"End-OF-SELECTION .
“子例程及自定義宏

流程講解

INITIALIZATION.

該事件在屏幕未顯示之前執(zhí)行,對(duì)程序設(shè)置值及屏幕元素進(jìn)行初始化賦值。一般作用就是初始值設(shè)定,如選擇屏幕的數(shù)據(jù)賦值,默認(rèn)參數(shù)賦值等。

at SELECTION-SCREEN!

1:選擇屏幕事件,有很多參數(shù),代表不同的擴(kuò)展信息

2:在這個(gè)事件響應(yīng)中,可以對(duì)屏幕字段進(jìn)行有效性檢驗(yàn),控制屏幕元素的屬性等。

START-OF-SELECTION

該事件在單擊按鈕后觸發(fā),一般是數(shù)據(jù)初始化,數(shù)據(jù)處理操作的地方

End-OF-SELECTION .

該事件應(yīng)用于所有數(shù)據(jù)選擇處理完成,

即START-OF-SELECTION相關(guān)執(zhí)行事件執(zhí)行完成,

但輸出屏幕還未顯示之前 在實(shí)際的應(yīng)用于一些執(zhí)行結(jié)果的檢驗(yàn)等。

一般做為ALV展示及用戶操作按鈕事件等。

演練

這里寫一個(gè)簡(jiǎn)單的物料明細(xì)查詢報(bào)表 ,知識(shí)點(diǎn)用到了,宏,循環(huán),opensql,用戶事件等內(nèi)容。

數(shù)據(jù)準(zhǔn)備

TABLES : MARA .
*數(shù)據(jù)準(zhǔn)備
"定義結(jié)構(gòu)
TYPES : BEGIN OF gw_Data ,
    MATNR TYPE MATNR ,
    MEINS TYPE MEINS ,
    MAKTX TYPE MAKTX ,
  end of gw_Data .
"定義工作區(qū)及內(nèi)表
data : gs_data TYPE gw_Data .
data :gt_data TYPE table of gw_Data .
"alv 數(shù)據(jù)
*--------------------------------------------------------------------*
*  通用ALV變量
*--------------------------------------------------------------------*
DATA: wa_layout   TYPE lvc_s_layo.
DATA:wa_fieldcat TYPE lvc_s_fcat,
     gt_fieldcat TYPE lvc_t_fcat.
DATA:gs_glay TYPE  lvc_s_glay.
DATA : gv_error TYPE c.
DATA : BS1 TYPE C.

選擇屏幕

SELECTION-SCREEN BEGIN OF BLOCK BLOCK  WITH FRAME TITLE TEXT-001 .
  PARAMETERS  p_p1  TYPE mara-matnr OBLIGATORY.   "料號(hào)
  SELECTION-SCREEN END OF BLOCK BLOCK .

INITIALIZATION  .

INITIALIZATION  .
%_p_p1_%_app_%-text = '物料號(hào)'.  "設(shè)定選擇屏幕初始化名稱

at SELECTION-SCREEN .

at SELECTION-SCREEN .
PERFORM check_auth .  "權(quán)限檢查

START-OF-SELECTION    .

START-OF-SELECTION    .
PERFORM get_DAta  .  "獲取數(shù)據(jù)屬性

END-OF-SELECTION .

End-OF-SELECTION .
PERFORM diaplay_data.   "展示alv

子程序和宏

以下程序都使用新語法.不懂新語法后續(xù)會(huì)出相關(guān)內(nèi)容

"獲取數(shù)據(jù)子程序
FORM get_DAta . 
select a~matnr,a~MEINS,b~maktx   
from mara as a inner join makt as b 
on a~matnr = b~MATNR where a~ZMATNR = @p_p1 into table @data(lt_outdata) .
ENDFORM .
*展示alv 子程序 直接復(fù)制
FORM diaplay_data . 
PERFORM set_alv_layout.   "樣式設(shè)定
PERFORM bulid_fieldcat.   "格式設(shè)定
PERFORM call_alv_func.    "alv 函數(shù)
ENDFORM.
"樣式設(shè)定  直接復(fù)制
FORM set_alv_layout .
 CLEAR: wa_layout.
 wa_layout-zebra      = 'X'.      "斑馬線
 wa_layout-cwidth_opt = 'X'.      "自動(dòng)列寬
ENDFORM.
"格式設(shè)定  固定換數(shù)
FORM bulid_fieldcat .
 DEFINE add_col.
*    ADD 1 TO pos.
*    lw_fieldcat-col_pos = pos.
    wa_fieldcat-fieldname = &1.
    wa_fieldcat-ref_field = &2.
    wa_fieldcat-ref_table = &3.
    wa_fieldcat-scrtext_l = &4.
    wa_fieldcat-outputlen = &5.
    wa_fieldcat-no_zero = &6.
    wa_fieldcat-edit = &7.
    wa_fieldcat-edit_mask = &8.
    wa_fieldcat-key = &9.
   CASE  wa_fieldcat-fieldname.
      WHEN 'slbox'.
 wa_fieldcat-checkbox = 'X' .
 wa_fieldcat-edit = 'X' .
  wa_fieldcat-edit_mask = 'X'.
      WHEN OTHERS.
ENDCASE .
    APPEND wa_fieldcat TO gt_fieldcat.
  CLEAR : wa_fieldcat.
  END-OF-DEFINITION.
  REFRESH: gt_fieldcat.
  "add_col 'matnr'     space space '物料號(hào)'           space space space space space.
  add_col 'MEINS'     space space '單位'           space space space space space.
  add_col 'maktx'     space space '物料名'           space space space space space.
ENDFORM.
"刷新 固定復(fù)制
FORM refresh_alv .
  DATA: lo_grid   TYPE REF TO cl_gui_alv_grid,
        lw_stable TYPE lvc_s_stbl.
  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      e_grid = lo_grid.
  lw_stable-row = 'X'.
  lw_stable-col = 'X'.
  lo_grid->refresh_table_display(
    EXPORTING
      is_stable = lw_stable
    EXCEPTIONS
      finished  = 1
      OTHERS    = 2 ).
ENDFORM.
"固定,只需要傳內(nèi)表就行
FORM call_alv_func .
  gs_glay-edt_cll_cb = abap_true.     " 選中復(fù)選款,立刻觸發(fā)data changed 事件
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      i_callback_program       = sy-repid           "回調(diào)程序
      i_callback_pf_status_set = 'SET_PF_STATUS'
      i_callback_user_command  = 'USER_COMMAND'
            i_grid_settings          = gs_glay
      is_layout_lvc            = wa_layout
      it_fieldcat_lvc          = gt_fieldcat        "需要顯示的內(nèi)表的列
      i_save                   = 'A'
    TABLES
      t_outtab                 =    lt_outdata      "需要顯示的數(shù)據(jù)
    EXCEPTIONS
      program_error            = 1
      OTHERS                   = 2.
  IF sy-subrc <> 0.
  ENDIF.
ENDFORM.
"staus  工具欄 直接復(fù)制
FORM set_pf_status USING rt_extab TYPE slis_t_extab.
  DATA : lw_tab LIKE LINE OF rt_extab.
  REFRESH rt_extab.
 SET PF-STATUS 'STD' EXCLUDING rt_extab.
ENDFORM.
"用戶事件 ,這里沒寫. 但是如果設(shè)定函數(shù)雙擊會(huì)apap dump 
FORM user_command  USING r_ucomm LIKE sy-ucomm
                         rs_selfield TYPE slis_selfield.
  CASE r_ucomm.
*   導(dǎo)入
    WHEN '&IMPLE'.
  ENDCASE.
ENDFORM.
"權(quán)限檢查,按照不同的情況調(diào)用不同的函數(shù),這里需要更換.
*&---------------------------------------------------------------------*
*& Form check_auth
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM check_auth .
"select  SINGLE WERKS, KUNNR  into  @data(ls_t001w) from  t001w  WHERE WERKS  = @p_p1  .
 AUTHORITY-CHECK OBJECT 'M_MSEG_WMB'
  ID 'ACTVT'  DUMMY
  ID 'WERKS' FIELD p_p1 .
IF sy-subrc <> 0.
* Implement a suitable exception handling here
ENDIF.
ENDFORM.

以上就為一個(gè)alv 的寫法 ,其中 70%以上的代碼是固定的.

自己需要寫的地方, 選擇屏幕,獲取數(shù)據(jù) ,數(shù)據(jù)處理,用戶事件,權(quán)限. 這四個(gè)地方.

總結(jié)

相比較上一個(gè)demo 這個(gè)例子代碼少了很多, 但是比其他語言來講還是太復(fù)雜了.

大部分還是套路,固定這么寫,就可以. 主要還是在程序及邏輯操作上.

使用新語法可以減少很多不必要的操作,比如定義結(jié)構(gòu),內(nèi)表,關(guān)聯(lián)等.

以上就是APAP ALV進(jìn)階寫法及優(yōu)化詳解的詳細(xì)內(nèi)容,更多關(guān)于APAP ALV寫法優(yōu)化的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Xshell?Plus?6?下載及安裝使用圖文教程(解壓即可使用)

    Xshell?Plus?6?下載及安裝使用圖文教程(解壓即可使用)

    本文分享一波?Xshell?Plus?6?破解版,親測(cè)有效,因?yàn)槭蔷G色無安裝版本的,下載下來后,解壓即可使用,就可以直接使用了,對(duì)Xshell?Plus?6?破解下載圖文教程感興趣的朋友一起看看吧
    2022-07-07
  • 基于 Dubbo Admin 臨時(shí)踢除問題服務(wù)實(shí)例步驟

    基于 Dubbo Admin 臨時(shí)踢除問題服務(wù)實(shí)例步驟

    服務(wù)在線上運(yùn)行的過程中,難免遇到某些節(jié)點(diǎn)有問題,為了不影響整體服務(wù)的正常運(yùn)行,需要臨時(shí)下線問題的服務(wù)實(shí)例,這篇文章主要介紹了基于 Dubbo Admin 臨時(shí)踢除問題服務(wù)實(shí)例,需要的朋友可以參考下
    2022-12-12
  • AI經(jīng)典書單 人工智能入門該讀哪些書?

    AI經(jīng)典書單 人工智能入門該讀哪些書?

    學(xué)習(xí)人工智能該讀哪些書可以快速入門呢?我的答案是多讀經(jīng)典書。方向?qū)α思词孤c(diǎn),總會(huì)走向成功的終點(diǎn)。而該讀哪些書,小編推薦五份經(jīng)典書單
    2017-11-11
  • Fiddler4的安裝與使用詳解

    Fiddler4的安裝與使用詳解

    這篇文章主要介紹了Fiddler4的安裝與使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 初探 SOA(補(bǔ)充)

    初探 SOA(補(bǔ)充)

    SOA是一種應(yīng)用框架,它著眼于日常的業(yè)務(wù)應(yīng)用,并將它們劃分為單獨(dú)的業(yè)務(wù)功能和流程,即所謂的服務(wù)。它使用戶可以構(gòu)建、部署和整合這些服務(wù),且無需依賴應(yīng)用程序及其運(yùn)行計(jì)算平臺(tái),從而提高業(yè)務(wù)流程的靈活性。
    2009-01-01
  • 網(wǎng)站搜索框使用微信掃碼功能

    網(wǎng)站搜索框使用微信掃碼功能

    客戶要求可以直接識(shí)別標(biāo)簽二維碼對(duì)某些儀器設(shè)備進(jìn)行管理,類似于淘寶搜索框可以直接拍照搜索商品一樣。接下來通過本文給大家分享網(wǎng)站搜索框使用微信掃碼功能,需要的朋友可以參考下
    2019-08-08
  • Elasticsearch索引的分片分配Recovery使用講解

    Elasticsearch索引的分片分配Recovery使用講解

    這篇文章主要為大家介紹了Elasticsearch索引的分片分配Recovery使用講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • MobaXterm遠(yuǎn)程連接Linux服務(wù)器(Ubuntu)圖文教程

    MobaXterm遠(yuǎn)程連接Linux服務(wù)器(Ubuntu)圖文教程

    這篇文章主要為大家介紹了MobaXterm遠(yuǎn)程連接Linux服務(wù)器(Ubuntu)的相關(guān)教程,文中通過圖文進(jìn)行了詳細(xì)的總結(jié),需要的小伙伴可以收藏下
    2023-08-08
  • 微信小程序(應(yīng)用號(hào))組件詳細(xì)介紹

    微信小程序(應(yīng)用號(hào))組件詳細(xì)介紹

    這篇文章主要介紹了微信小程序(應(yīng)用號(hào))組件詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • chatgpt-api使用指南詳解教程【官方泄露版】

    chatgpt-api使用指南詳解教程【官方泄露版】

    chatgpt-api是?OpenAI?ChatGPT?的非官方的?Node.js?包裝器,?chatgpt-api不再需要任何瀏覽器破解它使用泄露出來的OpenAI官方ChatGPT?在后臺(tái)使用的模型,這篇文章主要介紹了chatgpt-api使用指南【官方泄露版】,需要的朋友可以參考下
    2023-02-02

最新評(píng)論