05-18-2006 2:43 AM
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
05-18-2006 3:28 AM
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.
05-18-2006 4:02 AM
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.