alv - oo

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
Copyright ?2007 - 2008 www.jt77.com