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

reports

Former Member
0 Likes
3,133

Hi Experts,

I am given a requiremnt to develop a report for consolidated goods reciept.

As I am a beginner in this career,Kindly (pls) help me to develop the reprt.

can anyone guide me step by step please.

I shall ask u queries then and there.

Kindly help me to develop report.

I am not given the specicification properly ,but i will be getting within one hour.So kindly pls help me to develop this report.

<REMOVED BY MODERATOR>

Thanks a lot in advance

Jaya

Edited by: Alvaro Tejada Galindo on Apr 8, 2008 1:21 PM

1 ACCEPTED SOLUTION
Read only

UmaArjunan
Active Participant
0 Likes
2,990

To get the consolidated good reciept based on the posting doucment in the purchaase order .

U can check the following tables.

1. ekko.

2. ekbe.

3. ekkn.

34 REPLIES 34
Read only

UmaArjunan
Active Participant
0 Likes
2,991

To get the consolidated good reciept based on the posting doucment in the purchaase order .

U can check the following tables.

1. ekko.

2. ekbe.

3. ekkn.

Read only

0 Likes
2,990

Thnks so much Uma,

Initially,i think i need to declare tables.

create internal table..

then how shud i proceed

Read only

0 Likes
2,990

First collect the fields from the table u reffered.

then declare a structure using type decalration

for example

TYPES : BEGIN OF st_out,

ebeln TYPE ebeln,

ebelp TYPE ebelp,

< SIMILARLY declare other fields and other data element here >

END OF st_out.

ebeln is the field name.

type - type

ebeln is the data element.

procede for other fields.

next is the internal table decalartion for this structure

DATA : it_out1 TYPE TABLE OF st_out.

next is the work area decalartion .

Data: wa_out like line of it_out1.

example select query should be like this

select ebeln ebelp from ekbe into table it_out where <give your condition to filter the records>.

it_out is the internal table here

Read only

0 Likes
2,990

Hi Jaya..

i am posting one of my sample codes here.

When u get the functional specs just put them here.

Then we will go about it.

&----


*& Report ZMM_MATERIAL_ARRIVAL

*&

*& Author :-Rahul Bhat

*& Date-Of-Creation:-30-01-2008

*& Objective :-Report to show Material Arrival Plan

  • Includes PO's from PR's as well as manual PO's.

*& TCODE :-ZPP08

&----


REPORT ZMM_MATERIAL_ARRIVAL.

*Internal Table Structure Declarations.

TYPES:BEGIN OF TY_MA61V , "Material Master: DB View for MRP

MATNR TYPE MA61V-MATNR , "Material Number

WERKS TYPE MA61V-WERKS , "Plant

MATKL TYPE MA61V-MATKL , "Material group

DISPO TYPE MA61V-DISPO , "MRP controller

END OF TY_MA61V .

TYPES:BEGIN OF TY_RESB , "Reservation/dependent requirements

RSNUM TYPE RESB-RSNUM , "Number of reservation/dependent requirements

RSPOS TYPE RESB-RSPOS , "Item Number of Reservation / Dependent Requirements

RSART TYPE RESB-RSART , "Record type

BAUGR TYPE RESB-BAUGR , "Material number of higher-level assembly

MATNR TYPE RESB-MATNR , "Material Number

BDTER TYPE RESB-BDTER , "Requirements date for the component

BDMNG TYPE RESB-BDMNG , "Requirement Quantity

END OF TY_RESB .

TYPES:BEGIN OF TY_MBEW , "Material Valuation

MATNR TYPE MBEW-MATNR , "Material Number

BWKEY TYPE MBEW-BWKEY , "Valuation area

BWTAR TYPE MBEW-BWTAR , "Valuation type

VERPR TYPE MBEW-VERPR , "Moving Average Price/Periodic Unit Price

END OF TY_MBEW .

TYPES:BEGIN OF TY_EBAN , "Purchase Requisition

BANFN TYPE EBAN-BANFN , "Purchase requisition number

BNFPO TYPE EBAN-BNFPO , "Item number of purchase requisition

MATNR TYPE EBAN-MATNR , "Material Number

LIFNR TYPE EBAN-LIFNR , "Desired vendor

BSMNG TYPE EBAN-BSMNG , "Quantity ordered against this purchase requisition

BADAT TYPE EBAN-BADAT , "Requisition (request) date

EBELN TYPE EBAN-EBELN , "Purchase order number

MENGE TYPE EBAN-MENGE , "Purchase requisition quantity

END OF TY_EBAN .

TYPES:BEGIN OF TY_EKET , "Scheduling Agreement Schedule Lines

EBELN TYPE EKET-EBELN , "Purchasing Document Number

EBELP TYPE EKET-EBELP , "Item Number of Purchasing Document

ETENR TYPE EKET-ETENR , "Delivery Schedule Line Counter

MENGE TYPE EKET-MENGE , "Scheduled quantity

WEMNG TYPE EKET-WEMNG , "Quantity of goods received

BANFN TYPE EKET-BANFN , "Purchase requisition number

EINDT TYPE EKET-EINDT , "Item delivery date

END OF TY_EKET .

TYPES:BEGIN OF TY_EKKO , "Purchasing Document Header

EBELN TYPE EKKO-EBELN , "Purchasing Document Number

LIFNR TYPE EKKO-LIFNR , "Vendor's account number

ZTERM TYPE EKKO-ZTERM , "Terms of payment key

END OF TY_EKKO .

TYPES:BEGIN OF TY_LFA1 , "Vendor Master (General Section)

LIFNR TYPE LFA1-LIFNR , "Account Number of Vendor or Creditor

NAME1 TYPE LFA1-NAME1 , "Name 1

END OF TY_LFA1 .

TYPES:BEGIN OF TY_EKPO , "Purchasing Document Item

EBELN TYPE EKPO-EBELN , "Purchasing Document Number

EBELP TYPE EKPO-EBELP , "Item Number of Purchasing Document

MATNR TYPE EKPO-MATNR , "Material Number

TXZ01 TYPE EKPO-TXZ01 , "Short text

BANFN TYPE EKPO-BANFN , "Purchase requisition number

PSTYP TYPE EKPO-PSTYP , "Item category in purchasing document

WERKS TYPE EKPO-WERKS , "Plant

LOEKZ TYPE EKPO-LOEKZ , "Deletion Indicator

NETPR TYPE EKPO-NETPR , "Net price in purchasing document (in document currency)

END OF TY_EKPO .

TYPES:BEGIN OF TY_DISPLAY ,

MATKL TYPE MARA-MATKL , "Material group

DISPO TYPE MARC-DISPO , "MRP controller

VERPR TYPE MBEW-VERPR , "Moving Average Price/Periodic Unit Price

MATNR TYPE RESB-MATNR , "Material Number

