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

Interactive Report

Former Member
0 Likes
644

Hi All,

I am creating a report.

Selecting few values from table and displaying it on the report output.

When I click the field on the report output firld its header and line item should be displayed in the next screen.

Let me know how to proceed with it.Whether to use At LINE SELECTION or AT USER COMMAND.

Please provide a sample program if possible.

Thanks in advance.

Regards,

Sandy

5 REPLIES 5
Read only

Former Member
0 Likes
617

Hello,

Use AT LINE-SELECTION.

Check this sample code.


REPORT demo_list_interactive_1 .

START-OF-SELECTION.

  WRITE: 'Basic List, SY-LSIND =', sy-lsind.

AT LINE-SELECTION.

  WRITE: 'Secondary List, SY-LSIND =', sy-lsind.

Vasanth

Read only

Former Member
0 Likes
617

Hi,

1. In alv we cannot use AT LINE Selection

2. For alv, there is a special syntax, so that when we double-click on alv,

our FORM / routine is called and there we display another alv.

3. just copy paste to get a taste of interactive alv.

4.

REPORT abc.

TYPE-POOLS : slis.

*----


Data

DATA : ITAB LIKE T001 OCCURS 0 WITH HEADER LINE.

DATA : alvfc TYPE slis_t_fieldcat_alv.

DATA : STAB LIKE T001 OCCURS 0 WITH HEADER LINE.

*----


Select Data

SELECT * FROM t001 INTO TABLE itab.

*------- Field Catalogue

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = sy-repid

i_internal_tabname = 'ITAB'

i_inclname = sy-repid

CHANGING

ct_fieldcat = alvfc

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3.

*----


Display

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

it_fieldcat = alvfc

i_callback_program = sy-repid "<-------Important

i_callback_user_command = 'ITAB_USER_COMMAND' "<------ Important

TABLES

t_outtab = itab

EXCEPTIONS

program_error = 1

OTHERS = 2.

*----


  • CALL BACK FORM

*----


FORM itab_user_command USING whatcomm TYPE sy-ucomm whatrow TYPE

slis_selfield.

*----


IMPORTANT.

READ TABLE ITAB INDEX WHATROW-TABINDEX.

*

CLEAR STAB.

SELECT * FROM T001

INTO TABLE STAB

WHERE BUKRS = ITAB-BUKRS.

CLEAR ALVFC.

*------- Field Catalogue

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = sy-repid

i_internal_tabname = 'STAB'

i_inclname = sy-repid

CHANGING

ct_fieldcat = alvfc

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3.

*----


Display

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

it_fieldcat = alvfc

i_callback_program = sy-repid "<-------Important

TABLES

t_outtab = Stab

EXCEPTIONS

program_error = 1

OTHERS = 2.

ENDFORM. "ITAB_user_command

Thanks,

Reward If Helpful.

Read only

Former Member
0 Likes
617

Please check this link for sample interactive report.

http://www.erpgenie.com/abap/ireports.htm

Read only

Former Member
0 Likes
617

Hi

Use AT IINE SELECTION

Eg

REPORT SAPMZTST NO STANDARD PAGE HEADING LINE-SIZE 40.

DATA: HOTSPOT(10) VALUE 'Click me!',

F(10), OFF TYPE I, LIN TYPE I, VAL(40), LEN TYPE I.

FIELD-SYMBOLS <FS>.

ASSIGN HOTSPOT TO <FS>.

WRITE 'Demonstration of GET CURSOR statement'.

SKIP TO LINE 4.

POSITION 20.

WRITE <FS> HOTSPOT COLOR 5 INVERSE ON.

AT LINE-SELECTION.

WINDOW STARTING AT 5 6 ENDING AT 45 20.

GET CURSOR FIELD F OFFSET OFF

LINE LIN VALUE VAL LENGTH LEN.

WRITE: 'Result of GET CURSOR FIELD: '.

ULINE AT /(28).

WRITE: / 'Field: ', F,

/ 'Offset:', OFF,

/ 'Line: ', LIN,

