SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Purchase Order by vendor reports



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ММ
View previous topic :: View next topic  
Author Message
admin
Администратор
Администратор



Joined: 01 Sep 2007
Posts: 1639

PostPosted: Thu Oct 11, 2007 11:30 pm    Post subject: Purchase Order by vendor reports Reply with quote

Code:
TABLES: ekbz,ekpo,lfa1,makt,mara.

************************************************************************
***
*DECLARATION PART *
************************************************************************
***



DATA : total LIKE ekbz-dmbtr.

TYPES: BEGIN OF fds,
lifnr LIKE ekbz-lifnr, "Vendor Number
waers LIKE ekbz-waers, "Currency
ebeln LIKE ekbz-ebeln, "Purchase Document Number
ebelp LIKE ekbz-ebelp, "Item Number of Purchasing Document
belnr LIKE ekbz-belnr, "Accounting Document Number
xblnr LIKE ekbz-xblnr, "Reference Document Number
matnr LIKE ekpo-matnr, "Material Number
maktx LIKE makt-maktx, "Material Description
spras LIKE lfa1-spras, "Language Key
meins LIKE mara-meins, "Unit of Measure
dmbtr LIKE ekbz-dmbtr, "Freight amount
name1 LIKE lfa1-name1, "name1
kschl LIKE ekbz-kschl, "condition type
END OF fds.

DATA itab1 TYPE STANDARD TABLE OF fds WITH HEADER LINE.

************************************************************************
***
*INTERNAL TABLE FOR LFA1 TABLE *
************************************************************************
***


TYPES : BEGIN OF fieldst,
lifnr LIKE lfa1-lifnr,
name1 LIKE lfa1-name1,
adrnr LIKE lfa1-adrnr,
stras LIKE lfa1-stras,
pstlz LIKE lfa1-pstlz,
ort01 LIKE lfa1-ort01,
regio LIKE lfa1-regio,
pstl2 LIKE lfa1-pstl2,
END OF fieldst.

DATA itab2 TYPE TABLE OF fieldst WITH HEADER LINE.
DATA wa_itab2 LIKE LINE OF itab2.

************************************************************************
***
*SELECTION-SCREEN *
************************************************************************
***



SELECTION-SCREEN : BEGIN OF BLOCK blk WITH FRAME TITLE text-001.

SELECT-OPTIONS : s_ebeln FOR ekbz-ebeln,
s_lifnr FOR ekbz-lifnr,
s_belnr FOR ekbz-belnr,
s_xblnr FOR ekbz-xblnr.


PARAMETER p1 LIKE ekbz-vgabe DEFAULT '1'.

SELECTION-SCREEN : END OF BLOCK blk.

************************************************************************
***
*FETCHING RECORDS FROM EKBZ EKPO MAKT MARA TABLES *
************************************************************************
***

START-OF-SELECTION.

PERFORM selectdata.

END-OF-SELECTION.


************************************************************************
*******
LOOP AT itab1.

WRITE:/ itab1-lifnr HOTSPOT ON, 10 sy-vline,
itab1-waers, 25 sy-vline,
itab1-xblnr, 39 sy-vline,
itab1-belnr, 52 sy-vline,
itab1-ebelp, 60 sy-vline,
itab1-ebeln, 72 sy-vline,
76 itab1-matnr, 87 sy-vline,
91 itab1-name1, 98 sy-vline,
itab1-meins, 103 sy-vline,
107 itab1-maktx, 145 sy-vline,
149 itab1-dmbtr, 170 sy-vline.

HIDE : itab1-lifnr.

AT END OF waers.
SUM.
FORMAT COLOR 3.
ULINE (170).
WRITE: /108 '**Currency Total**', 149 itab1-dmbtr, 170 sy-vline.
FORMAT COLOR OFF.
ULINE (170).
ENDAT.


AT LAST.
FORMAT COLOR 4.
SUM.
SKIP.
ULINE (170).
WRITE: /108 '**Grand Total**' , 149 itab1-dmbtr, 170 sy-vline.
ENDAT.


ENDLOOP.

ULINE (170).