MENGE TYPE EBAN-MENGE , "Purchase requisition quantity

EBELN TYPE EKET-EBELN , "Purchasing Document Number

MENGE1 TYPE EKET-MENGE , "Scheduled Quantity

EINDT TYPE EKET-EINDT , "Item delivery date

VALUE1 TYPE P DECIMALS 2 , "VERPR * MENGE

VENNAME TYPE LFA1-NAME1 , "Name 1

ZTERM TYPE EKKO-ZTERM , "Terms of payment key

DESC(60) TYPE C , "Payment Terms Description.

WEMNG TYPE EKET-WEMNG , "Quantity of goods received

BALNC TYPE P DECIMALS 3 , "Scheduled - Goods Received

NETPR TYPE EKPO-NETPR , "Net price in purchasing document (in document currency)

VALUE2 TYPE P DECIMALS 3 , "NETPR * MENGE1

END OF TY_DISPLAY .

*Internal Table and Work Area Declarations

DATA:IT_MA61V TYPE STANDARD TABLE OF TY_MA61V ,

WA_MA61V TYPE TY_MA61V .

DATA:IT_MBEW TYPE STANDARD TABLE OF TY_MBEW ,

WA_MBEW TYPE TY_MBEW .

DATA:IT_EBAN TYPE STANDARD TABLE OF TY_EBAN ,

WA_EBAN TYPE TY_EBAN .

DATA:IT_EKET TYPE STANDARD TABLE OF TY_EKET ,

WA_EKET TYPE TY_EKET .

DATA:IT_EKKO TYPE STANDARD TABLE OF TY_EKKO ,

WA_EKKO TYPE TY_EKKO .

DATA:IT_LFA1 TYPE STANDARD TABLE OF TY_LFA1 ,

WA_LFA1 TYPE TY_LFA1 .

DATA:IT_EKPO TYPE STANDARD TABLE OF TY_EKPO ,

WA_EKPO TYPE TY_EKPO .

DATA:IT_DISPLAY TYPE STANDARD TABLE OF TY_DISPLAY,

WA_DISPLAY TYPE TY_DISPLAY .

*Work Field Declarations.

DATA:W_MATNR TYPE MARA-MATNR,

W_WERKS TYPE MARC-WERKS,

W_DISPO TYPE MARC-DISPO,

W_MATKL TYPE MARA-MATKL,

W_EINDT TYPE EKET-EINDT,

W_INDEX TYPE SY-TABIX .

*ALV Declarations.

TYPE-POOLS:SLIS.

DATA:FIELDCAT TYPE SLIS_FIELDCAT_ALV OCCURS 0 WITH HEADER LINE.

DATA:IT_SORTCAT TYPE SLIS_SORTINFO_ALV OCCURS 1,

WA_SORT LIKE LINE OF IT_SORTCAT .

DATA:COL_POS TYPE I .

*Selection Screen

SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS:SO_MATNR FOR W_MATNR ,

SO_WERKS FOR W_WERKS OBLIGATORY ,

SO_DISPO FOR W_DISPO ,

SO_MATKL FOR W_MATKL ,

SO_EINDT FOR W_EINDT .

SELECTION-SCREEN END OF BLOCK BLK1 .

*Start Of Selection.

START-OF-SELECTION .

PERFORM GET_DATA .

PERFORM PROCESS_DATA .

PERFORM BUILD_FIELDCAT .

PERFORM DATA_DISPLAY .

&----


*& Form GET_DATA

&----


  • text

----


FORM GET_DATA .

SELECT MATNR WERKS MATKL DISPO

FROM MA61V

INTO TABLE IT_MA61V

WHERE MATNR IN SO_MATNR AND

MATKL IN SO_MATKL AND

WERKS IN SO_WERKS AND

DISPO IN SO_DISPO.

IF SY-SUBRC = 0.

SELECT MATNR BWKEY BWTAR VERPR

FROM MBEW

INTO TABLE IT_MBEW

FOR ALL ENTRIES IN IT_MA61V

WHERE MATNR = IT_MA61V-MATNR.

IF SY-SUBRC = 0.

  • DO NOTHING

ENDIF.

SELECT EBELN EBELP ETENR MENGE WEMNG BANFN EINDT

FROM EKET

INTO TABLE IT_EKET

WHERE EINDT IN SO_EINDT.

IF SY-SUBRC = 0.

SELECT BANFN BNFPO MATNR LIFNR BSMNG BADAT EBELN MENGE

FROM EBAN

INTO TABLE IT_EBAN

FOR ALL ENTRIES IN IT_EKET

WHERE EBELN = IT_EKET-EBELN .

IF SY-SUBRC = 0.

  • DO NOTHING

ENDIF.

SELECT EBELN EBELP MATNR TXZ01 BANFN PSTYP WERKS LOEKZ NETPR

FROM EKPO

INTO TABLE IT_EKPO

FOR ALL ENTRIES IN IT_EKET

WHERE EBELN = IT_EKET-EBELN AND

PSTYP NE '7' AND

WERKS IN SO_WERKS AND

LOEKZ EQ ''.

IF SY-SUBRC = 0.

  • DO NOTHING

ENDIF.

SELECT EBELN LIFNR ZTERM

FROM EKKO

INTO TABLE IT_EKKO

FOR ALL ENTRIES IN IT_EKET

WHERE EBELN = IT_EKET-EBELN.

IF SY-SUBRC = 0.

SELECT LIFNR NAME1

FROM LFA1

INTO TABLE IT_LFA1

FOR ALL ENTRIES IN IT_EKKO

WHERE LIFNR = IT_EKKO-LIFNR.

IF SY-SUBRC = 0.

  • DO NOTHING

ENDIF.

ENDIF.

ENDIF.

ENDIF.

ENDFORM. " GET_DATA

&----


*& Form PROCESS_DATA

&----


  • text

----


FORM PROCESS_DATA .

DATA:LW_VAL1 TYPE P DECIMALS 2.

  • DATA:LW_EBELN TYPE EKBE-EBELN.

LOOP AT IT_EKET INTO WA_EKET.

READ TABLE IT_EKPO INTO WA_EKPO WITH KEY EBELN = WA_EKET-EBELN

EBELP = WA_EKET-EBELP.

IF SY-SUBRC = 0.

READ TABLE IT_MA61V INTO WA_MA61V WITH KEY MATNR = WA_EKPO-MATNR.

IF SY-SUBRC = 0.

MOVE:WA_MA61V-MATKL TO WA_DISPLAY-MATKL,

WA_MA61V-DISPO TO WA_DISPLAY-DISPO.

READ TABLE IT_MBEW INTO WA_MBEW WITH KEY MATNR = WA_MA61V-MATNR.

IF SY-SUBRC = 0.

MOVE:WA_MBEW-VERPR TO WA_DISPLAY-VERPR.

