URGENT: - REGARDING bdc
hi,
i am new to bdc and i am working on report of it and when i press F8 the execution gives d runtime error.and d in dat msg is displayed dat file ven.txt is not opened.
if any body provides d solution to dis problem he or she will be definately rewarded..
plzz reply as it is urgent for me.
Message was edited by:
ric .s
hi,
i had tried all what u said by chaning INFILE into NFILE ,but is still is giving d runtime error:-
REPORT ZTEST1.
DATA: BDC_TAB LIKE BDCDATA OCCURS 6 WITH HEADER LINE,
NFILE(20) VALUE 'C:\Document and Settings\sysasst.ii\desktop\VEN.txt'.
DATA: BEGIN OF INREC,
VENDNUM LIKE LFA1-LIFNR,
STREET LIKE LFA1-STRAS,
END OF INREC.
PARAMETERS : DISPMODE DEFAULT 'A',
UPDAMODE DEFAULT 'S'.
START-OF-SELECTION.
OPEN DATASET NFILE FOR INPUT IN TEXT MODE ENCODING DEFAULT.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
USER = SY-UNAME
CLIENT = SY-MANDT
GROUP = SESSION
EXCEPTIONS
CLIENT_INVALID = 1
OTHERS =5.
DO.
READ DATASET NFILE INTO INREC.
IF SY-SUBRC <> 0.
EXIT.
ENDIF.
PERFORM FILL_BDC_TAB.
CALL TRANSACTION 'FK02'
USING BDC_TAB
MODE 'N'
UPDATE 'A'.
IF SY-SUBRC <> 0.
WRITE: /'ERROR'.
ENDIF.
ENDDO.
CLOSE DATASET NFILE.
Short text
File "C:\Document and Sett" is not open.
What happened?
Error in the ABAP Application Program
The current ABAP program "ZTEST1" had to be terminated because it has
come across a statement that unfortunately cannot be executed.
Error analysis
An exception occurred that is explained in detail below.
The exception, which is assigned to class 'CX_SY_FILE_OPEN_MODE', was not
caught and
therefore caused a runtime error.
The reason for the exception is:
When accessing the file "C:\Document and Sett", the system recognized that this
file is
not open. Therefore, the file cannot be accessed.
If u help me out of dis problem den i will definately give points ,dats promise.
Similar Messages
-
Urgent: Regarding Join Syntax in Oracle 9i and 10g
Dear Members
Please help me by providing me the synatx of following Join statements for Oracle 9i and 10g:
1.Inner Join
2.Left Outer Join
3.Right Outer Join
4.Self Join
5.Cross Join
6.Full Outer Join
N.B. I NEED THIS HELP URGENTLY
Regards
Praveen Kumar PandeyInner join
SELECT *
FROM a,
b
WHERE a.<<column>> = b.<<column>>Left Outer Join
SELECT *
FROM a LEFT OUTER JOIN b
ON a.<<column>> = b.<<column>>Right Outer Join
SELECT *
FROM a RIGHT OUTER JOIN b
ON a.<<column>> = b.<<column>>Full Outer Join
SELECT *
FROM a FULL OUTER JOIN b
ON a.<<column>> = b.<<column>>Self Join
SELECT *
FROM a a1,
a a2
WHERE a1.<<column>> = a2.<<column>>Cartesian Join
SELECT *
FROM a,
bJustin
Distributed Database Consulting, Inc.
http://www.ddbcinc.com/askDDBC -
Hi Gurus
I have a issue regarding credit limit:
for a customer "ABC" i have maintained a credit limit for 1000/- in FD32 now when we create a sales order of more than 1000/- for the same customer a popup MSg is comming saying amount has exeeded ...so far so good
my issue is that the requirements should not pass to MD04 (Stock/Requirement List)
some of the SAP gurus giving the answer check out OVB8 and see the requirement 101, i want to know the functionality of requirement "101" and how to go about the issue ..... issue is very urgent
Regards
RajeshHI RAJESH
This can be done through go to IMG--> S&D->Basic functions>Availabililty check&transfer of requirements>Transfer of requirements-->block quantity confirmation for delivery blocks. Here u give blocking reason as credit limit,,,,,, Here u find confirmation block,here u make tick and save . Here the reason is that even the order is saved,requirements will not be passed to MRP i.e requirements will not be passed to stock requirement list.
Award points if it is helpful for u
Regards
Prasad.G -
Hi All,Issue regarding bdc for capturing error records,its urgent
Hi All,
My requirement is to capture the error record and download the error record to a flat file .
I have done recording for MM01 transaction .
I am getting a problem like no error records are downloaded into the flat file .It is downloading only the empty records.
Pls see the below code which i developed & modify it for any changes .Its an urgent .Pls provide me the solution ASAP.
My Flat file
M FERT X MATL105 KG
X FERT X MATL106 KG
In the above flat file 'X' is an Industry sector which doesnot exists which is an error record that has to be captured and download it into the flat file .
Source code :
report Z_MM01_MSG_F MESSAGE-ID MSG1
no standard page heading line-size 255.
include bdcrecx1.
parameters: dataset(132) lower case.
DO NOT CHANGE - the generated data section - DO NOT CHANGE ***
If it is nessesary to change the data section use the rules:
1.) Each definition of a field exists of two lines
2.) The first line shows exactly the comment
'* data element: ' followed with the data element
which describes the field.
If you don't have a data element use the
comment without a data element name
3.) The second line shows the fieldname of the
structure, the fieldname must consist of
a fieldname and optional the character '_' and
three numbers and the field length in brackets
4.) Each field must be type C.
Generated data section with specific formatting - DO NOT CHANGE ***
data: begin of record occurs 0,
data element: MBRSH
MBRSH_001(001),
data element: MTART
MTART_002(004),
data element: XFELD
KZSEL_01_003(001),
data element: MAKTX
MAKTX_004(040),
data element: MEINS
MEINS_005(003),
data element: MTPOS_MARA
MTPOS_MARA_006(004),
end of record.
*DECLARATION OF BDCDATA STRUCTURE
DATA: IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE .
*declaration to store the message
DATA: IT_MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE .
*DECLARATION TO STORE THE MESSAGE
DATA: BEGIN OF IT_STORE_MSG OCCURS 0,
STORE(1000),
END OF IT_STORE_MSG.
*declaration SUCCESS MESG
DATA: BEGIN OF IT_SUCCESS OCCURS 0,
SUCCESS_REC(10),
MBRSH(10),
TABIX LIKE SY-TABIX,
END OF IT_SUCCESS.
*declaration ERROR MESSAGE
DATA: BEGIN OF IT_ERROR OCCURS 0,
ERROR_REC(10),
MBRSH(10),
TABIX LIKE SY-TABIX,
END OF IT_ERROR.
DATA:TABIX LIKE SY-TABIX.
*validating Material type(mtart) field data with table T134
data : v_type like T134-mtart.
DATA: V_INDSECT LIKE MARA-MBRSH.
End generated data section ***
start-of-selection.
CALL FUNCTION 'UPLOAD'
EXPORTING
CODEPAGE = ' '
FILENAME = ' '
FILETYPE = ' '
ITEM = ' '
FILEMASK_MASK = ' '
FILEMASK_TEXT = ' '
FILETYPE_NO_CHANGE = ' '
FILEMASK_ALL = ' '
FILETYPE_NO_SHOW = ' '
LINE_EXIT = ' '
USER_FORM = ' '
USER_PROG = ' '
SILENT = 'S'
IMPORTING
FILESIZE =
CANCEL =
ACT_FILENAME =
ACT_FILETYPE =
TABLES
data_tab = record
EXCEPTIONS
CONVERSION_ERROR = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3
NO_BATCH = 4
UNKNOWN_ERROR = 5
GUI_REFUSE_FILETRANSFER = 6
OTHERS = 7
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*perform open_dataset using dataset.
perform open_group.
LOOP AT RECORD.
perform bdc_dynpro using 'SAPLMGMM' '0060'.
perform bdc_field using 'BDC_CURSOR'
'RMMG1-MATNR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
*- Validating industry sector(MBRSH) from the master table(MARA)
select single MBRSH from T137 into V_INDSECT where MBRSH eq
record-MBRSH_001.
IF SY-SUBRC EQ 0.
perform bdc_field using 'RMMG1-MBRSH'
record-MBRSH_001.
*endif.
perform bdc_field using 'RMMG1-MTART'
record-MTART_002.
perform bdc_dynpro using 'SAPLMGMM' '0070'.
perform bdc_field using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'MSICHTAUSW-KZSEL(01)'
record-KZSEL_01_003.
perform bdc_dynpro using 'SAPLMGMM' '4004'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MAKT-MAKTX'
record-MAKTX_004.
perform bdc_field using 'BDC_CURSOR'
'MARA-MEINS'.
perform bdc_field using 'MARA-MEINS'
record-MEINS_005.
perform bdc_field using 'MARA-MTPOS_MARA'
record-MTPOS_MARA_006.
perform bdc_dynpro using 'SAPLSPO1' '0300'.
perform bdc_field using 'BDC_OKCODE'
'=YES'.
perform bdc_transaction using 'MM01'.
*ELSE.
*message E000 WITH 'Industry sector does not Exist' .
*endif.
LOOP AT MESSTAB.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = MESSTAB-MSGID
LANG = MESSTAB-MSGSPRA
NO = MESSTAB-MSGNR
V1 = MESSTAB-MSGV1
V2 = MESSTAB-MSGV2
V3 = SY-MSGV3
V4 = SY-MSGV4
IMPORTING
MSG = IT_STORE_MSG-STORE
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 0.
IF MESSTAB-MSGTYP = 'S'.
IT_SUCCESS-SUCCESS_REC = IT_STORE_MSG-STORE.
IT_SUCCESS-MBRSH = record-MBRSH_001.
IT_SUCCESS-TABIX = TABIX.
APPEND IT_SUCCESS.
ELSEIF MESSTAB-MSGTYP = 'E'.
IT_ERROR-ERROR_REC = IT_STORE_MSG-STORE.
IT_ERROR-MBRSH = record-MBRSH_001.
IT_ERROR-TABIX = TABIX.
APPEND IT_ERROR.
ENDIF.
endloop.
endif.
ENDLOOP.
CALL FUNCTION 'DOWNLOAD'
TABLES
DATA_TAB = IT_error
FIELDNAMES =
EXCEPTIONS
INVALID_FILESIZE = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3
NO_BATCH = 4
UNKNOWN_ERROR = 5
GUI_REFUSE_FILETRANSFER = 6
OTHERS = 7
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
perform close_group.
*perform close_dataset using dataset.Hi,
DATA: IT_MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE .
CALL FUNCTION 'DOWNLOAD'
TABLES
DATA_TAB = IT_error
FIELDNAMES =
EXCEPTIONS
INVALID_FILESIZE = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3
NO_BATCH = 4
UNKNOWN_ERROR = 5
GUI_REFUSE_FILETRANSFER = 6
OTHERS = 7.
IF SY-SUBRC 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
instead of using IT_error ion tables use IT_MESSTAB.
<REMOVED BY MODERATOR>
Code Formatted by: Alvaro Tejada Galindo on Apr 9, 2008 5:07 PM -
hi gurus,
i have a problem in bdc programm there is 3 screen using transaction f-27
there is two amount field as(wrbtr,wrbtr2)
two screen are run fine but the 3 screen does't take data automatically from flat file plz help me its urgent see my codes and give me solution.
TYPES: BEGIN OF it_output,
bldat(10) TYPE C, "Document Date
blart TYPE bkpf-blart, "Document Type
bukrs TYPE bkpf-bukrs, "Company Code
budat(10) TYPE C, "Posting Date
monat TYPE bkpf-monat, "Period
waers TYPE bkpf-waers, "Currency
xblnr TYPE bkpf-xblnr, "Reference Field
docid TYPE fs006-docid, "Document ID
newbs TYPE rf05a-newbs, "Posting Key
newko TYPE rf05a-newko, "Account Code
wrbtr(16) TYPE C, "Amount in Document currency
zfbdt(10) TYPE C, "Baseline Date
newbs2 TYPE rf05a-newbs, "Account Key2
newko2 TYPE rf05a-newko, "Account code2
wrbtr2(16) TYPE C, "Amount2
END OF it_output.
DATA lt_output TYPE it_output OCCURS 0 WITH HEADER LINE.
DATA it_bdc LIKE bdcdata OCCURS 0 WITH HEADER LINE.
DATA it_messtab LIKE bdcmsgcoll OCCURS 1 WITH HEADER LINE.
D A T A *
DATA: message TYPE string.
DATA: p_file1 type string.
S E L E C T - O P T I O N S / P A R A M E T E R S *
SELECTION-SCREEN BEGIN OF BLOCK block0 WITH FRAME.
PARAMETERS : p_file LIKE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN END OF BLOCK block0.
A T S E L E C T I O N - S C R E E N *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
static = 'X'
mask = space
CHANGING
file_name = p_file.
S T A R T - O F - S E L E C T I O N
START-OF-SELECTION.
PERFORM upload.
PERFORM bdc.
PERFORM write_message.
*& Form bdc
text
FORM bdc.
LOOP AT lt_output.
READ TABLE lt_output INDEX 1.
PERFORM bdc_dynpro USING 'SAPMF05A' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR' 'RF05A-NEWKO'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field USING 'BKPF-BLDAT' lt_output-bldat.
PERFORM bdc_field USING 'BKPF-BLART' lt_output-blart.
PERFORM bdc_field USING 'BKPF-BUKRS' lt_output-bukrs.
PERFORM bdc_field USING 'BKPF-BUDAT' lt_output-budat.
PERFORM bdc_field USING 'BKPF-MONAT' lt_output-monat.
PERFORM bdc_field USING 'BKPF-WAERS' lt_output-waers.
PERFORM bdc_field USING 'BKPF-XBLNR' lt_output-xblnr.
PERFORM bdc_field USING 'FS006-DOCID' lt_output-docid.
PERFORM bdc_field USING 'RF05A-NEWBS' lt_output-newbs.
PERFORM bdc_field USING 'RF05A-NEWKO' lt_output-newko.
PERFORM bdc_dynpro USING 'SAPMF05A' '0302'.
PERFORM bdc_field USING 'BDC_CURSOR' 'RF05A-NEWKO'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field USING 'BSEG-WRBTR' lt_output-wrbtr.
PERFORM bdc_field USING 'BSEG-ZFBDT' lt_output-zfbdt.
PERFORM bdc_field USING 'RF05A-NEWBS' lt_output-newbs2."newbs2
PERFORM bdc_field USING 'RF05A-NEWKO' lt_output-newko2."newko2
PERFORM bdc_dynpro USING 'SAPMF05A' '0301'.
PERFORM bdc_field USING 'BDC_CURSOR' 'BSEG-WRBTR'.
PERFORM bdc_field USING 'BDC_OKCODE' '=BU'.
PERFORM bdc_field USING 'BSEG-WRBTR' lt_output-wrbtr2."wrbtr2
PERFORM bdc_field USING 'BSEG-MWSKZ' '**'.
PERFORM bdc_field USING 'BSEG-ZTERM' 'C007'.
PERFORM bdc_field USING 'BSEG-ZBD1T' '7'.
CALL TRANSACTION 'F-27' USING it_bdc mode 'A'
MESSAGES INTO it_messtab.
CLEAR it_bdc. REFRESH it_bdc.
ENDLOOP.
ENDFORM. "bdc
*& Form write_message
text
FORM write_message.
LOOP AT it_messtab .
CLEAR message.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = sy-msgid
lang = 'EN'
no = sy-msgno
v1 = sy-msgv1
v2 = sy-msgv2
v3 = sy-msgv3
v4 = sy-msgv4
IMPORTING
msg = message.
CASE it_messtab-msgtyp.
WHEN 'S'.
WRITE:/ message.
CLEAR message.
WHEN 'E'.
FORMAT COLOR 6 ON.
WRITE:/ message.
CLEAR message.
ENDCASE.
ENDLOOP.
ENDFORM. "write_message
FORM BDC_DYNPRO *
--> PROGRAM *
--> DYNPRO *
FORM bdc_dynpro USING program dynpro.
it_bdc-program = program.
it_bdc-dynpro = dynpro.
it_bdc-dynbegin = 'X'.
APPEND it_bdc.
CLEAR it_bdc.
ENDFORM. "BDC_DYNPRO
FORM *
FORM bdc_field USING fnam fval.
it_bdc-fnam = fnam.
it_bdc-fval = fval.
APPEND it_bdc.
CLEAR it_bdc.
ENDFORM. "BDC_FIELD
*& Form upload
text
--> p1 text
<-- p2 text
FORM upload .
p_file1 = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = p_file1
FILETYPE = 'DAT'
tables
data_tab = lt_output
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
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. " upload
i am also send u my flat file the client says that in amount filed of 3rd screen we will give the * asterick or other amount plz take it.
thank
plz help me.
jay
Edited by: jayant kumar on Apr 30, 2008 12:42 PMhi jayant,
Declare '**' as a character constant and pass this constant to the Subroutine.
data : c_astrick type char2 value '**'.
PERFORM bdc_field USING 'BSEG-MWSKZ c_astrick.
Reward points if it is helpful.
Regards,
srilatha. -
Urgent: Regarding Stock Ageing report
hi,
i want to have stock ageing report in which i want to have the deatils :-
This is the material which is present in the palnt from dis <b>date</b> and further details of it consumption. plzz tell the <b>tcode</b> for it.
plzz help me out as it is most urgent to me..
regards,
ric.s
Message was edited by:
ric .sHi
The report MC.9 shows Last movement date/Last receipt date / Last issue date.
In period to analyze give appropriate date range
Or
check MSEG & MARD table to get details about material documents with date
Vishal... -
Urgent: regarding sales invoice report
hi,
i am making a report in which i have to dislplay for sales invoice ,d format of dis report is:-
sales order,date,customer,material,invoice no,invioce date,invoice qty,amount.
i wat to know which tables to be used and if possible which fields should be taken,plzz help me out as it s erally urgent to me.
s help will be definately rewarded.Tables to be considered: VBAK, VBAP, VBFA, VBRK, VBRP.
And dont keep the message "help will be definately rewarded " in your threads as we know how good you are at judging the replies and how you do appreciate the replies from your earlier threads.
This might be a bit harsh, but expect tips and advices here rather than the whole solutions to problems in SDN.
Kind Regards
Eswar -
Urgent : Regarding Purchase Requsition Report
Hi,
I am making a report on Purchase Requisition in which i have to display that these are the persons who have released this requisition (i.e. If General Manager has released that should be displayed,if Director had released it should be displayed and if Managing Director had released it should display it and also the dates on which they released..)
In my report i am not allowed to displayed that these are released by MMCONS OR SDCONS BUT it should display General Manager,Director or Managing Director.. at these particular dates...
If anybody help me out in this report he or she will be definately rewarded with points as it is most urgent to me ,,so plz reply as fast as possible.
Regards,
Ric.s
Message was edited by:
ric .sHai ric,
i have done a pr tracking report. it will show the persons name, plant, and department, etc .i have added that program here. if u dnt mine u can take
with regards,
safiq
TYPE-POOLS slis.
TABLES: t024, ekko, lfa1, ekpo, ekkn, cdhdr, cdpos, t16fs,
eban, eket, ekbe, t024d.
DATA: repid LIKE sy-repid.
DATA: releasedat LIKE cdhdr-udate.
CONSTANTS: c_to(4) TYPE c VALUE ' to ',
c_vgabe_1 TYPE c VALUE '1',
c_vgabe_2 TYPE c VALUE '2',
c_object_banf LIKE cdpos-objectclas VALUE 'BANF',
c_fname_frgzu LIKE cdpos-fname VALUE 'FRGZU',
c_tcode like cdhdr-tcode value 'ME54',
c_tcode1 like cdhdr-tcode value 'ME55',
A1=add one more constant and value for ME55.
c_tcode2 like cdhdr-tcode value 'ME28',
CN 2 >> Addition
CN 2 Start
c_tcode3 like cdhdr-tcode value 'ME54N',
c_tcode4 like cdhdr-tcode value 'ME29N',
CN 2 End
c_object_eink LIKE cdpos-objectclas VALUE 'EINKBELEG',
c_fname_frgke LIKE cdpos-fname VALUE 'FRGKE'.
DATA: list_layout TYPE slis_layout_alv, "Layout
ist_fieldcat TYPE STANDARD TABLE OF "Field Catalog
slis_fieldcat_alv,
tmp_fieldcat TYPE slis_fieldcat_alv, "Temp. Field Cat.
gt_xevents TYPE slis_t_event, "Events Table
xs_event TYPE slis_alv_event. "Event Line
RANGES: tcode for cdhdr-tcode.
A1=Add range to store ME54 & ME55
*& To store Summary report information - added 30/5
data: begin of i_summary occurs 100,
PlantName1 LIKE T001W-Name1, "Plant Name
plant1 LIKE ekpo-werks, "Plant
Dept LIKE t024d-dsnam, "MRP Contrl Code
PRafIR type i,
PRbfIR type i,
Grandtotal type i,
PerPRafIR type p decimals 2,
PerPRbfIR type p decimals 2,
end of i_summary.
STRUCTURES
DATA: BEGIN OF t_ekko OCCURS 0.
INCLUDE STRUCTURE ekko.
DATA: END OF t_ekko.
DATA: BEGIN OF st_itab,
pur_grp(22) TYPE c,
vendor_name LIKE lfa1-name1,
po_num LIKE ekko-ebeln,
item_num LIKE ekpo-ebelp,
mat_num LIKE ekpo-matnr,
description LIKE ekpo-txz01,
qty_order LIKE ekpo-menge,
unit_price LIKE ekpo-netpr,
total_price LIKE ekpo-netwr,
plant LIKE ekpo-werks,
cost_center LIKE ekkn-kostl,
internal_order LIKE ekkn-aufnr,
gl_code LIKE ekkn-sakto,
dept LIKE t024d-dsnam,
po_release_dat LIKE cdhdr-udate,
delivery_dat LIKE eket-eindt,
* gr_dat like ekbe-budat, "MICH01- 24/04/03
gr_dat LIKE ekbe-bldat, "MICH01+ 24/04/03
on_time_delivery TYPE c,
gr_qty LIKE ekbe-menge,
gr_doc_num LIKE ekbe-belnr,
ir_posting_date LIKE ekbe-budat, "??? change to budat
ir_doc_num LIKE ekbe-belnr,
END OF st_itab.
DATA: BEGIN OF st_itab1,
aedat LIKE ekko-aedat, "PO creation date
lifnr LIKE ekko-lifnr,
ebeln LIKE ekko-ebeln, "PO number
ekgrp LIKE ekko-ekgrp,
matnr LIKE ekpo-matnr,
banfn LIKE ekpo-banfn, "PR number
werks LIKE ekpo-werks, "PO item number
ebelp LIKE ekpo-ebelp,
bnfpo like eban-bnfpo, "PR item number
txz01 LIKE ekpo-txz01,
menge LIKE ekpo-menge,
netpr LIKE ekpo-netpr,
netwr LIKE ekpo-netwr,
kostl LIKE ekkn-kostl,
aufnr LIKE ekkn-aufnr,
sakto LIKE ekkn-sakto,
prctr LIKE ekkn-prctr,
anln1 LIKE ekkn-anln1,
pstyp LIKE eban-pstyp,
badat LIKE eban-badat,
afnam LIKE eban-afnam,
dispo LIKE eban-dispo,
vgabe LIKE ekbe-vgabe,
belnr LIKE ekbe-belnr,
bldat LIKE ekbe-bldat, "GR Creation date
budat LIKE ekbe-budat, "IR Creation date
gr_qty LIKE ekbe-menge,
eindt LIKE eket-eindt,
udate LIKE cdhdr-udate,
beln1 LIKE ekbe-belnr, "IR Doc. No.
dsnam LIKE t024d-dsnam, "MRP Controller Desc
pur_grp LIKE t024-eknam, "Desc. of Purchasing Gp
name1 LIKE lfa1-name1, "Vendor Code
on_time_delivery TYPE c, "On-time-delivery
flag type c, "Flag
Added by @, 21.05.2007 >>
PRAFIR TYPE i,
PRBFIR TYPE i,
TOTPR TYPE i,
Added by @, 21.05.2007 <<
END OF st_itab1.
GR History Movements
DATA: BEGIN OF st_history,
bldat LIKE ekbe-bldat,
menge LIKE ekbe-menge,
belnr LIKE ekbe-belnr,
END OF st_history.
PO Release Data
DATA: BEGIN OF st_change,
changenr LIKE cdpos-changenr,
value_new LIKE cdpos-value_new,
END OF st_change.
data: begin of st_change1,
udate like cdhdr-udate,
end of st_change1.
INTERNAL TABLES
DATA: itab LIKE TABLE OF st_itab,
ist_history LIKE TABLE OF st_history,
wa_history LIKE st_history,
ist_change LIKE TABLE OF st_change,
wa_change LIKE st_change,
ist_change1 like table of st_change1,
wa_change1 like st_change1.
data: begin of ist_itab occurs 0.
include structure st_itab1.
DATA : vgabe LIKE ekbe-vgabe,
belnr LIKE ekbe-belnr,
bldat LIKE ekbe-bldat, "GR Creation date
budat LIKE ekbe-budat, "IR Creation date
beln1 LIKE ekbe-belnr, "IR Doc. No.
gr_qty like ekbe-menge, "GR Qty
gr_unres LIKE ekbe-menge, "GR to unrestricted
gr_inspec_stk like ekbe-menge, "GR to inspection stock
gr_blk_stk like ekbe-menge, "GR to blocked stock
gr_rejected_stk like ekbe-menge, "GR to rejected stock
relcode1 like t16fs-FRGC1, "Release code 1
reldate1 like cdhdr-udate, "Release date 1
relcode2 like t16fs-FRGC1, "Release code 2
reldate2 like cdhdr-udate, "Release date 2
relcode3 like t16fs-FRGC1, "Release code 3
reldate3 like cdhdr-udate, "Release date 3
relcode4 like t16fs-FRGC1, "Release code 4
reldate4 like cdhdr-udate, "Release date 4
relcode5 like t16fs-FRGC1, "Release code 5
reldate5 like cdhdr-udate, "Release date 5
po_rel_date like cdhdr-udate. "PO release date
data: end of ist_itab.
data: wa_itab LIKE ist_itab.
Added on 21.05.2007 >>
data: s_po Type C.
data: s_pr Type C.
SELECTION SCREEN
SELECTION-SCREEN BEGIN OF BLOCK screen1 WITH FRAME TITLE text-001.
SELECT-OPTIONS:
so_aedat FOR ekko-aedat no-display, "Purchase Order Creation Date
so_udate FOR cdhdr-udate no-display, "PO Release Date
so_eindt FOR eket-eindt no-display, "Delivery Date
so_ekgrp FOR t024-ekgrp no-display, "Purchasing Group
so_lifnr FOR ekko-lifnr no-display, "Vendor Code
so_ebeln FOR ekko-ebeln no-display, "PO Number
so_matnr FOR ekpo-matnr no-display, "Material No.
so_banfn FOR ekpo-banfn no-display, "PR No.
so_dispo for eban-dispo no-display, "MRP controller
so_pstyp FOR ekpo-pstyp no-display, "Item Category
so_badat FOR eban-badat OBLIGATORY, "PR Creation Date
so_afnam FOR eban-afnam no-display, "PR Requester Name
so_werks FOR ekpo-werks OBLIGATORY, "Plant
so_kostl FOR ekkn-kostl no-display, "Cost Center
so_aufnr FOR ekkn-aufnr no-display, "Internal Order
so_sakto FOR ekkn-sakto no-display, "G/L Account
so_prctr FOR ekkn-prctr no-display, "Profit Center
so_anln1 FOR ekkn-anln1 no-display, "Asset Number
so_belnr FOR ekbe-belnr no-display, "GR Doc. No.
so_bldat FOR ekbe-bldat no-display, "GR Creation Date
so_budat FOR ekbe-budat no-display, "IR Posting Date
so_beln1 FOR ekbe-belnr no-display, "IR Doc. No
so_frgkz for eban-frgkz no-display. "Release status of PR
SELECTION-SCREEN SKIP 1.
PARAMETERS:
p_pr_rel(1) TYPE C no-display, "PR Release Indicator
p_on_del(1) TYPE C no-display. "On-time-delivery
SELECTION-SCREEN END OF BLOCK screen1.
Selection Screen - add 30/5
selection-screen begin of block screen2 with frame title text-002.
selection-screen begin of line.
parameters: r_sum radiobutton group grp1.
selection-screen comment 2(20) text-003 for field r_sum.
selection-screen end of line.
selection-screen begin of line.
parameters: r_det radiobutton group grp1 default 'X'.
selection-screen comment 2(20) text-004 for field r_det.
selection-screen end of line.
selection-screen end of block screen2.
MAIN *
*s_pr = 'X'.
Added on 21.05.2007 <<
*repid = sy-repid.
Assign release indicator
*if p_pr_rel = 'Y'.
so_frgkz-low = '2'.
so_frgkz-option = 'EQ'.
so_frgkz-sign = 'I'.
append so_frgkz.
clear so_frgkz.
*elseif p_pr_rel = 'N'.
so_frgkz-low = 'X'.
so_frgkz-option = 'EQ'.
so_frgkz-sign = 'I'.
append so_frgkz.
clear so_frgkz.
*endif.
*tcode-low = 'ME54'.
*tcode-option = 'EQ'.
*tcode-sign = 'I'.
*append tcode.
CN 2 >> Addition
CN 2 Start
*tcode-low = 'ME54N'.
*tcode-option = 'EQ'.
*tcode-sign = 'I'.
*append tcode.
CN 2 End
*tcode-low = 'ME55'.
*tcode-option = 'EQ'.
*tcode-sign = 'I'.
*append tcode.
*PERFORM:
get_details,
get_data,
get_gr_ir_data,
get_other_data,
Setup events --> Top-of-page
setup_events,
Build up ALV field catalogue
setfieldcat,
Output the data
output_alv_report TABLES ist_fieldcat.
Perform print_data.
top-of-page.
perform print_heading.
END-OF-PAGE.
WRITE :/ SY-ULINE(126).
FORM Assign_Values *
FORM assign_values.
ENDFORM.
FORM setFieldCat *
FORM setfieldcat.
PERFORM:
add_field_to_fieldcat TABLES ist_fieldcat
USING 'T024D'
'DSNAM'
'IST_ITAB'
'DSNAM'
'Dept'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EKPO'
'WERKS'
'IST_ITAB'
'WERKS'
'Plant'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EBAN'
'AFNAM'
'IST_ITAB'
'AFNAM'
'PR Requestor Name'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING ''
'IST_ITAB'
'PRBFIR'
'PRbfIR'
'6'
add_field_to_fieldcat TABLES ist_fieldcat
USING ''
'IST_ITAB'
'PRAFIR'
'PRafIR'
'6'
add_field_to_fieldcat TABLES ist_fieldcat
USING ''
'IST_ITAB'
'TOTPR'
'TotalPR'
'7'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EBAN'
'BADAT'
'IST_ITAB'
'BADAT'
'PR Creation Date'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EBAN'
'BANFN'
'IST_ITAB'
'BANFN'
'PR No'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EKKO'
'EBELN'
'IST_ITAB'
'EBELN'
'PO Number'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EKKO'
'EBELP'
'IST_ITAB'
'EBELP'
'PO Item'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EKKO'
'AEDAT'
'IST_ITAB'
'AEDAT'
'PO Creation Date'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EKBE'
'BLDAT'
'IST_ITAB'
'BLDAT'
'GR Date'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EKBE'
'BUDAT'
'IST_ITAB'
'BUDAT'
'IR Document Date'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EKPO'
'TXZ01'
'IST_ITAB'
'TXZ01'
'Description'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EKPO'
'MENGE'
'IST_ITAB'
'MENGE'
'Qty Ordered'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EKPO'
'NETPR'
'IST_ITAB'
'NETPR'
'Unit Price'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EKPO'
'NETWR'
'IST_ITAB'
'NETWR'
'Total Price'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'T024'
'EKNAM'
'IST_ITAB'
'PUR_GRP'
'PO PurGrp'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'LFA1'
'NAME1'
'IST_ITAB'
'NAME1'
'Vendor Name'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EKPO'
'MATNR'
'IST_ITAB'
'MATNR'
'Material Number'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EKKN'
'KOSTL'
'IST_ITAB'
'KOSTL'
'Cost Center'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EKKN'
'AUFNR'
'IST_ITAB'
'AUFNR'
'Internal Order'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EKKN'
'SAKTO'
'IST_ITAB'
'SAKTO'
'GL Code'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EKKN'
'ANLN1'
'IST_ITAB'
'ANLN1'
'Asset'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EKKN'
'PRCTR'
'IST_ITAB'
'PRCTR'
'Profit Centre'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'T16FS'
'FRGC1'
'IST_ITAB'
'RELCODE1'
'PR RelCode1'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'CDHDR'
'UDATE'
'IST_ITAB'
'RELDATE1'
'PR RelDate1'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'T16FS'
'FRGC2'
'IST_ITAB'
'RELCODE2'
'PR RelCode2'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'CDHDR'
'UDATE'
'IST_ITAB'
'RELDATE2'
'PR RelDate2'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'T16FS'
'FRGC3'
'IST_ITAB'
'RELCODE3'
'PR RelCode3'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'CDHDR'
'UDATE'
'IST_ITAB'
'RELDATE3'
'PR RelDate3'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'T16FS'
'FRGC4'
'IST_ITAB'
'RELCODE4'
'PR RelCode4'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'CDHDR'
'UDATE'
'IST_ITAB'
'RELDATE4'
'PR RelDate4'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'T16FS'
'FRGC5'
'IST_ITAB'
'RELCODE5'
'PR RelCode5'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'CDHDR'
'UDATE'
'IST_ITAB'
'RELDATE5'
'PR RelDate5'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'CDHDR'
'UDATE'
'IST_ITAB'
'PO_REL_DATE'
'PO Release Date'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EKET'
'EINDT'
'IST_ITAB'
'EINDT'
'PO Dlv Date'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING ''
'IST_ITAB'
'ON_TIME_DELIVERY'
'On Time Delivery'
'16'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EKBE'
'MENGE'
'IST_ITAB'
'GR_QTY'
'GR Qty'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EKBE'
'BELNR'
'IST_ITAB'
'BELNR'
'GR Doc Num'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EKBE'
'MENGE'
'IST_ITAB'
'GR_UNRES'
'GR to Unrestricted'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EKBE'
'MENGE'
'IST_ITAB'
'GR_INSPEC_STK'
'GR to Inspection Stock'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EKBE'
'MENGE'
'IST_ITAB'
'GR_BLK_STK'
'GR to Blocked Stock'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EKBE'
'MENGE'
'IST_ITAB'
'GR_REJECTED_STK'
'GR to Rejected Stock'
'X'
Added by @, 21.05.2007 >>
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EKBE'
'BELNR'
'IST_ITAB'
'BELN1'
'IR Doc Num'
'X'
add_field_to_fieldcat TABLES ist_fieldcat
USING 'EKBE'
'BELNR'
'IST_ITAB'
'BELN1'
'IR Doc Num'
'X'
Added by @, 21.05.2007 <<
ENDFORM.
FORM XEVENTS *
FORM setup_events.
CLEAR xs_event.
xs_event-name = slis_ev_end_of_page.
xs_event-form = 'XEND_OF_PAGE'.
APPEND xs_event TO gt_xevents.
CLEAR xs_event.
xs_event-name = slis_ev_top_of_page.
xs_event-form = 'XTOP_OF_PAGE'.
APPEND xs_event TO gt_xevents.
CLEAR xs_event.
xs_event-name = slis_ev_top_of_list.
xs_event-form = 'XTOP_OF_LIST'.
APPEND xs_event TO gt_xevents.
CLEAR xs_event.
xs_event-name = slis_ev_end_of_list.
xs_event-form = 'XEND_OF_LIST'.
APPEND xs_event TO gt_xevents.
ENDFORM.
FORM XTOP_OF_PAGE *
FORM xtop_of_page.
Write at 117 sy-pagno right-justified.
WRITE: / 'PR Tracking Report (against Invoice Date)'.
WRITE:/(42) sy-uline.
PO Creation Date
IF NOT so_aedat-low IS INITIAL AND
so_aedat-high IS INITIAL.
WRITE:/ 'PO Creation Date:', so_aedat-low.
ELSEIF NOT so_aedat-low IS INITIAL AND
NOT so_aedat-high IS INITIAL.
WRITE:/ 'PO Creation Date:', so_aedat-low, c_to, so_aedat-high.
ENDIF.
PR Creation Date
IF NOT so_badat-low IS INITIAL AND
so_badat-high IS INITIAL.
WRITE:/ 'PR Creation Date: ', so_badat-low.
ELSEIF NOT so_badat-low IS INITIAL AND
NOT so_badat-high IS INITIAL.
WRITE:/ 'PR Creation Date: ', so_badat-low , c_to, so_badat-high.
ENDIF.
Plant
IF NOT so_werks-low IS INITIAL AND
so_werks-high IS INITIAL.
WRITE:/ 'Plant: ', so_werks-low.
ELSEIF NOT so_werks-low IS INITIAL AND
NOT so_werks-high IS INITIAL.
WRITE:/ 'Plant: ', so_werks-low , c_to, so_werks-high.
ENDIF.
Delivery Date
IF NOT so_eindt-low IS INITIAL AND
so_eindt-high IS INITIAL.
WRITE:/ 'Delivery Date: ', so_eindt-low.
ELSEIF NOT so_eindt-low IS INITIAL AND
NOT so_eindt-high IS INITIAL.
WRITE:/ 'Delivery Date: ', so_eindt-low , c_to, so_eindt-high.
ENDIF.
Purchasing Group
IF NOT so_ekgrp-low IS INITIAL AND
so_ekgrp-high IS INITIAL.
WRITE:/ 'Purchasing Group: ', so_ekgrp-low.
ELSEIF NOT so_ekgrp-low IS INITIAL AND
NOT so_ekgrp-high IS INITIAL.
WRITE:/ 'Purchasing Group: ', so_ekgrp-low , c_to, so_ekgrp-high.
ENDIF.
Vendor Code
IF NOT so_lifnr-low IS INITIAL AND
so_lifnr-high IS INITIAL.
WRITE:/ 'Vendor Code: ', so_lifnr-low.
ELSEIF NOT so_lifnr-low IS INITIAL AND
NOT so_lifnr-high IS INITIAL.
WRITE:/ 'Vendor Code: ', so_lifnr-low , c_to, so_lifnr-high.
ENDIF.
PO Number
IF NOT so_ebeln-low IS INITIAL AND
so_ebeln-high IS INITIAL.
WRITE:/ 'PO Number: ', so_ebeln-low.
ELSEIF NOT so_ebeln-low IS INITIAL AND
NOT so_ebeln-high IS INITIAL.
WRITE:/ 'PO Number: ', so_ebeln-low , c_to, so_ebeln-high.
ENDIF.
Material No
IF NOT so_matnr-low IS INITIAL AND
so_matnr-high IS INITIAL.
WRITE:/ 'PO Number: ', so_matnr-low.
ELSEIF NOT so_matnr-low IS INITIAL AND
NOT so_matnr-high IS INI -
URGENT: REGARDING POSTING DATE AND DELETION OF ZEROS IN ALV REPORT
Hi,
I had made a report in which i have to display 'POSTING DATE' (iseg-budat) when we execute the report i.e. it should be displayed as PERIOD :- _______ to _______ .
2nd problem is i had displayed the material no. ,but there are zeros which are displaying in dere ,i want to remove dem ... example, if the mat.no. is 2321 ,it is displaying 000002321. i want to remove these zeros.
Its request to all of u dat plz help me as fast as possible as it is most urgent to me and if any body provide me help he or sh e will be definately rewarded..
Regards,
ric.sHere i am giving you one of the ALV reports i have generated. Check this program. I hope it will be helpful to you.
REPORT ZFI_ASSIGNED_FUNDS_FINAL.
TABLES: FMIT,FMCIT,FPOS,IFMEISA1,FMFCTRT,BSEG,ZREV_BUDGET.
TYPE-POOLS: SLIS.
*ALV data declarations
DATA: FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
GD_SORT TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE,
GD_TAB_GROUP TYPE SLIS_T_SP_GROUP_ALV,
GD_LAYOUT TYPE SLIS_LAYOUT_ALV,
GD_REPID LIKE SY-REPID.
*For ALV top of page
DATA : IT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
*For ALV Events
DATA : IT_EVENT1 TYPE SLIS_T_EVENT.
*For ALV Events
DATA : IT_EVENT TYPE SLIS_ALV_EVENT.
*For top of page heading
DATA: IT_LINE TYPE SLIS_LISTHEADER.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETER : RADIO RADIOBUTTON GROUP R1.
IF RADIO EQ 'X'.
SELECT-OPTIONS: FIPEX FOR FPOS-FIPEX, " SELECTION FOR FUNDS CENTER & COMMITMENT ITEM
RFISTL FOR FMIT-RFISTL.
ENDIF.
PARAMETER: RADIO1 RADIOBUTTON GROUP R1.
IF RADIO1 EQ 'X'.
SELECT-OPTIONS : HKONT FOR BSEG-HKONT, " SELECTION FOR COST CENTER & G/L ACCOUNT
KOSTL FOR ZREV_BUDGET-KOSTL.
ENDIF.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: PERDE FOR IFMEISA1-PERDE DEFAULT '01' TO '12' OBLIGATORY.
PARAMETER : RYEAR LIKE FMIT-RYEAR OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B2.
DATA: BEGIN OF IT_TAB OCCURS 0,
FIKRS LIKE FMFCTR-FIKRS,
FICTR LIKE CSKS-KOSTL,
CTR_OBJNR LIKE FMFCTR-CTR_OBJNR,
RFISTL LIKE FMIT-RFISTL,
OBJNR LIKE BPPE-OBJNR,
END OF IT_TAB.
DATA: BEGIN OF IT_TAB1 OCCURS 0,
CO_OBJNR LIKE BPIJ-CO_OBJNR,
POSIT LIKE BPPE-POSIT,
FIPEX LIKE FMPOSIT-FIPEX,
FICTR LIKE FMFCTR-FICTR,
KSTAR LIKE COSP-KSTAR,
RFISTL LIKE FMIT-RFISTL,
OBJNR1 LIKE BPPE-OBJNR,
END OF IT_TAB1.
DATA: BEGIN OF IT_FMIT OCCURS 0,
RYEAR LIKE FMIT-RYEAR,
FIKRS LIKE FMIT-FIKRS,
RFISTL LIKE ZREV_BUDGET-KOSTL,
RFIPEX LIKE ZREV_BUDGET-KSTAR,
HSL01 LIKE FMIT-HSL01,
HSL02 LIKE FMIT-HSL02,
HSL03 LIKE FMIT-HSL03,
HSL04 LIKE FMIT-HSL04,
HSL05 LIKE FMIT-HSL05,
HSL06 LIKE FMIT-HSL06,
HSL07 LIKE FMIT-HSL07,
HSL08 LIKE FMIT-HSL08,
HSL09 LIKE FMIT-HSL09,
HSL10 LIKE FMIT-HSL10,
HSL11 LIKE FMIT-HSL11,
HSL12 LIKE FMIT-HSL12,
HSL13 LIKE FMIT-HSL13,
HSL14 LIKE FMIT-HSL14,
HSL15 LIKE FMIT-HSL15,
HSL16 LIKE FMIT-HSL16,
END OF IT_FMIT.
DATA: BEGIN OF IT_FMIT1 OCCURS 0,
RYEAR LIKE FMIT-RYEAR,
FIKRS LIKE FMIT-FIKRS,
RFISTL LIKE ZREV_BUDGET-KOSTL,
RFIPEX LIKE FMPG-FIPEX,
TOTAL LIKE FMIT-TSL01,
TOTAL1 LIKE FMIT-TSL01,
OBJNR LIKE BPPE-OBJNR,
POSIT LIKE BPPE-POSIT,
END OF IT_FMIT1.
DATA: BEGIN OF IT_BPPE OCCURS 0,
OBJNR LIKE BPPE-OBJNR,
POSIT LIKE BPPE-POSIT,
GJAHR LIKE BPPE-GJAHR,
WLP01 LIKE BPPE-WLP01,
WLP02 LIKE BPPE-WLP02,
WLP03 LIKE BPPE-WLP03,
WLP04 LIKE BPPE-WLP04,
WLP05 LIKE BPPE-WLP05,
WLP06 LIKE BPPE-WLP06,
WLP07 LIKE BPPE-WLP07,
WLP08 LIKE BPPE-WLP08,
WLP09 LIKE BPPE-WLP09,
WLP10 LIKE BPPE-WLP10,
WLP11 LIKE BPPE-WLP11,
WLP12 LIKE BPPE-WLP12,
END OF IT_BPPE.
DATA: BEGIN OF IT_BPPE1 OCCURS 0,
OBJNR LIKE BPPE-OBJNR,
POSIT LIKE BPPE-POSIT,
GJAHR LIKE BPPE-GJAHR,
RFISTL LIKE FMIT-RFISTL,
FIPEX LIKE FPOS-FIPEX,
TOTAL2 LIKE BPPE-WLP01,
END OF IT_BPPE1.
DATA: BEGIN OF IT_CSKS OCCURS 0,
KOKRS LIKE CSKS-KOKRS,
KOSTL LIKE CSKS-KOSTL,
BUKRS LIKE CSKS-BUKRS,
OBJNR LIKE CSKS-OBJNR,
END OF IT_CSKS.
DATA: BEGIN OF IT_COSP OCCURS 0,
OBJNR LIKE COSP-OBJNR,
GJAHR LIKE COSP-GJAHR,
KSTAR LIKE COSP-KSTAR,
BEKNZ LIKE COSP-BEKNZ,
WKG001 LIKE COSP-WKG001,
WKG002 LIKE COSP-WKG002,
WKG003 LIKE COSP-WKG003,
WKG004 LIKE COSP-WKG004,
WKG005 LIKE COSP-WKG005,
WKG006 LIKE COSP-WKG006,
WKG007 LIKE COSP-WKG007,
WKG008 LIKE COSP-WKG008,
WKG009 LIKE COSP-WKG009,
WKG010 LIKE COSP-WKG010,
WKG011 LIKE COSP-WKG011,
WKG012 LIKE COSP-WKG012,
END OF IT_COSP.
DATA: BEGIN OF IT_COSP2 OCCURS 0,
OBJNR LIKE COSP-OBJNR,
GJAHR LIKE COSP-GJAHR,
KSTAR LIKE COSP-KSTAR,
FIPEX LIKE FMPG-FIPEX,
TOTAL LIKE COSP-WKG001,
TOTAL1 LIKE COSP-WKG001,
OBJNR1 LIKE BPPE-OBJNR,
POSIT LIKE BPPE-POSIT,
END OF IT_COSP2.
IF RADIO EQ 'X'.
DATA: BEGIN OF IT_FINAL OCCURS 0,
FIKRS LIKE FMIT-FIKRS,
RFISTL LIKE FMIT-RFISTL,
RFIPEX LIKE FMIT-RFIPEX,
TEXT LIKE FMCIT-TEXT1,
ALLOC LIKE FMIT-TSL16,
USED LIKE FMIT-TSL16,
REMAIN LIKE FMIT-TSL16,
BEZEICH LIKE FMFCTRT-BEZEICH,
END OF IT_FINAL.
ENDIF.
IF RADIO1 EQ 'X'.
DATA: BEGIN OF IT_FINAL1 OCCURS 0,
GJAHR LIKE ZREV_BUDGET-GJAHR,
KOSTL LIKE ZREV_BUDGET-KOSTL,
KSTAR LIKE ZREV_BUDGET-KSTAR,
TOTAL1 LIKE COSP-WKG001,
TOTAL3 LIKE COSP-WKG001,
TEXT LIKE CSKU-KTEXT,
VARIANCE LIKE COSP-WKG001,
BEZEICH LIKE FMFCTRT-BEZEICH,
END OF IT_FINAL1.
ENDIF.
DATA: BEGIN OF IT_FISTL OCCURS 0,
RFISTL LIKE FMIT-RFISTL,
BEZEICH LIKE FMFCTRT-BEZEICH,
END OF IT_FISTL.
DATA: BEGIN OF IT_HKONT OCCURS 0,
KSTAR LIKE CSKU-KSTAR,
KTEXT LIKE CSKU-KTEXT,
END OF IT_HKONT.
DATA: PERIOD1 TYPE I,
PERIOD2 TYPE I,
PERIOD3 TYPE I,
PERIO TYPE I.
DATA: BEZEICH LIKE FMFCTRT-BEZEICH.
CONSTANTS: C_00 TYPE MONAT VALUE '00',
C_13 TYPE MONAT VALUE '13'.
DATA : IT_RETURN LIKE DDSHRETVAL OCCURS 0 WITH HEADER LINE.
DATA: FIPEX1 LIKE COSP-KSTAR.
A T - S E L E C T I O N S C R E E N
AT SELECTION-SCREEN.
LOOP AT PERDE.
IF PERDE-LOW >= C_13 OR PERDE-HIGH >= C_13 .
MESSAGE E022(ZA) WITH 'Enter Period values from 1 to 12'.
EXIT.
ENDIF.
ENDLOOP.
IF NOT PERDE-LOW IS INITIAL.
PERIOD1 = PERDE-LOW.
ENDIF.
IF NOT PERDE-HIGH IS INITIAL.
PERIOD2 = PERDE-HIGH.
PERIOD3 = PERIOD2 - PERIOD1.
PERIOD3 = PERIOD3 + 1.
ELSE.
PERIOD3 = 1.
ENDIF.
PERIO = PERIOD1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR RFISTL-LOW.
SELECT FICTR BEZEICH INTO TABLE IT_FISTL FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FIKRS EQ 'NFFM'.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'RFISTL'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_FISTL
RETURN_TAB = IT_RETURN.
IF SY-SUBRC = 0.
READ TABLE IT_RETURN INDEX 1.
MOVE IT_RETURN-FIELDVAL TO RFISTL-LOW.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR RFISTL-HIGH.
SELECT FICTR BEZEICH INTO TABLE IT_FISTL FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FIKRS EQ 'NFFM'.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'RFISTL'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_FISTL
RETURN_TAB = IT_RETURN.
IF SY-SUBRC = 0.
READ TABLE IT_RETURN INDEX 1.
MOVE IT_RETURN-FIELDVAL TO RFISTL-HIGH.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR HKONT-LOW.
SELECT KSTAR KTEXT INTO TABLE IT_HKONT FROM CSKU WHERE SPRAS EQ 'EN'.
SORT IT_HKONT BY KSTAR.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'HKONT'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_HKONT
RETURN_TAB = IT_RETURN.
IF SY-SUBRC = 0.
READ TABLE IT_RETURN INDEX 1.
MOVE IT_RETURN-FIELDVAL TO HKONT-LOW.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR HKONT-HIGH.
SELECT KSTAR KTEXT INTO TABLE IT_HKONT FROM CSKU WHERE SPRAS EQ 'EN'.
SORT IT_HKONT BY KSTAR.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'HKONT'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_HKONT
RETURN_TAB = IT_RETURN.
IF SY-SUBRC = 0.
READ TABLE IT_RETURN INDEX 1.
MOVE IT_RETURN-FIELDVAL TO HKONT-HIGH.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR KOSTL-LOW.
SELECT FICTR BEZEICH INTO TABLE IT_FISTL FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FIKRS IN KOSTL.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'KOSTL'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_FISTL
RETURN_TAB = IT_RETURN.
IF SY-SUBRC = 0.
READ TABLE IT_RETURN INDEX 1.
MOVE IT_RETURN-FIELDVAL TO KOSTL-LOW.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR KOSTL-HIGH.
SELECT FICTR BEZEICH INTO TABLE IT_FISTL FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FIKRS IN KOSTL.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'KOSTL'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_FISTL
RETURN_TAB = IT_RETURN.
IF SY-SUBRC = 0.
READ TABLE IT_RETURN INDEX 1.
MOVE IT_RETURN-FIELDVAL TO KOSTL-HIGH.
ENDIF.
*START-OF-SELECTION
START-OF-SELECTION.
IF RADIO EQ 'X'. " FOR FUNDS CENTER AND COMMITMENT ITEM
PERFORM GET_DATA.
PERFORM PROCESS_DATA.
ENDIF.
IF RADIO1 EQ 'X'. " FOR COST CENTER AND G/L ACCOUNT
PERFORM GET_DATA1.
PERFORM PROCESS_DATA1.
ENDIF.
*END OF SELECTION
PERFORM BUILD_LAYOUT.
PERFORM BUILD_EVENTS.
IF RADIO EQ 'X'.
PERFORM BUILD_FIELDCATALOG.
PERFORM BUILD_SORT.
PERFORM DISPLAY_ALV_REPORT.
ENDIF.
IF RADIO1 EQ 'X'.
PERFORM BUILD_FIELDCATALOG1.
PERFORM BUILD_SORT1.
PERFORM DISPLAY_ALV_REPORT1.
ENDIF.
*& Form GET_DATA
text
--> p1 text
<-- p2 text
FORM GET_DATA .
SELECT FIKRS FICTR CTR_OBJNR INTO TABLE IT_TAB FROM FMFCTR
WHERE FIKRS EQ 'NFFM'
AND FICTR IN RFISTL.
SELECT CO_OBJNR POSIT INTO TABLE IT_TAB1 FROM BPIJ
FOR ALL ENTRIES IN IT_TAB
WHERE CO_OBJNR EQ IT_TAB-CTR_OBJNR.
LOOP AT IT_TAB1.
SELECT SINGLE FIPEX INTO IT_TAB1-FIPEX FROM FMPOSIT WHERE FIKRS EQ 'NFFM'
AND POSIT EQ IT_TAB1-POSIT
AND FIPEX IN FIPEX.
IF SY-SUBRC EQ '0'.
MODIFY IT_TAB1.
ELSE.
DELETE IT_TAB1.
ENDIF.
ENDLOOP.
SELECT OBJNR
POSIT
GJAHR
WLP01
WLP02
WLP03
WLP04
WLP05
WLP06
WLP07
WLP08
WLP09
WLP10
WLP11
WLP12
INTO TABLE IT_BPPE
FROM BPPE
FOR ALL ENTRIES IN IT_TAB1
WHERE OBJNR EQ IT_TAB1-CO_OBJNR
AND POSIT EQ IT_TAB1-POSIT
AND GJAHR EQ RYEAR
AND VORGA IN ('KBFR','KBUE','KBUS').
LOOP AT IT_BPPE.
MOVE-CORRESPONDING IT_BPPE TO IT_BPPE1.
IT_BPPE1-RFISTL = IT_BPPE1-OBJNR+6(4).
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_BPPE1-RFISTL
IMPORTING
OUTPUT = IT_BPPE1-RFISTL.
CALL FUNCTION 'FM_FIPEX_GET_FROM_POSIT'
EXPORTING
I_FIKRS = 'NFFM'
I_POSIT = IT_BPPE1-POSIT
IMPORTING
E_FIPEX = IT_BPPE1-FIPEX.
PERIOD1 = PERIO.
DO PERIOD3 TIMES.
CASE PERIOD1.
WHEN 1.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP01.
WHEN 2.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP02.
WHEN 3.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP03.
WHEN 4.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP04.
WHEN 5.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP05.
WHEN 6.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP06.
WHEN 7.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP07.
WHEN 8.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP08.
WHEN 9.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP09.
WHEN 10.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP10.
WHEN 11.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP11.
WHEN 12.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP12.
ENDCASE.
IF PERIOD2 >= PERIOD1.
PERIOD1 = PERIOD1 + 1.
ENDIF.
ENDDO.
COLLECT IT_BPPE1.
CLEAR PERIOD1.
CLEAR IT_BPPE1.
ENDLOOP.
SELECT RYEAR
FIKRS
RFISTL
RFIPEX
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
HSL07
HSL08
HSL09
HSL10
HSL11
HSL12
HSL13
HSL14
HSL15
HSL16
INTO TABLE IT_FMIT FROM FMIT
FOR ALL ENTRIES IN IT_BPPE1
WHERE RYEAR EQ RYEAR
AND FIKRS EQ 'NFFM'
AND RFIPEX EQ IT_BPPE1-FIPEX
AND RFIPEX IN FIPEX
AND RFISTL EQ IT_BPPE1-RFISTL.
LOOP AT IT_FMIT.
MOVE-CORRESPONDING IT_FMIT TO IT_FMIT1.
PERIOD1 = PERIO.
DO PERIOD3 TIMES.
CASE PERIOD1.
WHEN 1.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL01.
WHEN 2.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL02.
WHEN 3.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL03.
WHEN 4.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL04.
WHEN 5.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL05.
WHEN 6.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL06.
WHEN 7.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL07.
WHEN 8.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL08.
WHEN 9.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL09.
WHEN 10.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL10.
WHEN 11.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL11.
WHEN 12.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL12.
ENDCASE.
IF PERIOD2 >= PERIOD1.
PERIOD1 = PERIOD1 + 1.
ENDIF.
ENDDO.
IT_FMIT1-TOTAL1 = IT_FMIT1-TOTAL * -1 .
COLLECT IT_FMIT1.
CLEAR PERIOD1.
CLEAR IT_FMIT1.
ENDLOOP.
ENDFORM. " GET_DATA
*& Form PROCESS_DATA
text
--> p1 text
<-- p2 text
FORM PROCESS_DATA .
SORT IT_FMIT1 BY FIKRS RFISTL RFIPEX.
SORT IT_BPPE1 BY RFISTL FIPEX.
LOOP AT IT_BPPE1.
IT_FINAL-RFISTL = IT_BPPE1-RFISTL.
IT_FINAL-RFIPEX = IT_BPPE1-FIPEX.
IT_FINAL-ALLOC = IT_BPPE1-TOTAL2.
READ TABLE IT_FMIT1 WITH KEY RFISTL = IT_BPPE1-RFISTL RFIPEX = IT_BPPE1-FIPEX.
IF SY-SUBRC EQ 0.
IT_FINAL-USED = IT_FMIT1-TOTAL1.
ENDIF.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FMIT1-RFIPEX
IMPORTING
OUTPUT = IT_FMIT1-RFIPEX.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FMIT1-RFISTL
IMPORTING
OUTPUT = IT_FMIT1-RFISTL.
Changes made on 13/11/2007 *******************************
SELECT SINGLE TEXT1 INTO IT_FINAL-TEXT FROM FMCIT WHERE SPRAS EQ 'EN'
AND FIPEX EQ IT_FMIT1-RFIPEX.
SELECT SINGLE TEXT1 INTO IT_FINAL-TEXT FROM FMCIT WHERE SPRAS EQ 'EN'
AND FIPEX EQ IT_BPPE1-FIPEX.
Changes made on 13/11/2007 *******************************
SELECT SINGLE BEZEICH INTO IT_FINAL-BEZEICH FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FICTR EQ IT_FMIT1-RFISTL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FINAL-RFIPEX
IMPORTING
OUTPUT = IT_FINAL-RFIPEX.
IT_FINAL-REMAIN = IT_FINAL-ALLOC - IT_FINAL-USED.
APPEND IT_FINAL.
CLEAR IT_FINAL.
ENDLOOP.
SORT IT_FINAL BY FIKRS RFISTL RFIPEX.
LOOP AT IT_FMIT1.
READ TABLE IT_FINAL WITH KEY RFISTL = IT_FMIT1-RFISTL RFIPEX = IT_FMIT1-RFIPEX.
IF SY-SUBRC NE 0.
IT_FINAL-RFISTL = IT_FMIT1-RFISTL.
IT_FINAL-RFIPEX = IT_FMIT1-RFIPEX.
IT_FINAL-USED = IT_FMIT1-TOTAL1.
IT_FINAL-ALLOC = '0'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FMIT1-RFIPEX
IMPORTING
OUTPUT = IT_FMIT1-RFIPEX.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FMIT1-RFISTL
IMPORTING
OUTPUT = IT_FMIT1-RFISTL.
SELECT SINGLE TEXT1 INTO IT_FINAL-TEXT FROM FMCIT WHERE SPRAS EQ 'EN'
AND FIPEX EQ IT_FMIT1-RFIPEX.
SELECT SINGLE BEZEICH INTO IT_FINAL-BEZEICH FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FICTR EQ IT_FMIT1-RFISTL.
IT_FINAL-REMAIN = IT_FINAL-ALLOC - IT_FINAL-USED.
APPEND IT_FINAL.
CLEAR IT_FINAL.
ELSE.
DELETE IT_FMIT1.
ENDIF.
ENDLOOP.
SORT IT_FINAL BY FIKRS RFISTL RFIPEX.
ENDFORM. " PROCESS_DATA
*& Form GET_DATA1
text
--> p1 text
<-- p2 text
FORM GET_DATA1 .
SELECT KOKRS KOSTL BUKRS OBJNR INTO TABLE IT_CSKS
FROM CSKS
WHERE KOKRS EQ '1000'
AND KOSTL IN KOSTL
AND BUKRS EQ 'NFCL'.
SELECT OBJNR
GJAHR
KSTAR
BEKNZ
WKG001
WKG002
WKG003
WKG004
WKG005
WKG006
WKG007
WKG008
WKG009
WKG010
WKG011
WKG012
FROM COSP
INTO TABLE IT_COSP
FOR ALL ENTRIES IN IT_CSKS
WHERE OBJNR EQ IT_CSKS-OBJNR
AND GJAHR EQ RYEAR
AND KSTAR IN HKONT.
LOOP AT IT_COSP.
MOVE-CORRESPONDING IT_COSP TO IT_COSP2.
PERIOD1 = PERIO.
DO PERIOD3 TIMES.
CASE PERIOD1.
WHEN 1.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG001.
WHEN 2.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG002.
WHEN 3.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG003.
WHEN 4.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG004.
WHEN 5.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG005.
WHEN 6.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG006.
WHEN 7.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG007.
WHEN 8.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG008.
WHEN 9.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG009.
WHEN 10.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG010.
WHEN 11.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG011.
WHEN 12.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG012.
ENDCASE.
IF PERIOD2 >= PERIOD1.
PERIOD1 = PERIOD1 + 1.
ENDIF.
ENDDO.
IT_COSP2-OBJNR1 = IT_COSP2-OBJNR+10(6).
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_COSP2-OBJNR1
IMPORTING
OUTPUT = IT_COSP2-OBJNR1.
CONCATENATE 'FSNFFM' IT_COSP2-OBJNR1 INTO IT_COSP2-OBJNR1.
IT_COSP2-FIPEX = IT_COSP2-KSTAR.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_COSP2-FIPEX
IMPORTING
OUTPUT = IT_COSP2-FIPEX.
CALL FUNCTION 'FM_POSIT_GET_FROM_FIPEX'
EXPORTING
I_FIKRS = 'NFFM'
I_FIPEX = IT_COSP2-FIPEX
I_FLG_BUFFER_ALL =
IMPORTING
E_POSIT = IT_COSP2-POSIT
TABLES
T_FMPOSIT =
EXCEPTIONS
INPUT_ERROR = 1
DATA_NOT_FOUND = 2
OTHERS = 3
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CONDENSE IT_COSP2-OBJNR1.
CONDENSE IT_COSP2-POSIT.
COLLECT IT_COSP2.
CLEAR PERIOD1.
CLEAR IT_COSP2.
ENDLOOP.
SORT IT_COSP2 BY OBJNR KSTAR.
SELECT OBJNR
POSIT
GJAHR
WLP01
WLP02
WLP03
WLP04
WLP05
WLP06
WLP07
WLP08
WLP09
WLP10
WLP11
WLP12
INTO TABLE IT_BPPE
FROM BPPE
FOR ALL ENTRIES IN IT_COSP2
WHERE OBJNR EQ IT_COSP2-OBJNR1
AND POSIT EQ IT_COSP2-POSIT
AND GJAHR EQ RYEAR
AND VORGA IN ('KBFR','KBUE','KBUS').
LOOP AT IT_BPPE.
MOVE-CORRESPONDING IT_BPPE TO IT_BPPE1.
PERIOD1 = PERIO.
DO PERIOD3 TIMES.
CASE PERIOD1.
WHEN 1.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP01.
WHEN 2.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP02.
WHEN 3.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP03.
WHEN 4.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP04.
WHEN 5.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP05.
WHEN 6.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP06.
WHEN 7.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP07.
WHEN 8.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP08.
WHEN 9.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP09.
WHEN 10.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP10.
WHEN 11.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP11.
WHEN 12.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP12.
ENDCASE.
IF PERIOD2 >= PERIOD1.
PERIOD1 = PERIOD1 + 1.
ENDIF.
ENDDO.
COLLECT IT_BPPE1.
CLEAR PERIOD1.
CLEAR IT_BPPE1.
ENDLOOP.
ENDFORM. " GET_DATA1
*& Form PROCESS_DATA1
text
--> p1 text
<-- p2 text
FORM PROCESS_DATA1 .
LOOP AT IT_COSP2.
IT_FINAL1-GJAHR = IT_COSP2-GJAHR.
IT_FINAL1-KSTAR = IT_COSP2-KSTAR.
IT_FINAL1-TOTAL1 = IT_COSP2-TOTAL.
SELECT SINGLE KOSTL FROM CSKS INTO IT_FINAL1-KOSTL WHERE KOKRS = '1000'
AND BUKRS EQ 'NFCL'
AND OBJNR = IT_COSP2-OBJNR.
READ TABLE IT_BPPE1 WITH KEY OBJNR = IT_COSP2-OBJNR1 POSIT = IT_COSP2-POSIT.
IF SY-SUBRC EQ 0.
IT_FINAL1-TOTAL3 = IT_BPPE1-TOTAL2.
ENDIF.
SELECT SINGLE KTEXT INTO IT_FINAL1-TEXT FROM CSKU WHERE SPRAS EQ 'EN'
AND KSTAR EQ IT_COSP2-KSTAR.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FINAL1-KOSTL
IMPORTING
OUTPUT = IT_FINAL1-KOSTL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FINAL1-KSTAR
IMPORTING
OUTPUT = IT_FINAL1-KSTAR.
SELECT SINGLE BEZEICH INTO IT_FINAL1-BEZEICH FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FICTR EQ IT_FINAL1-KOSTL.
IT_FINAL1-VARIANCE = IT_FINAL1-TOTAL3 - IT_FINAL1-TOTAL1.
APPEND IT_FINAL1.
CLEAR IT_FINAL1.
ENDLOOP.
SORT IT_FINAL1 BY KOSTL KSTAR.
DELETE IT_FINAL1 WHERE KOSTL IS INITIAL.
ENDFORM. " PROCESS_DATA1
*& Form BUILD_FIELDCATALOG
text
--> p1 text
<-- p2 text
FORM BUILD_FIELDCATALOG .
FIELDCATALOG-FIELDNAME = 'RFISTL'.
FIELDCATALOG-SELTEXT_M = 'Funds Center'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BEZEICH'.
FIELDCATALOG-SELTEXT_M = 'Fund Center Description'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'RFIPEX'.
FIELDCATALOG-SELTEXT_M = 'Commitment Item'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'TEXT'.
FIELDCATALOG-SELTEXT_M = 'Commitment Item Description'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'ALLOC'.
FIELDCATALOG-SELTEXT_M = 'Allocated Budget'.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'USED'.
FIELDCATALOG-SELTEXT_M = 'Used Budget'.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'REMAIN'.
FIELDCATALOG-SELTEXT_M = 'Remaining Budget'.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
ENDFORM. " BUILD_FIELDCATALOG
*& Form BUILD_FIELDCATALOG1
text
--> p1 text
<-- p2 text
FORM BUILD_FIELDCATALOG1 .
FIELDCATALOG-FIELDNAME = 'KOSTL'.
FIELDCATALOG-SELTEXT_M = 'Cost Center'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BEZEICH'.
FIELDCATALOG-SELTEXT_M = 'Cost Center Description'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'KSTAR'.
FIELDCATALOG-SELTEXT_M = 'G/L Account'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'TEXT'.
FIELDCATALOG-SELTEXT_M = 'G/L Account Description'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'TOTAL3'.
FIELDCATALOG-SELTEXT_M = 'Planned amount'.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'TOTAL1'.
FIELDCATALOG-SELTEXT_M = 'Actuals'.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'VARIANCE'.
FIELDCATALOG-SELTEXT_M = 'Variance'.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
ENDFORM. " BUILD_FIELDCATALOG1
*& Form BUILD_LAYOUT
text
--> p1 text
<-- p2 text
FORM BUILD_LAYOUT .
GD_LAYOUT-NO_INPUT = 'X'.
GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM. " BUILD_LAYOUT
*& Form BUILD_SORT
text
--> p1 text
<-- p2 text
FORM BUILD_SORT .
DATA: GT_SORT TYPE SLIS_SORTINFO_ALV.
GT_SORT-UP = 'X'.
GT_SORT-FIELDNAME = 'RFISTL'.
GT_SORT-TABNAME = 'IT_FINAL'.
GT_SORT-SUBTOT = 'X'.
APPEND GT_SORT TO GD_SORT.
CLEAR GT_SORT.
GT_SORT-UP = 'X'.
GT_SORT-FIELDNAME = 'BEZEICH'.
GT_SORT-TABNAME = 'IT_FINAL'.
APPEND GT_SORT TO GD_SORT.
CLEAR GT_SORT.
ENDFORM. " BUILD_SORT
*& Form BUILD_SORT1
text
--> p1 text
<-- p2 text
FORM BUILD_SORT1 .
DATA: GT_SORT TYPE SLIS_SORTINFO_ALV.
GT_SORT-UP = 'X'.
GT_SORT-FIELDNAME = 'KOSTL'.
GT_SORT-TABNAME = 'IT_FINAL'.
GT_SORT-SUBTOT = 'X'.
APPEND GT_SORT TO GD_SORT.
CLEAR GT_SORT.
GT_SORT-UP = 'X'.
GT_SORT-FIELDNAME = 'BEZEICH'.
GT_SORT-TABNAME = 'IT_FINAL'.
APPEND GT_SORT TO GD_SORT.
CLEAR GT_SORT.
ENDFORM. " BUILD_SORT1
*& Form BUILD_EVENTS
text
--> p1 text
<-- p2 text
FORM BUILD_EVENTS .
IT_EVENT-NAME = 'TOP_OF_PAGE'.
IT_EVENT-FORM = 'TOP_OF_PAGE'.
APPEND IT_EVENT TO IT_EVENT1.
CLEAR IT_EVENT.
ENDFORM. " BUILD_EVENTS
*& Form TOP_OF_PAGE
ALV TOP-OF-PAGE
FORM TOP_OF_PAGE. "#EC CALLED
REFRESH : IT_LIST_TOP_OF_PAGE.
CLEAR : IT_LINE.
IT_LINE-TYP = 'H'.
IT_LINE-INFO = TEXT-001.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
CLEAR IT_LINE.
IF RADIO EQ 'X'.
IT_LINE-TYP = 'S'.
IT_LINE-INFO = TEXT-101.
IF NOT FIPEX-LOW IS INITIAL.
CONCATENATE TEXT-101 '-' FIPEX-LOW INTO IT_LINE-INFO SEPARATED BY SPACE.
IF NOT FIPEX-HIGH IS INITIAL.
CONCATENATE TEXT-101 '-' FIPEX-LOW 'to' FIPEX-HIGH INTO IT_LINE-INFO SEPARATED BY SPACE.
ENDIF.
ENDIF.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
CLEAR IT_LINE-INFO.
IT_LINE-INFO = TEXT-102.
IF NOT RFISTL-LOW IS INITIAL.
CONCATENATE TEXT-102 '-' RFISTL-LOW INTO IT_LINE-INFO SEPARATED BY SPACE.
IF NOT RFISTL-HIGH IS INITIAL.
CONCATENATE TEXT-102 '-' RFISTL-LOW 'to' RFISTL-HIGH INTO IT_LINE-INFO SEPARATED BY SPACE.
ENDIF.
ENDIF.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
ENDIF.
IF RADIO1 EQ 'X'.
CLEAR IT_LINE-INFO.
IT_LINE-INFO = TEXT-105.
IF NOT KOSTL-LOW IS INITIAL.
CONCATENATE TEXT-105 '-' KOSTL-LOW INTO IT_LINE-INFO SEPARATED BY SPACE.
IF NOT KOSTL-HIGH IS INITIAL.
CONCATENATE TEXT-105 '-' KOSTL-LOW 'to' KOSTL-HIGH INTO IT_LINE-INFO SEPARATED BY SPACE.
ENDIF.
ENDIF.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
CLEAR IT_LINE-INFO.
IT_LINE-INFO = TEXT-106.
IF NOT HKONT-LOW IS INITIAL.
CONCATENATE TEXT-106 '-' HKONT-LOW INTO IT_LINE-INFO SEPARATED BY SPACE.
IF NOT HKONT-HIGH IS INITIAL.
CONCATENATE TEXT-106 '-' HKONT-LOW 'to' HKONT-HIGH INTO IT_LINE-INFO SEPARATED BY SPACE.
ENDIF.
ENDIF.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
ENDIF.
CLEAR IT_LINE-INFO.
IT_LINE-INFO = TEXT-103.
IF NOT PERDE-LOW IS INITIAL.
CONCATENATE TEXT-103 '-' PERDE-LOW INTO IT_LINE-INFO SEPARATED BY SPACE.
IF NOT PERDE-HIGH IS INITIAL.
CONCATENATE TEXT-103 '-' PERDE-LOW 'to' PERDE-HIGH INTO IT_LINE-INFO SEPARATED BY SPACE.
ENDIF.
ENDIF.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
CLEAR IT_LINE-INFO.
IT_LINE-INFO = TEXT-104.
IF NOT RYEAR IS INITIAL.
CONCATENATE TEXT-104 '-' RYEAR INTO IT_LINE-INFO SEPARATED BY SPACE.
ENDIF.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LIST_TOP_OF_PAGE.
ENDFORM. "TOP_OF_PAGE
*& Form DISPLAY_ALV_REPORT
text
--> p1 text
<-- p2 text
FORM DISPLAY_ALV_REPORT .
GD_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GD_REPID
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
IS_LAYOUT = GD_LAYOUT
IT_EVENTS = IT_EVENT1[]
IT_FIELDCAT = FIELDCATALOG[]
IT_SORT = GD_SORT[]
TABLES
T_OUTTAB = IT_FINAL
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "DISPLAY_ALV_REPORT
*& Form DISPLAY_ALV_REPORT1
text
--> p1 text
<-- p2 text
FORM DISPLAY_ALV_REPORT1 .
GD_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GD_REPID
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
IS_LAYOUT = GD_LAYOUT
IT_EVENTS = IT_EVENT1[]
IT_FIELDCAT = FIELDCATALOG[]
IT_SORT = GD_SORT[]
TABLES
T_OUTTAB = IT_FINAL1
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-MSG -
Urgent: regarding ALV report display problem
hi,
There are 3 problems:-
1.) I had made a ALV report in which i have to display 'POSTING DATE' (iseg-budat) when we execute the report i.e. it should be displayed as PERIOD :- _______ to _______ on alv report ..
2.)the 2nd problem is dat when i use the ' wa_fieldcat-no_zero = 'X'. It eliminates all the leading zeros which are present which is okay when i it displays material no.. but the problem is dat it also deletes the other fields where the values are to be zeros.
i had used this FM:-
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = ITS1-MATNR
IMPORTING
OUTPUT = ITS1-MATNR.
so that only matnr field are to be 0's.
3.) I want to delete the rows which use to contain the values 0's as there are no calculations are performing as these are displayed .
ANYbody having solution of this problem ,plzzzz provide the soluion of it as it is most urgent to me and dat person will definately rewarded.
regards,
ric.shi kiran,
thanks for ur response. here is d code which i am using it and plzz help me to figure out where i have to make changes:-
REPORT ZTEST03.
TABLES: ISEG,MARA.
TYPE-POOLS : SLIS.
INTERNAL TABLE FOR INVENTORY STOCK *****************
DATA: BEGIN OF ITS1 OCCURS 0,
MATNR LIKE ISEG-MATNR,
MEINS LIKE ISEG-MEINS,
MENGE LIKE ISEG-MENGE,
WRTZL LIKE ISEG-WRTZL,
BUCHM LIKE ISEG-BUCHM,
WRTBM LIKE ISEG-WRTBM,
WERKS LIKE ISEG-WERKS,
BUDAT LIKE ISEG-BUDAT,
MTART LIKE MARA-MTART,
ITEMDESC LIKE MAKT-MAKTX,
DIFFQTY LIKE ISEG-BUCHM,
DIFFVALUE LIKE ISEG-WRTBM,
END OF ITS1.
data: t_heading type slis_t_listheader.
SELECTION-SCREEN BEGIN OF BLOCK PAR1 WITH FRAME TITLE TEXT-001.
*********PARAMETERS*********
PARAMETERS : PLANT LIKE ISEG-WERKS OBLIGATORY.
*********SELECTION SCREEN OPTIONS*********
SELECT-OPTIONS : R_DATE FOR ISEG-BUDAT,
M_TYPE FOR MARA-MTART,
IT_M FOR MARA-MATNR.
*********DEFINING VARIABLES*********
SELECTION-SCREEN END OF BLOCK par1.
TOP-OF-PAGE.
PERFORM PG_HEADER.
START-OF-SELECTION.
SELECT DISTINCT A~MATNR A~MEINS A~MENGE A~WRTZL A~BUCHM A~WRTBM A~WERKS A~BUDAT B~MTART
FROM ISEG AS A INNER JOIN MARA AS B ON B~MATNR = A~MATNR
INTO CORRESPONDING FIELDS OF TABLE ITS1 WHERE B~MATNR = A~MATNR AND B~MEINS = A~MEINS AND A~WERKS = PLANT AND A~BUDAT IN R_DATE AND B~MTART IN M_TYPE AND B~MATNR IN IT_M.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = ITS1-MATNR
IMPORTING
OUTPUT = ITS1-MATNR.
SORT ITS1 BY MATNR.
DELETE ADJACENT DUPLICATES FROM ITS1 WHERE MENGE = 0 AND BUCHM = 0.
LOOP AT ITS1.
ITS1-DIFFQTY = ITS1-MENGE - ITS1-BUCHM.
ITS1-DIFFVALUE = ITS1-WRTZL - ITS1-WRTBM.
SELECT SINGLE MAKTX FROM MAKT INTO ITS1-ITEMDESC WHERE MATNR = ITS1-MATNR.
MODIFY ITS1.
ENDLOOP.
PERFORM PRN_SMSTOCK_ALV.
WRITING DATA FROM D TABLES**********
FORM PG_HEADER.
WRITE : 'PHYSICAL INVENTORY AUDIT REPORT PLANT : ', PLANT.
ENDFORM.
*& Form PRN_SMSTOCK_ALV
text
--> p1 text
<-- p2 text
form PRN_SMSTOCK_ALV .
data: w_title type lvc_title,
w_repid type syrepid,
w_comm type slis_formname,
w_status type slis_formname,
x_layout type slis_layout_alv,
t_event type slis_t_event,
t_fieldcat type slis_t_fieldcat_alv,
t_sort type slis_t_sortinfo_alv.
refresh t_fieldcat.
refresh t_event.
refresh t_sort.
clear x_layout.
clear w_title.
perform set_fieldcat2 using:
1 'MTART' 'MTART' 'MARA' '15' space 'MATERIAL TYPE' space space space space space space space space SPACE t_fieldcat 'L' 'C',
2 'MATNR' 'MATNR' 'MARA' '13' space 'MATERIAL NO. ' space space space space space space space space SPACE t_fieldcat 'R' 'C',
3 'ITEMDESC' 'MAKTX' 'MAKT' '25' space 'MATERIAL DESCRIPTION' space space space space space space space space SPACE t_fieldcat 'L' 'C',
4 'MEINS' 'MEINS' 'MARA' '5' space 'UOM' space space space space space space space space SPACE t_fieldcat 'C' 'C',
5 'MENGE' 'MENGE' 'ISEG' '13' space 'ORG.INV.QTY' space space space space space space space space SPACE t_fieldcat 'R' 'C',
6 'WRTZL' 'WRTZL' 'ISEG' '13' space 'ORG.INV.VALUE' space space space space space space space space SPACE t_fieldcat 'R' 'C',
7 'BUCHM' 'BUCHM' 'ISEG' '13' space 'PHY.INV.QTY' space space space space space space space space SPACE t_fieldcat 'R' 'C',
8 'WRTBM' 'WRTBM' 'ISEG' '13' space 'PHY.INV.VALUE' space space space space space space space space SPACE t_fieldcat 'R' 'C',
9 'DIFFQTY' 'MENGE' 'ISEG' '13' space 'DIFF.INV.QTY' space space space space space space space space SPACE t_fieldcat 'R' 'C',
10 'DIFFVALUE' 'WRTZL' 'ISEG' '13' space 'DIFF.INV.VALUE' space space space space space space space space SPACE t_fieldcat SPACE 'P'.
x_layout-zebra = 'X'.
perform set_top_page_heading using t_heading t_event.
perform set_events using t_event.
w_status = ''.
w_repid = sy-repid.
w_comm = 'USER_COMMAND'.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = w_repid
it_fieldcat = t_fieldcat
i_Callback_top_of_page = 'Top-of-page'
is_layout = x_layout
it_sort = t_sort
i_callback_pf_status_set = w_status
i_callback_user_command = w_comm
i_save = 'X'
it_events = t_event
i_grid_title = w_title
tables
t_outtab = ITS1
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.
FORM set_fieldcat2 USING
p_colpos p_fieldname p_ref_fieldname p_ref_tabname
p_outputlen p_noout
p_seltext_m p_seltext_l p_seltext_s p_reptext_ddic p_ddictxt
p_hotspot p_showasicon p_checkbox p_edit
p_dosum
t_fieldcat TYPE slis_t_fieldcat_alv
P_JUST
P_FTYPE.
DATA: wa_fieldcat TYPE slis_fieldcat_alv.
CLEAR wa_fieldcat.
General settings
wa_fieldcat-fieldname = p_fieldname.
wa_fieldcat-no_zero = 'X'.
wa_fieldcat-col_pos = p_colpos.
wa_fieldcat-no_out = p_noout.
wa_fieldcat-hotspot = p_hotspot.
wa_fieldcat-checkbox = p_checkbox.
wa_fieldcat-icon = p_showasicon.
wa_fieldcat-do_sum = p_dosum.
Set output length.
IF NOT p_outputlen IS INITIAL.
wa_fieldcat-outputlen = p_outputlen.
ENDIF.
Set text headers.
IF NOT p_seltext_m IS INITIAL.
wa_fieldcat-seltext_m = p_seltext_m.
ENDIF.
IF NOT p_seltext_l IS INITIAL.
wa_fieldcat-seltext_l = p_seltext_l.
ENDIF.
IF NOT p_seltext_s IS INITIAL.
wa_fieldcat-seltext_s = p_seltext_s.
ENDIF.
IF NOT p_reptext_ddic IS INITIAL.
wa_fieldcat-reptext_ddic = p_reptext_ddic.
ENDIF.
IF NOT p_ddictxt IS INITIAL.
wa_fieldcat-ddictxt = p_ddictxt.
ENDIF.
IF NOT P_JUST IS INITIAL.
WA_FIELDCAT-JUST = P_JUST.
ENDIF.
Set as editable or not.
IF NOT p_edit IS INITIAL.
wa_fieldcat-input = 'X'.
wa_fieldcat-edit = 'X'.
ENDIF.
APPEND wa_fieldcat TO t_fieldcat.
ENDFORM. "set_fieldcat2
======================== Subroutines called by ALV ================
*& Form top_of_page
Called on top_of_page ALV event.
Prints the heading.
form top_of_page.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = t_heading.
ENDFORM.
form set_top_page_heading using t_heading type slis_t_listheader
t_events type slis_t_event.
data: x_heading type slis_listheader,
x_event type line of slis_t_event.
Report title
clear t_heading[].
clear x_heading.
x_heading-typ = 'H'.
x_heading-info = 'PHYSICAL INVENTORY AUDIT REPORT'.
append x_heading to t_heading.
Plant Name
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'PLANT: '.
x_heading-info = its1-werks.
append x_heading to t_heading.
Posting Date
*clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'POSTING DATE: '.
x_heading-info = ITS1-BUDAT.
append x_heading to t_heading.
Control Date
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'CONTROL No: '.
x_heading-info = its1-werks.
append x_heading to t_heading.
Control date
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'CONTROL DATE: '.
x_heading-info = its1-werks.
append x_heading to t_heading.
User who is running the report
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'User: '.
x_heading-info = sy-uname.
append x_heading to t_heading.
Date of execution
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'Date: '.
write sy-datum to x_heading-info.
append x_heading to t_heading.
Time of execution
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'Time: '.
write sy-uzeit to x_heading-info.
append x_heading to t_heading.
Top of page event
x_event-name = slis_ev_top_of_page.
x_event-form = 'TOP_OF_PAGE'.
append x_event to t_events.
endform.
form set_events using t_events type slis_t_event.
data: x_event type line of slis_t_event.
endform.
plzzz help me out as it is most urgent to me.
regards,
ric.s -
Hi all,
I have displayed data in alv.and the error condition is that if for a material if it has more than one S as ok_status records then it should throw an error. This logic is working fine.
Now suppose at first time user had entered S through keyboard which fails the condition so it throws an error first time.
Now user can change the ok status back to I or O from S (through keyboard although f4 help is available) which satisfies the conditon so that record should be saved. but when user presses save button then in the ALV display the changed status I or O for that record again converted back to status S automatically. and again gives an error.
if we try third time then it allows to save with record other than s ok status i.e. I or O.
this problem is comming only when we change the value through keyboard. If we select value using f4 help then whole logic is working fine, no problem at all.
Can you please help me out in this regard
Its very urgent.
Thanks & Regards
Ashutosh.Hi,
to exclude toolbar buttons..
DATA: LT_EXCLUDE TYPE UI_FUNCTIONS.
DATA LS_EXCLUDE TYPE UI_FUNC.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_COPY_ROW.
APPEND LS_EXCLUDE TO LT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_DELETE_ROW.
APPEND LS_EXCLUDE TO LT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_APPEND_ROW.
APPEND LS_EXCLUDE TO LT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_INSERT_ROW.
APPEND LS_EXCLUDE TO LT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_MOVE_ROW.
APPEND LS_EXCLUDE TO LT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_COPY.
APPEND LS_EXCLUDE TO LT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_CUT.
APPEND LS_EXCLUDE TO LT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_PASTE.
APPEND LS_EXCLUDE TO LT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_PASTE_NEW_ROW.
APPEND LS_EXCLUDE TO LT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_UNDO.
APPEND LS_EXCLUDE TO LT_EXCLUDE.
CALL METHOD G_GRID1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
<b> IT_TOOLBAR_EXCLUDING = LT_EXCLUDE</b>
IS_LAYOUT = GS_LAYOUT
CHANGING
IT_FIELDCATALOG = IT_FIELDCAT
IT_OUTTAB = IT_FINAL[].
and you told you are using REUSE_ALV_GRID_DISPLAY_LVC
then in the user_command do this....
then your problem will be solved.
in the top you declare this..
DATA: REF_GRID TYPE REF TO CL_GUI_ALV_GRID.
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
*then insert the following code in your USER_COMMAND routine...
IF REF_GRID IS INITIAL.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
E_GRID = REF_GRID.
ENDIF.
IF NOT REF_GRID IS INITIAL.
CALL METHOD REF_GRID->CHECK_CHANGED_DATA
ENDIF.
ENDFORM.
Regards
vijay -
Re: URGENT: - REGARDING FIELD IN TABLES
HI
I am using transaction code MB5B and i am getting d data but i want to search d field among d tables where amount in currency field(dmbtr) present in bsim or bseg table ,but i want to have dat field which use to display d calculation of d field (dbmtr),plz hel me out its urgent... he or sh will be rewarded...Hi,
Please verify these internal tables in the program.
DATA: BEGIN OF MAT_SUM OCCURS 100,
DMBTR(09) type p decimals 3,
DATA: BEGIN OF MAT_SUM_BUK OCCURS 100,
DMBTR(09) type p decimals 3,
DATA: BEGIN OF MAT_WEG OCCURS 100,
DMBTR(09) type p decimals 3,
DATA: BEGIN OF MAT_WEG_BUK OCCURS 100,
DMBTR(09) type p decimals 3,
types : begin of stype_bsim_lean,
dmbtr like bsim-dmbtr,
TYPES : BEGIN OF STYPE_MSEG_LEAN,
DMBTR LIKE MSEG-DMBTR,
DATA: BEGIN OF IMSWEG OCCURS 1000,
DMBTR LIKE MSEG-DMBTR,
I think these are the tables used to sum up the dmbtr.
I think dmbtr is taken from bsim and mseg.Dmbtr id taken from bsim because of the adjustments in finance module..
<b>Reward points if helpful,</b>
Regards,
jinesh. -
Regarding bdc upload for purchase order
hi friends,
here i got a problem in purchase order upload.the format in excel sheet data is in this format mentioned bellow
lifnr ekorg ekgrp werks lgort ematn menge netpr
142 1000 1000 1000 1000 <b>100-100 10 150
100-100 15 100
100-100 10 140
100-100 12 56
100-100 8 40</b>
here to identify items which r in bold and to write code for this is my problem. if the iteams r separated with ' , ' i can use split at , and between loop and end loop i executed the code earlier. but now my flat file containing 1000+ records and to convert that in my mode of program is a problem. so can any one suggest me how to proceed and code the above mentioned flat file structure to be uploaded in one record.
<b>this program is very urgent.............so take it as a request and help me in futher proceddings.......</b>
thaning you all........
i wait for replay...............Hi,
I hope earlier you are comma seperated file, and you are easily spliting the values using SPLIT command.
Now you are using flat file (fixed length) Using offset values you need map the fields manually in loop ... endloop control statement. (takes long time to find total lengh of record although you have to).
If you using TABDELIMITED, use the same SPLIT command , instead of 'comma' use 'CL_ABAP_CHAR_UTILITIES=>TAB_DELIMITED' attribute.
If you can maintain hierarchy. I hope it will be easy.
see below structure if want to do in hierarchy mode. Write logic determine the detail record and map it. It is easy rather than direct offset mapping.
<b>indicator ifnr ekorg ekgrp werks lgort
indicator ematn menge netpr
1 142 1000 1000 1000 1000
<i>2 100-100 10 150
2 100-100 15 100
2 100-100 10 140
2 100-100 12 56
2 100-100 8 40</i></b>
Please let me know what type of file i.e. reason i have given all three types.
If it helps.Plz reward points.
Regards
Bhupal Reddy. -
Urgent: Regarding Sending Email Notifications
Hi all,
We have scenario in which we have to search those users who has not accessed their accounts from last 2 years and then send them an email notification and after one month of notificatio we have to search those users who have been notified but yet not accessed their account and delete those accounts from LDAP.
For this we are using JNDI to search users. Now we are facing two problems:
1. The users email ids are in the form of List. When we refer this list in To address of Email Template then it gives us an exception: Saying that service not responding, No recepient addresses while in case of hard coded values it runs successfully. I think this is due to that it requires a semicolon(;) seperated list to send email notification. Thats why we thought that we have to use some looping to send the notifications to one user at a time. But if there is any other solution, please suggest.
2. For the scenario of the users to be deleted, how will we come to know whether after two years the users have been notified successfully??
This is really urgent. Please suggest any idea regarding the above issues.
Thanks & Regards
Gaurav JainThe way to do it would be to put your human task inside a while loop. This while loop would set a variable to the approver's userid and would continue till all the four approve it. In your human task you need just one approver and that would be the variable which the while loop sets.
If you do it this way, then you can use the OOTB notification tab in the .task and select the 'Assignee' as the email notification receiver and you won't have to worry about getting the email ids as well.
As for the current approach which you have, that is of using the sequential approvers in the human task, I haven't tried it, but just try setting the notification tab in the .task to 'Assignee' and event 'On Assignment'. That should do it as well.
-Bikash -
URGENT:- Regarding Purchase Requsition
Hi,
i am making report in which i want to display that these are the requsitions whic are approved by these people at these dates...
plzzz help me out as it is most urgent to me..
regards,
ric.shi,
i am already using EBAN but it let me using the field that this is created the requisition and this date is the final approval of it.
But i want to display that these are persons who had approved this requisitions at these dates..If there are 3 persons who had approved it then the display of it will be done..
if anybody provide me solution he or she will bve definately rewarded..
Maybe you are looking for
-
Hiding a column in the ALV in a webdynpro component(standrad one)
Hi, i have an requirement of hiding a column inside a ALV output of a web dynpro component which is a standrad one. please help me finding the way to do the same. thanks, selvakumar M.
-
How to go for multiple business group
Dear All. This is a very common and perhaps very old question now. But I just want to check what is the common process to go through to achieve multiple business groups. We are in oracle 12.1.XX and have single business group but now looking to imple
-
Low-quality copy (to the clipboard) in Keynote and Pages
Hello, I am running Keynote 6.5 under OS 10.10 on MacBook Air. Just after updating to Yosemite I have noticed that if I copy (command-c) something from Keynote (say, some text, or a graphic) and try to paste it outside (in Preview, or in Word) I get
-
After installing 7.6 itunes no longer reads my cd/dvd drives. Is there a compatability problem with Roxio 9
-
Stretch Pixel Aspect Ratio with AME CS5?
I was given some videos that were in the wrong pixel aspect ratio. The videos are 4:3 and they were supposed to be 16:9. Can I stretch the videos in AME? I tried to adjust the resolution, but when I hit the Output tab to preview the video, it gave me