************************************************************************
***
*TOP-OF-PAGE *
************************************************************************
***


TOP-OF-PAGE.

WRITE: /40 'INTERACTIVE REPORT',
90 'DATE : ' , sy-datum.
ULINE.

WRITE: /01 'VENDOR NO' , 10 sy-vline,
12 'CURRENCY' , 25 sy-vline,
26 'REFERENCE NO' , 39 sy-vline,
41 'ACCOUNT NO' , 52 sy-vline,
53 'ITEMNO' , 60 sy-vline,
64 'PURNO' , 72 sy-vline,
74 'MATERIAL NO.' , 87 sy-vline,
91 'NAME1' , 98 sy-vline,
99 'UNIT' , 103 sy-vline,
112 'MATERIAL DESCRIPTION' , 145 sy-vline,
150 'FREIGHT AMT' , 170 sy-vline.
ULINE.



************************************************************************
***
*AT-LINE-SELECTION *
************************************************************************
***



AT LINE-SELECTION.


READ TABLE itab2 INTO wa_itab2 WITH KEY
lifnr = itab1-lifnr.
WRITE :/01 sy-vline,
02 wa_itab2-name1, 21 sy-vline,
25 wa_itab2-adrnr, 32 sy-vline,
wa_itab2-stras, 44 sy-vline,
wa_itab2-pstlz, 56 sy-vline,
wa_itab2-ort01, 68 sy-vline,
wa_itab2-regio, 80 sy-vline,
wa_itab2-pstl2, 89 sy-vline.
ULINE /1(89).

************************************************************************
***
*TOP-OF-PAGE DURING AT LINE-SELCTION *
************************************************************************
***


TOP-OF-PAGE DURING LINE-SELECTION.
ULINE 1(89).
WRITE: /01 sy-vline, 30 'INTERACTIVE REPORT',
60 sy-datum, 89 sy-vline.
ULINE /1(89).

SKIP.
ULINE 1(89).
WRITE:/01 sy-vline,
07 'Name' , 21 sy-vline,
23 'Address1', 32 sy-vline,
34 'Address2', 44 sy-vline,
46 'pobox' , 56 sy-vline,
58 'city' , 68 sy-vline,
70 'state' , 80 sy-vline,
82 'pin code', 89 sy-vline.
ULINE /1(89).

************************************************************************
*****
*FETCHING RECORDS FROM DATABASE TABLE *
************************************************************************
*****

FORM selectdata.

SELECT ekbz~ebeln ekbz~waers ekbz~ebelp ekbz~belnr ekbz~xblnr
ekpo~matnr makt~maktx mara~meins ekbz~dmbtr ekbz~lifnr
lfa1~name1 INTO CORRESPONDING FIELDS OF TABLE itab1
FROM ( ( ( ( ekbz INNER JOIN ekpo ON ekbz~ebeln = ekpo~ebeln
AND ekbz~ebelp = ekpo~ebelp )
INNER JOIN lfa1 ON ekbz~lifnr = lfa1~lifnr )
INNER JOIN makt ON lfa1~spras = makt~spras )
INNER JOIN mara ON mara~matnr = makt~matnr
AND
mara~matnr = ekpo~matnr )
WHERE ekbz~ebeln IN s_ebeln AND
ekbz~lifnr IN s_lifnr AND
ekbz~belnr IN s_belnr AND
ekbz~xblnr IN s_xblnr AND
ekbz~kschl BETWEEN 'FRA1' AND 'FRC3' AND
vgabe EQ p1.


SORT itab1 BY lifnr waers.


IF NOT itab1[] IS INITIAL.

SELECT lifnr name1 adrnr stras pstlz ort01 regio pstl2
FROM lfa1 INTO TABLE itab2
FOR ALL ENTRIES IN itab1 WHERE lifnr = itab1-lifnr.

ENDIF.
ENDFORM. "selectdata


Code:

*&---------------------------------------------------------------------*
*& Report ZMM_PO_REPORT
*&---------------------------------------------------------------------*
REPORT ZMM_PO_REPORT message-Id yb
NO STANDARD PAGE HEADING
LINE-COUNT 60(1)
LINE-SIZE 230.

