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

Problem with aligning values in ALV header???????

Former Member
0 Likes
795

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

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
776

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

6 REPLIES 6
Read only

Former Member
0 Likes
776

Hi

instead of 'to', try ' to '.

Cheers

~Arun

Read only

Former Member
0 Likes
776

>

> 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

Read only

Former Member
0 Likes
777

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

Read only

Former Member
0 Likes
776

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.

Read only

Former Member
0 Likes
776

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

Read only

Former Member
0 Likes
776

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.