Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

header method in ALV

Former Member
0 Likes
2,758

Is there any method for alv header in class cl_gui_grid_display ?

thanks

Sandeep

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,183

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.

3 REPLIES 3
Read only

Former Member
0 Likes
1,184

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.

Read only

0 Likes
1,183

but i am using below method

CALL METHOD G_GRID->SET_TABLE_FOR_FIRST_DISPLAY

and this method dont have any parameter for header.

Read only

0 Likes
1,183

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.