************************************************************************
* D A T A B A S E T A B L E S D E C L A R A T I O N
************************************************************************
TABLES: lfa1, " Vendor Master
t161, " PO Doc Types
t024, " Purchase Groups
ekko. " PO Header

************************************************************************
* T Y P E S D E C L A R A T I O N S
************************************************************************
* Purchase Orders Main Structure
TYPES: BEGIN OF s_po,
ebeln TYPE ebeln, " PO No.
ebelp TYPE ebelp, " PO Item
bstyp TYPE bstyp, " PO Category
bukrs TYPE bukrs, " Company Code
bsart TYPE bbsrt, " PO Type
lifnr TYPE lifnr, " Vendor No
ekgrp TYPE bkgrp, " Purchase Group
waers TYPE waers, " Currency
bedat TYPE etbdt, " PO Date
txz01 TYPE txz01, " Material Text
werks TYPE ewerk, " Plant
lgort TYPE lgort_d, " Storage Location
matkl TYPE matkl, " Material Group
menge TYPE bamng, " PR Quantity
meins TYPE bamei, " UOM
bprme TYPE bbprm, " Price Unit
netpr TYPE netpr, " Net price
peinh TYPE peinh, " Price Unit UOM
pstyp TYPE pstyp, " Item Category
knttp TYPE knttp, " Account Assignment Category
END OF s_po.

* Purchase Orders History Structure
TYPES: BEGIN OF s_account,
ebeln TYPE ebeln, " PO No.
ebelp TYPE ebelp, " PO Item
gjahr TYPE mjahr, " Fiscal Year
belnr TYPE mblnr, " PO Invoice No
menge TYPE menge_d, " PR Quantity
wrbtr TYPE wrbtr, " Price in Local Currency
dmbtr TYPE dmbtr, " Price in Foreign Currency
waers TYPE waers, " Currency
shkzg TYPE shkzg, " Dr/Cr Indicator
END OF s_account.

* Purchase Orders History Structure(Item Sum)
TYPES: BEGIN OF s_inv_sum,
ebeln TYPE ebeln, " PO No.
ebelp TYPE ebelp, " PO Item
menge TYPE menge_d, " PR Quantity
wrbtr TYPE wrbtr, " Price in Foreign Currency
waers TYPE waers, " Currency
END OF s_inv_sum.

* Purchase Orders Main Structure
TYPES: BEGIN OF s_rep,
lifnr TYPE lifnr, " Vendor No
ebeln TYPE ebeln, " PO No.
ebelp TYPE ebelp, " PO Item
bstyp TYPE bstyp, " PO Category
bsart TYPE bbsrt, " PO Type
ekgrp TYPE bkgrp, " Purchase Group
waers TYPE waers, " Currency
bedat TYPE etbdt, " PO Date
txz01 TYPE txz01, " Material Text
werks TYPE ewerk, " Plant
lgort TYPE lgort_d, " Storage Location
matkl TYPE matkl, " Material Group
menge TYPE bamng, " PR Quantity
meins TYPE bamei, " UOM
bprme TYPE bbprm, " Price Unit
netpr TYPE netpr, " Net price
peinh TYPE peinh, " Price Unit UOM
pstyp TYPE pstyp, " Item Category
knttp TYPE knttp, " Account Assignment Category
name1 TYPE name1, " Plant
orewr TYPE netpr, " To be Invoiced Price
curr TYPE waers, " Inv Doc Currency
END OF s_rep.

************************************************************************
* D A T A D E C L A R A T I O N S
************************************************************************
DATA: gv_title1 TYPE sylisel, " Report title
gv_dial. " Color flag

************************************************************************
* C O N S T A N T S D E C L A R A T I O N S
************************************************************************
CONSTANTS: c_x VALUE 'X', " Flag X
c_h VALUE 'H', " Debit
c_vgabe TYPE vgabe VALUE '2'. " Transaction Type

