‎2007 Nov 05 9:22 AM
Hi All,
am selecting that data from ztable and passing the values based on the selection criteria.and am selecting the data from individual table and placing the data into internal table.now when i do so the select stmt for LFA1 is not fetching lifnr and name1.i checked for the data in se16 it is available. while reading the data it is checked with ekko lifnr i checked in table ekko there also data is available.but when i run the output am nt the data for lifnr and name1.can u please tell me how to do it?
‎2007 Nov 05 9:37 AM
Hi,
Allong with ur select query use this
SELECT * FROM <table> INTO CORRESPONDING FIELDS OF TABLE itab.
Deserve Reward.
regards,
‎2007 Nov 05 9:25 AM
‎2007 Nov 05 9:31 AM
REPORT ZPPI0036 LINE-SIZE 150 NO STANDARD PAGE HEADING
MESSAGE-ID Z1.
$$----
$$ Standard routines and definitions
$$----
Include ZBSN0001. "Report Headers
Include ZBSN0003. "Common Routines
INCLUDE ZSDN0004. "Common Routines
$$----
$$ Tables-definitions
$$----
TABLES : ZVMATLMOVE,
T161,
T001W,
T024E,
T156,
EKKO,
LFA1,
TVARV,
MARA,
MARC,
EKPO,
T024, "(+) SIR 300589
Z_LFA1, "(+) SIR 300589
M_PRCTN. "(+) SIR 300589
$$----
$$ Internal tables definition
$$----
Begin of SIR 090216
*DATA I_MATLMOVE LIKE ZVMATLMOVE OCCURS 0 WITH HEADER LINE.
DATA : BEGIN OF I_MATLMOVE OCCURS 0,
MBLNR TYPE MSEG-MBLNR,
MJAHR TYPE MSEG-MBLNR,
BUDAT TYPE MKPF-BUDAT,
ZEILE TYPE MSEG-ZEILE,
BWART TYPE MSEG-BWART,
MATNR TYPE MSEG-MATNR,
WERKS TYPE MSEG-WERKS,
LGORT TYPE MSEG-LGORT, "(+) SIR 300589
LIFNR TYPE MSEG-LIFNR,
WAERS TYPE MSEG-WAERS,
MENGE TYPE MSEG-MENGE,
MEINS TYPE MSEG-MEINS,
EBELN TYPE MSEG-EBELN,
EBELP TYPE MSEG-EBELP,
PRCTR TYPE MSEG-PRCTR, "(+) SIR 301081
END OF I_MATLMOVE.
End of SIR 090216
DATA : BEGIN OF I_OUTPUT OCCURS 0.
INCLUDE STRUCTURE ZIP1401OUT.
DATA: END OF I_OUTPUT.
Begin of SIR 300589
DATA: BEGIN OF I_T156 OCCURS 0,
BWART TYPE T156-BWART,
SHKZG TYPE T156-SHKZG,
END OF I_T156.
DATA: BEGIN OF I_EKKO OCCURS 0,
EBELN TYPE EKKO-EBELN,
BSTYP TYPE EKKO-BSTYP,
BSART TYPE EKKO-BSART,
LIFNR TYPE EKKO-LIFNR,
EKORG TYPE EKKO-EKORG,
WAERS TYPE EKKO-WAERS,
END OF I_EKKO.
DATA: BEGIN OF I_EKPO OCCURS 0,
EBELN TYPE EKPO-EBELN,
EBELP TYPE EKPO-EBELP,
TXZ01 TYPE EKPO-TXZ01,
MATKL TYPE EKPO-MATKL,
MENGE TYPE EKPO-MENGE,
NETPR TYPE EKPO-NETPR,
PEINH TYPE EKPO-PEINH,
KO_PRCTR TYPE EKPO-KO_PRCTR, "(-)SIR 301081
END OF I_EKPO.
DATA: BEGIN OF I_MARC OCCURS 0,
MATNR TYPE MARC-MATNR,
WERKS TYPE MARC-WERKS,
MAABC TYPE MARC-MAABC,
EKGRP TYPE MARC-EKGRP,
END OF I_MARC.
DATA: I_MATLMOVE_TMP LIKE I_MATLMOVE OCCURS 0.
DATA: I_EKKO_TMP LIKE I_EKKO OCCURS 0.
DATA: I_EKPO_TMP LIKE I_EKPO OCCURS 0.
DATA: I_MARC_TMP LIKE I_MARC OCCURS 0.
DATA: BEGIN OF I_MBEW OCCURS 0,
MATNR TYPE MBEW-MATNR,
BWKEY TYPE MBEW-BWKEY,
VPRSV TYPE MBEW-VPRSV,
VERPR TYPE MBEW-VERPR,
STPRS TYPE MBEW-STPRS,
END OF I_MBEW.
DATA: BEGIN OF I_T024 OCCURS 0,
EKGRP TYPE T024-EKGRP,
EKNAM TYPE T024-EKNAM,
END OF I_T024.
DATA: BEGIN OF I_LFA1 OCCURS 0,
LIFNR TYPE Z_LFA1-LIFNR,
NAME1 TYPE Z_LFA1-NAME1,
END OF I_LFA1.
DATA: BEGIN OF I_PRCTN OCCURS 0,
PRCTR TYPE M_PRCTN-PRCTR,
MCTXT TYPE M_PRCTN-MCTXT,
END OF I_PRCTN.
End of SIR 300589
$$----
$$ Variables defintions
$$----
DATA V_FILE_CNT TYPE I.
DATA V_LASTRUN_DATE LIKE SY-DATUM.
data v_lastrun_time like sy-uzeit.
data v_lastrun_time_n_date(30).
DATA V_NAME LIKE TVARV-NAME.
DATA V_TEMP1(10) TYPE P DECIMALS 4. "(-) SIR 300589
$$----
$$ Constants definitions
$$----
Begin of SIR 300589
CONSTANTS: C_VPRSV_S(1) TYPE C VALUE 'S',
C_VPRSV_V(1) TYPE C VALUE 'V',
C_SHKZG_H(1) TYPE C VALUE 'H'.
End of SIR 300589
Begin Of SIR 301278
*----
Definitions needed for ALV-grid-processing
*----
type-pools: slis,
sscr.
*----
Variables defintions
*----
data: v_restrict type sscr_restrict,
v_assn type sscr_ass,
v_opt_list type sscr_opt_list.
*----
ALV types
*----
Field catalog with field descriptions.
data: i_fieldcat_alv type slis_t_fieldcat_alv,
i_list_comments type slis_t_listheader,
v_list_comments like line of i_list_comments,
i_events type slis_t_event,
Sort criteria for first list display.
lt_sort_fieldcat type slis_t_sortinfo_alv,
ls_sort_fieldcat type slis_sortinfo_alv,
v_layout type slis_layout_alv,
v_fieldcat_alv like line of i_fieldcat_alv,
v_events like line of i_events,
v_repid like sy-repid,
v_variant like disvariant,
wa_variant like disvariant,
wa_variant_save type c,
wa_exit type c,
wa_repid like sy-repid.
*----
Constants definitions
*----
constants: c_x(1) type c value 'X',
c_alv_subtotals_summary type slis_formname
value 'ALV_SUBTOTALS_SUMMARY',
c_top_of_page type slis_formname value 'F_TOP_OF_PAGE',
c_a(1) type c value 'A'.
*----
End Of SIR 301278
$$----
$$ Select-options and parameters
$$----
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-003.
SELECT-OPTIONS : S_WERKS FOR T001W-WERKS,
S_EKORG FOR T024E-EKORG,
S_LIFNR FOR LFA1-LIFNR,
S_MATNR FOR MARA-MATNR,
S_BWART FOR T156-BWART,
S_EBELN FOR EKKO-EBELN,
S_BSTYP FOR T161-BSTYP NO INTERVALS,
S_BSART FOR T161-BSART NO INTERVALS.
PARAMETERS: P_WAERS LIKE T001-WAERS DEFAULT 'USD' OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK E WITH FRAME.
PARAMETERS: P_FILE AS CHECKBOX,
P_REPORT AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK E.
selection-screen begin of block file01 with frame.
PARAMETERS: P_FILEID(6).
PARAMETERS: P_LF_01 LIKE FILETEXTCI-FILEINTERN
DEFAULT 'Z_IP1401_RECEIPT_EXTRACT',
P_PF_01 LIKE V_FILENACI-FILEEXTERN.
selection-screen end of block file01.
SELECTION-SCREEN BEGIN OF BLOCK DT WITH FRAME.
selection-screen skip 1.
SELECTION-SCREEN COMMENT 1(65) TEXT-D00.
PARAMETERS: P_DATE LIKE SY-DATUM.
selection-screen skip 1.
SELECTION-SCREEN END OF BLOCK DT.
selection-screen begin of block sb with frame.
selection-screen skip 1.
selection-screen comment 10(65) text-X00.
selection-screen skip 1.
selection-screen comment 10(65) text-X01.
selection-screen skip 1.
selection-screen comment 10(65) text-X02.
selection-screen end of block sb.
$$----
$$ initialization.
$$----
initialization.
PERFORM GET_FILE_NAME USING P_LF_01 P_FILEID '' CHANGING P_PF_01.
$$----
$$ At Selection-Screen.
$$----
At Selection-Screen.
IF P_FILE IS INITIAL AND P_REPORT IS INITIAL.
MESSAGE E100.
endif.
If not p_lf_01 is initial.
PERFORM GET_FILE_NAME USING P_LF_01 P_FILEID '' CHANGING P_PF_01.
endif.
$$----
$$ Start-of-selection.
$$----
Start-of-selection.
IF P_FILE = 'X'.
PERFORM OPEN_DATASETS.
ENDIF.
CLEAR V_LASTRUN_DATE.
CONCATENATE SY-CPROG P_FILEID INTO V_NAME.
IF P_DATE IS INITIAL.
PERFORM GET_LASTRUN_DATE.
ELSE.
V_LASTRUN_DATE = P_DATE.
ENDIF.
Begin of sir 300589
PERFORM SELECT_T156.
PERFORM SELECT_ZVMATLMOVE.
IF NOT I_MATLMOVE[] IS INITIAL.
PERFORM SELECT_SUPPORTING_DATA.
PERFORM PROCESS_DATA.
ENDIF.
End of sir 300589
Begin of SIR-301278
Prepare the data to display the report as ALV GRID.
perform process_alv_grid.
End of SIR-301278
$$----
$$ End-of-selection.
$$----
End-of-selection.
to change the sorting sequence for the output
SORT I_OUTPUT BY MATNR BUDAT MJAHR. "(+)SIR 090216
IF P_FILE = 'X'.
PERFORM WRITE_TO_FILE.
ENDIF.
IF P_REPORT = 'X'.
PERFORM WRITE_TO_REPORT.
ENDIF.
Perform Close_datasets.
PERFORM UPDATE_TVARV.
PERFORM ZSDN0004_PRINT_SELECT_OPTIONS
USING SY-CPROG ' '.
PERFORM FINAL_STATS.
$$----
$$ Top-of-page.
$$----
Top-of-page.
FORMAT COLOR 2.
PERFORM ZBSN0001_STANDARD_HEADER USING SPACE SYST-TITLE SPACE SPACE.
FORMAT COLOR OFF.
*Top-of-page.
form f_top_of_page.
clear v_list_comments.
refresh i_list_comments.
*Date and time
CLEAR: V_LASTRUN_DATE, V_LASTRUN_TIME.
WRITE: sy-datum TO v_lastrun_date MM/DD/YYYY,
sy-uzeit TO v_lastrun_time USING EDIT MASK '__:__:__'.
CONCATENATE: 'Generated on:' v_lastrun_date
INTO v_lastrun_time_n_date SEPARATED BY ' '.
v_list_comments-typ = 'H'.
v_list_comments-info = v_lastrun_time_n_date.
APPEND v_list_comments TO i_list_comments.
CLEAR v_list_comments.
v_list_comments-typ = 'H'.
move: text-h01 to v_list_comments-info.
append v_list_comments to i_list_comments .
clear v_list_comments .
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = i_list_comments
I_LOGO =
I_END_OF_LIST_GRID =
.
endform. "f_top_of_page.
$$----
$$ Form Open_Datasets.
$$----
Form Open_Datasets.
perform open_file using p_pf_01 'OUTPUT ' 'TEXT '.
Endform.
$$----
$$ Form GET_LASTRUN_DATE
$$----
FORM GET_LASTRUN_DATE.
Get the last run date from TVARV
SELECT SINGLE LOW FROM TVARV
INTO TVARV-LOW
WHERE NAME = V_NAME
AND TYPE = 'P'
AND NUMB = 0.
IF SY-SUBRC NE 0.
If it does not exist then a full refresh will be sent
ELSE.
V_LASTRUN_DATE = TVARV-LOW+0(8).
ENDIF.
ENDFORM.
Begin of sir 300589
$$----
$$ Form SELECT_T156
$$----
FORM SELECT_T156 .
Get all of the info on the movement types that will be selected
SELECT BWART "Movement Type
SHKZG "Debit/Credit Indicator
FROM T156
INTO TABLE I_T156
WHERE BWART IN S_BWART.
ENDFORM. " SELECT_T156
End of sir 300589
Begin of sir 300589
$$----
$$ Form SELECT_ZVMATLMOVE
$$----
FORM SELECT_ZVMATLMOVE .
Get Material Document, Year of Material Doc, Item in Material Doc,
PO number, PO line item, Posting Date, Movement Type, Plant,
Purchasing Org, Material Group, Material number, Vendor Id,
Currency Key, Quantity Recieved, UOM, Storage location from View of
Material Doc Header and Items to the internal table I_MATLMOVE
SELECT MBLNR
MJAHR
BUDAT
ZEILE
BWART "(+) SIR 300589
MATNR
WERKS
LGORT "(+) SIR 300589
LIFNR
WAERS
MENGE
MEINS
EBELN
EBELP
PRCTR "(+) SIR 301081
FROM ZVMATLMOVE
INTO TABLE I_MATLMOVE
WHERE BUDAT >= V_LASTRUN_DATE
AND BWART IN S_BWART
AND MATNR IN S_MATNR
AND WERKS IN S_WERKS
AND LIFNR IN S_LIFNR
AND EBELN IN S_EBELN.
ENDFORM. " SELECT_ZVMATLMOVE
End of sir 300589
Begin of sir 300589
$$----
$$ Form SELECT_SUPPORTING_DATA
$$----
FORM SELECT_SUPPORTING_DATA .
I_MATLMOVE_TMP[] = I_MATLMOVE[].
SORT I_MATLMOVE_TMP BY EBELN.
DELETE ADJACENT DUPLICATES FROM I_MATLMOVE_TMP COMPARING EBELN.
Get Purchasing org, Currency, Account No, Purchasing doc category,
Purchasing Document Type from Purchasing Document Header table
SELECT EBELN "Purchasing Document Number
BSTYP "Purchasing document category
BSART "Purchasing Document Type
LIFNR "Account Number of the Vendor
EKORG "Purchasing Organization
WAERS "Currency Key
FROM EKKO
INTO TABLE I_EKKO
FOR ALL ENTRIES IN I_MATLMOVE_TMP
WHERE EBELN = I_MATLMOVE_TMP-EBELN
AND EKORG IN S_EKORG
AND BSART IN S_BSART
AND BSTYP IN S_BSTYP.
CLEAR I_MATLMOVE_TMP.
REFRESH I_MATLMOVE_TMP.
I_MATLMOVE_TMP[] = I_MATLMOVE[].
SORT I_MATLMOVE_TMP BY EBELN EBELP.
DELETE ADJACENT DUPLICATES
FROM I_MATLMOVE_TMP COMPARING EBELN EBELP.
Get the material group and the net price from the PO Line item
SELECT EBELN "Purchasing Document Number
EBELP "Item Number of Purchasing Document
TXZ01 "Short text
MATKL "Material Group
MENGE "Purchase order quantity
NETPR "Net price in purchasing document
PEINH "Price unit
KO_PRCTR "Profit Center "(-)SIR 301081
FROM EKPO
INTO TABLE I_EKPO
FOR ALL ENTRIES IN I_MATLMOVE_TMP
WHERE EBELN = I_MATLMOVE_TMP-EBELN
AND EBELP = I_MATLMOVE_TMP-EBELP.
CLEAR I_MATLMOVE_TMP.
REFRESH I_MATLMOVE_TMP.
I_MATLMOVE_TMP[] = I_MATLMOVE[].
SORT I_MATLMOVE_TMP BY MATNR WERKS.
DELETE ADJACENT DUPLICATES
FROM I_MATLMOVE_TMP COMPARING MATNR WERKS.
Get the Purchasing Group from the Plant Data for Material table
SELECT MATNR "Material Number
WERKS "Plant
MAABC "ABC indicator
EKGRP "Purchasing Group
FROM MARC
INTO TABLE I_MARC
FOR ALL ENTRIES IN I_MATLMOVE_TMP
WHERE MATNR = I_MATLMOVE_TMP-MATNR
AND WERKS = I_MATLMOVE_TMP-WERKS.
Get the standard price from the Material Valuation table
SELECT MATNR "Material Number
BWKEY "Valuation area
VPRSV "Price Control Indicator
VERPR "Moving Average Price
STPRS "Standard Price
FROM MBEW
INTO TABLE I_MBEW
FOR ALL ENTRIES IN I_MATLMOVE_TMP
WHERE MATNR = I_MATLMOVE_TMP-MATNR
AND BWKEY = I_MATLMOVE_TMP-WERKS.
IF NOT I_MARC[] IS INITIAL.
I_MARC_TMP[] = I_MARC[].
SORT I_MARC_TMP BY EKGRP.
DELETE ADJACENT DUPLICATES
FROM I_MARC_TMP COMPARING EKGRP.
Get the Buyer name from the purchasing groups table
SELECT EKGRP "Purchasing Group
EKNAM "Description of purchasing group
FROM T024
INTO TABLE I_T024
FOR ALL ENTRIES IN I_MARC_TMP
WHERE EKGRP = I_MARC_TMP-EKGRP.
ENDIF.
IF NOT I_EKKO[] IS INITIAL.
I_EKKO_TMP[] = I_EKKO[].
SORT I_EKKO_TMP BY LIFNR.
DELETE ADJACENT DUPLICATES
FROM I_EKKO_TMP COMPARING LIFNR.
Get the Vendor name from the Vendor Master (General Data subset)
SELECT LIFNR "Account Number of Vendor or Creditor
NAME1 "Name 1
FROM Z_LFA1
INTO TABLE I_LFA1
FOR ALL ENTRIES IN I_EKKO_TMP
WHERE LIFNR = I_EKKO_TMP-LIFNR.
ENDIF.
Begin of SIR 301081
IF NOT I_EKPO[] IS INITIAL.
*
I_EKPO_TMP[] = I_EKPO[].
SORT I_EKPO_TMP BY KO_PRCTR.
DELETE ADJACENT DUPLICATES
FROM I_EKPO_TMP COMPARING KO_PRCTR.
I_MATLMOVE_TMP[] = I_MATLMOVE[].
SORT I_MATLMOVE_TMP BY PRCTR.
DELETE ADJACENT DUPLICATES
FROM I_MATLMOVE_TMP COMPARING PRCTR.
End of SIR 301081
Get the Profit center name from the Generated view for matchcodeID
PRCT-N
SELECT PRCTR "Profit Center
MCTXT "Search term for matchcode search
FROM M_PRCTN
INTO TABLE I_PRCTN
FOR ALL ENTRIES IN I_EKPO_TMP "(-) SIR 301081
WHERE PRCTR = I_EKPO_TMP-KO_PRCTR. "(-) SIR 301081
FOR ALL ENTRIES IN I_MATLMOVE_TMP "(+) SIR 301081
WHERE PRCTR = I_MATLMOVE_TMP-PRCTR. "(+) SIR 301081
ENDIF. "(-) SIR 301081
CLEAR: I_MATLMOVE_TMP,
I_EKKO_TMP,
I_EKPO_TMP,
I_MARC_TMP.
REFRESH: I_MATLMOVE_TMP,
I_EKKO_TMP,
I_EKPO_TMP,
I_MARC_TMP.
ENDFORM. " SELECT_SUPPORTING_DATA
End of sir 300589
Begin of sir 300589
$$----
$$ Form PROCESS_DATA
$$----
FORM PROCESS_DATA .
SORT I_EKKO BY EBELN.
SORT I_MARC BY MATNR WERKS.
SORT I_EKPO BY EBELN EBELP.
SORT I_MBEW BY MATNR BWKEY.
SORT I_T024 BY EKGRP.
SORT I_LFA1 BY LIFNR.
SORT I_PRCTN BY PRCTR.
Loop the internal I_MATLMOVE and move the corresponding values to
the internal table I_OUTPUT
LOOP AT I_MATLMOVE.
CLEAR V_TEMP1.
Move the Purchasing document category, Purchasing Document Type,
Account Number of the Vendor , Purchasing Organization from table
Purchasing Document Header to the internal table I_OUTPUT
CLEAR I_EKKO.
READ TABLE I_EKKO WITH KEY EBELN = I_MATLMOVE-EBELN
BINARY SEARCH.
IF SY-SUBRC EQ 0.
I_OUTPUT-BSTYP = I_EKKO-BSTYP.
I_OUTPUT-BSART = I_EKKO-BSART.
I_OUTPUT-LIFNR = I_EKKO-LIFNR.
I_OUTPUT-EKORG = I_EKKO-EKORG.
Move the Vendor name from view Vendor Master(General Data subset)
to the internal table I_OUTPUT
CLEAR I_LFA1.
READ TABLE I_LFA1 WITH KEY LIFNR = I_EKKO-LIFNR
BINARY SEARCH.
IF SY-SUBRC EQ 0.
I_OUTPUT-LIFNR1 = I_LFA1-LIFNR.
I_OUTPUT-NAME1 = I_LFA1-NAME1.
ENDIF.
ENDIF.
Move the ABC indicator,Purchasing Group from table Plant Data for
Material to the internal table I_OUTPUT
CLEAR I_MARC.
READ TABLE I_MARC WITH KEY MATNR = I_MATLMOVE-MATNR
WERKS = I_MATLMOVE-WERKS
BINARY SEARCH.
IF SY-SUBRC EQ 0.
I_OUTPUT-MAABC = I_MARC-MAABC.
I_OUTPUT-EKGRP = I_MARC-EKGRP.
Move the Buyer name from table Purchasing Group into the internal
table I_OUTPUT
CLEAR I_T024.
READ TABLE I_T024 WITH KEY EKGRP = I_MARC-EKGRP
BINARY SEARCH.
IF SY-SUBRC EQ 0.
I_OUTPUT-EKNAM = I_T024-EKNAM.
ENDIF.
ENDIF.
Move the Material Description, Material Group, Purchase order qty,
Net price in purchasing doc, Profit Center from the table
Purchasing Document Item to the internal table I_OUTPUT
CLEAR I_EKPO.
READ TABLE I_EKPO WITH KEY EBELN = I_MATLMOVE-EBELN
EBELP = I_MATLMOVE-EBELP
BINARY SEARCH.
IF SY-SUBRC EQ 0.
I_OUTPUT-TXZ01 = I_EKPO-TXZ01.
I_OUTPUT-MATKL = I_EKPO-MATKL.
I_OUTPUT-MENGE1 = I_EKPO-MENGE.
I_OUTPUT-KO_PRCTR = I_EKPO-KO_PRCTR. "(-) SIR 301081
Convert to the currency of the input parameter
PERFORM CONVERT_CURRENCY USING I_EKKO-WAERS
P_WAERS
I_EKPO-NETPR
CHANGING I_EKPO-NETPR.
V_TEMP1 = I_EKPO-NETPR / I_EKPO-PEINH.
Deleting commas to the purchase order quantity
IF I_OUTPUT-MENGE1 IS NOT INITIAL.
PERFORM DELETE_COMMAS CHANGING I_OUTPUT-MENGE1.
SHIFT I_OUTPUT-MENGE1 RIGHT CIRCULAR.
CONDENSE I_OUTPUT-MENGE1 NO-GAPS.
SHIFT I_OUTPUT-MENGE1 RIGHT DELETING TRAILING SPACE.
ENDIF.
Move the Profit Center name (text) from Generated view for
matchcode ID PRCT-N to the internal table I_OUTPUT
CLEAR I_PRCTN.
Begin of SIR 301081
READ TABLE I_PRCTN WITH KEY PRCTR = I_EKPO-KO_PRCTR
BINARY SEARCH.
READ TABLE I_PRCTN WITH KEY PRCTR = I_MATLMOVE-PRCTR
BINARY SEARCH.
End of SIR 301081
IF SY-SUBRC EQ 0.
I_OUTPUT-MCTXT = I_PRCTN-MCTXT.
ENDIF.
ENDIF.
Move the Standard Price from table Material Valuation to the
internal table I_OUTPUT
CLEAR I_MBEW.
READ TABLE I_MBEW WITH KEY MATNR = I_MATLMOVE-MATNR
BWKEY = I_MATLMOVE-WERKS
BINARY SEARCH.
IF SY-SUBRC EQ 0.
To check the Price control indicator
S for Standard Price
V for Moving price
IF I_MBEW-VPRSV EQ C_VPRSV_S.
Convert to the currency of the input parameter
PERFORM CONVERT_CURRENCY USING I_EKKO-WAERS
P_WAERS
I_MBEW-STPRS
CHANGING I_MBEW-STPRS.
I_OUTPUT-STPRS = I_MBEW-STPRS.
ELSEIF I_MBEW-VPRSV EQ C_VPRSV_V.
Convert to the currency of the input parameter
PERFORM CONVERT_CURRENCY USING I_EKKO-WAERS
P_WAERS
I_MBEW-VERPR
CHANGING I_MBEW-VERPR.
I_OUTPUT-STPRS = I_MBEW-VERPR.
ENDIF.
ENDIF.
Move the PO number, Material Document, Year of Material Doc,
Item in Material Doc, PO line item, Plant, Material Number,
Vendor Id, UOM, Currency Key, Movement Type, Storage location,
Profit Center from view View of Material Doc Header and Items
to the internal table I_OUTPUT
I_OUTPUT-EBELN = I_MATLMOVE-EBELN.
I_OUTPUT-MBLNR = I_MATLMOVE-MBLNR.
I_OUTPUT-MJAHR = I_MATLMOVE-MJAHR.
I_OUTPUT-ZEILE = I_MATLMOVE-ZEILE.
I_OUTPUT-EBELP = I_MATLMOVE-EBELP.
I_OUTPUT-WERKS = I_MATLMOVE-WERKS.
I_OUTPUT-MATNR = I_MATLMOVE-MATNR.
I_OUTPUT-LIFNR = I_MATLMOVE-LIFNR.
I_OUTPUT-MEINS = I_MATLMOVE-MEINS.
I_OUTPUT-WAERS = P_WAERS.
I_OUTPUT-BWART = I_MATLMOVE-BWART.
I_OUTPUT-LGORT = I_MATLMOVE-LGORT.
I_OUTPUT-KO_PRCTR = I_MATLMOVE-PRCTR. "(+) SIR 301081
WRITE I_MATLMOVE-BUDAT TO I_OUTPUT-BUDAT.
Multiply amt and qty by -1 if the movement type is a credit
CLEAR I_T156.
READ TABLE I_T156 WITH KEY BWART = I_MATLMOVE-BWART.
IF I_T156-SHKZG = C_SHKZG_H.
V_TEMP1 = V_TEMP1 * -1.
I_MATLMOVE-MENGE = I_MATLMOVE-MENGE * -1.
WRITE I_MATLMOVE-MENGE TO I_OUTPUT-MENGE UNIT I_MATLMOVE-MEINS.
PERFORM DELETE_COMMAS CHANGING I_OUTPUT-MENGE.
SHIFT I_OUTPUT-MENGE RIGHT CIRCULAR.
CONDENSE I_OUTPUT-MENGE NO-GAPS.
SHIFT I_OUTPUT-MENGE RIGHT DELETING TRAILING SPACE.
ELSE.
WRITE I_MATLMOVE-MENGE TO I_OUTPUT-MENGE UNIT I_MATLMOVE-MEINS.
PERFORM DELETE_COMMAS CHANGING I_OUTPUT-MENGE.
ENDIF.
Formatting the PO unit price
I_OUTPUT-NETPR = V_TEMP1.
SHIFT I_OUTPUT-NETPR RIGHT CIRCULAR.
CONDENSE I_OUTPUT-NETPR NO-GAPS.
SHIFT I_OUTPUT-NETPR RIGHT DELETING TRAILING SPACE.
APPEND I_OUTPUT.
CLEAR I_OUTPUT.
ENDLOOP.
ENDFORM. " PROCESS_DATA
End of sir 300589
$$----
$$ Form WRITE_TO_FILE
$$----
FORM WRITE_TO_FILE.
LOOP AT I_OUTPUT.
V_FILE_CNT = V_FILE_CNT + 1.
TRANSFER I_OUTPUT TO P_PF_01 LENGTH 312.
ENDLOOP.
ENDFORM.
$$----
$$ Form WRITE_TO_REPORT
$$----
FORM WRITE_TO_REPORT.
PERFORM WRITE_HEADINGS.
LOOP AT I_OUTPUT.
WRITE : / I_OUTPUT-MBLNR.
WRITE I_OUTPUT-MJAHR.
WRITE I_OUTPUT-ZEILE.
WRITE I_OUTPUT-EBELN.
WRITE I_OUTPUT-EBELP.
WRITE I_OUTPUT-BUDAT.
WRITE I_OUTPUT-WERKS.
WRITE I_OUTPUT-EKORG.
WRITE I_OUTPUT-MATKL.
WRITE I_OUTPUT-MATNR.
WRITE I_OUTPUT-EKGRP.
WRITE I_OUTPUT-LIFNR.
WRITE I_OUTPUT-NETPR.
WRITE I_OUTPUT-WAERS.
WRITE I_OUTPUT-MENGE.
WRITE I_OUTPUT-MEINS.
Begin of SIR 300589
WRITE I_OUTPUT-MENGE1.
WRITE I_OUTPUT-MAABC.
WRITE I_OUTPUT-STPRS.
WRITE I_OUTPUT-TXZ01.
WRITE I_OUTPUT-EKNAM.
WRITE I_OUTPUT-LIFNR1.
WRITE I_OUTPUT-NAME1.
WRITE I_OUTPUT-KO_PRCTR.
WRITE I_OUTPUT-MCTXT.
WRITE I_OUTPUT-BSTYP.
WRITE I_OUTPUT-BSART.
WRITE I_OUTPUT-BWART.
WRITE I_OUTPUT-LGORT.
End of SIR 300589
ENDLOOP.
NEW-PAGE.
ENDFORM.
$$----
$$ Form Close_Datasets.
$$----
Form Close_Datasets.
Perform Close_file using p_pf_01.
Endform.
$$----
$$ Form UPDATE_TVARV
$$----
FORM UPDATE_TVARV.
TVARV-NAME = V_NAME.
TVARV-TYPE = 'P'.
TVARV-NUMB = 0.
TVARV-LOW = SY-DATLO.
MODIFY TVARV.
ENDFORM.
$$----
$$ Form FINAL_STATS
$$----
FORM FINAL_STATS.
WRITE: / 'FINAL STATS:'(018).
WRITE: /'----
'.
IF P_FILE = 'X'.
WRITE: / 'File Created - '(015), P_PF_01.
WRITE: / 'Nbr of Records written to the file - '(016).
WRITE: V_FILE_CNT.
ELSE.
WRITE: / 'No File Created.'(017).
ENDIF.
SKIP.
IF P_DATE IS INITIAL.
WRITE: / 'Last rundate before this run - '(001), V_LASTRUN_DATE.
ENDIF.
WRITE: / 'New Last rundate - '(002) , SY-DATLO.
ENDFORM.
$$----
$$ Form CONVERT_CURRENCY
$$----
FORM CONVERT_CURRENCY USING P_IN_WAERS
P_OUT_WAERS
P_IN_AMT
CHANGING P_OUT_AMT.
IF P_IN_WAERS = P_OUT_WAERS.
P_OUT_AMT = P_IN_AMT.
ELSE.
CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'
EXPORTING
DATE = SY-DATUM
FOREIGN_AMOUNT = P_IN_AMT
FOREIGN_CURRENCY = P_IN_WAERS
LOCAL_CURRENCY = P_OUT_WAERS
type_of_rate = c_type
IMPORTING
LOCAL_AMOUNT = P_OUT_AMT
EXCEPTIONS
NO_RATE_FOUND = 1
OVERFLOW = 2.
ENDIF.
ENDFORM.
$$----
$$ Form DELETE_COMMAS
$$----
FORM DELETE_COMMAS CHANGING P_AMT.
DO.
REPLACE ',' WITH SPACE INTO P_AMT.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
ENDDO.
CONDENSE P_AMT NO-GAPS.
SHIFT P_AMT RIGHT DELETING TRAILING SPACE.
ENDFORM. "DELETE_COMMASENDFORM.
$$----
$$ Form WRITE_HEADINGS
$$----
FORM WRITE_HEADINGS.
ULINE.
FORMAT COLOR 1.
WRITE 'Matl Doc. '(004).
WRITE 'Year'(005).
WRITE 'Item'(006).
WRITE 'PO Nbr '(007).
WRITE 'Item '(008).
WRITE 'Post Date '(009).
WRITE 'Plnt'(010).
WRITE 'POrg'(011).
WRITE 'Matl Grp '(012).
WRITE 'Material '(013).
WRITE 'PGp'(014).
WRITE 'Vendor '(019).
WRITE ' Price '(020).
WRITE 'Ckey'(021).
WRITE ' Qty'(022).
WRITE 'UOM'(023).
Begin of SIR 300589
WRITE 'Purchase order Qty'(024).
WRITE 'ABC Inventory Indicator'(025).
WRITE 'Standard Price'(026).
WRITE 'Material Desc'(027).
WRITE 'Buyer Name'(028).
WRITE 'Vendor ID'(029).
WRITE 'Vendor Name'(030).
WRITE 'Profit Center'(031).
WRITE 'Profit Center Name'(032).
WRITE 'Purchasing Doc Category'(033).
WRITE 'Purchasing Doc Type'(034).
WRITE 'Movement Type'(035).
WRITE 'Storage Location'(036).
End of SIR 300589
FORMAT COLOR OFF.
ENDFORM.
Begin Of SIR-301278
*&----
*& Form process_alv_grid
*&----
To process the data for ALV GRID display
*----
FORM process_alv_grid .
To Maintain Layout settings.
perform build_layout.
To display column headings.
perform fill_fieldcatalog.
To build the alv events for output
perform event_build.
To display the output in a ALV grid
perform grid_display.
ENDFORM. " process_alv_grid
*&----
*& Form build_layout
*&----
To fill the layout characteristics for output
*----
FORM build_layout .
Move the report title
clear v_layout.
v_layout-detail_titlebar = sy-title.
ENDFORM. " build_layout
*&----
*& Form event_build
*&----
To build the alv events for output
*----
FORM event_build .
refresh i_events.
clear v_events.
call function 'REUSE_ALV_EVENTS_GET'
exporting
i_list_type = 0
importing
et_events = i_events.
read table i_events with key name = slis_ev_top_of_page
into v_events.
if sy-subrc = 0.
move c_top_of_page to v_events-form.
modify i_events from v_events index sy-tabix.
endif.
read table i_events with key name = slis_ev_subtotal_text
into v_events.
if sy-subrc = 0.
move c_alv_subtotals_summary to v_events-form.
modify i_events from v_events index sy-tabix.
endif.
ENDFORM. " event_build
*&----
*& Form fill_fieldcatalog
*&----
This subroutine builds the fieldcatalog for output
*----
FORM fill_fieldcatalog .
refresh: i_fieldcat_alv[].
clear v_fieldcat_alv.
v_fieldcat_alv-tabname = 'I_OUTPUT'.
v_fieldcat_alv-fieldname = 'MBLNR'.
v_fieldcat_alv-reptext_ddic = text-001.
v_fieldcat_alv-col_pos = 1.
append v_fieldcat_alv to i_fieldcat_alv.
clear v_fieldcat_alv.
v_fieldcat_alv-tabname = 'I_OUTPUT'.
v_fieldcat_alv-fieldname = 'MJAHR'.
v_fieldcat_alv-reptext_ddic = text-002.
v_fieldcat_alv-col_pos = 2.
append v_fieldcat_alv to i_fieldcat_alv.
clear v_fieldcat_alv.
v_fieldcat_alv-tabname = 'I_OUTPUT'.
v_fieldcat_alv-fieldname = 'ZEILE'.
v_fieldcat_alv-reptext_ddic = text-003.
v_fieldcat_alv-col_pos = 3.
append v_fieldcat_alv to i_fieldcat_alv.
clear v_fieldcat_alv.
v_fieldcat_alv-tabname = 'I_OUTPUT'.
v_fieldcat_alv-fieldname = 'EBELN'.
v_fieldcat_alv-reptext_ddic = text-004.
v_fieldcat_alv-col_pos = 4.
append v_fieldcat_alv to i_fieldcat_alv.
clear v_fieldcat_alv.
v_fieldcat_alv-tabname = 'I_OUTPUT'.
v_fieldcat_alv-fieldname = 'EBELP'.
v_fieldcat_alv-reptext_ddic = text-005.
v_fieldcat_alv-col_pos = 5.
append v_fieldcat_alv to i_fieldcat_alv.
clear v_fieldcat_alv.
v_fieldcat_alv-tabname = 'I_OUTPUT'.
v_fieldcat_alv-fieldname = 'BUDAT'.
v_fieldcat_alv-reptext_ddic = text-006.
v_fieldcat_alv-col_pos = 6.
append v_fieldcat_alv to i_fieldcat_alv.
clear v_fieldcat_alv.
v_fieldcat_alv-tabname = 'I_OUTPUT'.
v_fieldcat_alv-fieldname = 'WERKS'.
v_fieldcat_alv-reptext_ddic = text-007.
v_fieldcat_alv-col_pos = 7.
append v_fieldcat_alv to i_fieldcat_alv.
clear v_fieldcat_alv.
v_fieldcat_alv-tabname = 'I_OUTPUT'.
v_fieldcat_alv-fieldname = 'EKORG'.
v_fieldcat_alv-reptext_ddic = text-008.
v_fieldcat_alv-col_pos = 8.
append v_fieldcat_alv to i_fieldcat_alv.
clear v_fieldcat_alv.
v_fieldcat_alv-tabname = 'I_OUTPUT'.
v_fieldcat_alv-fieldname = 'MATKL'.
v_fieldcat_alv-reptext_ddic = text-009.
v_fieldcat_alv-col_pos = 9.
append v_fieldcat_alv to i_fieldcat_alv.
clear v_fieldcat_alv.
v_fieldcat_alv-tabname = 'I_OUTPUT'.
v_fieldcat_alv-fieldname = 'MATNR'.
v_fieldcat_alv-reptext_ddic = text-010.
v_fieldcat_alv-col_pos = 10.
append v_fieldcat_alv to i_fieldcat_alv.
clear v_fieldcat_alv.
v_fieldcat_alv-tabname = 'I_OUTPUT'.
v_fieldcat_alv-fieldname = 'EKGRP'.
v_fieldcat_alv-reptext_ddic = text-011.
v_fieldcat_alv-col_pos = 11.
append v_fieldcat_alv to i_fieldcat_alv.
clear v_fieldcat_alv.
v_fieldcat_alv-tabname = 'I_OUTPUT'.
v_fieldcat_alv-fieldname = 'LIFNR'.
v_fieldcat_alv-reptext_ddic = text-012.
v_fieldcat_alv-col_pos = 12.
append v_fieldcat_alv to i_fieldcat_alv.
clear v_fieldcat_alv.
v_fieldcat_alv-tabname = 'I_OUTPUT'.
v_fieldcat_alv-fieldname = 'NETPR'.
v_fieldcat_alv-reptext_ddic = text-013.
v_fieldcat_alv-col_pos = 13.
append v_fieldcat_alv to i_fieldcat_alv.
clear v_fieldcat_alv.
v_fieldcat_alv-tabname = 'I_OUTPUT'.
v_fieldcat_alv-fieldname = 'WAERS'.
v_fieldcat_alv-reptext_ddic = text-014.
v_fieldcat_alv-col_pos = 14.
append v_fieldcat_alv to i_fieldcat_alv.
clear v_fieldcat_alv.
v_fieldcat_alv-tabname = 'I_OUTPUT'.
v_fieldcat_alv-fieldname = 'MENGE'.
v_fieldcat_alv-reptext_ddic = text-015.
v_fieldcat_alv-col_pos = 15.
append v_fieldcat_alv to i_fieldcat_alv.
clear v_fieldcat_alv.
v_fieldcat_alv-tabname = 'I_OUTPUT'.
v_fieldcat_alv-fieldname = 'MEINS'.
v_fieldcat_alv-reptext_ddic = text-016.
v_fieldcat_alv-col_pos = 16.
append v_fieldcat_alv to i_fieldcat_alv.
ENDFORM. " fill_fieldcatalog
*&----
*& Form grid_display
*&----
To display the output in a ALV grid
*----
FORM grid_display .
v_repid = sy-repid.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_background_id = 'ALV_BACKGROUND'
i_callback_program = v_repid
it_sort = lt_sort_fieldcat
i_save = c_a
is_variant = v_variant
is_layout = v_layout
it_fieldcat = i_fieldcat_alv
it_events = i_events
tables
t_outtab = i_output
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. " grid_display
End Of SIR-301278
‎2007 Nov 05 9:39 AM
Hi,
before the select query u call coversion_exit_alpha_input for the intrnal table i_ekko_tmp and modify the lifnr..
like this
loop at i_ekko_tmp.
call function "conversion_exit_alpha_input"
IMPORTING
*" VALUE = i_ekko_tmp-lifnr
*" EXPORTING
*" VALUE = i_ekko_tmp-lifnr
modify i_ekko_tmp transporting lifrn.
endloop.
SELECT LIFNR "Account Number of Vendor or Creditor
NAME1 "Name 1
FROM Z_LFA1
INTO TABLE I_LFA1
FOR ALL ENTRIES IN I_EKKO_TMP
WHERE LIFNR = I_EKKO_TMP-LIFNR.
rewrad if helpful.
Reagrds,
Nagaraj
‎2007 Nov 05 10:07 AM
the answer was useful but it did not solve my problem. still the field's are empty.
‎2007 Nov 05 10:46 AM
i dont think it is a problem with ur select statement.
i think the problem is with ur ztable.
jst try a simple select statement on ur ztable and c if still u can fetch the data.
‎2007 Nov 05 9:27 AM
convert the condition data in the query befor executing the select query with CONVERSION_EXIT_ALPHA_INPUT
‎2007 Nov 05 9:29 AM
which value are u using to fetch data from lfa1??
if u are using name fields, it should be in capital
‎2007 Nov 05 9:37 AM
Hi,
Allong with ur select query use this
SELECT * FROM <table> INTO CORRESPONDING FIELDS OF TABLE itab.
Deserve Reward.
regards,