Ooalv

hi Experts,
I displayed logo in the top of page in ooalv using the class
CL_GUI_ALV_TREE_SIMPLE. But how to get the grid display
along with it using the same container???
plz help me

HI,
Refer to the following code :
REPORT ZTEST1234_ALV_TOP MESSAGE-ID ZZ .
DATA: G_GRID TYPE REF TO CL_GUI_ALV_GRID.
DATA: L_VALID TYPE C,
V_FLAG,
V_DATA_CHANGE,
V_ROW TYPE LVC_S_ROW,
V_COLUMN TYPE LVC_S_COL,
V_ROW_NUM TYPE LVC_S_ROID.
"The Below Definitions Must.....
DATA:
Reference to document
DG_DYNDOC_ID TYPE REF TO CL_DD_DOCUMENT,
Reference to split container
DG_SPLITTER TYPE REF TO CL_GUI_SPLITTER_CONTAINER,
Reference to grid container
DG_PARENT_GRID TYPE REF TO CL_GUI_CONTAINER,
Reference to html container
DG_HTML_CNTRL TYPE REF TO CL_GUI_HTML_VIEWER,
Reference to html container
DG_PARENT_HTML TYPE REF TO CL_GUI_CONTAINER.
"up to here
CLASS lcl_event_handler DEFINITION
CLASS LCL_EVENT_HANDLER DEFINITION .
PUBLIC SECTION .
METHODS:
**Hot spot Handler
HANDLE_HOTSPOT_CLICK FOR EVENT HOTSPOT_CLICK OF CL_GUI_ALV_GRID
IMPORTING E_ROW_ID E_COLUMN_ID ES_ROW_NO,
**Double Click Handler
HANDLE_DOUBLE_CLICK FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID
IMPORTING E_ROW E_COLUMN ES_ROW_NO,
TOP_OF_PAGE FOR EVENT TOP_OF_PAGE "event handler
OF CL_GUI_ALV_GRID
IMPORTING E_DYNDOC_ID.
ENDCLASS. "lcl_event_handler DEFINITION
CLASS lcl_event_handler IMPLEMENTATION
CLASS LCL_EVENT_HANDLER IMPLEMENTATION.
*Handle Hotspot Click
METHOD HANDLE_HOTSPOT_CLICK .
CLEAR: V_ROW,V_COLUMN,V_ROW_NUM.
V_ROW = E_ROW_ID.
V_COLUMN = E_COLUMN_ID.
V_ROW_NUM = ES_ROW_NO.
MESSAGE I000 WITH V_ROW 'clicked'.
ENDMETHOD. "lcl_event_handler
*Handle Double Click
METHOD HANDLE_DOUBLE_CLICK.
ENDMETHOD. "handle_double_click
METHOD TOP_OF_PAGE. "implementation
Top-of-page event
PERFORM EVENT_TOP_OF_PAGE USING DG_DYNDOC_ID.
ENDMETHOD. "top_of_page
ENDCLASS. "LCL_EVENT_HANDLER IMPLEMENTATION
*& Global Definitions
DATA: G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,"Container1
G_HANDLER TYPE REF TO LCL_EVENT_HANDLER. "handler
DATA: OK_CODE LIKE SY-UCOMM,
SAVE_OK LIKE SY-UCOMM,
G_CONTAINER1 TYPE SCRFNAME VALUE 'TEST',
GS_LAYOUT TYPE LVC_S_LAYO.
Fieldcatalog for First and second Report
DATA: IT_FIELDCAT TYPE LVC_T_FCAT,
X_FIELDCAT TYPE LVC_S_FCAT,
LS_VARI TYPE DISVARIANT.
START-OF_SELECTION
START-OF-SELECTION.
DATA:BEGIN OF ITAB OCCURS 0,
VBELN LIKE LIKP-VBELN,
POSNR LIKE LIPS-POSNR,
CELLCOLOR TYPE LVC_T_SCOL, "required for color
DROP(10),
END OF ITAB.
SELECT VBELN
POSNR
FROM LIPS
UP TO 20 ROWS
INTO CORRESPONDING FIELDS OF TABLE ITAB.
END-OF-SELECTION.
IF NOT ITAB[] IS INITIAL.
CALL SCREEN 100.
ELSE.
MESSAGE I002 WITH 'NO DATA FOR THE SELECTION'(004).
ENDIF.
*& Form CREATE_AND_INIT_ALV
text
FORM CREATE_AND_INIT_ALV .
DATA: LT_EXCLUDE TYPE UI_FUNCTIONS.
"attention.....from here
"split your container here...into two parts
"create the container
CREATE OBJECT G_CUSTOM_CONTAINER
EXPORTING CONTAINER_NAME = G_CONTAINER1.
"this is for top of page
Create TOP-Document
CREATE OBJECT DG_DYNDOC_ID
EXPORTING STYLE = 'ALV_GRID'.
Create Splitter for custom_container
CREATE OBJECT DG_SPLITTER
EXPORTING PARENT = G_CUSTOM_CONTAINER
ROWS = 2
COLUMNS = 1.
Split the custom_container to two containers and move the reference
to receiving containers g_parent_html and g_parent_grid
"i am allocating the space for grid and top of page
CALL METHOD DG_SPLITTER->GET_CONTAINER
EXPORTING
ROW = 1
COLUMN = 1
RECEIVING
CONTAINER = DG_PARENT_HTML.
CALL METHOD DG_SPLITTER->GET_CONTAINER
EXPORTING
ROW = 2
COLUMN = 1
RECEIVING
CONTAINER = DG_PARENT_GRID.
"you can set the height of it
Set height for g_parent_html
CALL METHOD DG_SPLITTER->SET_ROW_HEIGHT
EXPORTING
ID = 1
HEIGHT = 5.
"from here as usual..you need to specify parent as splitter part
"which we alloted for grid
CREATE OBJECT G_GRID
EXPORTING I_PARENT = DG_PARENT_GRID.
Set a titlebar for the grid control
CLEAR GS_LAYOUT.
GS_LAYOUT-GRID_TITLE = TEXT-003.
GS_LAYOUT-ZEBRA = SPACE.
GS_LAYOUT-CWIDTH_OPT = 'X'.
GS_LAYOUT-NO_ROWMARK = 'X'.
GS_LAYOUT-CTAB_FNAME = 'CELLCOLOR'.
CALL METHOD G_GRID->REGISTER_EDIT_EVENT
EXPORTING
I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_ENTER.
CREATE OBJECT G_HANDLER.
SET HANDLER G_HANDLER->HANDLE_DOUBLE_CLICK FOR G_GRID.
SET HANDLER G_HANDLER->HANDLE_HOTSPOT_CLICK FOR G_GRID.
SET HANDLER G_HANDLER->TOP_OF_PAGE FOR G_GRID.
DATA: LS_CELLCOLOR TYPE LVC_S_SCOL. "required for color
DATA: L_INDEX TYPE SY-TABIX.
"Here i am changing the color of line 1,5,10...
"so you can change the color of font conditionally
LOOP AT ITAB.
L_INDEX = SY-TABIX.
IF L_INDEX = 1 OR L_INDEX = 5 OR L_INDEX = 10.
LS_CELLCOLOR-FNAME = 'VBELN'.
LS_CELLCOLOR-COLOR-COL = '6'.
LS_CELLCOLOR-COLOR-INT = '0'.
LS_CELLCOLOR-COLOR-INV = '1'.
APPEND LS_CELLCOLOR TO ITAB-CELLCOLOR.
MODIFY ITAB INDEX L_INDEX TRANSPORTING CELLCOLOR.
LS_CELLCOLOR-FNAME = 'POSNR'.
LS_CELLCOLOR-COLOR-COL = '6'.
LS_CELLCOLOR-COLOR-INT = '0'.
LS_CELLCOLOR-COLOR-INV = '1'.
APPEND LS_CELLCOLOR TO ITAB-CELLCOLOR.
MODIFY ITAB INDEX L_INDEX TRANSPORTING CELLCOLOR.
ENDIF.
ENDLOOP.
setting focus for created grid control
CALL METHOD CL_GUI_CONTROL=>SET_FOCUS
EXPORTING
CONTROL = G_GRID.
Build fieldcat and set editable for date and reason code
edit enabled. Assign a handle for the dropdown listbox.
PERFORM BUILD_FIELDCAT.
PERFORM SET_DRDN_TABLE.
Optionally restrict generic functions to 'change only'.
(The user shall not be able to add new lines).
PERFORM EXCLUDE_TB_FUNCTIONS CHANGING LT_EXCLUDE.
**Vaiant to save the layout
LS_VARI-REPORT = SY-REPID.
LS_VARI-HANDLE = SPACE.
LS_VARI-LOG_GROUP = SPACE.
LS_VARI-USERNAME = SPACE.
LS_VARI-VARIANT = SPACE.
LS_VARI-TEXT = SPACE.
LS_VARI-DEPENDVARS = SPACE.
**Calling the Method for ALV output
CALL METHOD G_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IT_TOOLBAR_EXCLUDING = LT_EXCLUDE
IS_VARIANT = LS_VARI
IS_LAYOUT = GS_LAYOUT
I_SAVE = 'A'
CHANGING
IT_FIELDCATALOG = IT_FIELDCAT
IT_OUTTAB = ITAB[].
"do these..{
Initializing document
CALL METHOD DG_DYNDOC_ID->INITIALIZE_DOCUMENT.
Processing events
CALL METHOD G_GRID->LIST_PROCESSING_EVENTS
EXPORTING
I_EVENT_NAME = 'TOP_OF_PAGE'
I_DYNDOC_ID = DG_DYNDOC_ID.
"end }
Set editable cells to ready for input initially
CALL METHOD G_GRID->SET_READY_FOR_INPUT
EXPORTING
I_READY_FOR_INPUT = 1.
ENDFORM. "CREATE_AND_INIT_ALV
*& Form EXCLUDE_TB_FUNCTIONS
text
-->PT_EXCLUDE text
FORM EXCLUDE_TB_FUNCTIONS CHANGING PT_EXCLUDE TYPE UI_FUNCTIONS.
Only allow to change data not to create new entries (exclude
generic functions).
DATA LS_EXCLUDE TYPE UI_FUNC.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_COPY_ROW.
APPEND LS_EXCLUDE TO PT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_DELETE_ROW.
APPEND LS_EXCLUDE TO PT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_APPEND_ROW.
APPEND LS_EXCLUDE TO PT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_INSERT_ROW.
APPEND LS_EXCLUDE TO PT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_MOVE_ROW.
APPEND LS_EXCLUDE TO PT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_COPY.
APPEND LS_EXCLUDE TO PT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_CUT.
APPEND LS_EXCLUDE TO PT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_PASTE.
APPEND LS_EXCLUDE TO PT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_PASTE_NEW_ROW.
APPEND LS_EXCLUDE TO PT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_UNDO.
APPEND LS_EXCLUDE TO PT_EXCLUDE.
ENDFORM. " EXCLUDE_TB_FUNCTIONS
*& Form build_fieldcat
Fieldcatalog
FORM BUILD_FIELDCAT .
DATA: L_POS TYPE I.
L_POS = L_POS + 1.
X_FIELDCAT-SCRTEXT_M = 'Delivery'(024).
X_FIELDCAT-FIELDNAME = 'VBELN'.
X_FIELDCAT-TABNAME = 'IT_FINAL'.
X_FIELDCAT-COL_POS = L_POS.
X_FIELDCAT-NO_ZERO = 'X'.
X_FIELDCAT-OUTPUTLEN = '10'.
X_FIELDCAT-HOTSPOT = 'X'.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
L_POS = L_POS + 1.
X_FIELDCAT-SCRTEXT_M = 'Item'(025).
X_FIELDCAT-FIELDNAME = 'POSNR'.
X_FIELDCAT-TABNAME = 'IT_FINAL'.
X_FIELDCAT-COL_POS = L_POS.
X_FIELDCAT-OUTPUTLEN = '5'.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
L_POS = L_POS + 1.
X_FIELDCAT-SCRTEXT_M = 'Drop'(025).
X_FIELDCAT-FIELDNAME = 'DROP'.
X_FIELDCAT-TABNAME = 'IT_FINAL'.
X_FIELDCAT-COL_POS = L_POS.
X_FIELDCAT-OUTPUTLEN = '5'.
X_FIELDCAT-EDIT = 'X'.
X_FIELDCAT-DRDN_HNDL = '1'.
X_FIELDCAT-DRDN_ALIAS = 'X'.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
ENDFORM. " build_fieldcat
*& Module STATUS_0100 OUTPUT
text
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'MAIN100'.
SET TITLEBAR 'MAIN100'.
IF G_CUSTOM_CONTAINER IS INITIAL.
**Initializing the grid and calling the fm to Display the O/P
PERFORM CREATE_AND_INIT_ALV.
ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
*& Module USER_COMMAND_0100 INPUT
text
MODULE USER_COMMAND_0100 INPUT.
CASE SY-UCOMM.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*& Form SET_DRDN_TABLE
text
FORM SET_DRDN_TABLE.
DATA:LT_DRAL TYPE LVC_T_DRAL,
LS_DRAL TYPE LVC_S_DRAL.
LOOP AT ITAB .
First listbox (handle '1').
IF SY-INDEX = 1.
LS_DRAL-HANDLE = '1'.
LS_DRAL-VALUE = ' '.
LS_DRAL-INT_VALUE = ' '.
ELSE.
LS_DRAL-HANDLE = '1'.
LS_DRAL-VALUE = ITAB-POSNR.
LS_DRAL-INT_VALUE = ITAB-POSNR.
ENDIF.
APPEND LS_DRAL TO LT_DRAL.
ENDLOOP.
**Setting the Drop down table for Reason Code
CALL METHOD G_GRID->SET_DROP_DOWN_TABLE
EXPORTING
IT_DROP_DOWN_ALIAS = LT_DRAL.
ENDFORM. " set_drdn_table
*& Form EVENT_TOP_OF_PAGE
text
-->DG_DYNDOC_ID text
FORM EVENT_TOP_OF_PAGE USING DG_DYNDOC_ID TYPE REF TO CL_DD_DOCUMENT.
"this is more clear.....check it
"first add text, then pass it to comentry write fm
DATA : DL_TEXT(255) TYPE C. "Text
Populating header to top-of-page
CALL METHOD DG_DYNDOC_ID->ADD_TEXT
EXPORTING
TEXT = 'Test Report'
SAP_STYLE = CL_DD_AREA=>HEADING.
Add new-line
CALL METHOD DG_DYNDOC_ID->NEW_LINE.
CLEAR : DL_TEXT.
Move program ID
CONCATENATE 'Program Name :' SY-REPID
INTO DL_TEXT SEPARATED BY SPACE.
Add Program Name to Document
PERFORM ADD_TEXT USING DL_TEXT.
Add new-line
CALL METHOD DG_DYNDOC_ID->NEW_LINE.
CLEAR : DL_TEXT.
Move User ID
CONCATENATE 'User ID :' SY-UNAME INTO DL_TEXT SEPARATED BY SPACE
Add User ID to Document
PERFORM ADD_TEXT USING DL_TEXT.
Add new-line
CALL METHOD DG_DYNDOC_ID->NEW_LINE.
CLEAR : DL_TEXT.
Move Client
CONCATENATE 'Client :' SY-MANDT INTO DL_TEXT SEPARATED BY SPACE.
Add Client to Document
PERFORM ADD_TEXT USING DL_TEXT.
Add new-line
CALL METHOD DG_DYNDOC_ID->NEW_LINE.
CLEAR : DL_TEXT.
Move date
WRITE SY-DATUM TO DL_TEXT.
CONCATENATE 'Date :' DL_TEXT INTO DL_TEXT SEPARATED BY SPACE.
Add Date to Document
PERFORM ADD_TEXT USING DL_TEXT.
Add new-line
CALL METHOD DG_DYNDOC_ID->NEW_LINE.
CLEAR : DL_TEXT.
Move time
WRITE SY-UZEIT TO DL_TEXT.
CONCATENATE 'Time :' DL_TEXT INTO DL_TEXT SEPARATED BY SPACE.
Add Time to Document
PERFORM ADD_TEXT USING DL_TEXT.
Add new-line
CALL METHOD DG_DYNDOC_ID->NEW_LINE.
Populating data to html control
PERFORM HTML.
ENDFORM. " EVENT_TOP_OF_PAGE
*& Form ADD_TEXT
To add Text
FORM ADD_TEXT USING P_TEXT TYPE SDYDO_TEXT_ELEMENT.
Adding text
CALL METHOD DG_DYNDOC_ID->ADD_TEXT
EXPORTING
TEXT = P_TEXT
SAP_EMPHASIS = CL_DD_AREA=>HEADING.
ENDFORM. " ADD_TEXT
*& Form HTML
text
FORM HTML.
DATA : DL_LENGTH TYPE I, " Length
DL_BACKGROUND_ID TYPE SDYDO_KEY VALUE SPACE. " Background_id
Creating html control
IF DG_HTML_CNTRL IS INITIAL.
CREATE OBJECT DG_HTML_CNTRL
EXPORTING
PARENT = DG_PARENT_HTML.
ENDIF.
Reuse_alv_grid_commentary_set
CALL FUNCTION 'REUSE_ALV_GRID_COMMENTARY_SET'
EXPORTING
DOCUMENT = DG_DYNDOC_ID
BOTTOM = SPACE
IMPORTING
LENGTH = DL_LENGTH.
Get TOP->HTML_TABLE ready
CALL METHOD DG_DYNDOC_ID->MERGE_DOCUMENT.
Set wallpaper
CALL METHOD DG_DYNDOC_ID->SET_DOCUMENT_BACKGROUND
EXPORTING
PICTURE_ID = DL_BACKGROUND_ID.
Connect TOP document to HTML-Control
DG_DYNDOC_ID->HTML_CONTROL = DG_HTML_CNTRL.
Display TOP document
CALL METHOD DG_DYNDOC_ID->DISPLAY_DOCUMENT
EXPORTING
REUSE_CONTROL = 'X'
PARENT = DG_PARENT_HTML
EXCEPTIONS
HTML_DISPLAY_ERROR = 1.
IF SY-SUBRC NE 0.
MESSAGE I999 WITH 'Error in displaying top-of-page'(036).
ENDIF.
ENDFORM. " HTML
Reward if useful,
Regards,
Talwinder