************************************************************************
* I N T E R N A L T A B L E S D E C L A R A T I O N S
************************************************************************
DATA: i_po TYPE STANDARD TABLE OF s_po WITH HEADER LINE,
" Purchase Order
i_inv TYPE STANDARD TABLE OF s_inv_sum WITH HEADER LINE,
" PO Invoice Values
i_rep TYPE STANDARD TABLE OF s_rep WITH HEADER LINE,
" PO Invoice Values
i_ekbe TYPE STANDARD TABLE OF s_account WITH HEADER LINE.
" PO Invoice Values

************************************************************************
* S E L E C T I O N S C R E E N *
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS: s_lifnr FOR lfa1-lifnr MATCHCODE OBJECT kred,
s_ebeln FOR ekko-ebeln MATCHCODE OBJECT mekk,
s_bsart FOR t161-bsart,
s_ekgrp FOR t024-ekgrp,
s_bedat FOR ekko-bedat.

SELECTION-SCREEN END OF BLOCK b1.

************************************************************************
* I N I T I A L I Z A T I O N *
************************************************************************
INITIALIZATION.

************************************************************************
* A T S E L E C T I O N - S C R E E N *
************************************************************************
AT SELECTION-SCREEN.
* Validate the screen fields
PERFORM validate_screen.

************************************************************************
* S T A R T - O F - S E L E C T I O N *
************************************************************************
START-OF-SELECTION.
* Fetch main data
PERFORM fetch_data.

************************************************************************
* T O P - O F - P A G E *
************************************************************************
TOP-OF-PAGE.
* Header of the List
PERFORM header.

************************************************************************
* E N D - O F - P A G E *
************************************************************************
* Footer
END-OF-PAGE.
ULINE.

************************************************************************
* E N D - O F - S E L E C T I O N *
************************************************************************
END-OF-SELECTION.
* Display the Report Output data
PERFORM display_data.

***********************************************************************
* At Line-Selection
***********************************************************************
AT LINE-SELECTION.
* When double clicked on EBELN display the details of Purchase Doc
PERFORM line_sel.

*&---------------------------------------------------------------------*
*& Form validate_screen
*&---------------------------------------------------------------------*
* Validation of Selection Screen fields
*----------------------------------------------------------------------*
FORM validate_screen .

* Validation of Vendor Number
CLEAR lfa1-lifnr.
IF NOT s_lifnr[] IS INITIAL.
SELECT lifnr UP TO 1 ROWS
INTO lfa1-lifnr
FROM lfa1
WHERE lifnr IN s_lifnr.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e000 WITH 'Invalid Vendor'(002).
ENDIF.
ENDIF.

* Validation of PO Number
CLEAR ekko-ebeln.
IF NOT s_ebeln[] IS INITIAL.
SELECT ebeln UP TO 1 ROWS
INTO ekko-ebeln
FROM ekko
WHERE ebeln IN s_ebeln.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e000 WITH 'Invalid Document Number'(003).
ENDIF.
ENDIF.

* Validation of PO Document Type
CLEAR t161-bsart.
IF NOT s_bsart[] IS INITIAL.
SELECT bsart UP TO 1 ROWS
INTO t161-bsart
FROM t161
WHERE bsart IN s_bsart.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e000 WITH 'Invalid Purchase Document Type'(004).
ENDIF.
ENDIF.

* Validation of Purchasing Group
CLEAR t024-ekgrp.
IF NOT s_ekgrp[] IS INITIAL.
SELECT ekgrp UP TO 1 ROWS
INTO t024-ekgrp
FROM t024
WHERE ekgrp IN s_ekgrp.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e000 WITH 'Invalid Purchasing Group'(005).
ENDIF.
ENDIF.

ENDFORM. " validate_screen

*&---------------------------------------------------------------------*
*& Form fetch_data
*&---------------------------------------------------------------------*
* Fetching the PO related data from Database Tables
*----------------------------------------------------------------------*
FORM fetch_data .
CLEAR i_po.
REFRESH i_po.
SELECT a~ebeln " PO No.
b~ebelp " PO Item
a~bstyp " PO Category
a~bukrs " Company Code
a~bsart " PO Type
a~lifnr " Vendor No
a~ekgrp " Purchase Group
a~waers " Currency
a~bedat " PO Date
b~txz01 " Material Text
b~werks " Plant
b~lgort " Storage Location
b~matkl " Material Group
b~menge " PR Quantity
b~meins " UOM
b~bprme " Price Unit
b~netpr " Net price
b~peinh " Price Unit UOM
b~pstyp " Item Category
b~knttp " Account Assignment Category

