‎2008 Jan 02 10:05 AM
Please gimme an example of for all entries for three tables with out using join statement !
‎2008 Jan 02 10:11 AM
Hi,
Check out this code.
FIELD-SYMBOLS: <fs_cont> TYPE ty_cont,
<fs_contract> TYPE ty_contract.
REFRESH: lt_contract,lt_cont,lt_project1,lt_veda.
CHECK lt_project[] IS NOT INITIAL.
lt_project1[] = lt_project[].
DELETE lt_project1 WHERE aufnr IS INITIAL.
SELECT vbeln posnr netwr aufnr waerk
FROM vbap
INTO TABLE lt_contract
FOR ALL ENTRIES IN lt_project1
WHERE aufnr = lt_project1-aufnr.
IF sy-subrc = 0.
SORT lt_contract BY vbeln posnr.
SELECT vbeln kunnr vsbed auart
FROM vbak
INTO TABLE lt_cont
FOR ALL ENTRIES IN lt_contract
WHERE vbeln = lt_contract-vbeln.
IF sy-subrc = 0.
SELECT kunnr name1
FROM kna1
INTO TABLE lt_kna1
FOR ALL ENTRIES IN lt_cont
WHERE kunnr = lt_cont-kunnr.
SELECT vbeln vbegdat venddat
FROM veda
INTO TABLE lt_veda
FOR ALL ENTRIES IN lt_cont
WHERE vbeln = lt_cont-vbeln.
IF sy-subrc = 0.
LOOP AT lt_cont ASSIGNING <fs_cont>.
CLEAR lw_veda.
READ TABLE lt_veda INTO lw_veda WITH KEY
vbeln = <fs_cont>-vbeln.
IF sy-subrc = 0.
<fs_cont>-vbegdat = lw_veda-vbegdat.
<fs_cont>-venddat = lw_veda-venddat.
ENDIF.
CLEAR lw_kna1.
READ TABLE lt_kna1 INTO lw_kna1 WITH KEY
kunnr = <fs_cont>-kunnr.
IF sy-subrc = 0.
<fs_cont>-name1 = lw_kna1-name1.
ENDIF.
ENDLOOP.
LOOP AT lt_contract ASSIGNING <fs_contract>.
CLEAR lw_cont.
READ TABLE lt_cont INTO lw_cont WITH KEY
vbeln = <fs_contract>-vbeln.
IF sy-subrc = 0.
<fs_contract>-kunnr = lw_cont-kunnr.
<fs_contract>-vsbed = lw_cont-vsbed.
<fs_contract>-vbegdat = lw_cont-vbegdat.
<fs_contract>-venddat = lw_cont-venddat.
<fs_contract>-name1 = lw_cont-name1.
<fs_contract>-auart = lw_cont-auart.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
‎2008 Jan 02 10:12 AM
hi jyotir,
try this one.
&----
*& Report ZSURINNERJOIN
*&
&----
*&
*&
&----
REPORT ZSURINNERJOIN message-id z_message.
TYPES: BEGIN OF TYP_STU,
Z_STUDID TYPE I,
Z_STUDENTNAME TYPE ZSTUD2-Z_STUDENTNAME,
ZADDRESS TYPE ZEMPDETAIL-ZADDRESS,
END OF TYP_STU.
TYPE-POOLS SLIS.
DATA: IT_STU TYPE STANDARD TABLE OF TYP_STU,
WA_STU TYPE TYP_STU.
DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
GT_SORT TYPE SLIS_T_SORTINFO_ALV,
GW_SORT TYPE SLIS_SORTINFO_ALV,
GT_LAYOUT TYPE SLIS_LAYOUT_ALV,
GT_HEADING TYPE SLIS_T_LISTHEADER,
GT_COLOR TYPE SLIS_SPECIALCOL_ALV,
GT_EVENT TYPE SLIS_T_EVENT.
TABLES: ZSTUD1, ZSTUD2, ZEMPDETAIL.
PARAMETER: STUDENT TYPE ZSTUD1-Z_STUDID.
INITIALIZATION.
select-options STUDENT for zstud1-z_studid.
START-OF-SELECTION.
PERFORM DISPLAY.
PERFORM SETHEADER USING GT_HEADING GT_EVENT.
perform get_data.
PERFORM GETSORT.
PERFORM GETLAYOUT.
perform get_fieldcatlog.
perform display_list.
TOP-OF-PAGE .
WRITE / 'STUDENT DETAILS'.
ULINE.
FORM DISPLAY.
SELECT AZ_STUDID BZ_STUDENTNAME C~ZADDRESS
INTO TABLE IT_STU
FROM ( ( ZSTUD1 AS A
INNER JOIN ZSTUD2 AS B
ON AZ_STUDID = BZ_STUDID )
INNER JOIN ZEMPDETAIL AS C
ON AZ_STUDID = CZEMPID
AND CZEMPID = BZ_STUDID )
WHERE A~Z_STUDID IN STUDENT.
IF SY-SUBRC <> 0.
MESSAGE E001.
ELSE.
LOOP AT IT_STU INTO WA_STU.
WRITE : / WA_STU-Z_STUDID, WA_STU-Z_STUDENTNAME, WA_STU-ZADDRESS.
ENDLOOP.
ENDIF.
ENDFORM.
END-OF-PAGE.
&----
*& Form SETHEADER
&----
text
----
-->P_GT_HEADING text
-->P_GT_EVENT text
----
FORM SETHEADER USING P_GT_HEADING
P_GT_EVENT.
DATA : GW_HEADING TYPE SLIS_LISTHEADER,
GW_EVENT TYPE SLIS_ALV_EVENT.
CLEAR : GW_HEADING,
GW_EVENT.
GW_HEADING-TYP = 'H'.
GW_HEADING-INFO = 'A SIMPLE GRID DISPLAY'.
APPEND GW_HEADING TO GT_HEADING.
CLEAR GW_HEADING.
GW_HEADING-TYP = 'S'.
GW_HEADING-KEY = 'Program Name : '.
GW_HEADING-INFO = SY-REPID.
APPEND GW_HEADING TO GT_HEADING.
CLEAR GW_HEADING.
GW_HEADING-TYP = 'S'.
GW_HEADING-KEY = 'User Name : '.
GW_HEADING-INFO = SY-UNAME.
APPEND GW_HEADING TO GT_HEADING.
CLEAR GW_HEADING.
GW_HEADING-TYP = 'S'.
GW_HEADING-KEY = 'Date : '.
*GW_HEADING-INFO = SY-DATUM.
WRITE SY-DATUM TO GW_HEADING-INFO.
APPEND GW_HEADING TO GT_HEADING.
CLEAR GW_HEADING.
GW_HEADING-TYP = 'S'.
GW_HEADING-KEY = 'Time : '.
GW_HEADING-INFO = SY-UZEIT.
APPEND GW_HEADING TO GT_HEADING.
CLEAR GW_EVENT.
GW_EVENT-NAME = SLIS_EV_TOP_OF_PAGE .
GW_EVENT-FORM = 'TOP_OF_PAGE'.
APPEND GW_EVENT TO GT_EVENT.
ENDFORM. " SETHEADER
&---------------------------------------------------------------------
*& Form GETSORT
&----
text
----
--> p1 text
<-- p2 text
----
FORM GETSORT .
CLEAR GT_SORT.
GW_SORT-FIELDNAME = 'ZADDRESS'.
GW_SORT-TABNAME = '1'.
GW_SORT-SPOS = '1'.
GW_SORT-UP = 'X'.
GW_SORT-SUBTOT = 'X'.
APPEND GW_SORT TO GT_SORT.
ENDFORM. " GETSORT
&----
*& Form get_fieldcatlog
&----
text
----
--> p1 text
<-- p2 text
----
FORM get_fieldcatlog .
data: v_fieldcat type slis_fieldcat_alv.
data: pos type i value 1.
define field_cat.
clear v_fieldcat.
v_fieldcat-col_pos = pos.
v_fieldcat-fieldname = &1.
v_fieldcat-ref_fieldname = &2.
v_fieldcat-ref_tabname = &3.
v_fieldcat-key = &4.
V_FIELDCAT-DO_SUM = 'X'.
append v_fieldcat to it_fieldcat.
pos = pos + 1.
end-of-definition.
FIELD_CAT:
'Z_STUDID' 'Z_STUDID' 'ZSTUD1' 'X',
'Z_STUDENTNAME' 'Z_STUDENTNAME' 'ZSTUD2' 'X'.
'ZADDRESS' 'ZADDRESS' 'ZEMPDETAIL' SPACE.
CLEAR V_FIELDCAT.
V_FIELDCAT-FIELDNAME = 'Z_STUDID'.
V_FIELDCAT-DO_SUM = 'X'.
V_FIELDCAT-REF_FIELDNAME = 'Z_STUDID'.
V_FIELDCAT-REF_TABNAME = 'ZSTUD1'.
**V_FIELDCAT-SELTEXT_L = 'STUDENT ID'.
**V_FIELDCAT-SELTEXT_M = 'STUDENT ID'.
**V_FIELDCAT-SELTEXT_S = 'STUDENT ID'.
APPEND V_FIELDCAT TO IT_FIELDCAT.
CLEAR V_FIELDCAT.
V_FIELDCAT-FIELDNAME = 'ZADDRESS'.
V_FIELDCAT-SELTEXT_L = 'Employee Address'.
V_FIELDCAT-SELTEXT_M = 'Employee Address'.
V_FIELDCAT-SELTEXT_S = 'Employee Address'.
APPEND V_FIELDCAT TO IT_FIELDCAT.
ENDFORM. " get_fieldcatlog
&----
*& Form GETLAYOUT
&----
text
----
--> p1 text
<-- p2 text
----
FORM GETLAYOUT .
GT_LAYOUT-NO_INPUT = 'X'.
GT_LAYOUT-ZEBRA = 'X'.
GT_LAYOUT-WINDOW_TITLEBAR = 'STUDENTS INFORMATION'.
ENDFORM. " GETLAYOUT
&----
*& Form display_list
&----
text
----
--> p1 text
<-- p2 text
----
FORM display_list .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE = 'SIMPLE GRID DISPLAY'
I_GRID_SETTINGS =
IS_LAYOUT = GT_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT = GT_SORT
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = GT_EVENT
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_STU
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.
ENDFORM. " display_list
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = GT_HEADING
I_LOGO =
I_END_OF_LIST_GRID =
I_ALV_FORM =
.
ENDFORM.
rgds,
guna.
‎2008 Jan 02 10:13 AM
Hi.
Check this.
data: begin of i_matnr occurs 0,
matnr type matnr,
end of i_matnr,
i_marc like marc occurs 0 with header line.
select matnr from mara
into corresponding fields of table i_matnr.
if not i_matnr[] is initial.
select * from marc
for all entries in i_matnr
into corresponding fields of table i_marc
where matnr = i_matnr-matnr.
endif.
...and so ... on....
NOTE that IF I_MATNR table is empty, the select in MARC will return EVERYTHING as in this case the "for all entries " will be executed as if you had the following:
select-options: s_matnr for mara-matnr.
select * from marc
into corresponding fields of table i_marc
where matnr = s_matnr.
Reward if helpful,
Regards,
George
‎2008 Jan 02 10:16 AM
Hi,
Below given simple example for your reqt.
************************************************************
REPORT zstemp_qty2_ .
TABLES:mara.
DATA:it_makt LIKE makt OCCURS 0 WITH HEADER LINE.
DATA:it_ekko LIKE ekko OCCURS 0 WITH HEADER LINE.
DATA:it_ekpo LIKE ekpo OCCURS 0 WITH HEADER LINE.
START-OF-SELECTION.
SELECT * FROM ekko INTO TABLE it_ekko
UP TO 100 ROWS.
IF NOT it_ekko[] IS INITIAL.
SELECT * FROM ekpo INTO TABLE it_ekpo
FOR ALL ENTRIES IN it_ekko
WHERE ebeln = it_ekko-ebeln.
ENDIF.
SORT it_ekpo BY ebeln.
DELETE ADJACENT DUPLICATES FROM it_ekpo COMPARING ebeln.
IF NOT it_ekpo[] IS INITIAL.
SELECT * FROM makt INTO TABLE it_makt
FOR ALL ENTRIES IN it_ekpo
WHERE matnr = it_ekpo-matnr.
ENDIF.
LOOP AT it_makt.
WRITE:/ it_makt-matnr,it_makt-maktx.
ENDLOOP.
****************************************
Regds
Sivaparvatrhi
Please dont forget to reward points if helpful
‎2008 Jan 02 10:23 AM
check this...
SELECT vbeln
posnr
bstkd
bstdk
inco1
inco2
zterm
lcnum
prsdt
FROM vbkd
INTO TABLE i_vbkd
FOR ALL ENTRIES IN i_vbak1
WHERE vbeln EQ i_vbak1-vbeln.
SELECT spras
zterm
vtext
FROM tvzbt
INTO TABLE i_tvzbt
FOR ALL ENTRIES IN i_vbkd
WHERE zterm EQ i_vbkd-zterm
AND spras EQ 'EN'.
‎2008 Jan 02 10:24 AM
Hi,
Please chk the following code. In Form get_data routine you find the FOR ALL ENTRIES .
&----
*& Report Z_50797_SD_REPT_ASSIGNMENT1
&----
REPORT Z_50797_SD_REPT_ASSIGNMENT1 LINE-SIZE 85
NO STANDARD PAGE HEADING
MESSAGE-ID ZKVS.
*-----TABLES DECLARATION
TABLES : KNA1. "Customer Master
VBAK, "Sales Document Header
VBAP, "Sales Document Item
SSCRFIELDS. "Screen Field Table
&----
*& TYPES DECARATION *
&----
*----- Types declaration for kna1
TYPES : BEGIN OF ST_KNA1,
KUNNR TYPE KNA1-KUNNR, "Customer Number
LAND1 TYPE KNA1-LAND1, "Country Key
NAME1 TYPE KNA1-NAME1, "Name
ORT01 TYPE KNA1-ORT01, "City
END OF ST_KNA1.
*------ Types declaration for kna2
TYPES : BEGIN OF ST_KNA2,
KUNNR TYPE KNA1-KUNNR, "Customer Number
LAND1 TYPE KNA1-LAND1, "Country Key
NAME1 TYPE KNA1-NAME1, "Name
ORT01 TYPE KNA1-ORT01, "City
END OF ST_KNA2.
*----- Types declaration for vbak
TYPES : BEGIN OF ST_VBAK,
KUNNR TYPE VBAK-KUNNR, "Customer Number
VBELN TYPE VBAK-VBELN, "Sales Document
ERDAT TYPE VBAK-ERDAT, "Date
ERNAM TYPE VBAK-ERNAM, "Name of Person
AUART TYPE VBAK-AUART, "Sales Document Type
END OF ST_VBAK.
*----- Types declaration for vbap
TYPES : BEGIN OF ST_VBAP,
VBELN TYPE VBAP-VBELN, "Sales Document
POSNR TYPE VBAP-POSNR, "Sales Document Item
MATNR TYPE VBAP-MATNR, "Material Number
MATKL TYPE VBAP-MATKL, "Material group
END OF ST_VBAP.
*----- Internal Table Declaration
DATA : IT_KNA1 TYPE STANDARD TABLE OF ST_KNA1,
IT_KNA2 TYPE STANDARD TABLE OF ST_KNA2,
IT_VBAP TYPE STANDARD TABLE OF ST_VBAP,
IT_VBAK TYPE STANDARD TABLE OF ST_VBAK.
*------ Work Area Declaration
DATA : WA_KNA1 LIKE LINE OF IT_KNA1,
WA_KNA2 LIKE LINE OF IT_KNA2,
WA_VBAK LIKE LINE OF IT_VBAK,
WA_VBAP LIKE LINE OF IT_VBAP.
*----- Constants Declaration
DATA : V_COUNT TYPE INT4, "Current Row Index
V_LINE LIKE SY-LISEL, "Contents of selected line
V_LINE1 LIKE SY-LISEL, "Contents of selected line
v_lilli like sy-lilli, "Line no where the action is fired
V_KUNNR(10),
V_VBELN(10),
V_FLD(20).
*----- Selection Screen
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
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.
SELECT-OPTIONS : SO_KUNNR FOR KNA1-KUNNR OBLIGATORY.
PARAMETERS : P_HITS(3) TYPE C.
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.
PARAMETERS: P_FILE TYPE RLGRAP-FILENAME DEFAULT 'c:\test'.
SELECTION-SCREEN PUSHBUTTON /33(10) CUSTL USER-COMMAND PUSH1.
SELECTION-SCREEN PUSHBUTTON 58(10) CUSTD USER-COMMAND PUSH2.
SELECTION-SCREEN END OF BLOCK B1.
*-----Initialization
INITIALIZATION.
MOVE 'LOAD' TO CUSTL.
MOVE 'DISP' TO CUSTD.
*------At Selection screen
AT SELECTION-SCREEN.
PERFORM VALIDATE_KUNNR.
*------At Selection Screen on Value Request
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
*------Function module to get flle from presentation server
*
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
FILE_NAME = P_FILE.
*------ Start of Selection
START-OF-SELECTION.
*SET PF-STATUS 'KVS2'.
PERFORM GET_DATA.
IF SY-SUBRC = 0.
LOOP AT IT_KNA2 INTO WA_KNA2.
WRITE : /1 SY-VLINE,
2 WA_KNA2-KUNNR,
14 SY-VLINE,
16 WA_KNA2-LAND1,
25 SY-VLINE,
26 WA_KNA2-NAME1,
42 SY-VLINE,
43 WA_KNA2-ORT01,
60 SY-VLINE.
ULINE AT :/1(60).
ENDLOOP.
CLEAR WA_KNA2.
ELSE.
MESSAGE 'NO RECORDS FOUND'(020) TYPE 'I'.
ENDIF.
*------ Top of Page
TOP-OF-PAGE.
*------Function Module to get title
CALL FUNCTION 'ZLINE_PARAMETER'
EXPORTING
P_LINEWIDTH = 85
P_TITLE = SY-TITLE.
EXCEPTIONS
INVALID_LINE_SIZE = 1
OTHERS = 2
FORMAT COLOR COL_HEADING.
ULINE AT :/1(60).
WRITE: /1 SY-VLINE,
2 'Cust Number'(006),
14 SY-VLINE,
16 'Country'(007),
25 SY-VLINE,
26 'City'(008),
42 SY-VLINE,
43 'Region'(009),
60 SY-VLINE.
ULINE AT :/1(60).
FORMAT COLOR COL_HEADING OFF.
*------- Top of page during line selection
TOP-OF-PAGE DURING LINE-SELECTION.
IF SY-LSIND EQ 1.
FORMAT COLOR COL_HEADING.
SKIP 2.
WRITE : /1 'SALES ORDER HEADER DETAILS'.
ULINE AT :/1(60).
WRITE : /1 SY-VLINE,
2 'Customer No'(010),
13 SY-VLINE,
14 'Sales Order'(011),
26 SY-VLINE,
27 'Date'(012),
38 SY-VLINE,
39 'Name'(013),
52 SY-VLINE,
53 'DType'(014),
60 SY-VLINE.
ULINE AT :/1(60).
ELSEIF
SY-LSIND EQ 2 OR SY-UCOMM EQ 'Sales'(019).
SET PF-STATUS SPACE.
FORMAT COLOR COL_HEADING.
SKIP 2.
WRITE : /1 'SALES ORDER ITEM DETAILS'.
ULINE AT : /1(60).
WRITE : /1 SY-VLINE,
2 'Docu No.'(015),
14 SY-VLINE,
16 'Sales Item'(021),
26 SY-VLINE,
27 'Mat No'(022),
42 SY-VLINE,
43 'Mat Grp'(018),
60 SY-VLINE.
ULINE AT :/1(60).
ENDIF.
*----- At line selection
AT LINE-SELECTION.
IF SY-LSIND = 1.
SET PF-STATUS 'KVS1'.
PERFORM SALES_HEADER.
ELSEIF
SY-LSIND = 2.
SET PF-STATUS SPACE.
GET CURSOR FIELD V_FLD VALUE V_VBELN.
IF V_FLD = 'WA_VBAK-VBELN'.
PERFORM SALES_ITEM.
ELSE.
MESSAGE 'Please choose Sales Document'(016) TYPE 'I'.
ENDIF.
ENDIF.
*-------At user-command
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'SALES'.
GET CURSOR FIELD V_FLD VALUE V_VBELN.
IF V_FLD = 'WA_VBAK-VBELN'.
PERFORM SALES_ITEM.
ELSE.
MESSAGE 'Please choose Sales Document'(017) TYPE 'I'.
ENDIF.
WHEN 'DISP'.
GET CURSOR FIELD V_FLD VALUE V_VBELN.
IF V_FLD = 'WA_VBAK-VBELN'.
PERFORM DISP_DOCU.
ELSE.
MESSAGE 'Please choose Sales Document'(017) TYPE 'I'.
ENDIF.
ENDCASE.
&----
*& Form VALIDATE_KUNNR
&----
FORM VALIDATE_KUNNR .
SELECT KUNNR
FROM KNA1
INTO TABLE IT_KNA1
WHERE KUNNR = SO_KUNNR.
ENDFORM. " VALIDATE_KUNNR
&----
*& Form SALES_HEADER
&----
FORM SALES_HEADER .
GET CURSOR LINE V_LILLI VALUE V_LINE.
V_KUNNR = V_LINE+1(10).
*----- This FM Converts the value
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = V_KUNNR
IMPORTING
OUTPUT = V_KUNNR.
LOOP AT IT_VBAK INTO WA_VBAK WHERE KUNNR = V_KUNNR.
WRITE : /1 SY-VLINE,
2 WA_VBAK-KUNNR,
13 SY-VLINE,
14 WA_VBAK-VBELN,
26 SY-VLINE,
27 WA_VBAK-ERDAT,
38 SY-VLINE,
39 WA_VBAK-ERNAM,
52 SY-VLINE,
53 WA_VBAK-AUART,
60 SY-VLINE.
ULINE AT :/1(60).
ENDLOOP.
IF SY-SUBRC <> 0.
MESSAGE 'NO SALES DOCUMENT FOR THE CUSTOMER'(031) TYPE 'I'.
ENDIF.
ENDFORM. " SALES_HEADER
&----
*& Form SALES_ITEM
&----
FORM SALES_ITEM.
GET CURSOR LINE V_LILLI VALUE V_LINE1.
V_VBELN = V_LINE1+13(10).
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = V_VBELN
IMPORTING
OUTPUT = V_VBELN.
LOOP AT IT_VBAP INTO WA_VBAP WHERE VBELN = V_VBELN.
WRITE : /1 SY-VLINE,
2 WA_VBAP-VBELN,
14 SY-VLINE,
16 WA_VBAP-POSNR,
26 SY-VLINE,
27 WA_VBAP-MATNR,
42 SY-VLINE,
43 WA_VBAP-MATKL,
60 SY-VLINE.
ULINE AT :/1(60).
ENDLOOP.
CLEAR WA_VBAP.
IF SY-SUBRC <> 0.
MESSAGE 'SALES ITEM DOESNOT EXIST' TYPE 'I'.
ENDIF.
ENDFORM. " SALES_ITEM
&----
*& Form DISP_DOCU
&----
FORM DISP_DOCU.
GET CURSOR LINE V_LILLI VALUE V_LINE.
V_KUNNR = V_LINE+1(10).
V_VBELN = V_LINE+13(10).
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = V_KUNNR
IMPORTING
OUTPUT = V_KUNNR.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = V_VBELN
IMPORTING
OUTPUT = V_VBELN.
READ TABLE IT_VBAK INTO WA_VBAK WITH KEY VBELN = V_VBELN.
SET PARAMETER ID 'AUN' FIELD WA_VBAK-VBELN.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
ENDFORM. " DISP_DOCU
&----
*& Form get_data
&----
FORM GET_DATA.
SELECT KUNNR LAND1 NAME1 ORT01
FROM KNA1
INTO TABLE IT_KNA1
WHERE KUNNR IN SO_KUNNR.
IF SY-SUBRC <> 0.
MESSAGE 'NO DATA FOR THE SELECTION' TYPE 'I'.
ELSE.
LOOP AT IT_KNA1 INTO WA_KNA1.
V_COUNT = V_COUNT + 1.
IF V_COUNT <= P_HITS.
MOVE WA_KNA1 TO WA_KNA2.
APPEND WA_KNA2 TO IT_KNA2.
ELSE.
EXIT.
ENDIF.
ENDLOOP.
ENDIF.
IF NOT IT_KNA2[] IS INITIAL.
SELECT KUNNR VBELN ERDAT ERNAM AUART
FROM VBAK
INTO TABLE IT_VBAK
FOR ALL ENTRIES IN IT_KNA2
WHERE KUNNR = IT_KNA2-KUNNR.
IF NOT IT_VBAK[] IS INITIAL.
SELECT VBELN POSNR MATNR MATKL
FROM VBAP
INTO TABLE IT_VBAP
FOR ALL ENTRIES IN IT_VBAK
WHERE VBELN = IT_VBAK-VBELN.
ENDIF.
ENDIF.
ENDFORM. "GET_DATA