ENDIF.

MOVE:WA_EKPO-MATNR TO WA_DISPLAY-MATNR ,

WA_EKPO-NETPR TO WA_DISPLAY-NETPR ,

WA_EKET-EBELN TO WA_DISPLAY-EBELN ,

WA_EKET-MENGE TO WA_DISPLAY-MENGE1,

WA_EKET-EINDT TO WA_DISPLAY-EINDT ,

WA_EKET-WEMNG TO WA_DISPLAY-WEMNG .

WA_DISPLAY-VALUE2 = WA_EKPO-NETPR * WA_EKET-MENGE.

WA_DISPLAY-BALNC = WA_EKET-MENGE - WA_EKET-WEMNG.

READ TABLE IT_EBAN INTO WA_EBAN WITH KEY EBELN = WA_EKET-EBELN.

IF SY-SUBRC = 0.

MOVE:WA_EBAN-MENGE TO WA_DISPLAY-MENGE.

WA_DISPLAY-VALUE1 = WA_MBEW-VERPR * WA_EBAN-MENGE.

ENDIF.

READ TABLE IT_EKKO INTO WA_EKKO WITH KEY EBELN = WA_EKET-EBELN.

IF SY-SUBRC = 0.

READ TABLE IT_LFA1 INTO WA_LFA1 WITH KEY LIFNR = WA_EKKO-LIFNR.

IF SY-SUBRC = 0.

MOVE:WA_LFA1-NAME1 TO WA_DISPLAY-VENNAME,

WA_EKKO-ZTERM TO WA_DISPLAY-ZTERM .

IF WA_EKKO-ZTERM EQ 'PA90'.

WA_DISPLAY-DESC = '90 days receipt / accepting material' .

ELSEIF WA_EKKO-ZTERM EQ 'PA60' .

WA_DISPLAY-DESC = '60 days receipt / accepting material' .

ELSEIF WA_EKKO-ZTERM EQ 'PA45' .

WA_DISPLAY-DESC = '45 days receipt / accepting material' .

ELSEIF WA_EKKO-ZTERM EQ 'PA30' .

WA_DISPLAY-DESC = '30 days receipt / accepting material' .

ELSEIF WA_EKKO-ZTERM EQ 'PA15' .

WA_DISPLAY-DESC = '15 days receipt / accepting material' .

ELSEIF WA_EKKO-ZTERM EQ 'PA08' .

WA_DISPLAY-DESC = '30 % advance balance on delivery' .

ELSEIF WA_EKKO-ZTERM EQ 'PA07' .

WA_DISPLAY-DESC = '40 % advance balance on delivery' .

ELSEIF WA_EKKO-ZTERM EQ 'PA06' .

WA_DISPLAY-DESC = '100 % against proforma invoice' .

ELSEIF WA_EKKO-ZTERM EQ 'PA05' .

WA_DISPLAY-DESC = 'Against hundi 90 days' .

ELSEIF WA_EKKO-ZTERM EQ 'PA04' .

WA_DISPLAY-DESC = 'Against L/C' .

ELSEIF WA_EKKO-ZTERM EQ 'PA03' .

WA_DISPLAY-DESC = '50 % advance and 50 % on delivery' .

ELSEIF WA_EKKO-ZTERM EQ 'PA02' .

WA_DISPLAY-DESC = '100 % advance' .

ELSEIF WA_EKKO-ZTERM EQ 'PA01' .

WA_DISPLAY-DESC = 'Immediate receipt / accepting material'.

ELSEIF WA_EKKO-ZTERM EQ 'P120' .

WA_DISPLAY-DESC = '120 days receipt / accepting material' .

ENDIF.

ENDIF.

ENDIF.

APPEND WA_DISPLAY TO IT_DISPLAY.

CLEAR:WA_EKPO,WA_EKET,WA_MA61V,WA_MBEW,WA_EBAN,WA_EKKO,WA_LFA1,WA_DISPLAY.

ENDIF.

ENDIF.

CLEAR:WA_EKET.

ENDLOOP.

ENDFORM. " PROCESS_DATA

&----


*& Form BUILD_FIELDCAT

&----


  • text

----


FORM BUILD_FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'MATKL' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'Material Group' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'DISPO' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'Segment' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'MATNR' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'Material' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'VERPR' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'Rate' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'MENGE' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'PR Quantity' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

FIELDCAT-DO_SUM = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'VALUE1' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'PR Value' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'EBELN' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'PO Number' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

*ADD 1 TO COL_POS .

  • FIELDCAT-COL_POS = COL_POS .

  • FIELDCAT-FIELDNAME = 'NETPR' .

  • FIELDCAT-TABNAME = 'FIELDCAT' .

  • FIELDCAT-SELTEXT_L = 'PO Rate' .

  • FIELDCAT-FIX_COLUMN = 'X' .

  • FIELDCAT-OUTPUTLEN = 'X' .

  • APPEND FIELDCAT .

  • CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'MENGE1' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'PO Quantity' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

FIELDCAT-DO_SUM = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

*ADD 1 TO COL_POS .

  • FIELDCAT-COL_POS = COL_POS .

  • FIELDCAT-FIELDNAME = 'VALUE2' .

  • FIELDCAT-TABNAME = 'FIELDCAT' .

  • FIELDCAT-SELTEXT_L = 'PO Value' .

  • FIELDCAT-FIX_COLUMN = 'X' .

  • FIELDCAT-OUTPUTLEN = 'X' .

  • APPEND FIELDCAT .

  • CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'EINDT' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'Delivery Date' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'WEMNG' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'GR Quantity' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

FIELDCAT-DO_SUM = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'BALNC' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'Balance Quantity' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'VENNAME' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'Vendor' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'ZTERM' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'Pyment Terms' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'DESC' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'Pyment Terms Description' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ENDFORM. " BUILD_FIELDCAT

&----


*& Form DATA_DISPLAY

&----


  • text

----


FORM DATA_DISPLAY .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = 'ZMM_MATERIAL_ARRIVAL'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

IT_FIELDCAT = FIELDCAT[]

TABLES

T_OUTTAB = IT_DISPLAY.

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. " DATA_DISPLAY

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM TOP_OF_PAGE.

DATA: T_HEADER TYPE SLIS_T_LISTHEADER ,

WA_HEADER TYPE SLIS_LISTHEADER ,

T_LINE LIKE WA_HEADER-INFO ,

LD_LINES TYPE I ,

LD_LINESC(10) TYPE C .

  • TITLE

WA_HEADER-TYP = 'H' .

WA_HEADER-INFO = 'Daily Material Arrival Plan' .

APPEND WA_HEADER TO T_HEADER .

CLEAR WA_HEADER .

WA_HEADER-TYP = 'S' .

WA_HEADER-KEY = 'Date: ' .