INTO TABLE i_po
FROM ekko AS a JOIN ekpo AS b
ON a~ebeln = b~ebeln
WHERE a~ebeln IN s_ebeln AND
a~lifnr IN s_lifnr AND
a~ekgrp IN s_ekgrp AND
a~bsart IN s_bsart AND
a~bedat IN s_bedat.

SORT i_po BY ebeln ebelp.
break-point.
IF NOT i_po[] IS INITIAL.

* Fetch the PO History/Invoice Details from EKBE Table
CLEAR i_ekbe.
REFRESH i_ekbe.
SELECT ebeln " PO No.
ebelp " PO Item
gjahr " Fiscal Year
belnr " PO Invoice No
menge " PR Quantity
wrbtr " Price in Local Currency
dmbtr " Price in Foreign Currency
waers " Currency
shkzg " Dr/Cr Indicator

INTO TABLE i_ekbe
FROM ekbe
FOR ALL ENTRIES IN i_po
WHERE ebeln = i_po-ebeln AND
ebelp = i_po-ebelp AND
vgabe = c_vgabe.

IF sy-subrc = 0.
SORT i_ekbe BY ebeln ebelp.
LOOP AT i_ekbe.
IF i_ekbe-shkzg = c_h.
i_ekbe-wrbtr = i_ekbe-wrbtr * -1.
ENDIF.
MODIFY i_ekbe.
ENDLOOP.
break-point.
* Sum up the Item wise Invoice totals
LOOP AT i_ekbe.
AT END OF ebelp.
READ TABLE i_ekbe INDEX sy-tabix.
SUM.
MOVE-CORRESPONDING i_ekbe TO i_inv.
APPEND i_inv.
ENDAT.
CLEAR i_inv.
ENDLOOP.
SORT i_inv BY ebeln ebelp.
break-point.
ENDIF.
ENDIF.

* Move the Vendor Name and Invoice Values to I_rep Internal Table
LOOP AT i_po.
MOVE-CORRESPONDING i_po TO i_rep.
CLEAR i_inv.
READ TABLE i_inv WITH KEY ebeln = i_po-ebeln
ebelp = i_po-ebelp.
IF sy-subrc = 0.
i_rep-orewr = ( i_po-menge - i_inv-menge ) * i_po-netpr.
i_rep-curr = i_inv-waers.
ELSE.
i_rep-orewr = i_po-menge * i_po-netpr.
i_rep-curr = i_po-waers.
ENDIF.
break-point.
* Get the Vendor Name
CLEAR lfa1-name1.
SELECT SINGLE name1 FROM lfa1 INTO lfa1-name1
WHERE lifnr = i_po-lifnr.
IF sy-subrc = 0.
i_rep-name1 = lfa1-name1.
ENDIF.

APPEND i_rep.
CLEAR i_rep.
break-point.
ENDLOOP.

SORT i_rep BY lifnr ebeln ebelp.
DELETE i_rep WHERE orewr LE 0.
break-point.
ENDFORM. " fetch_data
*&---------------------------------------------------------------------*
*& Form display_data
*&---------------------------------------------------------------------*
* Display the Report Output data
*----------------------------------------------------------------------*
FORM display_data .
DATA: lv_flag, " New Flag
lv_rec TYPE i. " No of Records
CLEAR lv_rec.

IF i_rep[] IS INITIAL.
MESSAGE e000 WITH 'No Data found'(022).
ELSE.
LOOP AT i_rep.

* Toggle Color
PERFORM toggle_color.
IF lv_flag <> space.
NEW-LINE.
ENDIF.

