ALV,TABLE TREE等一些控件{轉載}

今天來總結一下ABAP中一些常用的控件,除去之前寫過的一些,還有ALV_GRID, ALV_TREE, TABLE_TREE等。

    現在用的控件很多都是用類寫的,而它們的使用,說白一點,就和用JAVA中的類沒什麼區別,一個訣竅就是記住通用的寫法,然後再根據不同控件變化。
    最好,每個控件都總結一個通用模版,這可以大大節約實施中的時間。老白的博客上有不少這方面的例子,我這裏就不再寫了。同時大家也可以通過SE38->Environment->Reuse Library/Examples去看一下SAP提供的例子,很多是可以複用的,把結構和參數看熟了就行。
    接下來,說說這些控件的一些特點及一般的使用流程。
    剛剛寫ABAP的朋友一定會經常使用到'REUSE_ALV_GRID_DISPLAY'這個function,一個很實用的function,不需要畫屏幕,不需要定義事件,一個簡化而美觀的輸出工具。但是這個function還是有很多有意思的功能的,比如分類統計,給單行或單列上色等等。
    要使用ALV_GRID的所有功能,就需要在Screen上,畫上Custom Control,然後再在程序中進行相關的定義。基本上就是OO的那套東西
*-- Global data definitions for ALV

*--- ALV Grid instance reference
DATA gr_alvgrid TYPE REF TO cl_gui_alv_grid .
*--- Name of the custom control added on the screen
DATA gc_custom_control_name TYPE scrfname VALUE 'CC_ALV'.
*--- Custom container instance reference
DATA gr_ccontainer TYPE REF TO cl_gui_custom_container .
*--- Field catalog table
DATA gt_fieldcat TYPE lvc_t_fcat .
*--- Layout structure
DATA gs_layout TYPE lvc_s_layo .
 
    控件的初始化會在PBO中進行,而PAI中就是做一些命令相關的操作。
    如果有事件觸發的話,寫得時候會麻煩一點,要定一個專門處理事件的類,還要在PBO的時候註冊給所需要的控件,設置好觸發條件,方可使用。實際應用中,還要經過很多調試,看看效果是不是能達到要求。而且ALV_GRID作爲編輯功能的話,還是有一些缺陷的,比如選擇功能,所以實際使用時,適當地選擇。
    ALV_TREE的寫法和ALV相近,但是是以TREE的格式顯示,用得場合不多。
    TABLE_TREE我在實際項目沒有用過,自己也是作爲知識儲備放着,大體寫法和ALV_GRID差不多,只是多了個NODE的概念及一些相關的參數和函數。參看一些資料,再寫幾個程序,我想大家體會會深一點。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章