Question:
someone can give me an example of alv template code in
object oriented ? ?
Answer:
I guess this has been covered like 10.000 times here, but still, here it is:
DATA: G_CONTAINER_2000 TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
G_ALV_2000 TYPE REF TO CL_GUI_ALV_GRID.
data: ITAB_FIELDCAT TYPE STANDARD TABLE OF LVC_S_FCAT,
WA_FIELDCAT TYPE LVC_S_FCAT.
_____________________________________________________________
FORM LOAD_FIELD_CATALOG.
PERFORM BUILD_FIELD_CATALOG USING:
* |ref_table | |fieldname| |coltext | |key|
'ITAB_ALV_HU' 'EXIDV' 'Handling unit' 'X',
'ITAB_ALV_HU' 'Z_STATUS' 'Status' ' ',
'ITAB_ALV_HU' 'LGTOR' 'Door' ' ',
'ITAB_ALV_HU' 'ERNAM' 'User' ' ',
'ITAB_ALV_HU' 'TIMESTAMP' 'Timestamp' ' '.
ENDFORM. " LOAD_FIELD_CATALOG
_____________________________________________________________
*&---------------------------------------------------------------------*
*& Form BUILD_FIELD_CATALOG
*&---------------------------------------------------------------------*
* Build the field catalog for the ALV Grid Control.
*----------------------------------------------------------------------*
FORM BUILD_FIELD_CATALOG USING R_TABNAME
R_FIELDNAME
R_COLTEXT
R_KEY.
MOVE: R_TABNAME TO WA_FIELDCAT-REF_TABLE,
R_FIELDNAME TO WA_FIELDCAT-FIELDNAME,
R_COLTEXT TO WA_FIELDCAT-COLTEXT,
R_KEY TO WA_FIELDCAT-KEY.
APPEND WA_FIELDCAT TO ITAB_FIELDCAT.
CLEAR: WA_FIELDCAT.
ENDFORM.
_____________________________________________________________
MODULE INIT_CONTROL_PROCESSING_2000 OUTPUT.
DATA: LS_LAYOUT TYPE LVC_S_LAYO. "ALV grid layout
*-- Check if the custom container has already been created.
IF G_CONTAINER_2000 IS INITIAL.
*-- Create the container that will hold the ALV Grid Control object.
CREATE OBJECT G_CONTAINER_2000
EXPORTING
CONTAINER_NAME = 'CC_CONTAINER'. "= custom control on screen
*-- Create the ALV Grid Control object.
CREATE OBJECT G_ALV_2000
EXPORTING
I_PARENT = G_CONTAINER_2000.
ENDIF. "g_container_2000 is initial.
*-- Set up the layout of the ALV Grid Control.
MOVE: 'X' TO LS_LAYOUT-CWIDTH_OPT,
'X' TO LS_LAYOUT-NO_TOOLBAR.
*-- Display the ALV Grid Control.
CALL METHOD G_ALV_2000->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IS_LAYOUT = LS_LAYOUT
CHANGING
IT_OUTTAB = ITAB_ALV_HU
IT_FIELDCATALOG = ITAB_FIELDCAT.
ENDMODULE. " init_control_processing_2000 OUTPUT
To make this work, you have to create a CC (Custom control) in your screen. In this case I called it g_container_2000 (because on screen 2000).
Happy coding!
Answer:
As many people once said:
Try looking at example ABAPs: BCALV* especialy _GRID* and _TEST* these will help a lot!
_________________
The Doc
Magna Grand Docot of the Tuly Idiot Order
2007 Basic Rules