* At New Purchase Document
AT NEW ebeln.
WRITE:/1 sy-vline, 2(10) i_rep-ebeln INTENSIFIED OFF.
lv_flag = c_x.
lv_rec = lv_rec + 1.
ENDAT.
WRITE: 1 sy-vline,
12 sy-vline,13(4) i_rep-bsart,
17 sy-vline,18(10) i_rep-lifnr,
28 sy-vline,29(35) i_rep-name1,
64 sy-vline,65(4) i_rep-ekgrp,
69 sy-vline,70(10) i_rep-bedat,
80 sy-vline,81(5) i_rep-ebelp,
86 sy-vline,87(40) i_rep-txz01,
127 sy-vline,128(9) i_rep-matkl,
137 sy-vline,138(1) i_rep-pstyp,
139 sy-vline,140(1) i_rep-knttp,
141 sy-vline,142(4) i_rep-werks,
146 sy-vline,147(4) i_rep-lgort,
151 sy-vline,152(13) i_rep-menge UNIT i_rep-meins,
165 sy-vline,166(3) i_rep-meins,
169 sy-vline,170(15) i_rep-netpr CURRENCY i_rep-waers,
185 sy-vline,186(4) i_rep-waers,
190 sy-vline,191(5) i_rep-peinh,
196 sy-vline,197(4) i_rep-bprme,
201 sy-vline,202(15) i_rep-orewr CURRENCY i_rep-curr,
217 sy-vline,218(4) i_rep-curr,
222 sy-vline,223(7) i_rep-bstyp centered,
230 sy-vline.
NEW-LINE.
hide: i_rep-ebeln.
ENDLOOP.
ULINE.
FORMAT COLOR OFF.
WRITE : /2 'Total Number of Purchasing Documents:'(025) COLOR 3,
lv_rec COLOR 3.
ENDIF.
ENDFORM. " display_data

*&---------------------------------------------------------------------*
*& Form header
*&---------------------------------------------------------------------*
* Write the Report Header
*----------------------------------------------------------------------*
FORM header .
FORMAT RESET.
* header
WRITE:/1(230) 'LIST OF PURCHASE DOCUMENTS PER VENDOR'(006) CENTERED.
SKIP.
FORMAT COLOR COL_HEADING.
ULINE.
WRITE:/1 sy-vline,2(10) 'Pur.Doc.No'(006) CENTERED,
12 sy-vline,13(4) 'Type'(007),
17 sy-vline,18(10) 'Vendor'(008) CENTERED,
28 sy-vline,29(35) 'Name'(009) CENTERED,
64 sy-vline,65(4) 'PGrp'(010) CENTERED,
69 sy-vline,70(10) 'Doc.Date'(012) CENTERED,
80 sy-vline,81(5) 'Item'(011),
86 sy-vline,87(40) 'Material Short Text'(024) CENTERED,
127 sy-vline,128(9) 'Mat.Group'(013),
137 sy-vline,138(1) 'I',
139 sy-vline,140(1) 'A',
141 sy-vline,142(4) 'Plnt'(014),
146 sy-vline,147(4) 'SLoc'(015),
151 sy-vline,152(13) 'Quantity'(016) CENTERED,
165 sy-vline,166(3) 'UoM'(017),
169 sy-vline,170(15) 'Net Value'(018) CENTERED,
185 sy-vline,186(4) 'Curr'(019),
190 sy-vline,191(5) 'Per'(020),
196 sy-vline,197(4) 'Unit'(021),
201 sy-vline,202(15) 'To be Invoiced'(023) CENTERED,
217 sy-vline,218(4) 'Curr'(019),
222 sy-vline,223(7) 'Doc.Cat'(026),
230 sy-vline.
ULINE.
ENDFORM. " header

*&---------------------------------------------------------------------*
*& Form toggle_color
*&---------------------------------------------------------------------*
* This routine alters the color of the records in the list
*----------------------------------------------------------------------*
FORM toggle_color.
IF gv_dial = space.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
gv_dial = c_x.
ELSE.
FORMAT COLOR 1 INTENSIFIED OFF.
CLEAR gv_dial.
ENDIF.
ENDFORM. " toggle_color

