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

sample selectionscreen program

Former Member
0 Likes
708

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 .

5 REPLIES 5
Read only

Former Member
0 Likes
652

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

Read only

former_member386202
Active Contributor
0 Likes
652

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

Read only

Former Member
0 Likes
652

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.

Read only

Former Member
0 Likes
652

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.

Read only

Former Member
0 Likes
652

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