IF SO_EINDT-HIGH NE '00000000' .

CONCATENATE SO_EINDT-LOW+6(2) '.'

SO_EINDT-LOW+4(2) '.'

SO_EINDT-LOW(4) 'to'

SO_EINDT-HIGH+6(2) '.'

SO_EINDT-HIGH+4(2) '.'

SO_EINDT-HIGH(4)

INTO WA_HEADER-INFO SEPARATED BY SPACE .

ELSEIF SO_EINDT-HIGH EQ '00000000' .

CONCATENATE SO_EINDT-LOW+6(2) '.'

SO_EINDT-LOW+4(2) '.'

SO_EINDT-LOW(4)

INTO WA_HEADER-INFO SEPARATED BY SPACE.

ENDIF.

APPEND WA_HEADER TO T_HEADER.

CLEAR:WA_HEADER.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = T_HEADER.

ENDFORM. " TOP_OF_PAGE

Read only

0 Likes
2,990

Hi Rahul,

Thanks so much for your repsonse.

Defenitely when i get my rek i willl post ut to you,

Kindly help and guide me..

Will u be accesing sdn network always...if u r busy how can i get replies from u?

Sincerely

Jay

Read only

0 Likes
2,990

Hello jaya

When u get ur spec ,

Let me know give me ur gmail id i will add u

and then we can clear queries

Read only

0 Likes
2,990

Hi,

I am not able to type any option tha we can type adress

Read only

0 Likes
2,990

Hi jaya

did u got ur spec

join me on bhanu.malik1

Read only

0 Likes
2,990

Hi Expert,

I am not intresed in chatting..

Thanks a lot

Read only

0 Likes
2,990

Hi jaya,

U can put u r Specs here..

I access SDN every now and then...so i will be watching this thread.

We can clear queries as and when they arrive here itself.

<REMOVED BY MODERATOR>

Edited by: Alvaro Tejada Galindo on Apr 8, 2008 1:23 PM

Read only

0 Likes
2,990

Hi Rahul,

I am not clear of what u did from FORM PROCESS.

kINDLY CAN YOU EXPLAIN ..PLS

Sincerely

JayaLatheesh

&----


*& Form PROCESS_DATA

&----


text

-


FORM PROCESS_DATA .

DATA:LW_VAL1 TYPE P DECIMALS 2.

DATA:LW_EBELN TYPE EKBE-EBELN.

LOOP AT IT_EKET INTO WA_EKET.

READ TABLE IT_EKPO INTO WA_EKPO WITH KEY EBELN = WA_EKET-EBELN

EBELP = WA_EKET-EBELP.

IF SY-SUBRC = 0.

READ TABLE IT_MA61V INTO WA_MA61V WITH KEY MATNR = WA_EKPO-MATNR.

IF SY-SUBRC = 0.

MOVE:WA_MA61V-MATKL TO WA_DISPLAY-MATKL,

WA_MA61V-DISPO TO WA_DISPLAY-DISPO.

READ TABLE IT_MBEW INTO WA_MBEW WITH KEY MATNR = WA_MA61V-MATNR.

IF SY-SUBRC = 0.

MOVE:WA_MBEW-VERPR TO WA_DISPLAY-VERPR.

ENDIF.

MOVE:WA_EKPO-MATNR TO WA_DISPLAY-MATNR ,

WA_EKPO-NETPR TO WA_DISPLAY-NETPR ,

WA_EKET-EBELN TO WA_DISPLAY-EBELN ,

WA_EKET-MENGE TO WA_DISPLAY-MENGE1,

WA_EKET-EINDT TO WA_DISPLAY-EINDT ,

WA_EKET-WEMNG TO WA_DISPLAY-WEMNG .

WA_DISPLAY-VALUE2 = WA_EKPO-NETPR * WA_EKET-MENGE.

WA_DISPLAY-BALNC = WA_EKET-MENGE - WA_EKET-WEMNG.

READ TABLE IT_EBAN INTO WA_EBAN WITH KEY EBELN = WA_EKET-EBELN.

IF SY-SUBRC = 0.

MOVE:WA_EBAN-MENGE TO WA_DISPLAY-MENGE.

WA_DISPLAY-VALUE1 = WA_MBEW-VERPR * WA_EBAN-MENGE.

ENDIF.

READ TABLE IT_EKKO INTO WA_EKKO WITH KEY EBELN = WA_EKET-EBELN.

IF SY-SUBRC = 0.

READ TABLE IT_LFA1 INTO WA_LFA1 WITH KEY LIFNR = WA_EKKO-LIFNR.

IF SY-SUBRC = 0.

MOVE:WA_LFA1-NAME1 TO WA_DISPLAY-VENNAME,

WA_EKKO-ZTERM TO WA_DISPLAY-ZTERM .

IF WA_EKKO-ZTERM EQ 'PA90'.

WA_DISPLAY-DESC = '90 days receipt / accepting material' .

ELSEIF WA_EKKO-ZTERM EQ 'PA60' .

WA_DISPLAY-DESC = '60 days receipt / accepting material' .

ELSEIF WA_EKKO-ZTERM EQ 'PA45' .

WA_DISPLAY-DESC = '45 days receipt / accepting material' .

ELSEIF WA_EKKO-ZTERM EQ 'PA30' .

WA_DISPLAY-DESC = '30 days receipt / accepting material' .

ELSEIF WA_EKKO-ZTERM EQ 'PA15' .

WA_DISPLAY-DESC = '15 days receipt / accepting material' .

ELSEIF WA_EKKO-ZTERM EQ 'PA08' .

WA_DISPLAY-DESC = '30 % advance balance on delivery' .

ELSEIF WA_EKKO-ZTERM EQ 'PA07' .

WA_DISPLAY-DESC = '40 % advance balance on delivery' .

ELSEIF WA_EKKO-ZTERM EQ 'PA06' .

WA_DISPLAY-DESC = '100 % against proforma invoice' .

ELSEIF WA_EKKO-ZTERM EQ 'PA05' .

WA_DISPLAY-DESC = 'Against hundi 90 days' .

ELSEIF WA_EKKO-ZTERM EQ 'PA04' .

WA_DISPLAY-DESC = 'Against L/C' .

ELSEIF WA_EKKO-ZTERM EQ 'PA03' .

WA_DISPLAY-DESC = '50 % advance and 50 % on delivery' .

ELSEIF WA_EKKO-ZTERM EQ 'PA02' .

WA_DISPLAY-DESC = '100 % advance' .

ELSEIF WA_EKKO-ZTERM EQ 'PA01' .

WA_DISPLAY-DESC = 'Immediate receipt / accepting material'.

ELSEIF WA_EKKO-ZTERM EQ 'P120' .

WA_DISPLAY-DESC = '120 days receipt / accepting material' .

ENDIF.

ENDIF.

ENDIF.