*&---------------------------------------------------------------------*
*& Form LINE_SEL
*&---------------------------------------------------------------------*
*When double clicked on EBELN field display the details of Purchase Doc
*----------------------------------------------------------------------*
FORM line_sel.
CASE sy-lsind.
WHEN '1'.
DATA: lv_field(20),
lv_value(10),
lv_bstyp like i_rep-bstyp.

clear: lv_bstyp,lv_value, lv_field.

GET CURSOR FIELD lv_field VALUE lv_value.
IF lv_field = 'I_REP-EBELN'.
IF NOT lv_value IS INITIAL.
READ LINE sy-index FIELD VALUE i_rep-bstyp
INTO lv_bstyp.
* READ CURRENT LINE FIELD VALUE i_rep-bstyp INTO lv_bstyp.
if lv_bstyp = 'F'.
SET PARAMETER ID 'BES' FIELD lv_value.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
elseif ( lv_bstyp = 'K' or lv_bstyp = 'L' ).
SET PARAMETER ID 'VRT' FIELD lv_value.
CALL TRANSACTION 'ME33' AND SKIP FIRST SCREEN.
elseif lv_bstyp = 'A'.
SET PARAMETER ID 'ANF' FIELD lv_value.
CALL TRANSACTION 'ME43' AND SKIP FIRST SCREEN.
endif.
ENDIF.
ENDIF.
ENDCASE.
ENDFORM. " line_sel


Code from Transaction ME2L.
Code:
REPORT rm06el00 no standard page heading line-size 81 message-id me.
enhancement-point rm06el00_g4 spots es_rm06el00 static.
*$*$-Start: RM06EL00_G4-------------------------------------------------------------------------$*$*
enhancement 1 mgv_generated_rm06el00. "active version
initialization.
data: mgv_matnr_prog like rsvar-report,
mgv_matnr_selopt_tab like rsldbdfs occurs 0 with header line.
field-symbols <mgv_matnr_selopt_conv> type standard table.
endenhancement.
*$*$-End: RM06EL00_G4-------------------------------------------------------------------------$*$*
enhancement-point rm06el00_g5 spots es_rm06el00.
*$*$-Start: RM06EL00_G5-------------------------------------------------------------------------$*$*
enhancement 2 mgv_generated_rm06el00. "active version
mgv_matnr_prog = sy-repid.
mgv_matnr_selopt_tab-name = 'S_MATNR' .
append mgv_matnr_selopt_tab.
call function 'MGV_SELOP_AFTER_INITIALIZATION'
exporting
program = mgv_matnr_prog
tables
selop = mgv_matnr_selopt_tab
exceptions
no_programname = 1
others = 2
.
endenhancement.
*$*$-End: RM06EL00_G5-------------------------------------------------------------------------$*$*
enhancement-point rm06el00_g6 spots es_rm06el00 static.
*$*$-Start: RM06EL00_G6-------------------------------------------------------------------------$*$*
enhancement 3 mgv_generated_rm06el00. "active version
start-of-selection.
endenhancement.
*$*$-End: RM06EL00_G6-------------------------------------------------------------------------$*$*
enhancement-point rm06el00_g7 spots es_rm06el00.
*$*$-Start: RM06EL00_G7-------------------------------------------------------------------------$*$*
enhancement 4 mgv_generated_rm06el00. "active version
loop at mgv_matnr_selopt_tab.
concatenate mgv_matnr_selopt_tab-name'[]' into
mgv_matnr_selopt_tab-name.
assign (mgv_matnr_selopt_tab-name) to <mgv_matnr_selopt_conv>.
if sy-subrc is initial.
call function 'MGV_SELOP_AFTER_START_OF_SEL'
exporting
selopt_name = mgv_matnr_selopt_tab-name
tables
range = <mgv_matnr_selopt_conv>.
endif.
endloop.
endenhancement.
*$*$-End: RM06EL00_G7-------------------------------------------------------------------------$*$*
************************************************************************
* Anzeigen Einkaufsbelege zum Lieferanten *
************************************************************************
* note 210280: LINE-SIZE 81
*----------------------------------------------------------------------*
* Tabellen *
*----------------------------------------------------------------------*
include fm06lto1.

