天天看點

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的概念及一些相關的參數和 函數。參看一些資料,再寫幾個程式,我想大家體會會深一點。