APPEND WA_DISPLAY TO IT_DISPLAY.

CLEAR:WA_EKPO,WA_EKET,WA_MA61V,WA_MBEW,WA_EBAN,WA_EKKO,WA_LFA1,WA_DISPLAY.

ENDIF.

ENDIF.

CLEAR:WA_EKET.

ENDLOOP.

ENDFORM. " PROCESS_DATA

&----


*& Form BUILD_FIELDCAT

&----


text

-


FORM BUILD_FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'MATKL' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'Material Group' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'DISPO' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'Segment' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'MATNR' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'Material' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'VERPR' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'Rate' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'MENGE' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'PR Quantity' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

FIELDCAT-DO_SUM = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'VALUE1' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'PR Value' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'EBELN' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'PO Number' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

*ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'NETPR' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'PO Rate' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'MENGE1' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'PO Quantity' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

FIELDCAT-DO_SUM = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

*ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'VALUE2' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'PO Value' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'EINDT' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'Delivery Date' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'WEMNG' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'GR Quantity' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

FIELDCAT-DO_SUM = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'BALNC' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'Balance Quantity' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'VENNAME' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'Vendor' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'ZTERM' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'Pyment Terms' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'DESC' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'Pyment Terms Description' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ENDFORM. " BUILD_FIELDCAT

&----


*& Form DATA_DISPLAY

&----


text

-


FORM DATA_DISPLAY .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = 'ZMM_MATERIAL_ARRIVAL'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

IT_FIELDCAT = FIELDCAT[]

TABLES

T_OUTTAB = IT_DISPLAY.

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. " DATA_DISPLAY

&----


*& Form TOP_OF_PAGE

&----


text

-


FORM TOP_OF_PAGE.

DATA: T_HEADER TYPE SLIS_T_LISTHEADER ,

WA_HEADER TYPE SLIS_LISTHEADER ,

T_LINE LIKE WA_HEADER-INFO ,

LD_LINES TYPE I ,

LD_LINESC(10) TYPE C .

TITLE

WA_HEADER-TYP = 'H' .

WA_HEADER-INFO = 'Daily Material Arrival Plan' .

APPEND WA_HEADER TO T_HEADER .

CLEAR WA_HEADER .

WA_HEADER-TYP = 'S' .

WA_HEADER-KEY = 'Date: ' .

IF SO_EINDT-HIGH NE '00000000' .

CONCATENATE SO_EINDT-LOW+6(2) '.'

SO_EINDT-LOW+4(2) '.'

SO_EINDT-LOW(4) 'to'

SO_EINDT-HIGH+6(2) '.'

SO_EINDT-HIGH+4(2) '.'

SO_EINDT-HIGH(4)

INTO WA_HEADER-INFO SEPARATED BY SPACE .

ELSEIF SO_EINDT-HIGH EQ '00000000' .

CONCATENATE SO_EINDT-LOW+6(2) '.'

SO_EINDT-LOW+4(2) '.'

SO_EINDT-LOW(4)

INTO WA_HEADER-INFO SEPARATED BY SPACE.

ENDIF.

APPEND WA_HEADER TO T_HEADER.

CLEAR:WA_HEADER.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = T_HEADER.

ENDFORM. " TOP_OF_PAGE

Read only

0 Likes
2,990

Hi Jaya,

First of all it is always better to divide your program into Subroutines using Perform statment.

So I go for PERFORM GET_DATA,PERFORM PROCESS_DATA,and so on..

In my PROCESS_DATA....here i am moving all the values that I require to be displayed in the final output to my final table which is my IT_DISPLAY.

This i guess will be the most challenging part as getting data from any number of tables is much simpler ...but to get data from all these tables and then go about processing it so that ultimately you can move it to u r final table for display is difficult.

Hence here in u r READ Statment it becomes very important to know which are your KEY FIELDS.

To understand what I am trying to do in my PROCESS_DATA...just go through the field catalog that i have built up..from there you will be able to find out what all columns I am displaying in my final output.For that column c the corresponding field name

Then in PROCESS_DATA,just go through to c how that column is getting populated exactly.

This will vary depending on the logic.

We ABAPER's and functionals cannot predict the sceanarios beforehand.So we process the data as per the requirement that we get the first time.

But after we send it for testing,there are various other scenarios possible and hence u may have to change your processing logic.

Do revert back for more.

Read only

0 Likes
2,990

Hi Rahul,

Pls help me

Will reward for sure.

Kisndly guide me

I need to develop report..table:sv012

there are fileds for

Purchasing organisation Plant Matrela nO Perid GrQUANTITY

They need the total for the gr quantity for each matearil..

what logic i need to apply

kindly guide me

Read only

0 Likes
2,990

Hi jaya,

Didnt c u r reply even though i had logged in since morning.sorry for that.

i am not getting what u want exactly

But Plant,Material,Period and Quantity u will get in EKBE table.

There is no sv012 table.

Plz tell them that if they want GR directly for a material..then ask them to c from EKET table against a PO number

For GR...the code is that i had posted earlier

Edited by: Rahul Bhat on Apr 9, 2008 11:08 AM

Read only

0 Likes
2,990

Hi Rahul,

I need to some modificatioons ..pls help..

acatually i m learning to use slis function in my code.

w_fldcat-fieldname = 'EKORG'.

w_fldcat-ref_tabname = 'S012'.

w_fldcat-tabname = 'GT_GOODS'.

w_fldcat-col_pos = 1.

i have used this much.

now i need to display 'purachasing oraganisation as heading under ekorg filed.

i mean it shud come

Purchasing organisation

100

101

shud i include sele text functionality..

in the bottom i like o display 'total' result.(which i got)

pls help me

Read only

0 Likes
2,990

Hi Jaya,

U r Purchasing Organization field is EKORG.

In that case u willl have to write

w_fldcat-fieldname = 'EKORG'.

w_fldcat-ref_tabname = 'S012'. ?????whats this..not reqd

w_fldcat-tabname = 'GT_GOODS'.

w_fldcat-seltext_l = 'Purchasing Organization'

w_fldcat-col_pos = 1.

append w_fldcat.

clear w_fldcat.

Thanks..

Do revert back for more

Read only

0 Likes
2,990

Hi rahul,

I will send more.

pls tell me ur idgmail

Read only

0 Likes
2,990

Hi,

In the o/p scren i need to adjust the length and width of grid or cliumn..

so what i shud include fopr this

Read only

0 Likes
2,990

Hi Rahul,

Pls reply.

pls check my code

Read only

0 Likes
2,990

Hi jaya...use the following

w_fldcat-OUTPUTLEN = '10' .

u can do from layout settings as well.

Read only

0 Likes
2,990

hi jaya,

my id is

rahulbhat2000 which is at yahoo and gmail both and .com

Read only

0 Likes
2,990

Hi,

