‎2009 Mar 21 5:22 AM
Is there any method for alv header in class cl_gui_grid_display ?
thanks
Sandeep
‎2009 Mar 21 5:28 AM
Hi,
There are many methods like add_text,add_gap etc.Use the following code :
FORM HTML_END_OF_PAGE USING DOCUMENT TYPE REF TO CL_DD_DOCUMENT .
CREATE OBJECT: DOCUMENT.
DATA:TEXT TYPE SDYDO_TEXT_ELEMENT.
DATA: L_REPID TYPE SY-REPID,
L_MANDT TYPE SY-MANDT,
L_DATE(10),
L_YR(4),
L_MM(2),
L_DD(2),
L_HR(2),
L_SEC(2),
L_MIN(2),
L_TIME(10).
CALL METHOD DOCUMENT->ADD_GAP
EXPORTING
WIDTH = 100.
TEXT = TEXT-005.
CALL METHOD DOCUMENT->ADD_TEXT
EXPORTING
TEXT = TEXT-005
SAP_STYLE = 'HEADING'.
CALL METHOD DOCUMENT->NEW_LINE.
CONCATENATE 'Report:' SY-REPID INTO TEXT.
CALL METHOD DOCUMENT->ADD_TEXT
EXPORTING
TEXT = TEXT
SAP_EMPHASIS = 'Strong'.
CALL METHOD DOCUMENT->ADD_GAP
EXPORTING
WIDTH = 350.
L_DATE = SY-DATUM.
MOVE: L_DATE+0(4) TO L_YR,
L_DATE+4(2) TO L_MM,
L_DATE+6(2) TO L_DD.
TEXT = 'Run Date'.
* CONCATENATE 'Run Date ' L_DD L_MM L_YR INTO TEXT SEPARATED BY '.'.
CALL METHOD DOCUMENT->ADD_TEXT
EXPORTING
TEXT = TEXT
* SAP_STYLE = 'ARIAL'
SAP_COLOR = CL_DD_DOCUMENT=>LIST_NEGATIVE_INT
SAP_FONTSIZE = CL_DD_DOCUMENT=>MEDIUM
SAP_EMPHASIS = CL_DD_DOCUMENT=>STRONG
STYLE_CLASS = SPACE
SAP_FONTSTYLE = 'ARIAL'
* CHANGING
* document =
.
CALL METHOD DOCUMENT->NEW_LINE.
CONCATENATE 'Client:' SY-MANDT INTO TEXT.
CALL METHOD DOCUMENT->ADD_TEXT
EXPORTING
TEXT = TEXT
SAP_FONTSTYLE = CL_DD_DOCUMENT=>MEDIUM
SAP_EMPHASIS = CL_DD_DOCUMENT=>STRONG.
CALL METHOD DOCUMENT->ADD_GAP
EXPORTING
WIDTH = 415.
L_TIME = SY-UZEIT.
L_HR = L_TIME+0(2).
L_MM = L_TIME+2(4) .
L_SEC = L_TIME+4(6).
CONCATENATE L_HR L_MM L_SEC INTO L_TIME SEPARATED BY '.'.
CONCATENATE 'Time:' L_TIME INTO TEXT.
CALL METHOD DOCUMENT->ADD_TEXT
EXPORTING
TEXT = TEXT
SAP_FONTSTYLE = CL_DD_DOCUMENT=>MEDIUM
SAP_EMPHASIS = CL_DD_DOCUMENT=>STRONG
STYLE_CLASS = SPACE
* CHANGING
* document =
.
CALL METHOD DOCUMENT->ADD_PICTURE
EXPORTING
PICTURE_ID = 'SW_LOGO'.
CALL METHOD DOCUMENT->NEW_LINE.
CONCATENATE 'User Id:' SY-UNAME INTO TEXT.
CALL METHOD DOCUMENT->ADD_TEXT
EXPORTING
TEXT = TEXT
SAP_STYLE = SPACE
SAP_COLOR = SPACE
SAP_FONTSTYLE = CL_DD_DOCUMENT=>MEDIUM
SAP_EMPHASIS = CL_DD_DOCUMENT=>STRONG
STYLE_CLASS = SPACE
* CHANGING
* document =
.
CALL METHOD DOCUMENT->ADD_GAP
EXPORTING
WIDTH = 307
* width_like =
.
TEXT = 'page no:'.
CALL METHOD DOCUMENT->ADD_TEXT
EXPORTING
TEXT = TEXT
* sap_fontsize =
SAP_FONTSTYLE = CL_DD_DOCUMENT=>MEDIUM
SAP_EMPHASIS = CL_DD_DOCUMENT=>STRONG
* style_class =
* CHANGING
* document =
.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = I_HEADER
I_LOGO = 'SW_LOGO'
* I_END_OF_LIST_GRID =
* I_ALV_FORM =
.Thanks & Regards,
Rock.
‎2009 Mar 21 5:28 AM
Hi,
There are many methods like add_text,add_gap etc.Use the following code :
FORM HTML_END_OF_PAGE USING DOCUMENT TYPE REF TO CL_DD_DOCUMENT .
CREATE OBJECT: DOCUMENT.
DATA:TEXT TYPE SDYDO_TEXT_ELEMENT.
DATA: L_REPID TYPE SY-REPID,
L_MANDT TYPE SY-MANDT,
L_DATE(10),
L_YR(4),
L_MM(2),
L_DD(2),
L_HR(2),
L_SEC(2),
L_MIN(2),
L_TIME(10).
CALL METHOD DOCUMENT->ADD_GAP
EXPORTING
WIDTH = 100.
TEXT = TEXT-005.
CALL METHOD DOCUMENT->ADD_TEXT
EXPORTING
TEXT = TEXT-005
SAP_STYLE = 'HEADING'.
CALL METHOD DOCUMENT->NEW_LINE.
CONCATENATE 'Report:' SY-REPID INTO TEXT.
CALL METHOD DOCUMENT->ADD_TEXT
EXPORTING
TEXT = TEXT
SAP_EMPHASIS = 'Strong'.
CALL METHOD DOCUMENT->ADD_GAP
EXPORTING
WIDTH = 350.
L_DATE = SY-DATUM.
MOVE: L_DATE+0(4) TO L_YR,
L_DATE+4(2) TO L_MM,
L_DATE+6(2) TO L_DD.
TEXT = 'Run Date'.
* CONCATENATE 'Run Date ' L_DD L_MM L_YR INTO TEXT SEPARATED BY '.'.
CALL METHOD DOCUMENT->ADD_TEXT
EXPORTING
TEXT = TEXT
* SAP_STYLE = 'ARIAL'
SAP_COLOR = CL_DD_DOCUMENT=>LIST_NEGATIVE_INT
SAP_FONTSIZE = CL_DD_DOCUMENT=>MEDIUM
SAP_EMPHASIS = CL_DD_DOCUMENT=>STRONG
STYLE_CLASS = SPACE
SAP_FONTSTYLE = 'ARIAL'
* CHANGING
* document =
.
CALL METHOD DOCUMENT->NEW_LINE.
CONCATENATE 'Client:' SY-MANDT INTO TEXT.
CALL METHOD DOCUMENT->ADD_TEXT
EXPORTING
TEXT = TEXT
SAP_FONTSTYLE = CL_DD_DOCUMENT=>MEDIUM
SAP_EMPHASIS = CL_DD_DOCUMENT=>STRONG.
CALL METHOD DOCUMENT->ADD_GAP
EXPORTING
WIDTH = 415.
L_TIME = SY-UZEIT.
L_HR = L_TIME+0(2).
L_MM = L_TIME+2(4) .
L_SEC = L_TIME+4(6).
CONCATENATE L_HR L_MM L_SEC INTO L_TIME SEPARATED BY '.'.
CONCATENATE 'Time:' L_TIME INTO TEXT.
CALL METHOD DOCUMENT->ADD_TEXT
EXPORTING
TEXT = TEXT
SAP_FONTSTYLE = CL_DD_DOCUMENT=>MEDIUM
SAP_EMPHASIS = CL_DD_DOCUMENT=>STRONG
STYLE_CLASS = SPACE
* CHANGING
* document =
.
CALL METHOD DOCUMENT->ADD_PICTURE
EXPORTING
PICTURE_ID = 'SW_LOGO'.
CALL METHOD DOCUMENT->NEW_LINE.
CONCATENATE 'User Id:' SY-UNAME INTO TEXT.
CALL METHOD DOCUMENT->ADD_TEXT
EXPORTING
TEXT = TEXT
SAP_STYLE = SPACE
SAP_COLOR = SPACE
SAP_FONTSTYLE = CL_DD_DOCUMENT=>MEDIUM
SAP_EMPHASIS = CL_DD_DOCUMENT=>STRONG
STYLE_CLASS = SPACE
* CHANGING
* document =
.
CALL METHOD DOCUMENT->ADD_GAP
EXPORTING
WIDTH = 307
* width_like =
.
TEXT = 'page no:'.
CALL METHOD DOCUMENT->ADD_TEXT
EXPORTING
TEXT = TEXT
* sap_fontsize =
SAP_FONTSTYLE = CL_DD_DOCUMENT=>MEDIUM
SAP_EMPHASIS = CL_DD_DOCUMENT=>STRONG
* style_class =
* CHANGING
* document =
.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = I_HEADER
I_LOGO = 'SW_LOGO'
* I_END_OF_LIST_GRID =
* I_ALV_FORM =
.Thanks & Regards,
Rock.
‎2009 Mar 21 6:00 AM
but i am using below method
CALL METHOD G_GRID->SET_TABLE_FOR_FIRST_DISPLAY
and this method dont have any parameter for header.
‎2009 Mar 21 6:54 AM
Hi,
For that u need to split the container to display Header and use the same class and methods in my above post.If u still did not get then follow the below blog :
/people/vijaybabu.dudla/blog/2006/07/21/topofpage-in-alv-using-clguialvgrid
or refer the below code from the same blog :
REPORT Z_OO_ALV_TOP_OF_PAGE MESSAGE-ID ZSW .
DATA: IT_FLIGHT TYPE TABLE OF SFLIGHT.
DATA: OK_CODE LIKE SY-UCOMM,
SAVE_OK LIKE SY-UCOMM.
DATA: G_CONTAINER TYPE SCRFNAME VALUE 'CONTROL',
O_DYNDOC_ID TYPE REF TO CL_DD_DOCUMENT,
O_SPLITTER TYPE REF TO CL_GUI_SPLITTER_CONTAINER,
O_PARENT_GRID TYPE REF TO CL_GUI_CONTAINER,
O_PARENT_TOP TYPE REF TO CL_GUI_CONTAINER,
O_HTML_CNTRL TYPE REF TO CL_GUI_HTML_VIEWER.
CLASS LCL_EVENT_HANDLER DEFINITION .
PUBLIC SECTION .
METHODS:
*Event Handler for Top of page
TOP_OF_PAGE FOR EVENT TOP_OF_PAGE
OF CL_GUI_ALV_GRID
IMPORTING E_DYNDOC_ID.
ENDCLASS. "lcl_event_handler DEFINITION
CLASS LCL_EVENT_HANDLER IMPLEMENTATION.
METHOD TOP_OF_PAGE.
* Top-of-page event
PERFORM EVENT_TOP_OF_PAGE USING O_DYNDOC_ID.
ENDMETHOD. "top_of_page
ENDCLASS. "LCL_EVENT_HANDLER IMPLEMENTATION
DATA: G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
G_HANDLER TYPE REF TO LCL_EVENT_HANDLER. "handler
START-OF-SELECTION.
SELECT *
FROM SFLIGHT
UP TO 20 ROWS
INTO TABLE IT_FLIGHT.
END-OF-SELECTION.
IF NOT IT_FLIGHT[] IS INITIAL.
CALL SCREEN 100.
ELSE.
MESSAGE I002 WITH 'NO DATA FOR THE SELECTION'(004).
ENDIF.
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'STATUS'.
SET TITLEBAR 'TITLE'.
IF G_CUSTOM_CONTAINER IS INITIAL.
PERFORM CREATE_AND_INIT_ALV.
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
FORM CREATE_AND_INIT_ALV .
DATA: G_GRID TYPE REF TO CL_GUI_ALV_GRID.
CREATE OBJECT G_CUSTOM_CONTAINER
EXPORTING CONTAINER_NAME = G_CONTAINER.
* Create TOP-Document
CREATE OBJECT O_DYNDOC_ID
EXPORTING STYLE = 'ALV_GRID'.
* Create Splitter for custom_container
CREATE OBJECT O_SPLITTER
EXPORTING PARENT = G_CUSTOM_CONTAINER
ROWS = 2
COLUMNS = 1.
CALL METHOD O_SPLITTER->GET_CONTAINER
EXPORTING
ROW = 1
COLUMN = 1
RECEIVING
CONTAINER = O_PARENT_TOP.
CALL METHOD O_SPLITTER->GET_CONTAINER
EXPORTING
ROW = 2
COLUMN = 1
RECEIVING
CONTAINER = O_PARENT_GRID.
* Set height for g_parent_html
CALL METHOD O_SPLITTER->SET_ROW_HEIGHT
EXPORTING
ID = 1
HEIGHT = 5.
CREATE OBJECT G_GRID
EXPORTING I_PARENT = O_PARENT_GRID.
CREATE OBJECT G_HANDLER.
SET HANDLER G_HANDLER->TOP_OF_PAGE FOR G_GRID.
*Calling the Method for ALV output
CALL METHOD G_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'SFLIGHT'
CHANGING
IT_OUTTAB = IT_FLIGHT[].
CALL METHOD O_DYNDOC_ID->INITIALIZE_DOCUMENT
EXPORTING
BACKGROUND_COLOR = CL_DD_AREA=>COL_TEXTAREA.
* Processing events
CALL METHOD G_GRID->LIST_PROCESSING_EVENTS
EXPORTING
I_EVENT_NAME = 'TOP_OF_PAGE'
I_DYNDOC_ID = O_DYNDOC_ID.
ENDFORM. "CREATE_AND_INIT_ALV
FORM EVENT_TOP_OF_PAGE USING DG_DYNDOC_ID TYPE REF TO CL_DD_DOCUMENT.
DATA : DL_TEXT(255) TYPE C. "Text
CALL METHOD DG_DYNDOC_ID->ADD_TEXT
EXPORTING
TEXT = 'Flight Details'
SAP_STYLE = CL_DD_AREA=>HEADING
SAP_FONTSIZE = CL_DD_AREA=>LARGE
SAP_COLOR = CL_DD_AREA=>LIST_HEADING_INT.
CALL METHOD DG_DYNDOC_ID->ADD_GAP
EXPORTING
WIDTH = 200.
CALL METHOD O_DYNDOC_ID->ADD_PICTURE
EXPORTING
PICTURE_ID = 'ENJOYSAP_LOGO'.
* Add new-line
CALL METHOD DG_DYNDOC_ID->NEW_LINE.
CALL METHOD DG_DYNDOC_ID->NEW_LINE.
CLEAR : DL_TEXT.
* program ID
DL_TEXT = 'Program Name :'.
CALL METHOD DG_DYNDOC_ID->ADD_GAP.
CALL METHOD O_DYNDOC_ID->ADD_TEXT
EXPORTING
TEXT = DL_TEXT
SAP_EMPHASIS = CL_DD_AREA=>HEADING
SAP_COLOR = CL_DD_AREA=>LIST_HEADING_INT.
CLEAR DL_TEXT.
DL_TEXT = SY-REPID.
CALL METHOD O_DYNDOC_ID->ADD_TEXT
EXPORTING
TEXT = DL_TEXT
SAP_EMPHASIS = CL_DD_AREA=>HEADING
SAP_COLOR = CL_DD_AREA=>LIST_NEGATIVE_INV.
* Add new-line
CALL METHOD DG_DYNDOC_ID->NEW_LINE.
CLEAR : DL_TEXT.
CLEAR : DL_TEXT.
* program ID
DL_TEXT = 'User Name :'.
CALL METHOD DG_DYNDOC_ID->ADD_GAP.
CALL METHOD O_DYNDOC_ID->ADD_TEXT
EXPORTING
TEXT = DL_TEXT
SAP_EMPHASIS = CL_DD_AREA=>HEADING
SAP_COLOR = CL_DD_AREA=>LIST_HEADING_INT.
CLEAR DL_TEXT.
DL_TEXT = SY-UNAME.
CALL METHOD O_DYNDOC_ID->ADD_TEXT
EXPORTING
TEXT = DL_TEXT
SAP_EMPHASIS = CL_DD_AREA=>HEADING
SAP_COLOR = CL_DD_AREA=>LIST_NEGATIVE_INV.
* Add new-line
CALL METHOD DG_DYNDOC_ID->NEW_LINE.
CLEAR : DL_TEXT.
* Run Date
DL_TEXT = 'Run Date :'.
CALL METHOD DG_DYNDOC_ID->ADD_GAP.
CALL METHOD O_DYNDOC_ID->ADD_TEXT
EXPORTING
TEXT = DL_TEXT
SAP_EMPHASIS = CL_DD_AREA=>HEADING
SAP_COLOR = CL_DD_AREA=>LIST_HEADING_INT.
CLEAR DL_TEXT.
* Move date
WRITE SY-DATUM TO DL_TEXT.
CALL METHOD O_DYNDOC_ID->ADD_TEXT
EXPORTING
TEXT = DL_TEXT
SAP_EMPHASIS = CL_DD_AREA=>HEADING
SAP_COLOR = CL_DD_AREA=>LIST_NEGATIVE_INV.
* Add new-line
CALL METHOD DG_DYNDOC_ID->NEW_LINE.
CLEAR : DL_TEXT.
*Time
DL_TEXT = 'Time :'.
CALL METHOD DG_DYNDOC_ID->ADD_GAP.
CALL METHOD O_DYNDOC_ID->ADD_TEXT
EXPORTING
TEXT = DL_TEXT
SAP_EMPHASIS = CL_DD_AREA=>HEADING
SAP_COLOR = CL_DD_AREA=>LIST_HEADING_INT.
CLEAR DL_TEXT.
* Move time
WRITE SY-UZEIT TO DL_TEXT.
CALL METHOD O_DYNDOC_ID->ADD_TEXT
EXPORTING
TEXT = DL_TEXT
SAP_EMPHASIS = CL_DD_AREA=>HEADING
SAP_COLOR = CL_DD_AREA=>LIST_NEGATIVE_INV.
* Add new-line
CALL METHOD DG_DYNDOC_ID->NEW_LINE.
PERFORM DISPLAY.
ENDFORM. " EVENT_TOP_OF_PAGE
FORM DISPLAY.
* Creating html control
IF O_HTML_CNTRL IS INITIAL.
CREATE OBJECT O_HTML_CNTRL
EXPORTING
PARENT = O_PARENT_TOP.
ENDIF.
CALL METHOD O_DYNDOC_ID->MERGE_DOCUMENT.
O_DYNDOC_ID->HTML_CONTROL = O_HTML_CNTRL.
* Display document
CALL METHOD O_DYNDOC_ID->DISPLAY_DOCUMENT
EXPORTING
REUSE_CONTROL = 'X'
PARENT = O_PARENT_TOP
EXCEPTIONS
HTML_DISPLAY_ERROR = 1.
IF SY-SUBRC NE 0.
MESSAGE I999 WITH 'Error in displaying top-of-page'(036).
ENDIF.
ENDFORM. " display
Thanks & Regards,
Rock.