Application Development 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: 

How to make my header in ALV left justified

aris_hidalgo
Contributor
0 Kudos

Hello experts,

I am using ALV_GRID_DISPLAY and I noticed that my header is not fully displayed on the left side. How can I make it as such? anyway, here is my header code. Again, thank you guys and have a nice day!

FORM top_of_page.

*ALV Header declarations

DATA: t_header TYPE slis_t_listheader,

wa_header TYPE slis_listheader,

t_line LIKE wa_header-info,

lv_title(60),

lv_user(60),

lv_date(10),

lv_time(10),

lv_time_n_date(30),

lv_dlr_n_desc(100),

ld_lines TYPE i,

ld_linesc(10) TYPE c.

  • Title

CLEAR: lv_title, wa_header.

MOVE sy-title TO lv_title.

wa_header-typ = 'H'.

wa_header-info = lv_title.

APPEND wa_header TO t_header.

CLEAR wa_header.

  • User

CLEAR: lv_user, wa_header.

CONCATENATE: 'Generated by:' sy-uname

INTO lv_user SEPARATED BY space.

wa_header-typ = 'S'.

wa_header-info = lv_user.

APPEND wa_header TO t_header.

CLEAR wa_header.

*Date and time

CLEAR: lv_date, lv_time.

WRITE: sy-datum TO lv_date MM/DD/YYYY,

sy-uzeit TO lv_time USING EDIT MASK '__:__:__'.

CONCATENATE: 'Generated on:' lv_date lv_time

INTO lv_time_n_date SEPARATED BY space.

wa_header-typ = 'S'.

wa_header-info = lv_time_n_date.

APPEND wa_header TO t_header.

CLEAR wa_header.

*Dealer code and description

CONCATENATE: 'Dealer:' p_dcode p_name1

INTO lv_dlr_n_desc SEPARATED BY space.

wa_header-typ = 'S'.

wa_header-info = lv_dlr_n_desc.

APPEND wa_header TO t_header.

CLEAR wa_header.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = t_header.

ENDFORM. " TOP_OF_PAGE

2 REPLIES 2

former_member186741
Active Contributor
0 Kudos

the 'header' has a structure like this:

types: begin of slis_listheader,

typ(1) type c, " H = Header, S = Selection, A = Action

key(20) type c,

info type slis_entry,

end of slis_listheader.

The field 'key' can be used to put brief text in and 'info' can hold more. Because 'key' is there the stuff you are outputting can never be left-justified.

What you can do is put some of your text in 'key' instead of or as well as in 'info'.

Actually, you could try a 'condense' statement on the header and it may work.

0 Kudos

Vijay,

Best way is to use Field catalog merge. See below example. Call this routine before you call your Grid display giving all the desired fields.

*FIELD CATALOG

FORM get_field_catalog using g_FIELDCAT type slis_t_fieldcat_alv.

STATICS: L_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

perform: format_field_catalog

using 'KUNNR' 'i_output_temp' '1' 'X' ' '

G_FIELDCAT[],

format_field_catalog

using 'NAME1' 'i_output_temp' '2' 'X' ' '

G_FIELDCAT[],

format_field_catalog

using 'MATNR' 'i_output_temp' '3' 'X' ' '

G_FIELDCAT[],

format_field_catalog

using 'KDMAT' 'i_output_temp' '4' ' ' ' '

G_FIELDCAT[],

format_field_catalog

using 'EAN11' 'i_output_temp' '5' ' ' ' '

G_FIELDCAT[],

format_field_catalog.

*Merging the internal table fields with Catalogue.----

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_INTERNAL_TABNAME = 'i_output_temp'

CHANGING

CT_FIELDCAT = G_FIELDCAT[]

EXCEPTIONS

INCONSISTENT_INTERFACE = 1

PROGRAM_ERROR = 2

OTHERS = 3.

*Modifying the Catalog for Title header texts.----

LOOP AT G_FIELDCAT INTO L_FIELDCAT.

CASE L_FIELDCAT-FIELDNAME.

WHEN 'KUNNR'.

L_FIELDCAT-SELTEXT_S = 'CUSTOMER'.

L_FIELDCAT-OUTPUTLEN = '13'.

L_FIELDCAT-EMPHASIZE = 'X'.

L_FIELDCAT-SP_GROUP = 'A'.

L_FIELDCAT-KEY_SEL = 'X'.

L_FIELDCAT-ddictxt = 'L'.

WHEN 'NAME1'.

L_FIELDCAT-SELTEXT_L = 'CUSTOMER NAME'.

L_FIELDCAT-OUTPUTLEN = '35'.

L_FIELDCAT-EMPHASIZE = 'X'.

L_FIELDCAT-SP_GROUP = 'A'.

L_FIELDCAT-KEY_SEL = 'X'.

L_FIELDCAT-ddictxt = 'L'.

WHEN 'MATNR'.

L_FIELDCAT-SELTEXT_L = 'MATERIAL NO'.

L_FIELDCAT-OUTPUTLEN = '18'.

L_FIELDCAT-EMPHASIZE = 'X'.

L_FIELDCAT-SP_GROUP = 'A'.

L_FIELDCAT-KEY_SEL = 'X'.

WHEN 'KDMAT'.

L_FIELDCAT-SELTEXT_L = 'CUST MATERIAL NO'.

L_FIELDCAT-OUTPUTLEN = '35'.

L_FIELDCAT-EMPHASIZE = 'X'.

L_FIELDCAT-SP_GROUP = 'A'.

L_FIELDCAT-KEY_SEL = 'X'.

WHEN 'EAN11'.

L_FIELDCAT-SELTEXT_L = 'TRADE SER NO'.

L_FIELDCAT-OUTPUTLEN = '12'.

L_FIELDCAT-EMPHASIZE = 'X'.

L_FIELDCAT-SP_GROUP = 'A'.

L_FIELDCAT-KEY_SEL = ' '.

ENDCASE.

MODIFY G_FIELDCAT FROM L_FIELDCAT.

ENDLOOP.

*Prompting the Layout for coloring by passing field name used in the

*Internal table for coloring.-----

  • g_layout-INFO_FIELDNAME = 'COLOR'.

ENDFORM. " get_field_catalog

**********************************************************************

FORM format_field_catalog USING L1

L2

L3

L4

L5

P_G_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

STATICS: L_LT_FIELDCATALOG TYPE SLIS_FIELDCAT_ALV.

CLEAR: L_LT_FIELDCATALOG.

L_LT_FIELDCATALOG-FIELDNAME = L1.

L_LT_FIELDCATALOG-TABNAME = L2.

L_LT_FIELDCATALOG-COL_POS = L3.

L_LT_FIELDCATALOG-KEY = L4.

L_LT_FIELDCATALOG-DO_SUM = L5.

APPEND L_LT_FIELDCATALOG TO P_G_FIELDCAT.

ENDFORM. " format_field_catalog

Thanks,

Giri.