‎2007 Nov 29 6:25 AM
hi can anyone give me any sample code for data retrival from tables , according to the input in selection screen.
my requirement is , if no select option field is obligatory , and if dont directly use a inner join. how do i get the data .
‎2007 Nov 29 6:30 AM
Hi,
Can you please be more specific with your requirement.
you can simply use select statements to retrieve data from the data tables. Also there is no need for joins.
Regards,
Himanshu
‎2007 Nov 29 6:33 AM
Hi,
refer this code
&----
*& Form SUB_READ_VBRK
&----
text
----
FORM sub_read_vbrk.
SELECT vbeln
rplnr
bukrs
FROM vbrk
INTO TABLE it_vbrk
WHERE vbeln IN s_vbeln
AND rplnr NE ' '.
IF sy-subrc EQ 0.
SORT it_vbrk BY rplnr.
ENDIF.
ENDFORM. " SUB_READ_VBRK
&----
*& Form SUB_READ_FPLTC
&----
text
----
FORM sub_read_fpltc.
IF NOT it_vbrk[] IS INITIAL.
SELECT fplnr
fpltr
ccnum
FROM fpltc
INTO TABLE it_fpltc
FOR ALL ENTRIES IN it_vbrk
WHERE fplnr EQ it_vbrk-rplnr
AND ccins EQ 'GIFC'.
IF sy-subrc EQ 0.
SORT it_fpltc BY fplnr.
ENDIF.
ENDIF.
ENDFORM. " SUB_READ_FPLTC
&----
*& Form SUB_COLLECT_DATA
&----
text
----
FORM sub_collect_data.
*--Local variables
DATA : lv_count(3) TYPE c.
IF NOT it_fpltc[] IS INITIAL.
LOOP AT it_fpltc INTO wa_fpltc.
lv_count = wa_fpltc-fpltr+3(3).
wa_final-ccnum = wa_fpltc-ccnum.
wa_final-rfzei = lv_count.
CLEAR : wa_vbrk.
READ TABLE it_vbrk INTO wa_vbrk WITH KEY rplnr = wa_fpltc-fplnr
BINARY SEARCH.
IF sy-subrc EQ 0.
wa_final-vbeln = wa_vbrk-vbeln.
wa_final-bukrs = wa_vbrk-bukrs.
ENDIF.
APPEND wa_final TO it_final.
CLEAR : wa_vbrk,
wa_fpltc,
lv_count.
ENDLOOP.
ENDIF.
ENDFORM. " SUB_COLLECT_DATA
Regards,
Prashant
‎2007 Nov 29 6:35 AM
HI
use for allentries option in that case
&----
*& Report ZNNR_REPORT
*&
&----
*&
*&
&----
REPORT ZNNR_REPORT NO STANDARD PAGE HEADING MESSAGE-ID ZNNR LINE-SIZE 100 LINE-COUNT 65(4).
******DATA DECLARATIONS**********
DATA : BEGIN OF IT_PLANT OCCURS 0,
MATNR LIKE MARA-MATNR,
WERKS LIKE MARC-WERKS,
PSTAT LIKE MARC-PSTAT,
EKGRP LIKE MARC-EKGRP,
END OF IT_PLANT.
DATA : BEGIN OF IT_PONO OCCURS 0,
EBELN LIKE EKKO-EBELN,
EBELP LIKE EKPO-EBELP,
MATNR LIKE EKPO-MATNR,
WERKS LIKE EKPO-WERKS,
LGORT LIKE EKPO-LGORT,
END OF IT_PONO.
TABLES EKKO.
********END OF DATA DECLARATIONS*********
********SELECTION SCREEN DESIGN ***********
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETER : P_WERKS LIKE MARC-WERKS MODIF ID S1.
SELECT-OPTIONS : S_EBELN FOR EKKO-EBELN NO INTERVALS MODIF ID S2.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-004.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : R1 RADIOBUTTON GROUP G1 DEFAULT 'X'.
SELECTION-SCREEN COMMENT 5(20) TEXT-002 FOR FIELD R1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : R2 RADIOBUTTON GROUP G1.
SELECTION-SCREEN COMMENT 5(20) TEXT-003 FOR FIELD R2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B2.
******END OF SELECTION SCREEN DESIGN****************
*********INITIALIZATION OF SELECTION SCREEN ELEMENTS.*****
INITIALIZATION.
P_WERKS = '1000'.
S_EBELN-LOW = '4500016926'.
S_EBELN-OPTION = 'EQ'.
S_EBELN-SIGN = 'I'.
APPEND S_EBELN.
CLEAR S_EBELN.
************END OF INITIALIZATION***********************
***********SCREEN MODIFICATIONS*******************
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF R1 EQ 'X' AND SCREEN-GROUP1 EQ 'S2'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
IF R2 EQ 'X' AND SCREEN-GROUP1 EQ 'S1'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
********END OF SCREEN MODIFICATIONS*****************
***************SCREEN VALIDATIONS *****************
at selection-screen.
SELECT SINGLE *
FROM EKKO
INTO EKKO
WHERE EBELN IN S_EBELN.
IF SY-SUBRC <> 0.
SET CURSOR FIELD 'S_EBELN-LOW'.
MESSAGE E999 WITH TEXT-005.
ENDIF.
********end of screen validation*****************
START-OF-SELECTION.
*set pf-status '100'.
IF R1 EQ 'X'.
SELECT MATNR
WERKS
PSTAT
EKGRP
FROM MARC
INTO TABLE IT_PLANT
WHERE WERKS = P_WERKS.
LOOP AT IT_PLANT.
WRITE : SY-VLINE , 2 IT_PLANT-MATNR COLOR COL_KEY,
21 SY-VLINE , 22 IT_PLANT-WERKS COLOR COL_KEY,
27 SY-VLINE ,28 IT_PLANT-PSTAT COLOR COL_NORMAL,
43 SY-VLINE ,44 IT_PLANT-EKGRP COLOR COL_NORMAL.
ENDLOOP.
ENDIF.
IF R2 EQ 'X'.
SELECT EBELN EBELP MATNR WERKS LGORT
FROM EKPO
INTO TABLE IT_PONO
WHERE EBELN IN S_EBELN.
LOOP AT IT_PONO.
WRITE : SY-VLINE , 2 IT_PONO-EBELN COLOR COL_KEY,
12 SY-VLINE , 13 IT_PONO-EBELP COLOR COL_KEY,
18 SY-VLINE , 19 IT_PONO-MATNR COLOR COL_NORMAL,
37 SY-VLINE , 38 IT_PONO-WERKS COLOR COL_NORMAL,
44 SY-VLINE , 45 IT_PONO-LGORT COLOR COL_NORMAL, 49 SY-VLINE..
ENDLOOP.
ENDIF.
TOP-OF-PAGE.
IF R1 EQ 'X'.
*ULINE AT /1(48).
WRITE : SY-VLINE ,2 'MATERIAL NUMBER',
21 SY-VLINE , 22 'PLANT',
27 SY-VLINE , 28 'STATUS',
43 SY-VLINE , 44 'GRUP', 48 SY-VLINE.
ULINE AT /1(48).
ENDIF.
IF R2 EQ 'X'.
WRITE : SY-VLINE , 2 'PO NUMBER',
12 SY-VLINE, 13 'ITEM',
18 SY-VLINE,19 'MATERIAL NUMBER',
37 SY-VLINE, 38 'PLANT',
44 SY-VLINE, 45 'GRUP',
49 SY-VLINE.
ULINE AT /1(50).
ENDIF.
END-OF-PAGE.
ULINE AT /1(50).
WRITE :/10 'PAGE NUMBER', SY-PAGNO.
‎2007 Nov 29 6:36 AM
data:it type standard table of kna1,
wa type kna1.
select-option p_kunnr for kunnr obligatory.
select * into correponding fields of table itab from kna1 where kunr = p_kunnr.
loop at itab into wa.
write:wa-kunnr.
endloop.
‎2007 Nov 29 7:04 AM
Hi,
I am giving the sample code of interactive report.
TABLES: kna1, "General Data in Customer Master
vbak, "Sales Document: Header Data
vbap. "Sales Document: Item Data
TYPES: BEGIN OF t_kna1,
kunnr LIKE kna1-kunnr,
name1 LIKE kna1-name1,
END OF t_kna1.
TYPES: BEGIN OF t_vbak,
vbeln LIKE vbak-vbeln,
erdat LIKE vbak-erdat,
ernam LIKE vbak-ernam,
auart LIKE vbak-auart,
END OF t_vbak.
TYPES: BEGIN OF t_vbap,
vbeln LIKE vbap-vbeln,
posnr LIKE vbap-posnr,
matnr LIKE vbap-matnr,
matkl LIKE vbap-matkl,
netwr LIKE vbap-netwr,
END OF t_vbap.
DATA: BEGIN OF git_kna1 OCCURS 0,
kunnr LIKE kna1-kunnr,
END OF git_kna1.
DATA: it_kna1 TYPE STANDARD TABLE OF t_kna1,
wa_kna1 LIKE LINE OF it_kna1,
it_vbak TYPE STANDARD TABLE OF t_vbak,
wa_vbak LIKE LINE OF it_vbak,
it_vbap TYPE STANDARD TABLE OF t_vbap,
wa_vbap LIKE LINE OF it_vbap.
&----
*& Selection screen
&----
SELECTION-SCREEN: BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: so_kunnr FOR kna1-kunnr obligatory.
PARAMETERS : p_nohits(5) TYPE n.
SELECTION-SCREEN: END OF BLOCK blk1.
&----
*& start of selection
&----
START-OF-SELECTION.
SELECT kunnr
FROM kna1 INTO TABLE git_kna1
WHERE kunnr IN so_kunnr.
IF git_kna1[] IS INITIAL.
MESSAGE i000(0) WITH 'Record not found.'.
exit.
ENDIF.
PERFORM select_customer_data.
&----
*& end of selection
&----
END-OF-SELECTION.
PERFORM display_customer_data.
&----
*& at line selection
&----
AT LINE-SELECTION.
CASE sy-lsind.
WHEN 1.
PERFORM get_header_data.
WHEN 2.
PERFORM get_item_data.
ENDCASE.
&----
*& Form select_customer_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM select_customer_data .
CLEAR: it_kna1[],
wa_kna1.
SELECT kunnr
name1
INTO TABLE it_kna1 UP TO p_nohits ROWS
FROM kna1
WHERE kunnr IN so_kunnr.
*perform display_customer_data.
ENDFORM. " select_customer_data
&----
*& Form display_customer_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM display_customer_data .
SKIP 2.
ULINE AT /(62).
WRITE: / sy-vline, 'Customer No', 15 sy-vline,
'Customer Name', 62 sy-vline.
ULINE AT /(62).
LOOP AT it_kna1 INTO wa_kna1.
WRITE:/ sy-vline, wa_kna1-kunnr UNDER 'Customer No', 15 sy-vline,
wa_kna1-name1 UNDER 'Customer Name', 62 sy-vline.
HIDE: wa_kna1-kunnr.
ENDLOOP.
ULINE AT /(62).
ENDFORM. " display_customer_data
&----
*& Form get_header_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM get_header_data .
SELECT vbeln
erdat
ernam
auart
FROM vbak INTO TABLE it_vbak
WHERE kunnr EQ wa_kna1-kunnr.
PERFORM display_header_data.
ENDFORM. " get_header_data
&----
*& Form display_header_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM display_header_data .
ULINE AT /(65).
WRITE:/ sy-vline, 'SD Number', 20 sy-vline, 22 'Created On', 35 sy-vline, 37 'Created By', 50 sy-vline, 52 'Document Type', 65 sy-vline.
ULINE AT /(65).
LOOP AT it_vbak INTO wa_vbak.
WRITE:/ sy-vline, wa_vbak-vbeln UNDER 'SD Number', 20 sy-vline, wa_vbak-erdat UNDER 'Created On',
35 sy-vline, wa_vbak-ernam UNDER 'Created By', 50 sy-vline, wa_vbak-auart UNDER 'Document Type', 65 sy-vline.
HIDE : wa_vbak-vbeln.
ENDLOOP.
ULINE AT /(65).
ENDFORM. " display_header_data
&----
*& Form get_item_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM get_item_data .
SELECT vbeln
posnr
matnr
matkl
netwr
FROM vbap
INTO TABLE it_vbap
WHERE vbeln = wa_vbak-vbeln.
PERFORM disp_item_data.
ENDFORM. " get_item_data
&----
*& Form disp_item_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM disp_item_data .
DATA: sum(10) TYPE p DECIMALS 2.
sum = 0.
WRITE:/ 'Customer No.', wa_kna1-kunnr, 'Sales Document No:', wa_vbak-vbeln.
ULINE AT /(72).
WRITE:/ sy-vline, 'Item Number', 15 sy-vline, 17 'Material No', 30 sy-vline, 32 'Material Group.', 48 sy-vline, 50 'Net Value', 72 sy-vline.
64 'Net Value', 90 sy-vline.
ULINE AT /(72).
LOOP AT it_vbap INTO wa_vbap.
WRITE:/ sy-vline, wa_vbap-posnr UNDER 'Item Number', 15 sy-vline, wa_vbap-matnr UNDER 'Material No.', 30 sy-vline, wa_vbap-matkl UNDER 'Material Group',
48 sy-vline, wa_vbap-netwr UNDER 'Net Value', 72 sy-vline.
sum = sum + wa_vbap-netwr.
ENDLOOP.
ULINE AT /(72).
WRITE:/ 'Total Net Value is:', 50 sum.
ENDFORM. " disp_item_data
Regards,
Bhaskar