|
|

楼主 |
发表于 2012/7/29 00:59:07
|
显示全部楼层
*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* PLEASE DELETE THE FIRST '*' FORM THE BEGINING OF THE FOLLOWING LINES *
* IF THE ACCOUNTING MODULE IS INSTALLED IN YOUR SYSTEM: *
* SELECT * FROM CSKS
* WHERE KOSTL EQ COBL-KOSTL
* AND KOKRS EQ COBL-KOKRS.
* IF CSKS-DATBI >= SY-DATUM AND
* CSKS-DATAB <= SY-DATUM.
*
* MOVE CSKS-ABTEI TO COBL-KOSTL.
*
* ENDIF.
* ENDSELECT.
DATA: I_HKONT LIKE BSEG-HKONT ,
I_ANS like SPOP-VARVALUE1 ,
ITAB_SKB1 like SKB1 occurs 0 with header line,
IWA-SKB1 LIKE SKB1,
I_ACCTSTR(200) .
*** This Subst. only takes effect on vendor line item when using MIRO
*** Delete the sy-uname = 'STONEF' condition after test .
Check sy-uname = 'STONEF' and SY-Tcode = 'MIRO' and BSEG-KOART = 'K' .
*I_ACCTSTR = '' .
*SELECT * INTO TABLE ITAB_SKB1 FROM SKB1
*WHERE BUKRS EQ BSEG-BUKRS
* AND MITKZ EQ 'K' .
*Loop at ITAB_SKB1 .
* CONCATENATE I_ACCTSTR ITAB_SKB1-SAKNR '|' into I_ACCTSTR .
*endloop.
*CALL FUNCTION 'POPUP_TO_GET_ONE_VALUE'
* EXPORTING
* TEXTLINE1 = 'Be careful:Recon.Account must be 10-dig.'
* TEXTLINE2 = 'All vendor recon. accounts list:'
* TEXTLINE3 = I_ACCTSTR
* TITEL = '---Change Vendor Recon. Account---'
* VALUELENGTH = 10
* IMPORTING
** ANSWER =
* VALUE1 = I_HKONT
* EXCEPTIONS
* TITEL_TOO_LONG = 1
* OTHERS = 2 .
*IF STRLEN( I_HKONT ) <> 10 .
* MESSAGE E001(00) WITH
* 'The length of the input acocunt should be 10 digital.'.
*ENDIF.
*SELECT SINGLE * INTO IWA-SKB1 FROM SKB1
*WHERE BUKRS EQ BSEG-BUKRS
* AND MITKZ EQ 'K'
* AND SAKNR EQ i_HKONT .
*IF SY-SUBRC EQ 0 .
* BSEG-HKONT = i_HKONT .
*ELSE.
* MESSAGE E001(00) WITH I_HKONT
* ' Not exist as a vendor Recon. acct in current comp. code'.
*ENDIF.
CALL FUNCTION 'POPUP_TO_GET_ONE_VALUE'
EXPORTING
TEXTLINE1 = 'Be careful:Change to SPL Rec. Account'
TEXTLINE2 = 'All Existed SPL Accounts List:'
TEXTLINE3 = I_ACCTSTR
TITEL = '---Change Vendor Recon. Account---'
VALUELENGTH = 1
IMPORTING
* ANSWER =
VALUE1 = I_ANS
EXCEPTIONS
TITEL_TOO_LONG = 1
OTHERS = 2 .
SELECT SINGLE SKONT into I_HKONT FROM T074
***Change CONO to your charts of accounts
where KTOPL = 'CONO'
and KOART = 'K'
and UMSKZ = I_ANS
and HKONT = BSEG-HKONT .
***If neccessary ,Check whether I_HKONT existed as recon. acct.
IF I_ANS NE SPACE . "如果为空就保留原来的科目.
IF SY-SUBRC EQ 0 .
BSEG-HKONT = i_HKONT . "Change to SPL Recon. account
BSEG-UMSKZ = I_ANS . "Change the SPL indictor
BSEG-BSCHL = '39' . "Change PK 31 to 39 .
ELSE.
MESSAGE E001(00) WITH 'SPL:' I_ANS
' Not maintained,Check with OBYR!' .
ENDIF.
endif.
ENDFORM. "U100
The source code is for reference only , however, it simply solve the MIRO issue .you can make some improvements accordingly based on the practical business requirements .
|
|