‎2006 Mar 20 9:33 AM
Hi,
I need the layout in this format.
Company Code: ABC
Six records each 10 columns.
Header Text-XXX
Company Code: DEF
Six records each 10 columns.
Header Text-ZZZ
I have several records in this format to be displayed using a ALV. Is it possible to have this type of Layout in ALV Grid/List.
Thanks in advance.
Regards,
Raghavendra Goutham.
‎2006 Mar 20 9:42 AM
Raghavendra,
Did you look at the REUSE function for BLOCK LIST and APPEND BLOCK LIST?
I think those should solve your issue.
Regards
Ravi
‎2006 Mar 20 9:55 AM
hai raghavendra,
try out this example it displays output in the same manner as u have asked for.
EXAMPLE:
TABLES : vbak. " Sales Document
TYPE-POOLS: slis. " ALV Global types
SELECT-OPTIONS :
s_vkorg FOR vbak-vkorg, " Sales organization
s_kunnr FOR vbak-kunnr, " Sold-to party
s_vbeln FOR vbak-vbeln, " Sales document
s_erdat FOR vbak-erdat. " Creation Date
SELECTION-SCREEN :
SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max. "#EC NEEDED
PARAMETERS p_max(2) TYPE n DEFAULT '20' OBLIGATORY.
SELECTION-SCREEN END OF LINE.
DATA:
BEGIN OF gt_data OCCURS 0,
vkorg TYPE vkorg, " Sales organization
erdat TYPE sydatum, " Creation Date
total TYPE i, " Total of orders
END OF gt_data.
----
INITIALIZATION.
v_1 = 'Maximum of lines to display'.
----
START-OF-SELECTION.
PERFORM f_read_data.
PERFORM f_display_data.
----
Form f_read_data
----
FORM f_read_data.
SELECT vkorg erdat COUNT(*) AS total
INTO TABLE gt_data
FROM vbak
UP TO p_max ROWS
WHERE kunnr IN s_kunnr
AND vbeln IN s_vbeln
AND vkorg IN s_vkorg
AND erdat IN s_erdat
GROUP BY vkorg erdat
ORDER BY erdat DESCENDING.
ENDFORM. " F_READ_DATA
----
Form F_DISPLAY_DATA
----
FORM f_display_data.
FIELD-SYMBOLS :
<field> TYPE ANY,
<header> TYPE ANY,
<lt_data> TYPE table. " Data to display
Macro definition
DEFINE m_sort.
add 1 to ls_sort-spos.
ls_sort-fieldname = &1.
ls_sort-down = 'X'.
append ls_sort to lt_sort.
END-OF-DEFINITION.
DATA:
l_col(5),
lp_struct TYPE REF TO data,
lp_table TYPE REF TO data, " Pointer to dynamic table
ls_lvc_cat TYPE lvc_s_fcat,
lt_lvc_cat TYPE lvc_t_fcat, " Field catalog
ls_fieldcat TYPE slis_fieldcat_alv,
lt_fieldcat TYPE slis_t_fieldcat_alv, " Field catalog
lt_sort TYPE slis_t_sortinfo_alv,
ls_sort TYPE slis_sortinfo_alv,
ls_layout TYPE slis_layout_alv.
Build Fieldcatalog - First column
ls_lvc_cat-fieldname = 'ERDAT'.
ls_lvc_cat-ref_table = 'VBAK'.
APPEND ls_lvc_cat TO lt_lvc_cat.
ls_fieldcat-fieldname = 'ERDAT'.
ls_fieldcat-ref_tabname = 'VBAK'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO lt_fieldcat.
SORT gt_data BY vkorg.
LOOP AT gt_data.
AT NEW vkorg.
Build Fieldcatalog
CLEAR ls_lvc_cat.
CONCATENATE 'V' gt_data-vkorg INTO ls_lvc_cat-fieldname.
ls_lvc_cat-datatype = 'INT4'.
APPEND ls_lvc_cat TO lt_lvc_cat.
Build Fieldcatalog
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = ls_lvc_cat-fieldname.
ls_fieldcat-datatype = 'INT4'.
ls_fieldcat-seltext_s = gt_data-vkorg.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO lt_fieldcat.
ENDAT.
ENDLOOP.
Create internal table
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING it_fieldcatalog = lt_lvc_cat
IMPORTING ep_table = lp_table.
ASSIGN lp_table->* TO <lt_data>.
Create structure = structure of the internal table
CREATE DATA lp_struct LIKE LINE OF <lt_data>.
ASSIGN lp_struct->* TO <header>.
SORT gt_data BY erdat.
Fill the internal table <lt_data>
LOOP AT gt_data.
AT NEW erdat.
CLEAR <header>.
ASSIGN COMPONENT 'ERDAT' OF STRUCTURE <header> TO <field>.
IF sy-subrc NE 0. EXIT .ENDIF.
<field> = gt_data-erdat.
ENDAT.
CONCATENATE 'V' gt_data-vkorg INTO l_col.
ASSIGN COMPONENT l_col OF STRUCTURE <header> TO <field>.
IF sy-subrc NE 0. EXIT .ENDIF.
<field> = gt_data-total.
AT END OF erdat.
APPEND <header> TO <lt_data>.
ENDAT.
ENDLOOP.
Layout
ls_layout-colwidth_optimize = 'X'.
ls_layout-zebra = 'X'.
m_sort 'ERDAT'. " Sort by creation date
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
is_layout = ls_layout
it_fieldcat = lt_fieldcat
it_sort = lt_sort
TABLES
t_outtab = <lt_data>.
ENDFORM.
REGARDS,
PRABA.
‎2006 Mar 20 9:59 AM
Hi,
Check this link you will get no.of examples....
http://www.geocities.com/mpioud/Abap_programs.html
Thanks.
If this helps you reward with points.
‎2006 Mar 20 10:10 AM
Hi,
Go through this demo program.
BALVHD01_GROUP.
************************
REPORT TEST NO STANDARD PAGE HEADING.
*"General Data
TYPE-POOLS: SLIS.
DATA: GT_OUTTABH TYPE SCARR OCCURS 0 WITH HEADER LINE,
GT_OUTTAB TYPE SFLIGHT OCCURS 0 WITH HEADER LINE,
GT_SORT TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE ,
GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
GS_KEYINFO TYPE SLIS_KEYINFO_ALV,
G_REPID LIKE SY-REPID.
DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE .
DATA:
GT_EVENTS TYPE SLIS_T_EVENT,
GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
G_STATUS_SET TYPE SLIS_FORMNAME VALUE 'PF_STATUS_SET',
G_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND',
G_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
G_TOP_OF_LIST TYPE SLIS_FORMNAME VALUE 'TOP_OF_LIST',
G_END_OF_LIST TYPE SLIS_FORMNAME VALUE 'END_OF_LIST'.
INITIALIZATION.
define keyinfo
CLEAR GS_KEYINFO.
GS_KEYINFO-HEADER01 = 'CARRID'.
GS_KEYINFO-ITEM01 = 'CARRID'.
GS_KEYINFO-HEADER02 = SPACE.
GS_KEYINFO-ITEM02 = 'CONNID'.
G_REPID = SY-REPID.
GS_LAYOUT-GROUP_CHANGE_EDIT = 'X'.
GT_SORT-FIELDNAME = 'CURRCODE'.
GT_SORT-tabNAME = '1'.
GT_SORT-SPOS = 1.
GT_SORT-UP = 'X'.
GT_SORT-SUBTOT = 'X'.
GT_SORT-GROUP = '*'.
APPEND GT_SORT.
GT_SORT-FIELDNAME = 'CARRID'.
GT_SORT-tabNAME = '1'.
GT_SORT-SPOS = 2.
GT_SORT-UP = 'X'.
GT_SORT-SUBTOT = 'X'.
GT_SORT-GROUP = ' '.
APPEND GT_SORT.
GT_FIELDCAT-FIELDNAME = 'PRICE'.
GT_FIELDCAT-tabname = '2'.
GT_FIELDCAT-outputlen = 12.
GT_FIELDCAT-DO_SUM = 'X'.
APPEND GT_FIELDCAT.
GT_FIELDCAT-FIELDNAME = 'CARRID'.
GT_FIELDCAT-tabname = '1'.
GT_FIELDCAT-outputlen = 6.
GT_FIELDCAT-DO_SUM = space.
APPEND GT_FIELDCAT.
PERFORM EVENTTAB_BUILD USING GT_EVENTS[].
START-OF-SELECTION.
SELECT * FROM SCARR INTO CORRESPONDING FIELDS
OF TABLE GT_OUTTABH.
SELECT * FROM SFLIGHT INTO CORRESPONDING FIELDS
OF TABLE GT_OUTTAB.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_REPID
I_STRUCTURE_NAME_HEADER = 'SCARR'
I_STRUCTURE_NAME_ITEM = 'SFLIGHT'
IS_KEYINFO = GS_KEYINFO
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = GT_FIELDCAT[]
I_TABNAME_HEADER = '1'
I_TABNAME_ITEM = '2'
IT_EVENTS = GT_EVENTS[]
IT_SORT = GT_SORT[]
TABLES
T_OUTTAB_HEADER = GT_outtabh
T_OUTTAB_ITEM = GT_outtab.
----
FORM EVENTTAB_BUILD *
----
FORM EVENTTAB_BUILD USING RT_EVENTS TYPE SLIS_T_EVENT.
*"Registration of events to happen during list display
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
*
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = RT_EVENTS.
READ TABLE RT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE G_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO RT_EVENTS.
ENDIF.
ENDFORM.
----
FORM TOP_OF_PAGE *
----
FORM TOP_OF_PAGE.
DATA: LS_LINE TYPE SLIS_LISTHEADER.
*
REFRESH GT_LIST_TOP_OF_PAGE.
CLEAR LS_LINE.
LS_LINE-TYP = 'H'.
LS_LINE-INFO = '<Header>'.
APPEND LS_LINE TO GT_LIST_TOP_OF_PAGE.
STATUS LINE: TYPE S
CLEAR LS_LINE.
LS_LINE-TYP = 'S'.
LS_LINE-KEY = '<Status1>'.
LS_LINE-INFO = GT_OUTTABH-CURRCODE.
APPEND LS_LINE TO GT_LIST_TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
ENDFORM.
*********************************
venkatesh
Message was edited by: venkateshkumar kandasamy