‎2007 May 09 11:25 AM
HI All,
As i m a beginner to the abaap, and i want to do small project on library , so i want help in creating an interactive report for bookdetails
i have tried the below code.. it is working to some extened but not completely.
TABLES ZBOOKINFO.
DATA : I_BOOK TYPE STANDARD TABLE OF ZBOOKINFO,
W_BOOK TYPE ZBOOKINFO.
START-OF-SELECTION.
write : / 'BOOK DETAILS'.
TOP-OF-PAGE DURING LINE-SELECTION.
case sy-lsind.
when 1.
WRITE 'LIST OF BOOK DETAILS'.
ULINE.
when 2.
write 'list of isbn'.
uline.
when 3.
write ' list of books'.
endcase.
AT LINE-SELECTION.
WRITE: 'SY-LSIND:', sy-lsind.
skip.
write : /'ISBN'.
WRITE : /'BOOK_NAME'.
WRITE : /'AUTHOR_NAME'.
WRITE : /'PUBLISHER_NAME'.
WRITE : /'COST'.
PERFORM BOOK.
IF SY-LISEL = 'ISBN'.
PERFORM ISBN1.
ENDIF.
FORM ISBN1.
SELECT ISBN
FROM ZBOOKINFO
INTO CORRESPONDING FIELDS OF TABLE I_BOOK.
LOOP AT I_BOOK INTO W_BOOK.
NEW-PAGE .
WRITE 😕 W_BOOK-ISBN.
ENDLOOP.
WRITE : / 'BACK'.
ENDFORM. "ISBN1
NOW i want the details of isbn to be printed in new page but it is priniting in same screen. can you please help me out
thanks
pushpa
‎2007 May 09 11:29 AM
Hi,
check this example
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.
**********************************************************
another example.
*******
REPORT ZINTERACTIVE_FINAL.
INCLUDE <COLOR>.
TABLES:SFLIGHT,SPFLI,SBOOK.
TYPES: BEGIN OF STRUCTURE,
CITYFROM LIKE SPFLI-CITYFROM,
CITYTO LIKE SPFLI-CITYTO,
CARRID LIKE SPFLI-CARRID ,
CONNID LIKE SPFLI-CONNID,
FLDATE LIKE SFLIGHT-FLDATE,
SEATSMAX LIKE SFLIGHT-SEATSMAX,
SEATSOCC LIKE SFLIGHT-SEATSOCC,
END OF STRUCTURE.
DATA : ITAB TYPE STRUCTURE OCCURS 0.
DATA: WA TYPE STRUCTURE.
DATA:LINE LIKE SY-LILLI.
SELECT SPFLICITYFROM SPFLICITYTO SPFLICARRID SPFLICONNID
SFLIGHTFLDATE SFLIGHTSEATSMAX SFLIGHT~SEATSOCC INTO (WA-CITYFROM,
WA-CITYTO,WA-CARRID,WA-CONNID,WA-FLDATE,WA-SEATSMAX,WA-SEATSOCC) FROM
SPFLI INNER JOIN SFLIGHT ON SPFLIMANDT = SFLIGHTMANDT AND SPFLI~CARRID
= SFLIGHTCARRID AND SPFLICONNID = SFLIGHT~CONNID.
*GET SPFLI.
*SELECT * FROM SPFLI.
MOVE-CORRESPONDING SPFLI TO WA.
*ENDSELECT.
*GET SFLIGHT.
*SELECT * FROM SFLIGHT.
MOVE-CORRESPONDING SFLIGHT TO WA.
*ENDSELECT.
APPEND WA TO ITAB.
ENDSELECT.
SET PF-STATUS 'GRUND'.
SET TITLEBAR 'GRU' .
SORT ITAB BY CITYFROM CITYTO CARRID CONNID SEATSOCC.
*LOOP AT ITAB INTO WA.
*WRITE:/ WA-CARRID,WA-CONNID,WA-CITYFROM,WA-CITYTO.
*ENDLOOP.
LOOP AT ITAB INTO WA.
AT FIRST.
WRITE:/ 'START OUTPUT INTERNAL TABLE'.
ULINE.
ENDAT.
AT NEW CITYFROM.
WRITE:/ WA-CITYFROM COLOR COL_KEY.
ENDAT.
AT NEW SEATSOCC.
WRITE:/10 WA-CARRID,WA-CONNID,WA-FLDATE COLOR COL_NORMAL,
WA-SEATSOCC COLOR COL_NORMAL,WA-SEATSMAX COLOR COL_NORMAL.
HIDE : WA-CONNID, WA-CARRID, WA-FLDATE.
ENDAT.
AT END OF CONNID.
SUM.
WRITE:/ WA-SEATSOCC COLOR COL_TOTAL UNDER WA-SEATSOCC,
WA-SEATSMAX COLOR COL_TOTAL.
ULINE .
ENDAT.
AT END OF CARRID.
SUM.
ULINE.
WRITE:/ WA-SEATSOCC COLOR COL_TOTAL INTENSIFIED UNDER
WA-SEATSOCC, WA-SEATSMAX COLOR COL_TOTAL INTENSIFIED.
ULINE.
ENDAT.
ENDLOOP.
CLEAR WA.
AT LINE-SELECTION.
CASE SY-LSIND.
WHEN 1.
WRITE:/' AIRLINE ', WA-CARRID ,
/'FLIGHT CONNECTION',WA-CONNID ,
/'FLIGHT DATE',WA-FLDATE.
ULINE.
SELECT * FROM SBOOK WHERE CARRID = WA-CARRID AND CONNID = WA-CONNID
AND FLDATE = WA-FLDATE .
WRITE 😕 SBOOK-BOOKID,SBOOK-CUSTOMID,SBOOK-ORDER_DATE.
ENDSELECT.
CLEAR WA.
WHEN 2.
LINE = SY-LILLI.
IF LINE > 4.
LINE = LINE - 4.
WRITE:/ 'SELECTED LINE NUMBE:',LINE.
ENDIF.
ENDCASE.
rgds,
bharat.
Message was edited by:
Bharat Kalagara
‎2007 May 09 11:34 AM
thanks for your reply,
but i m bit confused by your program.. can you take my code and help me out please..i want isbn list to displayed in new page ..
‎2007 May 09 11:32 AM
Hi
Which data should print on first page?
first try to print some data on first page, then after double clicking on a field on first list it should take you to second list.
see the sample code and do.
REPORT ZTEJ_INTAB1 LINE-SIZE 103 LINE-COUNT 35(5) NO STANDARD PAGE
HEADING.
*TABLES DECLARATION
TABLES : KNA1, VBAK, VBAP.
*SELECT OPTIONS
SELECT-OPTIONS: CUST_NO FOR KNA1-KUNNR.
*INITIALIZATION
INITIALIZATION.
CUST_NO-LOW = '01'.
CUST_NO-HIGH = '5000'.
CUST_NO-SIGN = 'I'.
CUST_NO-OPTION = 'BT'.
APPEND CUST_NO.
*SELECTION SCREEN VALIDATION
AT SELECTION-SCREEN ON CUST_NO.
LOOP AT SCREEN.
IF CUST_NO-LOW < 1 OR CUST_NO-HIGH > 5000.
MESSAGE E001(ZTJ1).
ENDIF.
ENDLOOP.
*BASIC LIST SELECTION
START-OF-SELECTION.
SELECT KUNNR NAME1 ORT01 LAND1 INTO
(KNA1-KUNNR, KNA1-NAME1,KNA1-ORT01,KNA1-LAND1)
FROM KNA1
WHERE KUNNR IN CUST_NO.
WRITE:/1 SY-VLINE,
KNA1-KUNNR UNDER 'CUSTOMER NO.' HOTSPOT ON,
16 SY-VLINE,
KNA1-NAME1 UNDER 'NAME',
61 SY-VLINE,
KNA1-ORT01 UNDER 'CITY',
86 SY-VLINE,
KNA1-LAND1 UNDER 'COUNTRY',
103 SY-VLINE.
HIDE: KNA1-KUNNR.
ENDSELECT.
ULINE.
*SECONDARY LIST ACCESS
AT user-command.
IF SY-UCOMM = 'IONE'.
PERFORM SALES_ORD.
ENDIF.
IF SY-UCOMM = 'ITWO'.
PERFORM ITEM_DET.
ENDIF.
*TOP OF PAGE
TOP-OF-PAGE.
FORMAT COLOR 1.
WRITE : 'CUSTOMER DETAILS'.
FORMAT COLOR 1 OFF.
ULINE.
FORMAT COLOR 3.
WRITE : 1 SY-VLINE,
3 'CUSTOMER NO.',
16 SY-VLINE,
18 'NAME',
61 SY-VLINE,
63 'CITY',
86 SY-VLINE,
88 'COUNTRY',
103 SY-VLINE.
ULINE.
FORMAT COLOR 3 OFF.
*TOP OF PAGE FOR SECONDARY LISTS
TOP-OF-PAGE DURING LINE-SELECTION.
*TOP OF PAGE FOR 1ST SECONDARY LIST
IF SY-UCOMM = 'IONE'.
ULINE.
FORMAT COLOR 1.
WRITE : 'SALES ORDER DETAILS'.
ULINE.
FORMAT COLOR 1 OFF.
FORMAT COLOR 3.
WRITE : 1 SY-VLINE,
3 'CUSTOMER NO.',
16 SY-VLINE,
18 'SALES ORDER NO.',
40 SY-VLINE,
42 'DATE',
60 SY-VLINE,
62 'CREATOR',
85 SY-VLINE,
87 'DOC DATE',
103 SY-VLINE.
ULINE.
ENDIF.
FORMAT COLOR 3 OFF.
*TOP OF PAGE FOR 2ND SECONDARY LIST
IF SY-UCOMM = 'ITWO'.
ULINE.
FORMAT COLOR 1.
WRITE : 'ITEM DETAILS'.
ULINE.
FORMAT COLOR 1 OFF.
FORMAT COLOR 3.
WRITE : 1 SY-VLINE,
3 'SALES ORDER NO.',
40 SY-VLINE,
42 'SALES ITEM NO.',
60 SY-VLINE,
62 'ORDER QUANTITY',
103 SY-VLINE.
ULINE.
ENDIF.
FORMAT COLOR 3 OFF.
*END OF PAGE
END-OF-PAGE.
ULINE.
WRITE :'USER :',SY-UNAME,/,'DATE :', SY-DATUM, 85 'END OF PAGE:',
SY-PAGNO.
SKIP.
&----
*& Form SALES_ORD
*&
*& FIRST SECONDARY LIST FORM
&----
FORM SALES_ORD .
SELECT KUNNR VBELN ERDAT ERNAM AUDAT INTO
(VBAK-KUNNR, VBAK-VBELN, VBAK-ERDAT, VBAK-ERNAM, VBAK-AUDAT)
FROM VBAK
WHERE KUNNR = KNA1-KUNNR.
WRITE:/1 SY-VLINE,
VBAK-KUNNR UNDER 'CUSTOMER NO.' HOTSPOT ON,
16 SY-VLINE,
VBAK-VBELN UNDER 'SALES ORDER NO.' HOTSPOT ON,
40 SY-VLINE,
VBAK-ERDAT UNDER 'DATE',
60 SY-VLINE,
VBAK-ERNAM UNDER 'CREATOR',
85 SY-VLINE,
VBAK-AUDAT UNDER 'DOC DATE',
103 SY-VLINE.
HIDE : VBAK-VBELN.
ENDSELECT.
ULINE.
ENDFORM. " SALES_ORD
&----
*& Form ITEM_DET
*&
*& SECOND SECONDARY LIST FORM
&----
FORM ITEM_DET .
SELECT VBELN POSNR KWMENG INTO
(VBAP-VBELN, VBAP-POSNR, VBAP-KWMENG)
FROM VBAP
WHERE VBELN = VBAK-VBELN.
WRITE : /1 SY-VLINE,
VBAP-VBELN UNDER 'SALES ORDER NO.',
40 SY-VLINE,
VBAP-POSNR UNDER 'SALES ITEM NO.',
60 SY-VLINE,
VBAP-KWMENG UNDER 'ORDER QUANTITY',
103 SY-VLINE.
ENDSELECT.
ULINE.
ENDFORM. " ITEM_DET
Reward points if useful
Regards
Anji
‎2007 May 09 11:39 AM
thanks for your reply,
i m printing list of book detalis in first page the preview of the first page is as below
<b>list of book details
isbn
bookname
authorname
publishername
cost</b>
and when i double on <u>isbn</u> i want it to go next page where i can found the list of isbn and i want to come back to the first page again after performing this task..
‎2007 May 09 11:34 AM
Hello Pushpa,
Actullay the ISBN details are writing in a new page only.
Check the SY-LSIND when u r double clicking on the ISBN.
THe SY-LSIND will be increated it means the details are written in the new page.
If useful reward.
Vasanth
‎2007 May 09 11:44 AM
ya it is printing in new page..but it is adding the previous page also.. i got to know that i should use new-page.. can you help me in creating code for new-page for my code.
‎2007 May 09 11:35 AM
Hi ,
Use new-page with at new event as :
loop at itab.
at new <field>.
new-page.
endat.
write:/itab-field1.
endloop.
‎2007 May 09 11:41 AM
thanks for your reply, i will try this, can you tell me where to add this code in my code.
‎2007 May 09 12:07 PM
hi puspha,
i think in at line selection event u have no condition so its printing on the same page.so navigate to next level try like this.
at line-selection.
case sy-lsind.
when 'ISBN'.
PERFORM ISBN1.
ENDIF.
.
.
.
.
.
endcase.
FORM ISBN1.
SELECT ISBN
FROM ZBOOKINFO
INTO CORRESPONDING FIELDS OF TABLE I_BOOK.
LOOP AT I_BOOK INTO W_BOOK.
*NEW-PAGE .
WRITE 😕 W_BOOK-ISBN.
ENDLOOP.
WRITE : / 'BACK'.
ENDFORM. "ISBN1
for better understanding use hot spot option for fileds for which u wanna to click to navigate for next level
if helpful reward some points.
with regards,
suresh babu aluri.
‎2007 May 09 1:11 PM
no it is not working.. it showing run time error if i do your code. please can yu check it..
‎2007 May 09 1:44 PM
Hi,
Try like this.You got to put the basic list above the at line-selection event and
below the Start-of-selection event.
DATA : I_BOOK TYPE STANDARD TABLE OF ZBOOKINFO,
W_BOOK TYPE ZBOOKINFO.
START-OF-SELECTION.
write : / 'BOOK DETAILS'.
WRITE: 'SY-LSIND:', sy-lsind.
skip.
write : /'ISBN'.
WRITE : /'BOOK_NAME'.
WRITE : /'AUTHOR_NAME'.
WRITE : /'PUBLISHER_NAME'.
WRITE : /'COST'.
PERFORM BOOK.
TOP-OF-PAGE DURING LINE-SELECTION.
case sy-lsind.
when 1.
WRITE 'LIST OF BOOK DETAILS'.
ULINE.
when 2.
write 'list of isbn'.
uline.
when 3.
write ' list of books'.
endcase.
AT LINE-SELECTION.
IF SY-LISEL = 'ISBN'.
PERFORM ISBN1.
ENDIF.
FORM ISBN1.
SELECT ISBN
FROM ZBOOKINFO
INTO CORRESPONDING FIELDS OF TABLE I_BOOK.
LOOP AT I_BOOK INTO W_BOOK.
NEW-PAGE .
WRITE 😕 W_BOOK-ISBN.
ENDLOOP.
WRITE : / 'BACK'.
ENDFORM. "ISBN1