‎2008 Feb 06 5:10 PM
I am supposed to show some values in ALV header some thing like this
PGMID: xxxxx
Material: p_Matnr-low to p_Matnr high
Plant: p_werks-low to p_werks-high
-
ALV Reoport
-
For this i wrote code something like this.
Fieldcatalog-status='s'.
Fieldcatalog-key = 'PGMID:'.
FieldCatalog-info = 'xxxxxxxx'
append field catlalog.
Fieldcatalog-status='s'.
Fieldcatalog-key = 'Material:'.
Concatenate p_Matnr-low
'to'
p_Matnr-high into FieldCatalog-info.
append field catlalog.
etc................
Now output shown is like this
PGMID: xxxxx
Material: p_Matnr-low to p_Matnr high
Plant: p_werks-low to p_werks-high
I am not able to give a good gap in between the 'to' as shown initially. Any idea on this??
Rakesh
‎2008 Feb 06 5:36 PM
Hello Rakesh,
You can make use of HTML TOP_OF_PAGE.
Do like this:
*--- ALV List Display
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_PROGNAME
I_CALLBACK_HTML_TOP_OF_PAGE = 'TOP_OF_PAGE' " Check here<<<<>>>>
IT_FIELDCAT = G_T_FIELDCAT
IT_EVENTS = IT_EVENTS
TABLES
T_OUTTAB = G_T_DETAIL
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.
*&---------------------------------------------------------------------*
*& Form TOP-OF-PAGE
*&---------------------------------------------------------------------*
* For Top of page
*----------------------------------------------------------------------*
FORM TOP_OF_PAGE USING CL_DD TYPE REF TO CL_DD_DOCUMENT. "#EC *
DATA: LT_TEXTS TYPE SDYDO_TEXT_TABLE.
DATA: LV_NUMC(8) TYPE N.
DATA: LV_COUNT(255).
* To write the Ist Block
CALL METHOD CL_DD->ADD_TEXT
EXPORTING
TEXT = TEXT-010
SAP_STYLE = CL_DD_DOCUMENT=>SMALL
SAP_COLOR = CL_DD_DOCUMENT=>LIST_HEADING_INT
SAP_FONTSIZE = CL_DD_DOCUMENT=>SMALL
SAP_EMPHASIS = CL_DD_DOCUMENT=>STRONG
STYLE_CLASS = SPACE.
CALL METHOD CL_DD->UNDERLINE.
CALL METHOD CL_DD->ADD_TEXT
EXPORTING
TEXT = TEXT-013
SAP_STYLE = CL_DD_DOCUMENT=>SMALL
SAP_COLOR = CL_DD_DOCUMENT=>LIST_HEADING_INT
SAP_FONTSIZE = CL_DD_DOCUMENT=>SMALL
SAP_EMPHASIS = CL_DD_DOCUMENT=>STRONG
STYLE_CLASS = SPACE.
CALL METHOD CL_DD->ADD_GAP
EXPORTING
WIDTH = 29.
CALL METHOD CL_DD->ADD_TEXT
EXPORTING
TEXT = TEXT-012
SAP_STYLE = CL_DD_DOCUMENT=>SMALL
SAP_COLOR = CL_DD_DOCUMENT=>LIST_HEADING_INT
SAP_FONTSIZE = CL_DD_DOCUMENT=>SMALL
SAP_EMPHASIS = CL_DD_DOCUMENT=>STRONG
STYLE_CLASS = SPACE.
CALL METHOD CL_DD->UNDERLINE.
CALL METHOD CL_DD->UNDERLINE.
ENDFORM. "top_of_page
This will make u give perfect alignment.
Cheers,
Vasanth
‎2008 Feb 06 5:28 PM
‎2008 Feb 06 5:34 PM
>
> I am supposed to show some values in ALV header some thing like this
>
> PGMID: xxxxx
> Material: p_Matnr-low to p_Matnr high
> Plant: p_werks-low to p_werks-high
>
>
> -
> ALV Reoport
> -
>
> For this i wrote code something like this.
DATA : l_space(10) value space.
"in this case you'll get 10 chars space.by changing this value you can adjust space
> Fieldcatalog-status='s'.
> Fieldcatalog-key = 'PGMID:'.
> FieldCatalog-info = 'xxxxxxxx'
> append field catlalog.
>
> Fieldcatalog-status='s'.
> Fieldcatalog-key = 'Material:'.
Concatenate p_Matnr-low 'to' p_Matnr-high into FieldCatalog-info
SEPARATED BY l_space.
> append field catlalog.
>
> etc................
>
>
> Now output shown is like this
>
> PGMID: xxxxx
> Material: p_Matnr-low to p_Matnr high
> Plant: p_werks-low to p_werks-high
>
> I am not able to give a good gap in between the 'to' as shown initially. Any idea on this??
>
> Rakesh
‎2008 Feb 06 5:36 PM
Hello Rakesh,
You can make use of HTML TOP_OF_PAGE.
Do like this:
*--- ALV List Display
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_PROGNAME
I_CALLBACK_HTML_TOP_OF_PAGE = 'TOP_OF_PAGE' " Check here<<<<>>>>
IT_FIELDCAT = G_T_FIELDCAT
IT_EVENTS = IT_EVENTS
TABLES
T_OUTTAB = G_T_DETAIL
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.
*&---------------------------------------------------------------------*
*& Form TOP-OF-PAGE
*&---------------------------------------------------------------------*
* For Top of page
*----------------------------------------------------------------------*
FORM TOP_OF_PAGE USING CL_DD TYPE REF TO CL_DD_DOCUMENT. "#EC *
DATA: LT_TEXTS TYPE SDYDO_TEXT_TABLE.
DATA: LV_NUMC(8) TYPE N.
DATA: LV_COUNT(255).
* To write the Ist Block
CALL METHOD CL_DD->ADD_TEXT
EXPORTING
TEXT = TEXT-010
SAP_STYLE = CL_DD_DOCUMENT=>SMALL
SAP_COLOR = CL_DD_DOCUMENT=>LIST_HEADING_INT
SAP_FONTSIZE = CL_DD_DOCUMENT=>SMALL
SAP_EMPHASIS = CL_DD_DOCUMENT=>STRONG
STYLE_CLASS = SPACE.
CALL METHOD CL_DD->UNDERLINE.
CALL METHOD CL_DD->ADD_TEXT
EXPORTING
TEXT = TEXT-013
SAP_STYLE = CL_DD_DOCUMENT=>SMALL
SAP_COLOR = CL_DD_DOCUMENT=>LIST_HEADING_INT
SAP_FONTSIZE = CL_DD_DOCUMENT=>SMALL
SAP_EMPHASIS = CL_DD_DOCUMENT=>STRONG
STYLE_CLASS = SPACE.
CALL METHOD CL_DD->ADD_GAP
EXPORTING
WIDTH = 29.
CALL METHOD CL_DD->ADD_TEXT
EXPORTING
TEXT = TEXT-012
SAP_STYLE = CL_DD_DOCUMENT=>SMALL
SAP_COLOR = CL_DD_DOCUMENT=>LIST_HEADING_INT
SAP_FONTSIZE = CL_DD_DOCUMENT=>SMALL
SAP_EMPHASIS = CL_DD_DOCUMENT=>STRONG
STYLE_CLASS = SPACE.
CALL METHOD CL_DD->UNDERLINE.
CALL METHOD CL_DD->UNDERLINE.
ENDFORM. "top_of_page
This will make u give perfect alignment.
Cheers,
Vasanth
‎2008 Feb 06 6:18 PM
Hi,
Please find attached below code :
IF NOT so_bukrs-low IS INITIAL AND NOT so_bukrs-high IS INITIAL.
CLEAR: gs_line.
gs_line-typ = gc_s.
gs_line-key = 'Company Code'(015).
CONCATENATE so_bukrs-low 'to' so_bukrs-high INTO gs_line-info
SEPARATED BY space.
APPEND gs_line TO lt_top_of_page.
ELSEIF so_bukrs-low IS INITIAL AND so_bukrs-high IS INITIAL.
CLEAR: gs_line.
gs_line-typ = gc_s.
gs_line-key = 'Company Code'(015).
gs_line-info = 'ALL Values'(012).
APPEND gs_line TO lt_top_of_page.
ELSEIF so_bukrs-high IS INITIAL.
CLEAR: gs_line.
gs_line-typ = gc_s.
gs_line-key = 'Company Code'(015).
gs_line-info = so_bukrs-low.
APPEND gs_line TO lt_top_of_page.
ENDIF.
*Fiscal Year
CLEAR gs_line.
gs_line-typ = gc_s.
gs_line-key = 'Year'(014).
MOVE sp_gjahr TO gs_line-info.
APPEND gs_line TO lt_top_of_page.
*Period
CLEAR gs_line.
gs_line-typ = gc_s.
gs_line-key = 'Period'(013).
MOVE sp_monat TO gs_line-info.
APPEND gs_line TO lt_top_of_page.
*Currency Key
IF NOT so_waers-low IS INITIAL AND NOT so_waers-high IS INITIAL.
CLEAR: gs_line.
gs_line-typ = gc_s.
gs_line-key = 'Currency'(011).
CONCATENATE so_waers-low 'to' so_waers-high INTO gs_line-info
SEPARATED BY space.
APPEND gs_line TO lt_top_of_page.
ELSEIF so_waers-low IS INITIAL AND so_waers-high IS INITIAL.
CLEAR: gs_line.
gs_line-typ = gc_s.
gs_line-key = 'Currency'(011).
gs_line-info = 'ALL Values'(012).
APPEND gs_line TO lt_top_of_page.
ELSEIF so_waers-high IS INITIAL.
CLEAR: gs_line.
gs_line-typ = gc_s.
gs_line-key = 'Currency'(011).
gs_line-info = so_waers-low.
APPEND gs_line TO lt_top_of_page.
ENDIF.
*Clearing Doc
IF NOT so_augbl-low IS INITIAL AND NOT so_augbl-high IS INITIAL.
CLEAR: gs_line.
gs_line-typ = gc_s.
gs_line-key = 'Clearing Doc'(020).
CONCATENATE so_augbl-low 'to' so_augbl-high INTO gs_line-info
SEPARATED BY space.
APPEND gs_line TO lt_top_of_page.
ELSEIF so_augbl-low IS INITIAL AND so_augbl-high IS INITIAL.
CLEAR: gs_line.
gs_line-typ = gc_s.
gs_line-key = 'Clearing Doc'(020).
gs_line-info = 'ALL Values'(012).
APPEND gs_line TO lt_top_of_page.
ELSEIF so_augbl-high IS INITIAL.
CLEAR: gs_line.
gs_line-typ = gc_s.
gs_line-key = 'Clearing Doc'(020).
gs_line-info = so_augbl-low.
APPEND gs_line TO lt_top_of_page.
ENDIF.
*User ID
IF NOT so_usrid-low IS INITIAL AND NOT so_usrid-high IS INITIAL.
CLEAR: gs_line.
gs_line-typ = gc_s.
gs_line-key = 'User ID'(021).
CONCATENATE so_usrid-low 'to' so_usrid-high INTO gs_line-info
SEPARATED BY space.
APPEND gs_line TO lt_top_of_page.
ELSEIF so_usrid-low IS INITIAL AND so_usrid-high IS INITIAL.
CLEAR: gs_line.
gs_line-typ = gc_s.
gs_line-key = 'User ID'(021).
gs_line-info = 'ALL Values'(012).
APPEND gs_line TO lt_top_of_page.
ELSEIF so_usrid-high IS INITIAL.
CLEAR: gs_line.
gs_line-typ = gc_s.
gs_line-key = 'User ID'(021).
gs_line-info = so_usrid-low.
APPEND gs_line TO lt_top_of_page.
ENDIF.
*GL Account
IF NOT so_hkont-low IS INITIAL AND NOT so_hkont-high IS INITIAL.
SHIFT so_hkont-low LEFT DELETING LEADING '0'.
SHIFT so_hkont-high LEFT DELETING LEADING '0'.
CLEAR: gs_line.
gs_line-typ = gc_s.
gs_line-key = 'GL Account'(004).
CONCATENATE so_hkont-low 'to' so_hkont-high INTO gs_line-info
SEPARATED BY space.
APPEND gs_line TO lt_top_of_page.
ELSEIF so_hkont-low IS INITIAL AND so_hkont-high IS INITIAL.
CLEAR: gs_line.
gs_line-typ = gc_s.
gs_line-key = 'GL Account'(004).
gs_line-info = 'ALL Values'(012).
APPEND gs_line TO lt_top_of_page.
ELSEIF so_hkont-high IS INITIAL.
SHIFT so_hkont-low LEFT DELETING LEADING '0'.
CLEAR: gs_line.
gs_line-typ = gc_s.
gs_line-key = 'GL Account'(004).
gs_line-info = so_hkont-low.
APPEND gs_line TO lt_top_of_page.
ENDIF.
Thanks,
Sriram Ponna.
‎2008 Feb 06 6:44 PM
Hi ,
Chk this blog if it can help u
/people/community.user/blog/2007/05/07/alignment-of-data-in-top-of-page-in-alv-grid
‎2008 Feb 07 2:45 AM
Hi,
If you want to generate the gap among the varaibles use "seperated by space" in concatenate.
Concatenate p_Matnr-low
'to'
p_Matnr-high into FieldCatalog-info seperated by space.
Reward points,if it i suseful.
Thanks,
chandu.