w_fldcat-fieldname = 'MATNR'.

w_fldcat-tabname = 'GT_GOODS'.

w_fldcat-col_pos = 2.

w_fldcat-seltext_s = 'Materail no'.

w_fldcat-seltext_l = 'Material Number'.

append w_fldcat to i_fldcat.

I have done this much..

But in the o/p if i need to adjust the column width and lenth...

pls tell me what i need to do..

pls

i dnt know how to use layout

Read only

0 Likes
2,990

Pls check ur mail

Read only

0 Likes
2,990

Hi jaya...do like below

w_fldcat-fieldname = 'MATNR'.

w_fldcat-tabname = 'GT_GOODS'.

w_fldcat-col_pos = 2.

w_fldcat-seltext_s = 'Materail no'.

w_fldcat-seltext_l = 'Material Number'.

w_fldcat-OUTPUTLEN = '10' .

here insted of 10 give what u want...

Read only

0 Likes
2,990

Hi,

Pls execute and see...

And pls tell emin the o/p i i need the full name..its not coming..

i also want my o/p like i can adjust the lenght and width of the grid as i want like we do in excel

REPORT ZTRST1.

&----


*& Report ZTRST

*&

&----


*&

*&

&----


*REPORT ZTRST no standard page heading line-size 200 line-count 200.

  • &&&& Tables Declaration &&&& *

Tables:S012.

type-pools: slis.

data: i_fldcat type slis_t_fieldcat_alv,

w_fldcat type slis_fieldcat_alv,

i_sort TYPE slis_t_sortinfo_alv,

wa_sort TYPE slis_sortinfo_alv,

wa_layout TYPE slis_layout_alv.

&&&&& Internal Table Declaration &&&&&

DATA:BEGIN OF GT_GOODS OCCURS 0,

EKORG LIKE S012-EKORG,

MATNR LIKE S012-MATNR,

WERKS LIKE S012-WERKS,

SPMON LIKE S012-SPMON,

SPTAG LIKE S012-SPTAG,

SPWOC LIKE S012-SPWOC,

SPBUP LIKE S012-SPBUP,

BASME LIKE S012-BASME,

WEMNG LIKE S012-WEMNG,

END OF GT_GOODS.

DATA:TOTAL LIKE VBAP-NETPR.

  • * &&&& SELECTION SCREEN &&&&& * *

SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS:S_EKORG FOR S012-EKORG,

S_MATNR FOR S012-MATNR,

S_WERKS FOR S012-WERKS,

S_SPMON FOR S012-SPMON,

S_SPTAG FOR S012-SPTAG,

S_SPWOC FOR S012-SPWOC,

S_SPBUP FOR S012-SPBUP,

S_BASME FOR S012-BASME.

SELECTION-SCREEN END OF BLOCK BLK1 .

START-OF-SELECTION.

***Performing Goods Information***

PERFORM FETCH_DATA.

PERFORM DISPLAY_DATA.

perform build_sort.

END-OF-SELECTION.

perform list_display.

  • &&& Fetch Data &&&**

&----


*& Form FETCH_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FETCH_DATA .

REFRESH GT_GOODS.

CLEAR GT_GOODS.

SELECT EKORG MATNR WERKS SPMON SPTAG SPWOC SPBUP BASME WEMNG FROM S012 INTO TABLE GT_GOODS WHERE EKORG IN S_EKORG

AND MATNR IN S_MATNR

AND WERKS IN S_WERKS

AND SPMON IN S_SPMON

AND SPTAG IN S_SPTAG

AND SPWOC IN S_SPWOC

AND SPBUP IN S_SPBUP

AND BASME IN S_BASME.

ENDFORM. " FETCH_DATA

&----


*& Form DISPLAY_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM DISPLAY_DATA .

w_fldcat-fieldname = 'EKORG'.

*w_fldcat-ref_tabname = 'S012'.

w_fldcat-tabname = 'GT_GOODS'.

w_fldcat-col_pos = 1.

w_fldcat-seltext_s = 'Purchase Org'.

w_fldcat-seltext_l = 'Purchase Organisation'.

w_fldcat-OUTPUTLEN = '17'.

*w_fldcat-FIX_COLUMN = 'X' .

*w_fldcat-OUTPUTLEN = 'X' .

append w_fldcat to i_fldcat.

w_fldcat-fieldname = 'MATNR'.

w_fldcat-tabname = 'GT_GOODS'.

w_fldcat-col_pos = 2.

w_fldcat-seltext_s = 'Materail no'.

w_fldcat-seltext_l = 'Material Number'.

append w_fldcat to i_fldcat.

w_fldcat-fieldname = 'WERKS'.

w_fldcat-tabname = 'GT_GOODS'.

w_fldcat-col_pos = 3.

w_fldcat-seltext_s = 'Plant'.

w_fldcat-seltext_l = 'Plant'.

append w_fldcat to i_fldcat.

w_fldcat-fieldname = 'SPMON'.

w_fldcat-tabname = 'GT_GOODS'.

w_fldcat-col_pos = 4.

w_fldcat-seltext_s = 'Month'.

w_fldcat-seltext_l = 'Month'.

append w_fldcat to i_fldcat.

w_fldcat-fieldname = 'SPTAG'.

w_fldcat-tabname = 'GT_GOODS'.

w_fldcat-col_pos = 5.

w_fldcat-seltext_s = 'Date'.

w_fldcat-seltext_l = 'Date'.

append w_fldcat to i_fldcat.

w_fldcat-fieldname = 'SPWOC'.

w_fldcat-tabname = 'GT_GOODS'.

w_fldcat-col_pos = 6.

w_fldcat-seltext_s = 'Week'.

w_fldcat-seltext_l = 'Week'.

append w_fldcat to i_fldcat.

w_fldcat-fieldname = 'SPBUP'.

w_fldcat-tabname = 'GT_GOODS'.

w_fldcat-col_pos = 7.

w_fldcat-seltext_s = 'Period'.

w_fldcat-seltext_l = 'Period'.

append w_fldcat to i_fldcat.

w_fldcat-fieldname = 'BASME'.

w_fldcat-tabname = 'GT_GOODS'.

w_fldcat-col_pos = 8.

w_fldcat-seltext_s = 'Unit'.

w_fldcat-seltext_l = 'Unit'.

append w_fldcat to i_fldcat.

w_fldcat-fieldname = 'WEMNG'.

w_fldcat-tabname = 'GT_GOODS'.

w_fldcat-col_pos = 9.

w_fldcat-do_sum = 'X'.

w_fldcat-no_zero = 'X'.

w_fldcat-seltext_s = 'Quantity of Goods Recieved'.

w_fldcat-seltext_l ='Quantity of Goods Recieved'.

append w_fldcat to i_fldcat.

wa_layout-subtotals_text = 'Sub Totals'.