Similar Messages

  • How to use the standrad Refresh button in ooalv Grid?

    Hai Experts ,
                              i write editable oo alv program its works fine.  when change the data
    then click save button its saved correctly, but the problem is totals of row  & column not refresh when i am click the
    Refresh button . Please Help how to handle the standard Refresh button in ooalv .
    Thanks
    Adv....

    thank q u for ur reply,
                                            when i edit the data in grid and save the data its saved  successful,
    but the problem is manually i calculating the totals at the end of the Row as well as at end of the columns,
    when i edit the data in Grid that totals are not effected for that im using the Standard Refresh button ,
    Plz help me.

  • Ooalv top-of page printing

    hi,
    i got one object in that OOALV is USED.
    in the output of OOALV Grid its displaying all selection parameter elements.
    like i have selection parameter plant,werks,batch,postind date and posting time.
    in output its displaying plant,werks and batch low and high valuesbut not posting date and time.
    can any one tell me that  its not displaying and where i have to write the code.
    they used OOALV fieldcatalog abd GRId to display data.
    Thanks and regards
    suneetha

    Hi suneetha ,
    just go through this coding where i have used top-of page in  Grid FM
    i think might be useful to you 
    TABLES:  afko,                         " Order Header
             afpo,                         " Order Item
             aufk,                         " Order Master
             resb,
             afvc,                         " Order Operation w/i an Order
             afvv,                        " Qty/Dates/values in an Operation
             crhd,                         " Work Center
             mara,                         " Material Master
             makt,                         " Material Description
             ausp,                         " Characteristic Values
             cabn,                         " Characteristic
             plpo,                         " Task list-operation/activity
             plfl.                         " Task list - sequences
    TYPE-POOLS:slis.
    DATA:check(1).
    TYPES:BEGIN OF t_afko,
          check,
          aufnr TYPE afko-aufnr,
          gltrp TYPE afko-gltrp,
          gstrp TYPE afko-gstrp,
          gamng TYPE afko-gamng,
          plnbez TYPE afko-plnbez,
          END OF t_afko.
    DATA:i_afko TYPE STANDARD TABLE OF t_afko,
         w_afko LIKE LINE OF i_afko.
    DATA:i_afko1 TYPE STANDARD TABLE OF t_afko,
         w_afko1 LIKE LINE OF i_afko1.
    DATA:ponum TYPE afko-aufnr,
         stdate TYPE afko-gltrp,
         fidate TYPE afko-gstrp,
         quanty TYPE afko-gamng,
         mater  TYPE afko-plnbez,
         descr  TYPE makt-maktx,
         index  TYPE sy-index,
         count(3) VALUE '0'.
    TYPES:BEGIN OF t_final,
          check,
          aufnr  TYPE afko-aufnr,
          gltrp  TYPE afko-gltrp,
          gstrp  TYPE afko-gstrp,
          gamng  TYPE afko-gamng,
          plnbez TYPE afko-plnbez,
          maktx  TYPE makt-maktx,
          END OF t_final.
    DATA:i_final TYPE STANDARD TABLE OF t_final,
         w_final LIKE LINE OF i_final,
         i_final1 TYPE STANDARD TABLE OF t_final,
         w_final1 LIKE LINE OF i_final1.
    TYPES:BEGIN OF t_crhd,
          objid TYPE crhd-objid,
          arbpl TYPE crhd-arbpl,
          END OF t_crhd.
    DATA:i_crhd TYPE STANDARD TABLE OF t_crhd,
         w_crhd LIKE LINE OF i_crhd.
    TYPES:BEGIN OF t_afvc,
          aufpl TYPE afvc-aufpl,
          arbid TYPE afvc-arbid,
          END OF t_afvc.
    DATA:i_afvc TYPE STANDARD TABLE OF t_afvc,
         w_afvc LIKE LINE OF i_afvc.
    TYPES:BEGIN OF t_item,
          matnr  TYPE resb-matnr,       " Component Matl Number
          maktx  TYPE makt-maktx,       " Matl Desc for Component
          bdmng  TYPE resb-bdmng,       " Component Req'd Qty
          END OF t_item.
    DATA:i_item TYPE STANDARD TABLE OF t_item,
         w_item LIKE LINE OF i_item.
    TYPES:BEGIN OF t_resb,
          matnr TYPE resb-matnr,
          bdmng TYPE resb-bdmng,
          END OF t_resb.
    DATA:i_resb TYPE STANDARD TABLE OF t_resb,
         w_resb LIKE LINE OF i_resb.
    DATA:i_makt TYPE STANDARD TABLE OF makt,
         w_makt LIKE LINE OF i_makt.
    TYPES:BEGIN OF t_aufk,
          aufnr TYPE aufk-aufnr,
          auart TYPE aufk-auart,
          werks TYPE aufk-werks,
          END OF t_aufk.
    DATA:i_aufk TYPE STANDARD TABLE OF t_aufk,
         w_aufk LIKE LINE OF i_aufk.
    DATA:***_qty TYPE co_menge VALUE 0,
         lines TYPE i,
         v_aufnr TYPE afko-aufnr.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS:
    p_werks TYPE aufk-werks OBLIGATORY MEMORY ID wrk,  " PLANT
    p_auart TYPE aufk-auart OBLIGATORY,                "ORDER TYPE
    p_arbpl TYPE crhd-arbpl OBLIGATORY.                "Work center
    SELECT-OPTIONS:
    s_plnbez FOR afko-plnbez,            "material
    s_gstrp  FOR afko-gstrp OBLIGATORY,  "ORDER BASIC START DATE
    s_gltrp  FOR afko-gltrp OBLIGATORY,  "ORDER BASIC FINISH DATE
    s_gstrs  FOR afko-gstrs,             "ORDER SCHEDULE START DATE
    s_gltrs  FOR afko-gltrs.             "ORDER SCHEDULE FINISH DATE
    SELECTION-SCREEN END OF BLOCK b1.
    *ALV data declarations
    DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
          gd_tab_group TYPE slis_t_sp_group_alv,
          gd_layout    TYPE slis_layout_alv,
          gd_repid     LIKE sy-repid,
          t_heading TYPE slis_t_listheader.
    DATA: it_events TYPE slis_t_event,
          wa_events LIKE LINE OF it_events.
    CLEAR:   wa_events.
    REFRESH: it_events.
    wa_events-name = 'TOP-OF-PAGE'.
    wa_events-form = 'top-of-page'.
    APPEND wa_events TO it_events .
    CLEAR wa_events.
    DATA:lst TYPE slis_t_listheader,
         wst like line of lst.
    wst-typ = 'H'.
    wst-info = 'PRODUCTION ORDERS SELECTION'.
    APPEND wst TO lst.
    *Start-of-selection.
    START-OF-SELECTION.
      PERFORM data_retrieval.
      PERFORM get_events.
      PERFORM build_fieldcatalog.
      PERFORM build_layout.
      PERFORM display_alv_report.
    *&      Form  BUILD_FIELDCATALOG
          Build Fieldcatalog for ALV Report
    FORM build_fieldcatalog.
    There are a number of ways to create a fieldcat.
    For the purpose of this example i will build the fieldcatalog manualy
    by populating the internal table fields individually and then
    appending the rows. This method can be the most time consuming but can
    also allow you  more control of the final product.
    Beware though, you need to ensure that all fields required are
    populated. When using some of functionality available via ALV, such as
    total. You may need to provide more information than if you were
    simply displaying the result
                  I.e. Field type may be required in-order for
                       the 'TOTAL' function to work.
      fieldcatalog-fieldname   = 'CHECK'.
      fieldcatalog-seltext_m   = 'SELECTION'.
      fieldcatalog-col_pos     = 1.
    fieldcatalog-outputlen   = 10.
    fieldcatalog-emphasize   = 'X'.
    fieldcatalog-key         = 'X'.
    fieldcatalog-input       = 'X'.
      fieldcatalog-edit        = 'X'.
      fieldcatalog-checkbox    = 'X'.
    fieldcatalog-do_sum      = 'X'.
    fieldcatalog-no_zero     = 'X'.
      APPEND fieldcatalog TO fieldcatalog.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'AUFNR'.
      fieldcatalog-seltext_m   = 'PO NUMBER'.
      fieldcatalog-col_pos     = 2.
      APPEND fieldcatalog TO fieldcatalog.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'GSTRP'.
      fieldcatalog-seltext_m   = 'BASIC START DATE'.
      fieldcatalog-col_pos     = 3.
      APPEND fieldcatalog TO fieldcatalog.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'GLTRP'.
      fieldcatalog-seltext_m   = 'BASIC FINISH DATE'.
      fieldcatalog-col_pos     = 4.
      APPEND fieldcatalog TO fieldcatalog.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'GAMNG'.
      fieldcatalog-seltext_m   = 'PO QUANTITY'.
      fieldcatalog-col_pos     = 5.
      APPEND fieldcatalog TO fieldcatalog.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'PLNBEZ'.
      fieldcatalog-seltext_m   = 'MATERIAL'.
      fieldcatalog-col_pos     = 6.
      APPEND fieldcatalog TO fieldcatalog.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'MAKTX'.
      fieldcatalog-seltext_m   = 'MATERIAL DESCRIPTION'.
      fieldcatalog-col_pos     = 7.
      APPEND fieldcatalog TO fieldcatalog.
      CLEAR  fieldcatalog.
    ENDFORM.                    " BUILD_FIELDCATALOG
    *&      Form  BUILD_LAYOUT
          Build layout for ALV grid report
    FORM build_layout.
      gd_layout-no_input          = 'X'.
      gd_layout-colwidth_optimize = 'X'.
      gd_layout-totals_text       = 'Totals'(201).
    gd_layout-totals_only        = 'X'.
    gd_layout-f2code            = 'DISP'.  "Sets fcode for when double
                                            "click(press f2)
    gd_layout-zebra             = 'X'.
    gd_layout-group_change_edit = 'X'.
    gd_layout-header_text       = 'helllllo'.
    ENDFORM.                    " BUILD_LAYOUT
    *&      Form  DISPLAY_ALV_REPORT
          Display report using ALV grid
    FORM display_alv_report.
      gd_repid = sy-repid.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                i_callback_program      = gd_repid
                i_callback_top_of_page   = 'TOP-OF-PAGE'
               i_callback_user_command = 'USER_COMMAND'
               i_grid_title           = outtext
                is_layout               = gd_layout
                it_fieldcat             = fieldcatalog[]
               it_special_groups       = gd_tabgroup
                it_events                = it_events
                i_save                  = 'X'
               is_variant              = z_template
           TABLES
                t_outtab                = i_final
           EXCEPTIONS
                program_error           = 1
                OTHERS                  = 2.
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " DISPLAY_ALV_REPORT
    *&      Form  DATA_RETRIEVAL
          Retrieve data form EKPO table and populate itab it_ekko
    FORM data_retrieval.
      SELECT objid arbpl FROM crhd INTO TABLE i_crhd WHERE arbpl = p_arbpl.
      IF NOT i_crhd[] IS INITIAL.
        SELECT aufpl arbid
                    FROM afvc INTO TABLE i_afvc
                    FOR ALL ENTRIES IN i_crhd
                    WHERE arbid = i_crhd-objid.
      ENDIF.
      IF NOT i_afvc[] IS INITIAL.
        SELECT aufnr gltrp gstrp gamng plnbez
                 FROM  afko INTO CORRESPONDING FIELDS OF TABLE i_afko
                 FOR ALL ENTRIES IN i_afvc
                 WHERE aufpl = i_afvc-aufpl
                   AND gstrp IN s_gstrp
                   AND gltrp IN s_gltrp.
        SORT i_afko BY aufnr.
      ENDIF.
      IF NOT i_afko[] IS INITIAL.
        SELECT aufnr auart werks FROM aufk INTO TABLE i_aufk
                     FOR ALL ENTRIES IN i_afko
                       WHERE aufnr = i_afko-aufnr
                         AND auart = p_auart
                         AND werks = p_werks.
      ENDIF.
      IF NOT i_afko[] IS INITIAL.
        SELECT * FROM makt INTO TABLE i_makt
                 FOR ALL ENTRIES IN i_afko
                 WHERE matnr = i_afko-plnbez
                   AND spras = sy-langu.
        SORT i_makt BY matnr.
      ENDIF.
      LOOP AT i_aufk INTO w_aufk.
        w_final-check = check.
        READ TABLE i_afko INTO w_afko
                  WITH KEY aufnr = w_aufk-aufnr BINARY SEARCH.
        w_final-aufnr = w_afko-aufnr.
        w_final-gltrp = w_afko-gltrp.
        w_final-gstrp = w_afko-gstrp.
        w_final-gamng = w_afko-gamng.
        w_final-plnbez = w_afko-plnbez.
        READ TABLE i_makt INTO w_makt WITH KEY
                          matnr = w_afko-plnbez BINARY SEARCH.
        w_final-maktx = w_makt-maktx.
        APPEND w_final TO i_final.
        CLEAR w_final.
      ENDLOOP.
    ENDFORM.                    " DATA_RETRIEVAL
    *&      Form  top_of_page
          text
    FORM top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
      EXPORTING
      it_list_commentary = lst
    I_LOGO =
    I_END_OF_LIST_GRID =
    ENDFORM.                    " alv_top_of_page
    *&      Form  get_events
          text
    FORM get_events.
      CLEAR : wa_events, it_events[].
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type = 0
        IMPORTING
          et_events   = it_events.
      READ TABLE it_events WITH KEY name = slis_ev_top_of_page
                             INTO wa_events.
      IF sy-subrc EQ 0.
        MOVE 'TOP_OF_PAGE' TO wa_events-form.
        MODIFY it_events FROM wa_events INDEX sy-tabix.
      ENDIF.
    ENDFORM.                    "get_events
    regards
    Naveen Khan

  • Selection box display  in OOALV

    Hi ,
    I am using OOALV, i am trying to display selection tab in the ALV display. I am able to display the seletion box only in the corner of the layout but I am not able to display the selectionbox for all records. I am using the following code:
    form prepare_layout  changing p_gW_layout TYPE lvc_s_layo.
    P_gw_layout-BOX_FNAME = 'SEL_FIELD'.
    endform.        
    In internal table I have included field SEL_FIELD of type char(1).
    Please give me a possible solution.
    Regards,
    Sankar

    hi
    when you define the <b>layout</b> for the ALV structure LVC_S_LAYO
    set the field SEL_MODE = 'A'.
    This will allow for all the fields.

  • Push button in ooalv

    i want a push button in containar. is this possible?
    first i have placed the container and named it . then i clicked on push button and trying to place it on container , but it is not allowing to place on it.
    i have written a toolbar event , once the push button is clicked , then i want to handle it. But i am unable to put the pushbutton on the screen while doing ooalv .
    please tell me how to place the push button .

    SORRY I AM TRYING TO ARRANGE MY CODE BUT I AM NOT ABLE TO ARRANGE IT PROPERLY
    i have placed a push both ITEM and if i click it will fetch the item details of purchase order.
    when i click the ITEM ,the details are displayed on the grid. Here the ITEM button is still comming,
    I dont want this button to appear also i dont want to dislay the toolbar when i click the ITEM button .Please tell me where i need to change the code.
    REPORT  zdemo_ooalv_user_command                .
    DATA : o_container TYPE REF TO cl_gui_custom_container,
           o_grid TYPE REF TO cl_gui_alv_grid.
    DATA : it_ekko LIKE TABLE OF ekko,
    wa_ekko LIKE ekko,
    it_ekpo LIKE TABLE OF ekpo.
    DATA : wa_layout TYPE lvc_s_layo.
    CLASS lcl_event_handler DEFINITION.
      PUBLIC SECTION.
        METHODS : handle_toolbar FOR EVENT toolbar OF cl_gui_alv_grid
                   IMPORTING e_object e_interactive,
                  handle_user_command FOR EVENT user_command OF
                  cl_gui_alv_grid IMPORTING e_ucomm.
    ENDCLASS.                    "lcl_event_handler DEFINITION
    CLASS lcl_event_handler IMPLEMENTATION.
      METHOD : handle_toolbar.
        DATA : wa_toolbar TYPE stb_button.
        CLEAR wa_toolbar.
    wa_toolbar-function = 'ITEM'.
        wa_toolbar-icon = 'ICON_DETAIL'.
        wa_toolbar-text = 'PREVIOUS'.
        APPEND wa_toolbar TO e_object->mt_toolbar.
      ENDMETHOD.                    ":
      METHOD handle_user_command.
        CASE e_ucomm.
          WHEN 'ITEM'.
    SELECT * INTO TABLE
                 it_ekpo FROM ekpo FOR ALL ENTRIES IN it_ekko
                  WHERE ebeln = it_ekko-ebeln.
            CALL METHOD o_grid->set_table_for_first_display
              EXPORTING
                i_structure_name = 'EKPO'
              CHANGING
                it_outtab        = it_ekpo.
        ENDCASE.
      ENDMETHOD.                    "handle_user_command
    ENDCLASS.                    "lcl_event_handler IMPLEMENTATION
    START-OF-SELECTION.
      CALL SCREEN 100.
    MODULE read_data OUTPUT.
      SELECT * INTO TABLE it_ekko FROM ekko
      UP TO 10 ROWS.
    ENDMODULE.                 " read_data  OUTPUT
    MODULE status_0100 OUTPUT.
      SET PF-STATUS 'ZSTATUS'.
      SET TITLEBAR 'Handle the toolbar events'.
      CREATE OBJECT o_container
        EXPORTING
         PARENT                      =
          container_name              = 'CONTAINER'.
      IF sy-subrc = 0.
        CREATE OBJECT o_grid
          EXPORTING
    *    I_SHELLSTYLE      = 0
    *    I_LIFETIME        =
            i_parent          = o_container.
        IF sy-subrc = 0.
          wa_layout-sel_mode = 'D'.
          CALL METHOD o_grid->set_table_for_first_display
      EXPORTING
        i_structure_name               =  'EKKO'
        is_layout                      = wa_layout
            CHANGING
              it_outtab                = it_ekko
    *CREATE an object for the event handler class
          DATA : o_handler TYPE REF TO lcl_event_handler.
          CREATE OBJECT:  o_handler.
    *Regestring the events
          SET HANDLER : o_handler->handle_toolbar FOR o_grid,
                         o_handler->handle_user_command FOR o_grid.
    *To trigger the toolbar event
          CALL METHOD o_grid->set_toolbar_interactive.
        ENDIF.
      ENDIF.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    MODULE user_command_0100 INPUT.
      CASE sy-ucomm.
        WHEN 'BACK'.
          LEAVE TO SCREEN 0.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT>

  • Double click from OOALV Display

    Hi
    When I use the method CL_GUI_ALV_GRID->GET_SELECTED_CELLS to get the selected cell column id and value from OOALV output, It is fetching only column name.  I need both column name and column value for drilldown purpose.
    Pl suggest me.
    Thanks
    Hema

    You can try like this,
    FORM handle_double_click
         USING i_row TYPE lvc_s_row
               i_column TYPE lvc_s_col
                  is_row_no TYPE lvc_s_roid.
    READ TABLE gt_list INDEX is_row_no-row_id .
    IF sy-subrc = 0 AND i_column-fieldname = 'SEATSOCC' .
    CALL SCREEN 200 . "Details about passenger-seat matching
    ENDIF .
    ENDFORM .
    Refer this doc
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e8a1d690-0201-0010-b7ad-d9719a415907
    Regards
    Kathirvel

  • TOOLBAR Event in OOALV

    Hi,
    I am using OOALV to display a report. I have 3 containers in the same screen and each container contains a ALV grid.
    I have to add some customized buttons in each of the ALV grid. I am using the event 'TOOLBAR' of class cl_gui_alv_grid.
    I have 3 different objects for each grid i.e. Ob1, ob2 and ob3.
    I have created a event handler method to handle TOOLBAR event. In this event handler method i want to know that at a particular point of execution, which object is invoking this method (i.e. method is called by ob1, ob2 or Ob3) ?
    I have checked the parameter 'e_object' but it is not giving a numeric value but not the object name.
    Regards,
    Pankaj.

    Unfortunatelly I don't have access to SAP right now so I will improvise
    "event handler class
    CLASS lcl_handler DEFINITION.
      PUBLIC SECTION.
        METHODS:
             "create constructor accepting three grid references on input
              constructor importing ir_grid1 type ref to cl_gui_alv_grid
                                                 ir_grid2 type ref to cl_gui_alv_grid
                                                 ir_grid3 type ref to cl_gui_alv_grid,
            "and your handler method with SENDER parameter
              handle_toolbar FOR EVENT toolbar OF cl_gui_alv_grid
                             IMPORTING e_object e_interactive sender.
        PRIVATE SECTION.
             "create 3 attributes to store grid references
           data: mr_grid1 type ref to cl_gui_alv_grid,
                    mr_grid2 type ref to cl_gui_alv_grid,
                    mr_grid3 type ref to cl_gui_alv_grid.
    ENDCLASS.             
    CLASS lcl_handler IMPLEMENTATION.
        METHOD constructor.     
             me->mr_grid1 = ir_grid1.
             me->mr_grid2 = ir_grid2.
             me->mr_grid3 = ir_grid3.
         ENDMETHOD.
        METHOD handle_toolbar.
              "check which grid raised the event
              case sender.
                 when me->mr_grid1.
                    "1st alv
                     "your coding here...
                  when me->mr_grid2.
                      "2nd
                       "...and here
                   when me->mr_grid3.
                      "3rd
                     "...and here
              endcase.
        ENDMETHOD.
    ENDCLASS.
    "now when creating handler object pass all your three grid references
    data lr_handler type ref to lcl_handler.
    create object lr_handler exporting ir_grid1 = your_grid_ref1
    ir_grid2 = your_grid_ref2
    ir_grid3 = your_grid_ref3.
    SET HANDLER....               
    This should work
    Regards
    Marcin

  • Button_click(ooalv)

    Hi
    How to handle button_click event in ooalv..tell me the procedure..
    regards
    sravani

    hi use this report and u will get your answer
    PROGRAM TEST.
    include <color>.
    DATA: OK_CODE LIKE SY-UCOMM,
         GT_SFLIGHT TYPE TABLE OF SFLIGHT,
          G_CONTAINER TYPE SCRFNAME VALUE 'BCALV_GRID_DEMO_0100_CONT1',
          GRID1  TYPE REF TO CL_GUI_ALV_GRID,
          G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
    DATA: GS_LAYOUT TYPE LVC_S_LAYO.
    *data: ls_color type lvc_s_scol.
    *--- Internal table holding list data
    DATA BEGIN OF gt_sflight OCCURS 0 .
    INCLUDE STRUCTURE SFLIGHT .
    DATA rowcolor(4) TYPE c .
    data: edit type lvc_t_edit.
    DATA cellcolors TYPE lvc_t_scol .
    DATA CELLSTYLES TYPE lvc_t_styl .
    DATA END OF gt_sflight .
    DATA: ls_cellcolor TYPE lvc_s_scol ,
          edit1 type lvc_s_edit,
          LS_cellstyles TYPE lvc_S_styl .
          MAIN                                                          *
    SELECT * FROM SFLIGHT INTO corresponding fields of TABLE GT_SFLIGHT.
    *loop at gt_sflight into wa_sflight.
           clear lt_color.
           clear ls_color.
           wa_sflight-fname     = 'CURRENCY'.
            wa_sflight-col = col_positive.
            wa_sflight-int = 0.
            wa_sflight-inv = 0.
    append ls_color to wa_sflight-lt_color.
    *modify table gt_sflight from wa_sflight .
    *endloop.
    READ TABLE gt_sflight INDEX 5 .
    gt_sflight-rowcolor = 'C500'.
    ls_cellcolor-fname = 'SEATSOCC' .
    ls_cellcolor-color-col = '7' .
    ls_cellcolor-color-int = '1' .
    APPEND ls_cellcolor TO gt_sflight-cellcolors .
    gt_sflight-rowcolor = 'C700'.
    ls_cellcolor-fname = 'CURRENCY' .
    ls_cellcolor-color-col = '7' .
    ls_cellcolor-color-int = '1' .
    APPEND ls_cellcolor TO gt_sflight-cellcolors .
    TO MAKE FIELD EDITABLE
    edit1-FIELDNAME = 'CURRENCY'.
    append edit1 to gt_sflight-edit.
    LS_cellstyles-fieldname = 'CURRENCY' .
    LS_cellstyles-style = cl_gui_alv_grid=>mc_style_ENABLED .
    APPEND LS_cellstyles TO gt_sflight-cellstyles .
    MODIFY gt_sflight INDEX 5 .
    data: x type i value 1.
    loop at gt_sflight to 5.
    LS_cellstyles-fieldname = 'PRICE' .
    LS_cellstyles-style = cl_gui_alv_grid=>mc_style_button.
    APPEND LS_cellstyles TO gt_sflight-cellstyles .
    MODIFY gt_sflight INDEX x.
    x = x + 1.
    endloop.
    CALL SCREEN 100.
    CLASS lcl_event_handler DEFINITION .
    PUBLIC SECTION .
    METHODS:
    *To control button clicks
    handle_button_click
    FOR EVENT button_click OF cl_gui_alv_grid
    IMPORTING ES_COL_ID ES_ROW_NO .
    endclass.
    CLASS lcl_event_handler IMPLEMENTATION .
    *Handle Button Click
    METHOD handle_button_click .
    PERFORM handle_button_click USING ES_COL_ID ES_ROW_NO.
    ENDMETHOD .
    ENDCLASS .
          MODULE PBO OUTPUT                                             *
    MODULE PBO OUTPUT.
      SET PF-STATUS 'MAIN100'.
      IF G_CUSTOM_CONTAINER IS INITIAL.
        CREATE OBJECT G_CUSTOM_CONTAINER
               EXPORTING CONTAINER_NAME = G_CONTAINER.
        CREATE OBJECT GRID1
               EXPORTING I_PARENT = G_CUSTOM_CONTAINER.
    Gs_layout-INFO_FNAME = 'ROWCOLOR'.
    Gs_layout-CTAB_FNAME = 'CELLCOLORS'.
    *Gs_layout-EDIT_MODE = 'X'.
    TO MAKE A CELL EDITABLE
    Gs_layout-STYLEFNAME = 'CELLSTYLES' .
    END OF CELL EDITABLE
        CALL METHOD GRID1->set_ready_for_input
             EXPORTING i_ready_for_input = '1'.
        CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
             EXPORTING I_STRUCTURE_NAME = 'SFLIGHT'
                              is_layout = gs_layout
             CHANGING  IT_OUTTAB        = GT_SFLIGHT[].
      ENDIF.
      DATA gr_event_handler TYPE REF TO lcl_event_handler .
    *--Creating an instance for the event handler
    CREATE OBJECT gr_event_handler .
    *--Registering handler methods to handle ALV Grid events
    SET HANDLER gr_event_handler->handle_button_click FOR GRID1 .
    ENDMODULE.
          MODULE PAI INPUT                                              *
    MODULE PAI INPUT.
      to react on oi_custom_events:
        call method cl_gui_cfw=>dispatch.
      CASE OK_CODE.
        WHEN 'EXIT'.
          PERFORM EXIT_PROGRAM.
        WHEN OTHERS.
        do nothing
      ENDCASE.
      CLEAR OK_CODE.
    ENDMODULE.
          FORM EXIT_PROGRAM                                             *
    FORM EXIT_PROGRAM.
    CALL METHOD G_CUSTOM_CONTAINER->FREE.
    CALL METHOD CL_GUI_CFW=>FLUSH.
      LEAVE PROGRAM.
    ENDFORM.
    FORM handle_button_click USING  "i_row TYPE lvc_s_row
    i_column TYPE lvc_s_col
    is_row_no TYPE lvc_s_roid.
    READ TABLE gt_sflight INDEX is_row_no-row_id .
    IF sy-subrc = 0. "AND i_column-fieldname = 'SEATSOCC' .
    *CALL SCREEN 200 . "Details about passenger-seat matching
    data: dis type string, rowid(20).
    rowid = is_row_no-row_id.
    concatenate 'Hi I have done push button in alv hahahaha' i_column rowid into dis separated by space.
    message dis type 'I' .
    ENDIF .
    ENDFORM .
    reward if useful

  • Editable OOALV database update

    Hi Everyone ,
    How the edited cell of ALV will updated in database table using standard FM or any other technique.
    I searched the forum but not got satisfactary ans. please help.
    I am using OOALV.
    Regrads,
    Sandeep

    Hi,.
    what i want is  the chaged data  .
    data which is edited that i want  .
    how the data is populated it into it_final.
    Below FM(check_changed_data) tell that data is changed only.
    i want which field changed and whats is the changed value.
    CALL METHOD w_obj_alv_grid->check_changed_data
    *   IMPORTING
    *     e_valid   =
    *   CHANGING
    *     c_refresh = 'X'
    Regards,
    Sandeep

  • OOALV how to insert LOGO ??

    Hi ALL
    How to insert logo in OOALV ??
    thanks
    rambabu

    Hi Babu,
    Check this program "SAP_PICTURE_DEMO"
    If the hint is useful… Say thanks by reward….
    Regards,
    Prabhu Rajesh

  • Logo in ooalv

    Hi,
    I am new to OOALV, I need a logo to be upload in the output list.Need the procedure.
    thanks,
    sri

    Hi,
    Herewith i am sending the sample code for ALV WITH LOGO REPORT CODING.
    REPORT YMS_EXDET MESSAGE-ID E4 NO STANDARD PAGE HEADING LINE-SIZE 350.
    *REPORT  ZMM_EXIN_DOC_ALV_HEADER .
    TABLES : J_1IEXCHDR,      " header table
             J_1IEXCDTL,      " item table
             J_1IPART1,       " Excise part I detials
             J_1IPART2,       " Excise Part II details
             LFA1,            " vendor master table
             J_1IMOVEND,      " vendor excise details table
             MSEG,            " Document Segment: Material
             MKPF,            " Header: Material Document
             DD07T,           " domain text table
             T001W.           " Plant and Branch Details
    DATA : BEGIN OF IT_CHDR OCCURS 100,
           SERIALNO   LIKE J_1IPART1-SERIALNO,
           DOCNO      LIKE J_1IEXCHDR-DOCNO,
           DOCYR      LIKE J_1IEXCHDR-DOCYR,
           EXNUM      LIKE J_1IEXCHDR-EXNUM,
           EXDAT      LIKE J_1IEXCHDR-EXDAT,
           WERKS      LIKE J_1IEXCHDR-WERKS,
           EXBED      LIKE J_1IEXCHDR-EXBED,
           EXCCD      LIKE J_1IEXCHDR-EXCCD,
           ECS        LIKE J_1IEXCHDR-ECS,
           STATUS LIKE J_1IEXCHDR-STATUS, "CHALLAN STATUS
           END OF IT_CHDR.
    DATA : BEGIN OF IT_CDTL OCCURS 100,
           SERIALNO LIKE J_1IPART1-SERIALNO,
           DOCYR  LIKE J_1IEXCDTL-DOCYR,
           DOCNO  LIKE J_1IEXCDTL-DOCNO,
           EXNUM  LIKE J_1IEXCDTL-EXNUM,
           EXDAT  LIKE J_1IEXCDTL-EXDAT,
           LIFNR  LIKE J_1IEXCDTL-LIFNR,
           MATNR  LIKE J_1IEXCDTL-MATNR,
           MAKTX  LIKE J_1IEXCDTL-MAKTX,
           CHAPID LIKE J_1IEXCDTL-CHAPID,
           EXBAS  LIKE J_1IEXCDTL-EXBAS,
           EXBED  LIKE J_1IEXCDTL-EXBED,
           ECS    LIKE J_1IEXCDTL-ECS,
           MENGE  LIKE J_1IEXCDTL-MENGE,
           MEINS  LIKE J_1IEXCDTL-MEINS,
           RDOC2  LIKE J_1IEXCDTL-RDOC2,
           EXGRP  LIKE J_1IEXCDTL-EXGRP,
           RDOC1  LIKE J_1IEXCDTL-RDOC1,
           STATUS LIKE J_1IEXCDTL-STATUS, "CHALLAN STATUS
           END OF IT_CDTL.
    DATA TEXT(10).
    DATA : BEGIN OF IT_OUT OCCURS 0,
           SERIALNO LIKE J_1IPART1-SERIALNO,
           TEXT1    LIKE TEXT,
           EXNUM    LIKE J_1IEXCDTL-EXNUM,
           EXDAT    LIKE J_1IEXCDTL-EXDAT,
           NAME     LIKE LFA1-NAME1,
           DDTEXT   LIKE DD07T-DDTEXT,
           EXCCD    LIKE J_1IEXCHDR-EXCCD,
           BUDAT    LIKE MKPF-BUDAT,
           EXBAS    LIKE IT_CDTL-EXBAS,
           EXBED    LIKE IT_CDTL-EXBED,
           ECS      LIKE IT_CDTL-ECS,
           MATNR    LIKE IT_CDTL-MATNR,
           MAKTX    LIKE IT_CDTL-MAKTX,
           CHAPID   LIKE IT_CDTL-CHAPID,
           MENGE    LIKE IT_CDTL-MENGE,
           MEINS    LIKE IT_CDTL-MEINS,
           DEL_IND(1),
           END OF IT_OUT.
    DATA IT_PART2 LIKE J_1IPART1 OCCURS 0 WITH HEADER LINE.
    DATA S_NO(4) .
    DATA DB_CNT LIKE SY-TABIX.
    DATA EBELN_T LIKE MSEG-EBELN .
    TYPE-POOLS : SLIS.
    DATA : AFIELD TYPE SLIS_FIELDCAT_ALV.
    DATA : LIST_HEADER   TYPE SLIS_T_LISTHEADER,
           FIELDCAT      TYPE SLIS_T_FIELDCAT_ALV,
           LS_FTCAT      TYPE LVC_S_FCAT,
           SORTCAT       TYPE SLIS_T_SORTINFO_ALV,
           SORTCAT_LN    LIKE LINE OF SORTCAT,
           G_REPID LIKE SY-REPID,
           G_BACK_GROUND(70),  "like bapibds01-objkey,
           GS_VARIANT LIKE DISVARIANT,
           G_SAVE ,
           GT_EVENTS TYPE SLIS_T_EVENT,
           ALV_EVENT TYPE SLIS_ALV_EVENT,
           EVENTCAT             TYPE SLIS_T_EVENT,
           EVENTCAT_LN          LIKE LINE OF EVENTCAT,
           LAYOUT_IN            TYPE SLIS_LAYOUT_ALV,
           LAYOUT_IN1           TYPE SLIS_LAYOUT_ALV.
    CONSTANTS : GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE
    'TOP_OF_PAGE',
                GC_FORMNAME_USER_COMMAND TYPE SLIS_FORMNAME VALUE
    'USER_COMMAND',
                GC_FORMNAME_BEFORE_OUTPUT TYPE SLIS_FORMNAME VALUE
    'BEFORE_OUTPUT'.
      ALV_EVENT TYPE SLIS_ALV_EVENT,
    DATA EX_NO LIKE IT_CHDR-EXNUM VALUE 0.
    DATA REGTYP_1 LIKE J_1IPART1-REGTYP.
    SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME.
    PARAMETERS  WERKS TYPE J_1IEXCHDR-WERKS.
    SELECT-OPTIONS : BUDAT FOR J_1IEXCHDR-EXDAT.
    PARAMETERS : R1 RADIOBUTTON GROUP GRP DEFAULT 'X',
                 R2 RADIOBUTTON GROUP GRP.
    SELECTION-SCREEN END OF BLOCK B.
    INITIALIZATION.
      G_REPID = SY-REPID.
      G_SAVE = 'A'.
    PERFORM BUILD_EVENT USING GT_EVENTS[].
      PERFORM ALV_EVENT_INIT.
    AT SELECTION-SCREEN.
      REFRESH LIST_HEADER.
      PERFORM TOP_OF_PAGE_LIST_HEADER USING LIST_HEADER.
    START-OF-SELECTION.
    PERFORM ALV_EVENT_INIT.
      G_REPID = SY-REPID.
      G_BACK_GROUND = ' ' .
      IF R1 = 'X'.
        CLEAR R2. CLEAR : REGTYP_1.
        REGTYP_1 = 'A'.
         set titlebar 'BALAJI' with DB_CNT.
      ELSEIF R2 = 'X'.
        CLEAR R1.CLEAR : REGTYP_1.
        REGTYP_1 = 'C'.
         set titlebar 'BALAJI1' with DB_CNT.
      ENDIF.
    SELECT * FROM J_1IPART1
                      INTO CORRESPONDING FIELDS OF TABLE IT_PART2
                      WHERE REGTYP = REGTYP_1 AND
                            TRNTYP = 'GRPO'.
                            AND BUDAT IN BUDAT.
                              DOCYR = IT_CDTL-DOCYR AND
                              DOCNO = IT_CDTL-DOCNO.
    LOOP AT IT_PART2.
       SELECT SINGLE * FROM J_1IEXCHDR
                 INTO CORRESPONDING FIELDS OF IT_CHDR
                         WHERE  TRNTYP = 'GRPO' AND
                          STATUS NE ' ' AND
                         STATUS EQ ' ' AND
                         DOCYR = IT_PART2-DOCYR AND
                         DOCNO = IT_PART2-DOCNO AND
                         WERKS = WERKS AND
                         EXDAT IN BUDAT.
                       ORDER BY EXDAT.
       IF SY-SUBRC = 0.
         APPEND IT_CHDR.
       ELSE.
         CONTINUE.
       ENDIF.
    IF SY-SUBRC <> 0.
       MESSAGE E084.
    ENDIF.
    ENDLOOP.
    *******************SPD****************
    SELECT * INTO CORRESPONDING FIELDS OF IT_CDTL FROM J_1IEXCDTL WHERE
                                   TRNTYP = 'GRPO' AND WERKS = WERKS AND
                                    EXDAT IN BUDAT AND STATUS NE 'B'.
    SELECT SINGLE * FROM J_1IPART1 WHERE DOCNO = IT_CDTL-DOCNO AND
                                         DOCYR = IT_CDTL-DOCYR AND
                                         REGTYP = REGTYP_1.
    IF SY-SUBRC EQ 0.
    SELECT SINGLE * FROM J_1IPART2 WHERE DOCNO = IT_CDTL-DOCNO AND
                                             DOCYR = IT_CDTL-DOCYR.
      IF SY-SUBRC NE 0.
        IT_CDTL-SERIALNO = J_1IPART1-SERIALNO.
        APPEND IT_CDTL.
      ENDIF.
    ENDIF.
    ENDSELECT.
    ***************SPD********************
    SELECT BDOCNO BDOCYR BEXNUM BEXDAT BWERKS BEXBED B~EXCCD
           B~ECS
           B~STATUS
           A~SERIALNO
           FROM J_1IPART1 AS A INNER JOIN J_1IEXCHDR AS B
           ON ADOCYR = BDOCYR AND ADOCNO = BDOCNO INTO CORRESPONDING
           FIELDS OF TABLE IT_CHDR WHERE B~TRNTYP = 'GRPO' AND
           BWERKS = WERKS AND BEXDAT IN BUDAT AND
           B~STATUS = ' ' AND
           B~STATUS = 'C' AND
           A~REGTYP = REGTYP_1.
    SORT IT_PART2 BY SERIALNO.
    LOOP AT IT_CHDR.
       SELECT * FROM J_1IEXCDTL
                 INTO CORRESPONDING FIELDS OF IT_CDTL
                FOR ALL ENTRIES IN IT_CHDR
                        WHERE
                         TRNTYP = 'GRPO' AND
                          STATUS EQ ' ' AND
                          STATUS EQ 'C' AND
                         STATUS NE 'P' AND
                         DOCNO  = IT_CHDR-DOCNO AND
                         DOCYR  = IT_CHDR-DOCYR AND
                         EXNUM  = IT_CHDR-EXNUM AND
                         EXDAT  = IT_CHDR-EXDAT AND
                         WERKS  = IT_CHDR-WERKS.
         IF SY-SUBRC = 0.
           APPEND IT_CDTL.
           CLEAR  IT_CDTL.
         ELSE.
           CONTINUE.
         ENDIF.
       ENDSELECT.
    MODIFY IT_CDTL INDEX SY-TABIX.
    CLEAR IT_CDTL.
    ENDLOOP.
    *****spd change**********
    *LOOP AT IT_CDTL.
    *SELECT SINGLE * FROM J_1IPART2 WHERE DOCNO = IT_CDTL-DOCNO AND
                                        DOCYR = IT_CDTL-DOCYR.
    *IF SY-SUBRC = 0.
    DELETE IT_CDTL INDEX SY-TABIX.
    *ENDIF.
    *ENDLOOP.
    **SELECT
    *******spd ****************
    SORT IT_CDTL BY  EXNUM EXDAT.
    DELETE ADJACENT DUPLICATES FROM IT_CDTL COMPARING MATNR EXNUM EXDAT.
      LOOP AT IT_CDTL.
        CLEAR TEXT.
        DB_CNT = DB_CNT + 1.
        READ TABLE IT_CHDR WITH KEY EXNUM = IT_CDTL-EXNUM DOCNO =
    IT_CDTL-DOCNO.
       READ TABLE IT_PART2 WITH KEY DOCNO = IT_CDTL-DOCNO .
       IT_OUT-SERIALNO = IT_PART2-SERIALNO.
        SELECT SINGLE NAME1 FROM LFA1
                        INTO IT_OUT-NAME
                        WHERE LIFNR = IT_CDTL-LIFNR.
        SELECT SINGLE * FROM LFA1
                          WHERE LIFNR = IT_CDTL-LIFNR.
        IF LFA1-LAND1 EQ 'IN'.
          TEXT = 'INVOICE'.
          IT_OUT-TEXT1 = TEXT.
        ELSE.
          TEXT = 'BOE'.
          IT_OUT-TEXT1 = TEXT.
        ENDIF.
        SELECT SINGLE * FROM J_1IMOVEND
                        WHERE LIFNR = IT_CDTL-LIFNR.
        SELECT SINGLE * FROM DD07T
                       INTO IT_OUT-DDTEXT
                        WHERE DOMNAME = 'J_1IVTYP' AND
                              DDLANGUAGE = 'EN' AND
                              DOMVALUE_L = J_1IMOVEND-J_1IVTYP.
      IF DD07T-DDTEXT = 'First Stage Dealer of indigenous excisable goods'
    OR
        DD07T-DDTEXT = 'Second Stage Dealer of indigenous excisablegoods'.
          DD07T-DDTEXT = 'Dealer'.
        ENDIF.
        IT_OUT-DDTEXT = DD07T-DDTEXT.
       ELSEIF DD07T-DDTEXT = 'Second Stage Dealer of indigenous excisable
    *goods'.
          DD07T-DDTEXT =
        CLEAR EBELN_T.
        SELECT SINGLE LFBNR FROM MSEG
                            INTO EBELN_T
                            WHERE MBLNR = IT_CDTL-RDOC2 .
        SELECT SINGLE * FROM MSEG
                          WHERE BWART EQ '106' AND
                                LFBNR = EBELN_T ."and
                               ebeln = ebeln_t.
        IF SY-SUBRC = 0.
          IT_OUT-DEL_IND = 'X'.
        ELSE.
          IT_OUT-DEL_IND = ' '.
        ENDIF.
        SELECT SINGLE BUDAT FROM MKPF
                          INTO IT_OUT-BUDAT
                          WHERE MBLNR = EBELN_T  ."MSEG-LFBNR.
        IT_OUT-EXNUM = IT_CDTL-EXNUM.
        IT_OUT-EXDAT = IT_CDTL-EXDAT.
        IT_OUT-EXCCD = IT_CHDR-EXCCD.
       IT_OUT-SERIALNO = IT_CHDR-SERIALNO.
        IT_OUT-SERIALNO = IT_CDTL-SERIALNO.
        IT_OUT-EXBAS = IT_CDTL-EXBAS.
        IT_OUT-EXBED = IT_CDTL-EXBED.
        IT_OUT-ECS   = IT_CDTL-ECS.
        IT_OUT-MATNR = IT_CDTL-MATNR.
        IT_OUT-MAKTX = IT_CDTL-MAKTX.
        IT_OUT-CHAPID = IT_CDTL-CHAPID.
        IT_OUT-MENGE = IT_CDTL-MENGE.
        IT_OUT-MEINS = IT_CDTL-MEINS.
        APPEND IT_OUT.
       EX_NO = IT_CDTL-EXNUM.
      ENDLOOP.
    Title Portion
      IF REGTYP_1 = 'A'.
        SET TITLEBAR 'BALAJI' WITH DB_CNT.
      ELSEIF REGTYP_1 = 'C'.
        SET TITLEBAR 'BALAJI1' WITH DB_CNT.
      ENDIF.
      AFIELD-COL_POS = 1.
      AFIELD-FIELDNAME = 'SERIALNO'.
      AFIELD-SELTEXT_L = 'SERIAL NO.'.
      AFIELD-JUST = 'L'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 2.
      AFIELD-FIELDNAME = 'TEXT1'.
      AFIELD-SELTEXT_L = 'TYPE OF DOC'.
      AFIELD-JUST = 'L'.
      AFIELD-DECIMALS_OUT = '0'.
      AFIELD-NO_ZERO = 'X'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 3.
      AFIELD-FIELDNAME = 'EXNUM'.
      AFIELD-SELTEXT_L = 'DOC.NO'.
      AFIELD-JUST = 'L'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 4.
      AFIELD-FIELDNAME = 'EXDAT'.
      AFIELD-SELTEXT_L = 'DOC.DATE'.
      AFIELD-JUST = 'C'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 5.
      AFIELD-FIELDNAME = 'NAME'.
      AFIELD-SELTEXT_L = 'NAME OF THE SUPPLIER'.
      AFIELD-NO_ZERO = 'X'.
      AFIELD-JUST = 'L'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 6.
      AFIELD-FIELDNAME = 'DDTEXT'.
      AFIELD-SELTEXT_L = 'TYPE-OF-SUPPLIER'.
      AFIELD-JUST = 'L'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 7.
      AFIELD-FIELDNAME = 'EXCCD'.
      AFIELD-SELTEXT_L = 'ECC OF THE SUPPLIER'.
      AFIELD-NO_ZERO = 'X'.
      AFIELD-JUST = 'L'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 8.
      AFIELD-FIELDNAME = 'BUDAT'.
      AFIELD-SELTEXT_L = 'INPUT RECV DATE'.
      AFIELD-JUST = 'C'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 9.
      AFIELD-FIELDNAME = 'EXBAS'.
      AFIELD-SELTEXT_L = 'ASSESSABLE-VALUE'.
      AFIELD-DO_SUM             = 'X'.
      AFIELD-JUST = 'R'.
      AFIELD-DECIMALS_OUT = '2'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 10.
      AFIELD-FIELDNAME = 'EXBED'.
      AFIELD-SELTEXT_L = 'DET OF CREDIT TAKEN CENVAT'.
      AFIELD-JUST = 'R'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 11.
      AFIELD-FIELDNAME = 'ECS'.
      AFIELD-SELTEXT_L = 'DET OF CREDIT TAKEN E-CESS'.
      AFIELD-JUST = 'R'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 12.
      AFIELD-FIELDNAME = 'MATNR'.
      AFIELD-SELTEXT_L = 'MATERIAL-CODE'.
      AFIELD-JUST = 'L'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 13.
      AFIELD-FIELDNAME = 'MAKTX'.
      AFIELD-SELTEXT_L = 'DESCRIPTION'.
      AFIELD-JUST = 'L'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 14.
      AFIELD-FIELDNAME = 'CHAPID'.
      AFIELD-SELTEXT_L = 'TARIFF-ID'.
      AFIELD-JUST = 'L'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 15.
      AFIELD-FIELDNAME = 'MENGE'.
      AFIELD-SELTEXT_L = 'QUANTITY'.
      AFIELD-JUST = 'R'.
      AFIELD-DO_SUM             = ' '.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 16.
      AFIELD-FIELDNAME = 'MEINS'.
      AFIELD-SELTEXT_L = 'UOM'.
      AFIELD-JUST = 'C'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 17.
      AFIELD-FIELDNAME = 'DEL_IND'.
      AFIELD-SELTEXT_L = 'Deleted'.
      AFIELD-JUST = 'C'.
      APPEND AFIELD TO FIELDCAT.
    AFIELD-COL_POS = 18.
    AFIELD-FIELDNAME = 'PO NO'.
    AFIELD-SELTEXT_L = 'PURDOCNO'.
    AFIELD-JUST = 'C'.
    APPEND AFIELD TO FIELDCAT.
    * LAYOUT FOR ZEBRA CATLOG
      LAYOUT_IN-COLWIDTH_OPTIMIZE = 'X'.
      LAYOUT_IN-ZEBRA             = 'X'.
      LAYOUT_IN-GET_SELINFOS      = 'X'.
      LAYOUT_IN-CONFIRMATION_PROMPT = 'X'.
      LAYOUT_IN-DETAIL_POPUP = 'X' .
    SORTCAT-decimals     = '0'.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM      = G_REPID
          I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
          I_SAVE                  = G_SAVE
          IS_VARIANT              = GS_VARIANT
          IT_FIELDCAT             = FIELDCAT
          IT_SORT                 = SORTCAT
          IS_LAYOUT               = LAYOUT_IN
          IT_EVENTS               = EVENTCAT
         I_BACKGROUND_ID         = g_back_ground
        TABLES
          T_OUTTAB                = IT_OUT.
    *&      Form  TOP_OF_PAGE_LIST_HEADER
          text
         -->LIST_HEADERtext
    FORM TOP_OF_PAGE_LIST_HEADER USING LIST_HEADER TYPE SLIS_T_LISTHEADER.
      DATA : HLINE TYPE SLIS_LISTHEADER,
             TEXT(60) TYPE C.
      CLEAR : HLINE,TEXT.
      HLINE-TYP = 'H'.
      HLINE-INFO = TEXT.
      APPEND HLINE TO LIST_HEADER.
      SELECT SINGLE * FROM T001W WHERE WERKS = WERKS.
      CLEAR : HLINE,TEXT.
      HLINE-TYP = 'H'.
      WRITE 'PLANT :' TO TEXT.
      WRITE WERKS TO TEXT+8.
      HLINE-INFO = TEXT.
      APPEND HLINE TO LIST_HEADER.
      CLEAR : HLINE,TEXT.
      HLINE-TYP = 'H'.
      WRITE T001W-NAME1 TO TEXT.
      HLINE-INFO = TEXT.
      APPEND HLINE TO LIST_HEADER.
      CLEAR : HLINE,TEXT.
      HLINE-TYP = 'H'.
      WRITE T001W-STRAS TO TEXT.
      HLINE-INFO = TEXT.
      APPEND HLINE TO LIST_HEADER.
      CLEAR : HLINE,TEXT.
      HLINE-TYP = 'H'.
      WRITE T001W-ORT01 TO TEXT.
      HLINE-INFO = TEXT.
      APPEND HLINE TO LIST_HEADER.
      CLEAR : HLINE,TEXT.
      HLINE-TYP = 'H'.
      WRITE 'DATE :' TO TEXT.
      WRITE BUDAT-LOW TO TEXT+7.
      IF BUDAT-HIGH NE ''.
        WRITE 'TO' TO TEXT+18.
        WRITE BUDAT-HIGH TO TEXT+22.
      ENDIF.
      HLINE-INFO = TEXT.
      APPEND HLINE TO LIST_HEADER.
    ENDFORM.                    "TOP_OF_PAGE_LIST_HEADER
    *&      Form  ALV_EVENT_INIT
          text
    FORM ALV_EVENT_INIT .
      CLEAR ALV_EVENT.
      ALV_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
      ALV_EVENT-FORM = 'ALV_TOP_OF_PAGE'.
      APPEND ALV_EVENT TO EVENTCAT.
      CLEAR ALV_EVENT.
      ALV_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
      ALV_EVENT-FORM = 'ALV_TOP_OF_LIST'.
      APPEND ALV_EVENT TO EVENTCAT.
       CLEAR ALV_EVENT.
       ALV_EVENT-NAME = SLIS_EV_END_OF_LIST.
       ALV_EVENT-FORM = 'ALV_END_OF_LIST'.
       APPEND ALV_EVENT TO GT_EVENTS.
       CLEAR ALV_EVENT.
       ALV_EVENT-NAME = SLIS_EV_END_OF_PAGE.
       ALV_EVENT-FORM = 'ALV_END_OF_PAGE'.
       APPEND ALV_EVENT TO GT_EVENTS.
    ENDFORM.                    "ALV_EVENT_INIT
    *&      Form  ALV_TOP_OF_PAGE
          text
    FORM ALV_TOP_OF_PAGE.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          IT_LIST_COMMENTARY = LIST_HEADER
          I_LOGO             = 'ENJOYSAP_LOGO'.
    ENDFORM.                    "ALV_TOP_OF_PAGE
    *&      Form  BUILD_EVENT
          text
         -->P_GT_EVENTS[]  text
    FORM BUILD_EVENT USING P_EVENTS TYPE SLIS_T_EVENT.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          I_LIST_TYPE     = 0
        IMPORTING
          ET_EVENTS       = P_EVENTS
        EXCEPTIONS
          LIST_TYPE_WRONG = 1
          OTHERS          = 2.
      READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_USER_COMMAND INTO
    ALV_EVENT.
      IF SY-SUBRC = 0.
        MOVE GC_FORMNAME_USER_COMMAND TO ALV_EVENT-FORM.
        APPEND ALV_EVENT TO P_EVENTS.
      ENDIF.
      READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_BEFORE_LINE_OUTPUT INTO
    ALV_EVENT.
      IF SY-SUBRC = 0.
        MOVE GC_FORMNAME_BEFORE_OUTPUT TO ALV_EVENT-FORM.
        APPEND ALV_EVENT TO P_EVENTS.
      ENDIF.
    ENDFORM.                    " BUILD_EVENT
    Hope it will helps to u.
    Thanks,
    Shankar

  • Why we are going for OOALV insted of function modules ?

    Why we are going for OOALV insted of function modules. ?
    Its very easy to use function modules directly compared to OOALV.
    IS there any particular reasons or any advantanges of using ooalv
    Thanks & regards,
    hari priya

    Hi
    a) from abap coding point of view,
    alv list is done with Function modules,
    alv gris can also be done with FM,
    but can also be done using OO concepts.
    b) Alv grid (using oo concept) requires
    designing the screen layout .
    Hence, in one screen, we can show more
    then one alv grid
    (we cannot show more than
    one alv list on one screen)
    c) ALV grid uses ActiveX controls
    present on the Presentation Server.
    Hence, it consumes More Memory
    on the presentation server.
    d) ALV LIST is Display Only.
    Whereas
    ALV Grid Can Be made EDITABLE for entry purpose.
    e) In alv grid, these options are possible,
    but not in alv list.
    without horizontal lines
    without vertical lines
    without cell merging during sorts
    display total lines above the entries
    ALV LIST Can be coded using only FMs
    ALV GRID Can be coded using FMs and object oriented concepts
    ALV LIST Can be displayed hieraicharlly
    ALV GRID cannot be displayed hierarichally
    <b>Reward if usefull</b>

  • Reg: OOALV

    Hi All,
    I am having small requirement in the OOALV program.Right now my output looks like this..
    -  LIST1 -
           LIST2       **         LIST3            
    List1 is basic list and list2 & list3 are detailed lists just below the basic list List1 as shown above. All the three lists are on the same page. whenever I click on any record in list1 their extra details are getting populated properly in the list2 and list3. I achieved this using class cl_gui_alv_grid and I am not using container for this. I used the class cl_gui_docking_container.
    Now my problem is whenever I scroll the mouse, the list1 should respond to it and based on that the details should be filled in corresponding lists list2 and list3. Please provide some clues for achieving this..
    Thanks in advance,
    Ravee

    Hello Ravee,
    There is no event available for scrolling mouse on list.
    it has to be some user interaction for e.g. double click.
    Thanks,
    Augustin.

  • Double click on field in OOALV

    Hi.
    I want display the data in the second list when i am dobule click on that particular field in First List.
    If i dobule click on any another field i do not want to display second list in Object Oriented ALV.
    How it is possible when dobule click on that particular field value in the First list. Explain it with Good Example if Possible.
    Thank You.
    Regards.
    Krishna.

    Source from one of the website. you execute this program you will get idea
    REPORT  ZALV_OOINTERACTIVE.
    *Class definition for handling double click
    CLASS event_class DEFINITION DEFERRED.
    *Internal table and work area declarations for dd02l and dd03l
    DATA : it_dd02l TYPE TABLE OF dd02l,
           wa_dd02l TYPE dd02l,
           it_dd03l TYPE TABLE OF dd03l,
           wa_dd03l TYPE dd03l.
    *data declarations for ALV Main list
    DATA : ty_lay1 TYPE lvc_s_layo,
           it_fieldcat TYPE lvc_t_fcat ,
           ty_fieldcat TYPE lvc_s_fcat ,
           c_alv1 TYPE REF TO cl_gui_alv_grid,
           c_cont1 TYPE REF TO cl_gui_custom_container,
           event_receiver TYPE REF TO event_class.
    *data declarations for ALV Interactive list
    DATA : ty_lay2 TYPE lvc_s_layo,
           it_fcat TYPE lvc_t_fcat ,
           ty_fcat TYPE lvc_s_fcat ,
           c_alv2 TYPE REF TO cl_gui_alv_grid,
           c_cont2 TYPE REF TO cl_gui_custom_container.
    **Select options for multiple values and NOT ranges
    SELECT-OPTIONS : s_table FOR wa_dd02l-tabname NO INTERVALS.
    * Initialization event
    INITIALIZATION.
    *Start of selection event
    START-OF-SELECTION.
    *fetch data into table and field characteristics
      PERFORM fetch_data.
    *ALV display for output
      PERFORM alv_output.
    *&      Form  FETCH_DATA
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM fetch_data .
    *Select the table details
      SELECT * FROM dd02l INTO CORRESPONDING FIELDS OF TABLE it_dd02l
    WHERE tabname IN s_table
      AND tabclass = 'TRANSP'.
    ENDFORM.                    " FETCH_DATA
    * CLASS lcl_event_receiver DEFINITION
    CLASS event_class DEFINITION.
    *Handling double click
      PUBLIC SECTION.
        METHODS:
        handle_double_click
        FOR EVENT double_click OF cl_gui_alv_grid IMPORTING e_row .
    ENDCLASS. "lcl_event_receiver DEFINITION
    * CLASS lcl_event_receiver IMPLEMENTATION
    CLASS event_class IMPLEMENTATION.
      METHOD handle_double_click.
        DATA : ls_dd02l LIKE LINE OF it_dd02l.
    *Reading the selected data into a variable
        READ TABLE it_dd02l INDEX e_row-index INTO ls_dd02l.
    *  *Select the field details of the selected table
        SELECT * FROM dd03l INTO CORRESPONDING FIELDS OF TABLE it_dd03l
        WHERE tabname EQ ls_dd02l-tabname.
    *calling the ALV containing the field values
        CALL SCREEN 101.
      ENDMETHOD. "handle_double_click
    ENDCLASS. "lcl_event_receiver IMPLEMENTATION
    *& Module pbo_100 OUTPUT
    MODULE pbo_100 OUTPUT.
    *set pf-status 'XXX'.
    *set titlebar 'XXX'.
    ENDMODULE. " PBO_100 OUTPUT
    *& Module alv_100 OUTPUT
    MODULE alv_100 OUTPUT.
    *Check if there is no custom container in screen 100
      IF c_cont1 IS INITIAL.
    *Creating object of container
        CREATE OBJECT c_cont1
         EXPORTING
           container_name = 'CCONT'.
        IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
    *Creating object of alv
        CREATE OBJECT c_alv1
           EXPORTING
            i_parent = c_cont1.
        IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
    *alv layout
        PERFORM alv_100_layout.
    *alv field catalogue
        PERFORM alv_100_fieldcat.
    *Displaying the ALV grid
        CALL METHOD c_alv1->set_table_for_first_display
          EXPORTING
            is_layout       = ty_lay1
          CHANGING
            it_outtab       = it_dd02l[]
            it_fieldcatalog = it_fieldcat.
        IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
    *Create object of the event class and setting handler for double click
        CREATE OBJECT event_receiver.
        SET HANDLER event_receiver->handle_double_click FOR c_alv1.
      ENDIF.
    ENDMODULE. " ALV_100 OUTPUT
    *& Module pai_100 INPUT
    MODULE pai_100 INPUT.
    ENDMODULE. " pai_100 INPUT
    * MODULE PBO_101 OUTPUT
    MODULE pbo_101 OUTPUT.
    *  SET PF-STATUS 'XXX'.
    *  SET TITLEBAR 'XXX'.
    ENDMODULE. " PBO_101 INPUT
    * MODULE ALV_101 OUTPUT
    MODULE alv_101 OUTPUT.
    *Check if the Custom container exists.
      IF c_cont2 IS INITIAL.
    *Creating container object
        CREATE OBJECT c_cont2
          EXPORTING
            container_name = 'CDCONT'.
        IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
    *creating ALV grid for interactive list
        CREATE OBJECT c_alv2
          EXPORTING
           i_parent = c_cont2.
        IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
    *ALV layout
        PERFORM alv_101_layout.
    *ALV fieldcatalogue
        PERFORM alv_101_fieldcat.
    *Sorting the output by field position
        SORT it_dd03l BY position.
    *ALV for display field details
        CALL METHOD c_alv2->set_table_for_first_display
          EXPORTING
            is_layout       = ty_lay2
          CHANGING
            it_outtab       = it_dd03l[]
            it_fieldcatalog = it_fcat.
        IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ENDIF.
    ENDMODULE. " ALV_101 OUTPUT
    *& Module PAI_101 INPUT
    MODULE pai_101 INPUT.
    ENDMODULE. " PAI_101 INPUT
    *&      Form  ALV_OUTPUT
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM alv_output .
      CALL SCREEN 100.
    ENDFORM.                    " ALV_OUTPUT
    *&      Form  ALV_100_LAYOUT
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM alv_100_layout .
      ty_lay1-grid_title = 'TABLES'.
      ty_lay1-zebra = 'X'.
      ty_lay1-no_toolbar = 'X'.
    ENDFORM.                    " ALV_100_LAYOUT
    *&      Form  ALV_100_FIELDCAT
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM alv_100_fieldcat .
      CLEAR ty_fieldcat.
      ty_fieldcat-row_pos = 1.
      ty_fieldcat-col_pos = 1.
      ty_fieldcat-fieldname = 'TABNAME'.
      ty_fieldcat-tabname = 'GT_DD02L'.
      ty_fieldcat-coltext = 'TableName'.
      ty_fieldcat-outputlen = 10.
      APPEND ty_fieldcat TO it_fieldcat.
      CLEAR ty_fieldcat.
      ty_fieldcat-row_pos = 1.
      ty_fieldcat-col_pos = 2.
      ty_fieldcat-fieldname = 'TABCLASS'.
      ty_fieldcat-tabname = 'GT_DD02L'.
      ty_fieldcat-coltext = 'CATEGORY'.
      ty_fieldcat-outputlen = 10.
      APPEND ty_fieldcat TO it_fieldcat.
      CLEAR ty_fieldcat.
      ty_fieldcat-row_pos = 1.
      ty_fieldcat-col_pos = 3.
      ty_fieldcat-fieldname = 'AS4USER'.
      ty_fieldcat-tabname = 'GT_DD02L'.
      ty_fieldcat-coltext = 'CREATED'.
      ty_fieldcat-outputlen = 10.
      APPEND ty_fieldcat TO it_fieldcat.
      CLEAR ty_fieldcat.
      ty_fieldcat-row_pos = 1.
      ty_fieldcat-col_pos = 4.
      ty_fieldcat-fieldname = 'AS4DATE'.
      ty_fieldcat-tabname = 'GT_DD02L'.
      ty_fieldcat-coltext = 'DATE'.
      ty_fieldcat-outputlen = 10.
      APPEND ty_fieldcat TO it_fieldcat.
      CLEAR ty_fieldcat.
      ty_fieldcat-row_pos = 1.
      ty_fieldcat-col_pos = 5.
      ty_fieldcat-fieldname = 'AS4TIME'.
      ty_fieldcat-tabname = 'GT_DD02L'.
      ty_fieldcat-coltext = 'TIME'.
      ty_fieldcat-outputlen = 10.
      APPEND ty_fieldcat TO it_fieldcat.
      CLEAR ty_fieldcat.
      ty_fieldcat-row_pos = 1.
      ty_fieldcat-col_pos = 6.
      ty_fieldcat-fieldname = 'CONTFLAG'.
      ty_fieldcat-tabname = 'GT_DD02L'.
      ty_fieldcat-coltext = 'Delivery Class'.
      ty_fieldcat-outputlen = 15.
      APPEND ty_fieldcat TO it_fieldcat.
      CLEAR ty_fieldcat.
    ENDFORM.                    " ALV_100_FIELDCAT
    *&      Form  ALV_101_LAYOUT
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM alv_101_layout .
      ty_lay2-grid_title = 'FIELDS'.
      ty_lay2-zebra = 'X'.
      ty_lay2-no_toolbar = 'X'.
    ENDFORM.                    " ALV_101_LAYOUT
    *&      Form  ALV_101_FIELDCAT
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM alv_101_fieldcat .
      REFRESH it_fieldcat.
      REFRESH it_fcat.
      CLEAR ty_fcat.
      ty_fcat-row_pos = 1.
      ty_fcat-col_pos = 1.
      ty_fcat-fieldname = 'FIELDNAME'.
      ty_fcat-tabname = 'GT_DD03L'.
      ty_fcat-coltext = 'Fieldname'.
      ty_fcat-outputlen = 10.
      APPEND ty_fcat TO it_fcat.
      ty_fcat-row_pos = 1.
      ty_fcat-col_pos = 2.
      ty_fcat-fieldname = 'CHECKTABLE'.
      ty_fcat-tabname = 'GT_DD03L'.
      ty_fcat-coltext = 'CHECKTABLE'.
      ty_fcat-outputlen = 10.
      APPEND ty_fcat TO it_fcat.
      ty_fcat-row_pos = 1.
      ty_fcat-col_pos = 3.
      ty_fcat-fieldname = 'KEYFLAG'.
      ty_fcat-tabname = 'GT_DD03L'.
      ty_fcat-coltext = 'Key Flag'.
      ty_fcat-outputlen = 10.
      APPEND ty_fcat TO it_fcat.
    ENDFORM.                    " ALV_101_FIELDCAT
    Selection screen

  • How to get Select All or select Multiple columns  in OOALV

    HI Experts
    i'm assignig internal table to dynamic internal table(FS_IST_TABLE) for to display the output.
    but i'm not geting the Select ALL Option. and i can't select multiple columns at a time.
    where i can select only one column.
    how can i select multiple columns.
    please any one help me.
    regrads,
    rathan.

    Hi,
      If we want to select the multiple columns in the alv by using ooabap
    so in the class CL_GUI_ALV_GRID  it is having one method SET_TABLE_FOR_FIRST_DISPLAY
    it is having one importing parameter IS_LAYOUT of type lvc_s_layo type
    and this structure contains one field SEL_MODE and set that field value as 'A'.
    then we can select the multiple rows in alv grid

