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

Select statement

Former Member
0 Likes
1,106

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?

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,074

Hi,

Allong with ur select query use this

SELECT * FROM <table> INTO CORRESPONDING FIELDS OF TABLE itab.

Deserve Reward.

regards,

8 REPLIES 8
Read only

Former Member
0 Likes
1,074

Hi,

post your code.

Read only

0 Likes
1,074

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

Read only

0 Likes
1,074

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

Read only

0 Likes
1,074

the answer was useful but it did not solve my problem. still the field's are empty.

Read only

0 Likes
1,074

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.

Read only

Former Member
0 Likes
1,074

convert the condition data in the query befor executing the select query with CONVERSION_EXIT_ALPHA_INPUT

Read only

Former Member
0 Likes
1,074

which value are u using to fetch data from lfa1??

if u are using name fields, it should be in capital

Read only

Former Member
0 Likes
1,075

Hi,

Allong with ur select query use this

SELECT * FROM <table> INTO CORRESPONDING FIELDS OF TABLE itab.

Deserve Reward.

regards,