*SORT GT_GOODS BY EKORG..

*

*LOOP AT GT_GOODS.

*

*AT FIRST.

*

*WRITE:/ 'Purchasing Organisation',

*50 'Material Number',

*70 'Plant',

*90 'Month',

*100 'Current Date',

*130 'Week',

*179 'Gr Account'.

*ENDAT.

*

*AT NEW EKORG.

*WRITE:/ GT_GOODS-EKORG.

*ENDAT.

*

*WRITE:/50 GT_GOODS-MATNR,

*70 GT_GOODS-WERKS,

*90 GT_GOODS-SPMON,

*100 GT_GOODS-SPTAG,

*130 GT_GOODS-SPWOC,

*160 GT_GOODS-SPBUP,

*170 GT_GOODS-WEMNG.

**TOTAL = TOTAL + GT_GOODS-WEWRT.

*

*AT END OF EKORG.

*sum .

*ULINE.

*WRITE:110 'TOTAL = ', gt_goods-WEMNG no-zero.

*ULINE.

*SKIP.

*CLEAR TOTAL.

*ENDAT.

*

*ENDLOOP.

ENDFORM. " DISPLAY_DATA

&----


*& Form build_sort

&----


FORM build_sort .

wa_sort-fieldname = 'EKORG'.

wa_sort-up = 'X'.

wa_sort-subtot = 'X'.

append wa_sort to i_sort.

ENDFORM. " build_sort

&----


*& Form list_display

&----


FORM list_display .

CALL FUNCTION 'REUSE_ALV_LIST_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_STRUCTURE_NAME =

IS_LAYOUT = wa_layout

IT_FIELDCAT = i_fldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • 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

  • IR_SALV_LIST_ADAPTER =

  • IT_EXCEPT_QINFO =

  • I_SUPPRESS_EMPTY_DATA = ABAP_FALSE

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = GT_GOODS

  • 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. " list_display

Read only

0 Likes
2,990

Hi jaya...

Full name is not coming???

in that case increase u r output length

w_fldcat-outputlen = '15'.

Read only

0 Likes
2,990

Hi,

pLS EXECUTE MY CODE PLS

cAN U PLS REPLY TO MAY GMAIL

Read only

0 Likes
2,990

hi..i cant access gmail..its blocked

Read only

0 Likes
2,990

Hi,

can u pls execute my code ...

So u will see that the purchasing oragainsation full name is not dispalyed..

pls check..

Read only

0 Likes
2,990

hi jaya...

do like this

w_fldcat-fieldname = 'EKORG'.

*w_fldcat-ref_tabname = 'S012'.

w_fldcat-tabname = 'GT_GOODS'.

w_fldcat-col_pos = 1.

w_fldcat-seltext_s = 'Purchase Org'.

w_fldcat-seltext_l = 'Purchase Organisation'.

w_fldcat-OUTPUTLEN = '30'.

also write clear w_fldcat after append w_fldcat.

Read only

0 Likes
2,990

Hi Rahul,

Thanks a lot.

i HAVE Q SMALL DOUBT.

iF I NEED TO DISPLAY THE WORD "TOTAL'

WHAT SHUD I DO?

Read only

0 Likes
2,990

Hi jaya,

where do u want to display it?

Read only

Former Member
0 Likes
2,990

here is a peice of sample code that may help u out

plz reward if useful

&----


*& Report Z9D_PO_GOODSRECEIPT

*&

&----


*&

*&

&----


report z9d_po_goodsreceipt

message-id z9d_po

no standard page heading line-size 200 line-count 200.

types : begin of type_ekkoekpo,

ebeln type ebeln, "Purchasing Document Number

ebelp type ebelp, "Item Number of Purchasing Document

lifnr type elifn, "Vendor's account number

bedat type ebdat, "Purchasing Document Date

menge type bstmg, "Purchase order quantity

end of type_ekkoekpo.

types : begin of type_ekbe,

ebeln type ebeln, "Purchasing Document Number

ebelp type ebelp, "Item Number of Purchasing Document

zekkn type dzekkn, "Sequential number of account assignment

vgabe type vgabe, "Transaction/event type, purchase order history

gjahr type mjahr, "Material Document Year

belnr type mblnr, "Number of Material Document

buzei type mblpo, "Item in Material Document

budat type budat, "Posting Date in the Document

menge type menge_d, "Quantity

end of type_ekbe.

types : begin of type_lfa1,

lifnr type lifnr, "Account Number of Vendor or Creditor

name1 type name1_gp, "Name 1

end of type_lfa1.

types : type_t_ekkoekpo type type_ekkoekpo,

type_t_ekbe type type_ekbe,

type_t_lfa1 type type_lfa1.

*&---internal tables

data : it_ekbe type standard table of type_t_ekbe,

it_ekkoekpo type standard table of type_t_ekkoekpo,

it_lfa1 type standard table of type_t_lfa1.

*&----work areas

data : wa_ekbe type type_ekbe,

wa_ekkoekpo type type_ekkoekpo,

wa_lfa1 type type_t_lfa1.

*&---data for selection-screen

data : v_lifnr type lifnr,

v_name1 type name1,

v_ebeln type ebeln,

v_ebelp type ebelp,

v_bedat type bedat.

*&-----field symbol for the ekbe

field-symbols: <fekbe> type type_ekbe.

*&---data declaration

data : lvsum type menge_d value 0,

lvleft type menge_d value 0,

name1_low type name1,

name1_high type name1.

*&----


constants

constants : c_bw type i value '101'.

*&---initialization.

initialization.

clear wa_ekkoekpo.

clear wa_ekbe.

clear wa_lfa1.

refresh it_ekkoekpo.

refresh it_ekbe.

refresh it_lfa1.

*&----


defining the selection-screen

selection-screen begin of block bl1 with frame title text001.

select-options : s_lifnr for v_lifnr obligatory.

select-options : s_name1 for v_name1.

select-options : s_ebeln for v_ebeln.

select-options : s_ebelp for v_ebelp.

select-options : s_bedat for v_bedat.

selection-screen end of block bl1.

*&----


validation for selection-screen

at selection-screen on s_lifnr.

if s_lifnr[] is initial.

set cursor field 's_lifnr-low'.

message e001.

else.

select lifnr into v_lifnr

from lfa1

up to 1 rows

where lifnr in s_lifnr.

endselect.

if sy-subrc <> 0.

set cursor field 's_lifnr-low'.

message e001.

endif.

endif.

at selection-screen on s_name1.

select name1 into v_name1

from lfa1

up to 1 rows

where name1 in s_name1.

endselect.

if sy-subrc <> 0.

set cursor field 's_name1-low'.

message e002.

endif.

at selection-screen on s_ebeln.

select ebeln into v_ebeln

from ekko

up to 1 rows

where ebeln in s_ebeln.