/ 'Value: ', (10) VAL,

/ 'Length:', LEN.

SKIP.

GET CURSOR LINE LIN OFFSET OFF VALUE VAL LENGTH LEN.

WRITE: 'Result of GET CURSOR LINE: '.

ULINE AT /(27).

WRITE: / 'Offset:', OFF,

/ 'Value: ', VAL,

/ 'Length:', LEN.

In this program, the HOTSPOT field is assigned to the field symbol <FS> and displayed as hotspot on the output screen. If the user positions the cursor on a list line and selects it, a dialog box appears containing the results of the GET CURSOR statements in the AT LINE-SELECTION event.

Note that after GET CURSOR FIELD, the name of the field assigned to the field symbol <FS> is stored in F, and not the name of the field symbol.

Regards,

Suruchi

Read only

Former Member
0 Likes
617

Hi,

see this program

REPORT ZBHREP3 LINE-COUNT 15(1) LINE-SIZE 75.

TABLES: SFLIGHT,ZEMP.

DATA VAR LIKE SFLIGHT-CONNID.

DATA ITAB LIKE SFLIGHT OCCURS 0 WITH HEADER LINE.

PARAMETERS NAME TYPE ZEMP-NAME DEFAULT 'BHARAT'.

WRITE: 25 NAME COLOR 6.

SELECT-OPTIONS CARRID1 FOR SFLIGHT-CARRID.

SET PF-STATUS 'MENU'.

SET TITLEBAR 'TIT'.

FORMAT HOTSPOT ON.

WRITE:/10 'AIRLINE CODE',25 'CONNECTION ID',40 'FLIGHT DATE'.

SELECT * FROM SFLIGHT WHERE CARRID IN CARRID1.

WRITE:/10 SFLIGHT-CARRID,25 SFLIGHT-CONNID,40 SFLIGHT-FLDATE.

HIDE SFLIGHT-CONNID.

ENDSELECT.

*END-OF-PAGE.

END-OF-PAGE.

WRITE:/64 'P.NO:',SY-PAGNO.

*TOP-OF-PAGE.

TOP-OF-PAGE.

WRITE:/ 'THIS IS MY FIRST REPORTS PROGRAM.'.

*START-OF-SELECTION.

START-OF-SELECTION.

DO 5 TIMES.

WRITE:/ SY-INDEX.

ENDDO.

*THESE 3 STATEMENTS ARE FOR THE END-OF-PAGE CONTENTS IN LAST PAGE.

DATA M TYPE I.

M = SY-LINCT - SY-LINNO - 1.

SKIP M.

*AT LINE-SELECTION.

AT LINE-SELECTION.

CASE SY-LSIND.

WHEN '1'.

  • READ LINE SY-LILLI FIELD VALUE SFLIGHT-CONNID INTO VAR.

  • SELECT * FROM SFLIGHT INTO CORRESPONDING FIELDS OF ITAB WHERE

  • CONNID = VAR.

  • WRITE:/ ITAB-CARRID,ITAB-PLANETYPE,ITAB-PAYMENTSUM.

  • ENDSELECT.

  • WRITE:/ VAR.

SELECT * FROM SFLIGHT INTO CORRESPONDING FIELDS OF ITAB WHERE

CONNID = SY-LISEL+24(4).

WRITE:/ ITAB-CARRID,ITAB-PLANETYPE,ITAB-PAYMENTSUM.

ENDSELECT.

SKIP 1.

WRITE:/ SY-LISEL+24(4).

  • SELECT * FROM SFLIGHT INTO CORRESPONDING FIELDS OF ITAB WHERE

  • CONNID = SFLIGHT-CONNID.

  • WRITE:/ ITAB-CARRID,ITAB-PLANETYPE,ITAB-PAYMENTSUM.

  • ENDSELECT.

  • WRITE:/ SFLIGHT-CONNID.

WHEN '2'.

WRITE:/ SY-LILLI.

WHEN '3'.

WRITE 😕 'BHARAT'.

ENDCASE.

rgds,

bharat.