*----------------------------------------------------------------------*
* Parameter und Select-Options *
*----------------------------------------------------------------------*
select-options:
el_lifnr for ekko-lifnr memory id lif matchcode object kred,
el_ekorg for ekko-ekorg memory id eko.
selection-screen function key 1.
parameters:
el_selkb like ekko-bstyp no-display default 'X',
el_selkk like ekko-bstyp no-display default 'X',
el_selkl like ekko-bstyp no-display default 'X',
el_selka like ekko-bstyp no-display default 'X'.
include fm06lcs1.
include fm06lcs3.
include fm06lcs4.
include fm06lcs2.

include selopt_cnt_call. "new for ERP 1.0 PA

*----------------------------------------------------------------------*
* Hilfsfelder *
*----------------------------------------------------------------------*
include fm06lcek.

*----------------------------------------------------------------------*
* Intitialisierung *
*----------------------------------------------------------------------*
initialization.
set titlebar '001'.
perform anforderungsbild(sapfm06l) using el_selkb el_selkk
el_selkl el_selka.
*----------------------------------------------------------------------*
* Selektionsbild / Selection screen *
*----------------------------------------------------------------------*
at selection-screen on selpa.
perform selpa_analyse(sapfm06l).

at selection-screen on listu.
perform listumfang(sapfm06l) using listu.

at selection-screen.
call function 'ME_ITEM_CATEGORY_SELOPT_INPUT'
tables
ext_pstyp = s_pstyp
int_pstyp = r_pstyp.
perform bstyp_bestimmen(sapfm06l) using el_selkb el_selkk
el_selkl el_selka.

at selection-screen output.
* Andere Reports: modify_anfo ueber log. DB SAPDBxx dort wird
* in aehnliche Form-Routine modify_anfo(sapfm06d) gesprungen!!!
perform modify_anfo(sapfm06l) using 'L'.

*----------------------------------------------------------------------*
* F4 auf dem Selektionsbild / F4 on the selection screen *
*----------------------------------------------------------------------*
at selection-screen on value-request for s_pstyp-low.

call function 'HELP_VALUES_EPSTP'
exporting
program = sy-cprog
dynnr = sy-dynnr
fieldname = 'S_PSTYP-LOW'
* BSART =
* BSTYP =
importing
epstp = s_pstyp-low
exceptions
others = 1.

*----------------------------------------------------------------------*
* Beginn der Selektion *
*----------------------------------------------------------------------*
start-of-selection.

perform force_alv(sapfm06l) using p_alv. "new for ERP 1.0 PA

perform pf_status(sapfm06l) using el_selkb el_selkk
el_selkl el_selka.
set titlebar '001'.
not_found = 'X'.

*- Lesen Belegköpfe --------------------------------------------------*
select * from ekko
where lifnr in el_lifnr
and ekorg in el_ekorg
and bstyp in r_bstyp
and bsart in s_bsart
and ekgrp in s_ekgrp
and ebeln in s_ebeln
and reswk in s_reswk
and bedat in s_bedat
order by lifnr bstyp ebeln.

*- Köpfe verarbeiten -------------------------------------------------*
perform ekko_merken(sapfm06l).

endselect.

*- Köpfe verabeiten für letztes Belegnummernintervall ----------------*
perform zugriff_kopf(sapfm06l).
perform pos_nach_kopf(sapfm06l).

*----------------------------------------------------------------------*
* Ende der Selektion *
*----------------------------------------------------------------------*
end-of-selection.

perform count_workload(sapfm06l) using p_wlmem. "new for ERP 1.0 PA

perform end_of_selection(sapfm06l).

write /(81) sy-uline.

*----------------------------------------------------------------------*
* OK-Code-Eingabe *
*----------------------------------------------------------------------*
at user-command.
perform user_command(sapfm06l).

*----------------------------------------------------------------------*
* Seitenueberschrift *
*----------------------------------------------------------------------*
top-of-page.
perform top(sapfm06l).

top-of-page during line-selection.
if sy-pfkey = 'EKAB'.
perform ekab_top(sapfm06l).
else.
perform top(sapfm06l).
endif.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ММ All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.