endselect.

if sy-subrc <> 0.

set cursor field 's_ebeln-low'.

message e003.

endif.

at selection-screen on s_ebelp.

select ebelp into v_ebelp

from ekpo

up to 1 rows

where ebelp in s_ebelp.

endselect.

if sy-subrc <> 0.

set cursor field 's_ebelp-low'.

message e004.

endif.

*&---main logic

start-of-selection.

*&--populate the data from ekko & ekpo

select a~ebeln "Purchasing Document Number

b~ebelp "Item Number of Purchasing Document

a~lifnr "Vendor's account number

a~bedat "Purchasing Document Date

b~menge "Purchase order quantity

into table it_ekkoekpo

from ekko as a inner join ekpo as b

on aebeln = bebeln

where a~lifnr in s_lifnr and

a~ebeln in s_ebeln and

b~ebelp in s_ebelp and

a~bedat in s_bedat.

*&--populate the data from ekbe

if it_ekkoekpo[] is not initial.

select ebeln "Purchasing Document Number

ebelp "Item Number of Purchasing Document

zekkn "Sequential number of account assignment

vgabe "Transaction/event type, purchase order history

gjahr "Material Document Year

belnr "Number of Material Document

buzei "Item in Material Document

budat "Posting Date in the Document

menge "Quantity

into table it_ekbe

from ekbe

for all entries in it_ekkoekpo

where ebeln = it_ekkoekpo-ebeln and

ebelp = it_ekkoekpo-ebelp.

endif.

*&---populate the data from lfa1

if it_lfa1[] is not initial.

endif.

*&----


printing on the output clasical report

format color 5 on.

write:/2 'vendor name' , 16 'vendor name' , 54 'po no' , 64 'po item no' , 80 'po qty' , 101 'qty received' , 126 'qty pending'.

format color 5 off.

format color 7 on.

write:/2 'gr no' , 16 'gr item no ' , 34 'gr qty' , 45 'gr date'.

format color 7 off.

uline.

*&-----populate the data from lfa1

loop at it_ekkoekpo into wa_ekkoekpo.

format color 5 on.

read table it_lfa1 into wa_lfa1 with key lifnr = wa_ekkoekpo-lifnr.

if sy-subrc <> 0.

select single lifnr

name1

into wa_lfa1

from lfa1

  • FOR ALL ENTRIES IN it_lfa1

where lifnr = wa_lfa1-lifnr.

if sy-subrc = 0.

append wa_lfa1 to it_lfa1.

write:/2 wa_lfa1-lifnr , sy-vline ,

16 wa_lfa1-name1 , sy-vline ,

54 wa_ekkoekpo-ebeln , sy-vline ,

64 wa_ekkoekpo-ebelp , sy-vline ,

80 wa_ekkoekpo-menge , sy-vline .

endif.

else.

write:/2 wa_lfa1-lifnr , sy-vline ,

16 wa_lfa1-name1 , sy-vline ,

54 wa_ekkoekpo-ebeln , sy-vline ,

64 wa_ekkoekpo-ebelp , sy-vline ,

80 wa_ekkoekpo-menge , sy-vline .

endif.

endloop.

*&----caluculate the (qty received)

loop at it_ekbe into wa_ekbe .

lvsum = lvsum + wa_ekbe-menge.

endloop.

*&-----caluculate the qty pending

lvleft = wa_ekkoekpo-menge - lvsum.

write:101 lvsum , 126 lvleft.

clear : lvsum , lvleft.

uline.

format color 5 off.

loop at it_ekbe into wa_ekbe where ebeln = wa_ekkoekpo-ebeln and

ebelp = wa_ekkoekpo-ebelp.

format color 7 on.

write: sy-vline.

write:2 wa_ekbe-belnr , sy-vline ,

16 wa_ekbe-buzei , sy-vline ,

34 wa_ekbe-menge , sy-vline ,

45 wa_ekbe-budat , sy-vline , 138 sy-vline.

format color 7 off.

uline.

endloop.

Read only

0 Likes
2,990

Hi Vivek,

Thanks so much for responding.

I was understanding ur code.

I got stuck up with these lines.

I need to populate the data from lafa1 ..right?

so

i thought of using the code

select lifnr name` lifnr to table it_lifnr for all entries in it_ekbe where lifnr = it_ekbe-lifnr

is this right ?

*&---populate the data from lfa1

*if itlfa1[] is not initial.*_

endif.

here only my doubt starts?????????????

*&----


printing on the output clasical report

format color 5 on.

write:/2 'vendor name' , 16 'vendor name' , 54 'po no' , 64 'po item no' , 80 'po qty' , 101 'qty received' , 126 'qty pending'.

format color 5 off.

format color 7 on.

write:/2 'gr no' , 16 'gr item no ' , 34 'gr qty' , 45 'gr date'.

format color 7 off.

uline.

*&-----populate the data from lfa1

loop at it_ekkoekpo into wa_ekkoekpo.

format color 5 on.

read table it_lfa1 into wa_lfa1 with key lifnr = wa_ekkoekpo-lifnr.

if sy-subrc 0.

select single lifnr

name1

into wa_lfa1

from lfa1

FOR ALL ENTRIES IN it_lfa1

where lifnr = wa_lfa1-lifnr.

if sy-subrc = 0.

append wa_lfa1 to it_lfa1.

write:/2 wa_lfa1-lifnr , sy-vline ,

16 wa_lfa1-name1 , sy-vline ,

54 wa_ekkoekpo-ebeln , sy-vline ,

64 wa_ekkoekpo-ebelp , sy-vline ,

80 wa_ekkoekpo-menge , sy-vline .

endif.

else.

write:/2 wa_lfa1-lifnr , sy-vline ,

16 wa_lfa1-name1 , sy-vline ,

54 wa_ekkoekpo-ebeln , sy-vline ,

64 wa_ekkoekpo-ebelp , sy-vline ,

80 wa_ekkoekpo-menge , sy-vline .

endif.

endloop.

*&----caluculate the (qty received)

loop at it_ekbe into wa_ekbe .

lvsum = lvsum + wa_ekbe-menge.

endloop.

*&-----caluculate the qty pending

lvleft = wa_ekkoekpo-menge - lvsum.

write:101 lvsum , 126 lvleft.

clear : lvsum , lvleft.

uline.

format color 5 off.

loop at it_ekbe into wa_ekbe where ebeln = wa_ekkoekpo-ebeln and

ebelp = wa_ekkoekpo-ebelp.

format color 7 on.

write: sy-vline.

write:2 wa_ekbe-belnr , sy-vline ,

16 wa_ekbe-buzei , sy-vline ,

34 wa_ekbe-menge , sy-vline ,

45 wa_ekbe-budat , sy-vline , 138 sy-vline.

format color 7 off.

uline.

endloop.