Maybe you are looking for

  • [solved] No sound, ALSA finds soundcard, pulseaudio does not.

    Problem: pulseaudio can't find my soundcard (or it can't find ALSA, not sure). It falls back to a dummy-output and no input so i can't play sounds or use my mic. First appeared when: Installing software updates like a month ago. I ignored it at first

  • How should inheritance of permissions on AD behave?

    Hi Forum members, I am not an AD expert in fact far from it. We have an in house software and we have used Active Directory to authenticate NT accounts to login to our application. In our application we can configure/setup AD groups in such a way tha

  • How do I keep itunes from putting things into the cloud after I've downloaded them?

    Hello - Not everyone lives in Silicon Valley or New York City.  I have a relatively slow internet connection so it takes about 2 hours to download a 45-minute tv episode.  Yesterday I did that, and today I went to watch it and it had been put back in

  • Soundtrack Pro with Final Cut Express

    I've been using Final Cut Express HD for a little while with the version of Soundtrack that came with it. I'm now going to upgrade to Logic Studio and I'm wondering if Soundtrack Pro will work with FCE the same way. In all the documentation I've read

  • Unwanted code

    Hi, Please run my simple program below and save the mac key in a named file you like where you will see the mac key with some weird code in the beginning. If I print the mac key directly to screen, it will be fine. Please help. import java.io.*; impo