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 in alv

Former Member
0 Likes
805

Hi all.

I want to make a report based on customer information in alv list..

In this list output is like..

customer no. : 1

customer name. :aaa

comes as top of alv.

detail of defined customer 1.

than

customer no. : 2

customer name. :rrr

comes as top of alv.

detail of defined customer 2.

and same as others.

I tried it with

REUSE_ALV_BLOCK_LIST_INIT,

REUSE_ALV_BLOCK_LIST_APPEND,

REUSE_ALV_BLOCK_LIST_DISPLAY.

But i can't get proper output . plz help me...

.

Edited by: ankita patel on Dec 2, 2008 12:19 PM

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
779

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.

9 REPLIES 9
Read only

Former Member
0 Likes
779
Read only

Former Member
0 Likes
779

try with this 'REUSE_ALV_LIST_DISPLAY'

eg:

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = GS_EXTRACT1-REPORT

I_STRUCTURE_NAME = 'SFLIGHT'

I_SAVE = 'A'

TABLES

T_OUTTAB = GT_SFLIGHT.

Read only

0 Likes
779

also tried with this but not getting output

Read only

Former Member
0 Likes
779

Hi,

Use hierarchial ALV's.

Regards,

BBR.

Read only

Former Member
0 Likes
780

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.

Read only

former_member386202
Active Contributor
0 Likes
779

Hi,

Try to create bloack alv. Refer Below code

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'

EXPORTING

i_callback_program = v_repid.

wa_layout1-colwidth_optimize = 'X'.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = wa_layout1

it_fieldcat = it_fieldcat[]

i_tabname = 'it_final'

it_events = it_events

TABLES

t_outtab = it_final

EXCEPTIONS

program_error = 1

maximum_of_appends_reached = 2

OTHERS = 3.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

LOOP AT it_fieldcat INTO wa_fieldcat.

lv_index = sy-tabix.

IF wa_fieldcat-fieldname = 'ERDAT'.

wa_fieldcat-fieldname = 'TITLE'.

wa_fieldcat-seltext_m = text-026.

wa_fieldcat-outputlen = 10.

ENDIF.

MODIFY it_fieldcat FROM wa_fieldcat INDEX lv_index TRANSPORTING

fieldname seltext_m outputlen.

CLEAR : wa_fieldcat.

ENDLOOP.

wa_layout2-no_colhead = 'X'.

wa_layout2-colwidth_optimize = 'X'.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = wa_layout2

it_fieldcat = it_fieldcat[]

i_tabname = 'it_total'

it_events = it_event1

TABLES

t_outtab = it_total

EXCEPTIONS

program_error = 1

maximum_of_appends_reached = 2

OTHERS = 3.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

wa_layout3-no_colhead = 'X'.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = wa_layout3

it_fieldcat = it_fieldcat2[]

i_tabname = 'it_ship'

it_events = it_event2

TABLES

t_outtab = it_ship

EXCEPTIONS

program_error = 1

maximum_of_appends_reached = 2

OTHERS = 3.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

IF NOT it_final IS INITIAL OR

NOT it_total IS INITIAL OR

NOT it_ship IS INITIAL.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'

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.

ENDIF.

Regards,

Prashant

Read only

former_member386202
Active Contributor
0 Likes
779

Hi,

Try to create bloack alv. Refer Below code

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'

EXPORTING

i_callback_program = v_repid.

wa_layout1-colwidth_optimize = 'X'.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = wa_layout1

it_fieldcat = it_fieldcat[]

i_tabname = 'it_final'

it_events = it_events

TABLES

t_outtab = it_final

EXCEPTIONS

program_error = 1

maximum_of_appends_reached = 2

OTHERS = 3.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

LOOP AT it_fieldcat INTO wa_fieldcat.

lv_index = sy-tabix.

IF wa_fieldcat-fieldname = 'ERDAT'.

wa_fieldcat-fieldname = 'TITLE'.

wa_fieldcat-seltext_m = text-026.

wa_fieldcat-outputlen = 10.

ENDIF.

MODIFY it_fieldcat FROM wa_fieldcat INDEX lv_index TRANSPORTING

fieldname seltext_m outputlen.

CLEAR : wa_fieldcat.

ENDLOOP.

wa_layout2-no_colhead = 'X'.

wa_layout2-colwidth_optimize = 'X'.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = wa_layout2

it_fieldcat = it_fieldcat[]

i_tabname = 'it_total'

it_events = it_event1

TABLES

t_outtab = it_total

EXCEPTIONS

program_error = 1

maximum_of_appends_reached = 2

OTHERS = 3.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

wa_layout3-no_colhead = 'X'.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = wa_layout3

it_fieldcat = it_fieldcat2[]

i_tabname = 'it_ship'

it_events = it_event2

TABLES

t_outtab = it_ship

EXCEPTIONS

program_error = 1

maximum_of_appends_reached = 2

OTHERS = 3.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

IF NOT it_final IS INITIAL OR

NOT it_total IS INITIAL OR

NOT it_ship IS INITIAL.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'

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.

ENDIF.

Regards,

Prashant

Read only

Former Member
0 Likes
779

hi you can use 'REUSE_ALV_HIERSEQ_LIST_DISPLAY' function module .

you can take two internal table one is header and other the detail information and pass to the function module and you can get the data as required by you.

so many standard program are there you can go and look into the code.

Read only

0 Likes
779

hello Ankita,

Please go though this lick.

I am sure.This link will solve your problem.

http://help-abap.blogspot.com/search/label/SALV%20Tutorial.

Thanks,

Tarangi