2013 Feb 22 12:38 PM
Hi all,
Below is my code for Interactive ALV report (sample program):
*-------Tables Used----------------------------------------------------
TABLES: SPFLI, SCARR. "SPFLI - Flight Schedule;; SCARR - Airline Detail
*-----------------------------------------------------------------------------
*-------------------Declaring Type Pool used & Structure.--------------------------------------
TYPE-POOLS: slis. .
TYPES: BEGIN OF ud_struct,
EKKO LIKE EKKO,
EKPO LIKE EKPO,
END OF ud_struct.
TYPES: BEGIN OF ebeln,
zebeln LIKE EKKO-EBELN,
END OF ebeln.
*----------------------------------------------------------------------------------------------
*------------------------------Internal Tables Declaration----------------------------------------
DATA: ITABCOMBI TYPE TABLE OF ud_struct,
GTOUTTAB TYPE SLIS_T_FIELDCAT_ALV,
WA_OUTTAB LIKE LINE OF GTOUTTAB,
T_EVENTCAT TYPE SLIS_T_EVENT,
W_EVENTCAT LIKE LINE OF T_EVENTCAT,
OUTTAB TYPE SLIS_T_FIELDCAT_ALV,
WA1_OUTTAB LIKE LINE OF GTOUTTAB,
Doc_Nm LIKE EKKO-EBELN, "Select Option Filed Decalarion
itab TYPE TABLE OF ebeln,
wa LIKE LINE OF itab,
CPROG TYPE SY-REPID.
TYPES: BEGIN OF itab_ekpo,
EBELN TYPE EBELN,
STATU TYPE STATU,
END OF itab_ekpo.
DATA: itabekpo TYPE TABLE OF itab_ekpo,
waekpo like LINE OF itabekpo.
DATA: gs_selfield TYPE slis_selfield. "Information cursor position ALV
SELECTION-SCREEN BEGIN OF BLOCK A1 WITH FRAME TITLE TEXT-000.
SELECT-OPTIONS: DOC_NUM for Doc_Nm.
SELECTION-SCREEN END OF BLOCK A1.
AT SELECTION-SCREEN.
SELECT EBELN FROM EKKO INTO TABLE itab WHERE EBELN IN DOC_NUM.
START-OF-SELECTION.
SELECT * FROM EKKO INNER JOIN EKPO ON EKKO~EBELN = EKPO~EBELN
INTO TABLE ITABCOMBI
FOR ALL ENTRIES IN ITAB
WHERE EKKO~EBELN = ITAB-ZEBELN.
WA_OUTTAB-tabname = 'ITABCOMBI'.
WA_OUTTAB-fieldname = 'EKKO-EBELN'.
WA_OUTTAB-SELTEXT_M = 'Purchasing Doc Num'.
WA_OUTTAB-COL_POS = 1.
WA_OUTTAB-OUTPUTLEN = 15.
WA_OUTTAB-HOTSPOT = 'X'.
APPEND WA_OUTTAB TO GTOUTTAB.
CLEAR WA_OUTTAB.
WA_OUTTAB-tabname = 'ITABCOMBI'.
WA_OUTTAB-fieldname = 'EKKO-BUKRS'.
WA_OUTTAB-SELTEXT_M = 'Company Code'.
WA_OUTTAB-COL_POS = 2.
WA_OUTTAB-OUTPUTLEN = 15.
APPEND WA_OUTTAB TO GTOUTTAB.
CLEAR WA_OUTTAB.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = 'SY-REPID'
I_CALLBACK_USER_COMMAND = 'PICKK'
IT_FIELDCAT = GTOUTTAB
TABLES
T_OUTTAB = ITABCOMBI
* 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.
FORM PICKK USING R_UCOMM TYPE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE r_ucomm.
*User clicks a transaction code and that tcode is called from ALV
WHEN '&IC1'. "Double Click / Hot Spot
gs_selfield = rs_selfield.
* WRITE: gs_selfield-fieldname.
IF gs_selfield-fieldname = 'EKKO-EBELN'.
SELECT EBELN STATU
FROM EKPO
INTO CORRESPONDING FIELDS OF TABLE itabekpo
WHERE EBELN = gs_selfield-value.
PERFORM second_display.
ELSE.
MESSAGE w208(001) WITH 'Select by Order only!'.
ENDIF.
ENDCASE.
ENDFORM.
FORM second_display.
WA1_OUTTAB-tabname = 'ITABCOMBI'.
WA1_OUTTAB-fieldname = 'EKKO-EBELN'.
WA1_OUTTAB-SELTEXT_M = 'Purchasing Doc Num'.
WA1_OUTTAB-COL_POS = 1.
WA1_OUTTAB-OUTPUTLEN = 15.
WA1_OUTTAB-HOTSPOT = 'X'.
APPEND WA1_OUTTAB TO OUTTAB.
CLEAR WA1_OUTTAB.
WA1_OUTTAB-tabname = 'ITABCOMBI'.
WA1_OUTTAB-fieldname = 'EKKO-BUKRS'.
WA1_OUTTAB-SELTEXT_M = 'Company Code'.
WA1_OUTTAB-COL_POS = 2.
WA1_OUTTAB-OUTPUTLEN = 15.
APPEND WA1_OUTTAB TO OUTTAB.
CLEAR WA1_OUTTAB.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = CPROG
IT_FIELDCAT = OUTTAB
IT_EVENTS = T_EVENTCAT
TABLES
T_OUTTAB = ITABEKPO
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 T_EVENTCAT.
W_EVENTCAT-NAME = 'TOP_OF_PAGE'.
W_EVENTCAT-FORM = 'TOP'.
APPEND W_EVENTCAT TO T_EVENTCAT.
ENDFORM.
FORM TOP.
READ TABLE itabekpo INTO waekpo INDEX 1.
WRITE😕 'Purchase Document Number'(001),30 waekpo-EBELN,
/ 'RFQ Statement'(002), 30 waekpo-STATU.
ENDFORM.
Im getting my 1st list, but im not able to link my 1st list field with 2nd list. (nothing happens while cliking the hotspot field - ebeln on my first screen)..
2013 Feb 22 1:20 PM
Check this code.. almost similar as your one.
***********************************************************************
* TYPE-POOLS DECLARATION
***********************************************************************
TYPE-POOLS:
SLIS.
***********************************************************************
* DATA DECLARATIONS
***********************************************************************
DATA:
W_EBELN TYPE EKKO-EBELN,
W_PROG TYPE SY-REPID,
T_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
FS_FIELDCAT LIKE LINE OF T_FIELDCAT,
T_EVENTCAT TYPE SLIS_T_EVENT,
W_EVENTCAT LIKE LINE OF T_EVENTCAT.
***********************************************************************
* SELECT-OPTIONS DECLARATION
***********************************************************************
SELECT-OPTIONS:
S_EBELN FOR W_EBELN.
***********************************************************************
* INTERNAL TABLE AND FIELD-STRING DECLARATIONS
***********************************************************************
DATA:
T_EKKO LIKE
STANDARD TABLE
OF EKKO,
FS_EKKO LIKE LINE OF T_EKKO.
DATA:
T_EKPO LIKE
STANDARD TABLE
OF EKPO,
FS_EKPO LIKE LINE OF T_EKPO.
***********************************************************************
* START-OF-SELECTION
***********************************************************************
START-OF-SELECTION.
SELECT *
FROM EKKO
INTO TABLE T_EKKO
WHERE EBELN IN S_EBELN.
W_PROG = SY-REPID.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = W_PROG
I_CALLBACK_USER_COMMAND = 'PICK'
I_STRUCTURE_NAME = 'EKKO'
TABLES
T_OUTTAB = T_EKKO
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.
*&--------------------------------------------------------------------*
*& Form pick
*&--------------------------------------------------------------------*
* -->UCOMM text
* -->SELFIELD text
*---------------------------------------------------------------------*
FORM PICK USING COMMAND LIKE SY-UCOMM
SELFIELD TYPE SLIS_SELFIELD.
READ TABLE T_EKKO INTO FS_EKKO INDEX SELFIELD-TABINDEX.
CASE COMMAND.
WHEN '&IC1'.
SELECT *
FROM EKPO
INTO TABLE T_EKPO
WHERE EBELN EQ FS_EKKO-EBELN.
W_PROG = SY-REPID.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_STRUCTURE_NAME = 'EKPO'
CHANGING
CT_FIELDCAT = T_FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 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.
DELETE T_FIELDCAT WHERE FIELDNAME EQ 'EBELN'.
DELETE T_FIELDCAT WHERE FIELDNAME EQ 'BUKRS'.
DELETE T_FIELDCAT WHERE FIELDNAME EQ 'LGORT'.
DELETE T_FIELDCAT WHERE FIELDNAME EQ 'WERKS'.
Perform t_eventcat.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = W_PROG
IT_FIELDCAT = T_FIELDCAT
IT_EVENTS = T_EVENTCAT
TABLES
T_OUTTAB = T_EKPO
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.
ENDCASE. " CASE COMMAND
ENDFORM. " FORM PICK
FORM T_EVENTCAT.
W_EVENTCAT-NAME = 'TOP_OF_PAGE'.
W_EVENTCAT-FORM = 'TOP'.
APPEND W_EVENTCAT TO T_EVENTCAT.
ENDFORM.
FORM TOP.
READ TABLE T_EKPO INTO FS_EKPO INDEX 1.
WRITE:/ 'Purchase Document Number'(001),30 FS_EKPO-EBELN,
/ 'Company Code'(002), 30 FS_EKPO-BUKRS,
/ 'Plant'(003), 30 FS_EKPO-WERKS,
/ 'Storage Location'(004),30 FS_EKPO-LGORT.
ENDFORM.
2013 Feb 23 5:31 AM
Hi Soumyasanto,
Thankyou for reviewing the code and coming back with n executable code...
Apparently my doubt is, while calling function ''REUSE_ALV_LIST_DISPLAY'', you exported structure name and in my original program i exported the field catalog which i had filled. can we not export a field catalog? Because in your program i have all the field displayed and in mine im trying to display only 2 fields.. How will i achieve that?
2013 Feb 23 10:23 AM
Hi Khushboo,
it's because of the use of FM 'REUSE_ALV_FIELDCATALOG_MERGE' that the structure is passed which is present in the dictionary. You can pass any Z table also. That's exactly the functionality of this FM which helps you to prepare the fieldcatalog without putting much effort.
Now, u need to pass only 2 fields in the fieldcatalog. Hence, its not a good idea to make a Z table with 2 fields, So u can make the fieldcatalog manually and pass it in FM
''REUSE_ALV_LIST_DISPLAY''
Regarding user click linking, plz debug and check if " gs_selfield " is not initial.
Thanks
Vivek
2013 Feb 23 11:02 AM
Hai,
Try this code you might get some idea,
TYPE-POOLS: SLIS.
*type declaration for values from ekko
TYPES: BEGIN OF I_EKKO,
EBELN LIKE EKKO-EBELN,
AEDAT LIKE EKKO-AEDAT,
BUKRS LIKE EKKO-BUKRS,
BSART LIKE EKKO-BSART,
LIFNR LIKE EKKO-LIFNR,
END OF I_EKKO.
DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,
WA_EKKO TYPE I_EKKO.
*type declaration for values from ekpo
TYPES: BEGIN OF I_EKPO,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
MEINS LIKE EKPO-MEINS,
NETPR LIKE EKPO-NETPR,
END OF I_EKPO.
DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,
WA_EKPO TYPE I_EKPO .
*variable for Report ID
DATA: V_REPID LIKE SY-REPID .
*declaration for fieldcatalog
DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.
* declaration for events table where user comand or set PF status will
* be defined
DATA: V_EVENTS TYPE SLIS_T_EVENT,
WA_EVENT TYPE SLIS_ALV_EVENT.
* declartion for layout
DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.
* declaration for variant(type of display we want)
DATA: I_VARIANT TYPE DISVARIANT,
I_VARIANT1 TYPE DISVARIANT,
I_SAVE(1) TYPE C.
*PARAMETERS : p_var TYPE disvariant-variant.
*Title displayed when the alv list is displayed
DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.
DATA: I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.
INITIALIZATION.
V_REPID = SY-REPID.
PERFORM BUILD_FIELDCATLOG.
PERFORM EVENT_CALL.
PERFORM POPULATE_EVENT.
START-OF-SELECTION.
PERFORM DATA_RETRIEVAL.
PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.
PERFORM DISPLAY_ALV_REPORT.
*&--------------------------------------------------------------------*
*& Form BUILD_FIELDCATLOG
*&--------------------------------------------------------------------*
* Fieldcatalog has all the field details from ekko
*---------------------------------------------------------------------*
FORM BUILD_FIELDCATLOG.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'EBELN'.
WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'AEDAT'.
WA_FIELDCAT-SELTEXT_M = 'DATE.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'BUKRS'.
WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'BUKRS'.
WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'LIFNR'.
WA_FIELDCAT-NO_OUT = 'X'.
WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. "BUILD_FIELDCATLOG
*&--------------------------------------------------------------------*
*& Form EVENT_CALL
*&--------------------------------------------------------------------*
* we get all events - TOP OF PAGE or USER COMMAND in table v_events
*---------------------------------------------------------------------*
FORM EVENT_CALL.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENTS
* EXCEPTIONS
* LIST_TYPE_WRONG = 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. "EVENT_CALL
*&--------------------------------------------------------------------*
*& Form POPULATE_EVENT
*&--------------------------------------------------------------------*
* Events populated for TOP OF PAGE & USER COMAND
*---------------------------------------------------------------------*
FORM POPULATE_EVENT.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-FORM.
ENDIF.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'USER_COMMAND'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-NAME.
ENDIF.
ENDFORM. "POPULATE_EVENT
*&--------------------------------------------------------------------*
*& Form data_retrieval
*&--------------------------------------------------------------------*
* retreiving values from the database table ekko
*---------------------------------------------------------------------*
FORM DATA_RETRIEVAL.
SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.
ENDFORM. "data_retrieval
*&--------------------------------------------------------------------*
*& Form bUild_listheader
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->I_LISTHEADEtext
*---------------------------------------------------------------------*
FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA HLINE TYPE SLIS_LISTHEADER.
HLINE-INFO = 'this is my first alv pgm'.
HLINE-TYP = 'H'.
ENDFORM. "build_listheader
*&--------------------------------------------------------------------*
*& Form display_alv_report
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM DISPLAY_ALV_REPORT.
V_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_GRID_TITLE = I_TITLE_EKKO
* I_GRID_SETTINGS =
* IS_LAYOUT = ALV_LAYOUT
IT_FIELDCAT = I_FIELDCAT[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* i_default = 'ZLAY1'
I_SAVE = 'A'
* is_variant = i_variant
IT_EVENTS = V_EVENTS
TABLES
T_OUTTAB = IT_EKKO
* 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 TOP_OF_PAGE
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEADER
* i_logo =
* I_END_OF_LIST_GRID =
.
ENDFORM. "TOP_OF_PAGE
*&--------------------------------------------------------------------*
*& Form USER_COMMAND
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->R_UCOMM text
* -->, text
* -->RS_SLEFIELDtext
*---------------------------------------------------------------------*
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.
PERFORM BUILD_FIELDCATLOG_EKPO.
PERFORM EVENT_CALL_EKPO.
PERFORM POPULATE_EVENT_EKPO.
PERFORM DATA_RETRIEVAL_EKPO.
PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.
PERFORM DISPLAY_ALV_EKPO.
ENDCASE.
ENDFORM. "user_command
*&--------------------------------------------------------------------*
*& Form BUILD_FIELDCATLOG_EKPO
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM BUILD_FIELDCATLOG_EKPO.
WA_FIELDCAT-TABNAME = 'IT_EKPO'.
WA_FIELDCAT-FIELDNAME = 'EBELN'.
WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKPO'.
WA_FIELDCAT-FIELDNAME = 'EBELP'.
WA_FIELDCAT-SELTEXT_M = 'LINE NO'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MENGE'.
WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MEINS'.
WA_FIELDCAT-SELTEXT_M = 'UOM'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'NETPR'.
WA_FIELDCAT-SELTEXT_M = 'PRICE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. "BUILD_FIELDCATLOG_EKPO
*&--------------------------------------------------------------------*
*& Form event_call_ekpo
*&--------------------------------------------------------------------*
* we get all events - TOP OF PAGE or USER COMMAND in table v_events
*---------------------------------------------------------------------*
FORM EVENT_CALL_EKPO.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENTS
* EXCEPTIONS
* LIST_TYPE_WRONG = 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. "event_call_ekpo
*&--------------------------------------------------------------------*
*& Form POPULATE_EVENT
*&--------------------------------------------------------------------*
* Events populated for TOP OF PAGE & USER COMAND
*---------------------------------------------------------------------*
FORM POPULATE_EVENT_EKPO.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-FORM.
ENDIF.
ENDFORM. "POPULATE_EVENT
*&--------------------------------------------------------------------*
*& Form TOP_OF_PAGE
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM F_TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEADER
* i_logo =
* I_END_OF_LIST_GRID =
.
ENDFORM. "TOP_OF_PAGE
*&--------------------------------------------------------------------*
*& Form USER_COMMAND
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->R_UCOMM text
* -->, text
* -->RS_SLEFIELDtext
*---------------------------------------------------------------------*
*retreiving values from the database table ekko
FORM DATA_RETRIEVAL_EKPO.
SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.
ENDFORM.
FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA: HLINE1 TYPE SLIS_LISTHEADER.
HLINE1-TYP = 'H'.
HLINE1-INFO = 'CHECKING PGM'.
ENDFORM.
FORM DISPLAY_ALV_EKPO.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = V_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
I_GRID_TITLE = I_TITLE_EKPO
* I_GRID_SETTINGS =
* IS_LAYOUT =
IT_FIELDCAT = I_FIELDCAT[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT =
I_SAVE = 'A'
* IS_VARIANT =
IT_EVENTS = V_EVENTS
TABLES
T_OUTTAB = IT_EKPO
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.
Thanks & Regards,
Ramu Velaga.
2013 Feb 25 6:52 AM
Hi Friends,
1st and foremost - thankyou for all your replies.
Now,
I have jotted down a simple most INTERACTIVE ALV program (with minimum events to create a simple intercative report), and its working fine except for my 1st list display, i have to create a layout for my field cataliog manually ( REUSE_ALV_FIELDCATALOG_MERGE is not working - i have created an internal table to be passed a sa stucture whose framework has to be copied.. refer line 21 - type: FIRST_EKKO_LIST)...
I have mentioned my doubt in program itself at line 64, 65 ( CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE') - which i have commented..
Anyways, this is what i call the most simple interactive report ( with no extra events jazz for us newbees 😞
*&---------------------------------------------------------------------*
*& Report ZSCENARIO_DUPLICATE *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT ZSCENARIO_DUPLICATE NO STANDARD PAGE HEADING.
TYPE-POOLS: SLIS.
*-----Structure Definition for 1st list ( which will hold fields Ebeln and bukrs from table ekko )-------
TYPES: BEGIN OF FIRST_EKKO_LIST,
EBELN LIKE EKKO-EBELN,
BUKRS LIKE EKKO-BUKRS,
END OF FIRST_EKKO_LIST.
*---------------------Internal Table and Work Area creation for structure 'FIRST_EKKO_LIST'-------------
DATA: ITAB_FIRST_EKKO_LIST TYPE STANDARD TABLE OF FIRST_EKKO_LIST,
WA_FIRST_EKKO_LIST TYPE FIRST_EKKO_LIST.
* ----------------------Field Catalog Declaration for 1st list of table ITAB_FIRST_EKKO_LIST-----------
DATA: FC_FIRST_EKKO_LIST TYPE SLIS_T_FIELDCAT_ALV,
WAFC_FIRST_EKKO_LIST LIKE LINE OF FC_FIRST_EKKO_LIST.
*--------------------------Internal Table and workarea for 2nd list - (All fields of EKPO)------------------
DATA: ITAB_EKPO LIKE TABLE OF EKPO,
WA_EKPO LIKE LINE OF ITAB_EKPO.
* ----------------------Field Catalog Declaration for 2ND list of table ITAB_EKPO-----------
DATA: FC_EKPO TYPE SLIS_T_FIELDCAT_ALV,
WAFC_EKPO LIKE LINE OF FC_EKPO.
*------------------------------------------------------------------------------------------
DATA: f_ebeln TYPE EKKO-EBELN, "Used in Select Options
F_PROG TYPE SY-REPID. "Used while ceating field catalog
**---------------Mandatory events for Interactive ALV Reports.--------------------------
*
*DATA: T_EVENTCAT TYPE SLIS_T_EVENT,
*W_EVENTCAT LIKE LINE OF T_EVENTCAT.
*--------------------Accepting User Range for EKKO-BELN into DOC_NUM-------------------------------------
SELECT-OPTIONS: DOC_NUM FOR f_ebeln.
*--------Filtering fields EBELN and BUKRS based on innerjoin of field ebeln from
*table EKKO and EKPO and within the ebeln range specified in DOC_NUM------------------------
START-OF-SELECTION.
SELECT EKKO~EBELN EKKO~BUKRS
FROM EKKO INNER JOIN EKPO ON EKKO~EBELN = EKPO~EBELN
INTO CORRESPONDING FIELDS OF TABLE ITAB_FIRST_EKKO_LIST
WHERE EKKO~EBELN IN DOC_NUM.
*--------------------Merging a Field Catalog for 1st klist dispaly using table contents
*and table structure of ITAB_FIRST_EKKO_LIST ---------------------------------------------------------
F_PROG = SY-REPID.
*---------------------Doubt - Why merge is not working for the defined structure at line 14-----------------------------------
* CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
* EXPORTING
* I_PROGRAM_NAME = F_PROG
* I_INTERNAL_TABNAME = 'ITAB_FIRST_EKKO_LIST'
* I_STRUCTURE_NAME = 'FIRST_EKKO_LIST'
** I_CLIENT_NEVER_DISPLAY = 'X'
** I_INCLNAME =
** I_BYPASSING_BUFFER =
** I_BUFFER_ACTIVE =
* CHANGING
* CT_FIELDCAT = FC_FIRST_EKKO_LIST
* EXCEPTIONS
* INCONSISTENT_INTERFACE = 1
* PROGRAM_ERROR = 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.
* IF FC_FIRST_EKKO_LIST IS INITIAL.
* WRITE: 'FIELD-CATALOG NOT FORMED.'.
* ENDIF.
*-------------------Doubt Ends-----------------------------------------------------------------
*------------Manually Creating Field Structure for my 1st list dispaly where i intend to display
*fields Purchase Doc (ebeln) Number And Company Code (bukrs) only.---------------------------------
WAFC_FIRST_EKKO_LIST-tabname = 'ITAB_FIRST_EKKO_LIST'.
WAFC_FIRST_EKKO_LIST-fieldname = 'EBELN'.
WAFC_FIRST_EKKO_LIST-SELTEXT_M = 'Purchasing Doc Num'.
WAFC_FIRST_EKKO_LIST-COL_POS = 1.
WAFC_FIRST_EKKO_LIST-OUTPUTLEN = 15.
WAFC_FIRST_EKKO_LIST-HOTSPOT = 'X'.
APPEND WAFC_FIRST_EKKO_LIST TO FC_FIRST_EKKO_LIST.
WAFC_FIRST_EKKO_LIST-tabname = 'ITAB_FIRST_EKKO_LIST'.
WAFC_FIRST_EKKO_LIST-fieldname = 'BUKRS '.
WAFC_FIRST_EKKO_LIST-SELTEXT_M = 'Company Code'.
WAFC_FIRST_EKKO_LIST-COL_POS = 2.
WAFC_FIRST_EKKO_LIST-OUTPUTLEN = 15.
APPEND WAFC_FIRST_EKKO_LIST TO FC_FIRST_EKKO_LIST.
*--------------------Displaying 1st list-------------------------------------
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = F_PROG
I_CALLBACK_USER_COMMAND = 'PICK' "At double click (user-command) perform 'PICK' function.
* I_STRUCTURE_NAME =
IT_FIELDCAT = FC_FIRST_EKKO_LIST "Field catalog prepared
* IT_EVENTS =
* IT_EVENT_EXIT =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITAB_FIRST_EKKO_LIST "Contains Content displayed in field Catalog
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.
*---------------------Defining Form PICK to perform instruction at user command double click'-----
FORM PICK USING COMMAND LIKE SY-UCOMM
SELFIELD TYPE SLIS_SELFIELD. " Function 'PICK; with parameters of type 'User Command' and Capturing details of line on which user command is performed using 'SLIS_SELFIELD' type.
READ TABLE ITAB_FIRST_EKKO_LIST INTO WA_FIRST_EKKO_LIST INDEX SELFIELD-TABINDEX. "ITAB_FIRST_EKKO_LIST holds 1st list data and WA_FIRST_EKKO_LIST is its workarea..Capturing double clicked line from ITAB_FIRST_EKKO_LIST into WA_FIRST_EKKO_LIST.
CASE COMMAND.
WHEN '&IC1'. "Double Click
SELECT * "Filtering data based on requirement - here all the fields from ekpo where ebeln = captured lines ebeln.
FROM EKPO
INTO TABLE ITAB_EKPO "Filtered data in internal table ITAB_EKPO
WHERE EBELN EQ WA_FIRST_EKKO_LIST-EBELN.
F_PROG = SY-REPID. "Assigning Program name to F_PROG
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_STRUCTURE_NAME = 'EKPO' "Since we want all the fields from ekpo, we directly pass table ekpo
CHANGING
CT_FIELDCAT = FC_EKPO "Field catalog prepared for list 2. (decalsred at line34)
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 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.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' "Displaying 2nd list
EXPORTING
I_CALLBACK_PROGRAM = F_PROG
IT_FIELDCAT = FC_EKPO
*IT_EVENTS = T_EVENTCAT
TABLES
T_OUTTAB = ITAB_EKPO
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.
ENDCASE. " CASE COMMAND
ENDFORM. " FORM PICK
*FORM T_EVENTCAT. "Event mandatory for intercative ALV report.
*W_EVENTCAT-NAME = 'TOP_OF_PAGE'.
*W_EVENTCAT-FORM = 'TOP'.
*APPEND W_EVENTCAT TO T_EVENTCAT.
*ENDFORM.
*
*FORM TOP.
*READ TABLE T_EKPO INTO FS_EKPO INDEX 1.
*WRITE:/ 'Purchase Document Number'(001),30 FS_EKPO-EBELN,
*/ 'Company Code'(002), 30 FS_EKPO-BUKRS,
*/ 'Plant'(003), 30 FS_EKPO-WERKS,
*/ 'Storage Location'(004),30 FS_EKPO-LGORT.
*ENDFORM.
Thankyou, and ill be thankful if anyone can tell me why REUSE_ALV_FIELDCATALOG_MERGE is not working for my 1st list dispaly ( and as a result a result i had to manually create the catalog ) .. But the requireemnt is only those 2 columns (fields) for 1st listdipaly, i dont want the full ekko table.
Thankyou tons,
Khushboo Singh
2013 Feb 25 7:10 AM
Hi Khushboo,
Try using the parameters given below for FM REUSE_ALV_FIELDCATALOG_MERGE,
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = F_PROG
I_INTERNAL_TABNAME = 'ITAB_FIRST_EKKO_LIST'
I_INCLNAME = F_PROG
CHANGING
CT_FIELDCAT = FC_FIRST_EKKO_LIST
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3.
Thanks & Regards,
Tushar
2013 Feb 25 7:25 AM
Hey Tushar,
Thankyou for coming back with a reply
I tried it without passing include program (since i did not create any include for this), and no list is getting generated after giving range for
SELECT-OPTIONS: 'DOC_NUM' . after the execute click, nothing happens.. and just to test, i added a write statement after calling this FM, as this:
IF FC_FIRST_EKKO_LIST IS INITIAL.
WRITE: 'No field catalog created!'.
ENDIF.
And the o/p is : No field catalog created!
Thankyou
2013 Feb 26 8:45 AM
Hi Khushboo,
Try passing the report name(sy-repid)(in your case it will be F_PROG) to both the parameters given below(even if you have not created a new include),
1. I_PROGRAM_NAME
2. I_INCLNAME
Thanks & Regards,
Tushar
2013 Feb 26 9:48 AM
ok.. ill try that currently stuck with something different. how do i derive CST tax value, base price of a material in PO... in short how do i relate KOMP, KOMV and PO?? i cant find any relations.. please help.
2013 Feb 26 10:05 AM
Hi khushboo,
Use FM CALCULATE_TAX_ITEM.
Hope this helps you.
Thanks & Regards
Tushar.
2013 Feb 26 10:09 AM
Hi Khushboo,
The relationship is as below if you see from the tables as is -
EKKO-KNUMV ( Condition Record Number of PO) = KOMV-KNUMV , you get KOMV-KPOSN here.
KOMV-KPOSN = KOMP-KPOSN
EKKO - Purchase Order Table
KOMV - Pricing Communications-Condition Record
KOMP - Pricing Communication Item
But what exactly is your requirment as KOMV and KOMP are structures and they won't store any data like database tables.
2013 Feb 26 10:24 AM
heyi,
i have a report in which material number and some other PO level details are generated (item wise)..now, i need to find the base price of this material and CST and display in report.. How will i derive these values for those materials for that specific PO?
2013 Feb 26 10:25 AM
and i wish i can make that smily a little more confuse looking, coz thats how confused im , so ill multiply the number of smileys plz get back as soon as possible,, please.
2013 Feb 26 10:31 AM
meanwhile im trying what our expert friend Tushar has suggested.
2013 Feb 26 10:55 AM
Hi Khushboo,
Try using BAPIs such as BAPI_PO_GETDETAIL or BAPI_PO_GETDETAIL1 whichever suits your requirement. Enter PO number and pass X to all the tables that you would require. Hope this helps!
2013 Feb 26 11:09 AM
Hi kushboo,
look at below code .......let me know if u hav any doubts.........
*&---------------------------------------------------------------------*
*& Report ZP_ALVINT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZP_ALVINT.
TABLES: LFA1, EKKO, EKPO.
SELECT-OPTIONS: S_LIFNR FOR LFA1-LIFNR.
DATA: BEGIN OF ITAB OCCURS 0,
LIFNR TYPE KNA1-LIFNR,
NAME1 TYPE KNA1-NAME1,
END OF ITAB.
DATA: BEGIN OF JTAB OCCURS 0,
EBELN TYPE EKKO-EBELN,
AEDAT TYPE EKKO-AEDAT,
END OF JTAB.
DATA: BEGIN OF KTAB OCCURS 0,
EBELP TYPE EKPO-EBELP,
MATNR TYPE EKPO-MATNR,
END OF KTAB.
TYPE-POOLS: SLIS.
DATA: REPID LIKE SY-REPID,
F_LFA11 TYPE SLIS_T_FIELDCAT_ALV,
F_LFA1 TYPE SLIS_FIELDCAT_ALV,
F_EKKO1 TYPE SLIS_T_FIELDCAT_ALV,
F_EKKO TYPE SLIS_FIELDCAT_ALV,
F_EKPO1 TYPE SLIS_T_FIELDCAT_ALV,
F_EKPO TYPE SLIS_FIELDCAT_ALV,
I_EVENTS TYPE SLIS_T_EVENT,
S_EVENTS TYPE SLIS_ALV_EVENT.
START-OF-SELECTION.
PERFORM COL_HEAD.
REPID = SY-REPID.
SELECT LIFNR NAME1
FROM LFA1
INTO TABLE ITAB
WHERE LIFNR IN S_LIFNR.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = REPID
IT_FIELDCAT = F_LFA11
IT_EVENTS = I_EVENTS
TABLES
T_OUTTAB = ITAB
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.
*&---------------------------------------------------------------------*
*& Form COL_HEAD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM COL_HEAD .
F_LFA1-FIELDNAME = 'LIFNR'.
F_LFA1-REF_TABNAME = 'LFA1'.
F_LFA1-FIELDNAME = 'LIFNR'.
APPEND F_LFA1 TO F_LFA11.
CLEAR F_LFA1.
F_LFA1-FIELDNAME = 'NAME1'.
F_LFA1-REF_TABNAME = 'LFA1'.
F_LFA1-FIELDNAME = 'NAME1'.
APPEND F_LFA1 TO F_LFA11.
CLEAR F_LFA1.
*-------------------
F_EKKO-FIELDNAME = 'EBELN'.
F_EKKO-REF_TABNAME = 'EKKO'.
F_EKKO-FIELDNAME = 'EBELN'.
APPEND F_EKKO TO F_EKKO1.
CLEAR F_LFA1.
F_EKKO-FIELDNAME = 'AEDAT'.
F_EKKO-REF_TABNAME = 'EKKO'.
F_EKKO-FIELDNAME = 'AEDAT'.
APPEND F_EKKO TO F_EKKO1.
CLEAR F_EKKO.
*---------------------------------
F_EKPO-FIELDNAME = 'EBELP'.
F_EKPO-REF_TABNAME = 'EKPO'.
F_EKPO-FIELDNAME = 'EBELP'.
APPEND F_EKPO TO F_EKPO1.
CLEAR F_EKPO.
F_EKPO-FIELDNAME = 'MATNR'.
F_EKPO-REF_TABNAME = 'EKPO'.
F_EKPO-FIELDNAME = 'MATNR'.
APPEND F_EKPO TO F_EKPO1.
CLEAR F_EKPO.
S_EVENTS-NAME = 'USER_COMMAND'.
S_EVENTS-FORM = 'VAL'.
APPEND S_EVENTS TO I_EVENTS.
ENDFORM. " COL_HEAD
*&---------------------------------------------------------------------*
*& Form VAL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->USER_COMMAND text
* -->SEL text
*----------------------------------------------------------------------*
FORM VAL USING USER_COMMAND LIKE SY-UCOMM
SEL TYPE SLIS_SELFIELD.
DATA: V_LIFNR(10) TYPE N,
V_EBELN(10) TYPE N,
V_MATNR(10) TYPE C.
IF SEL-FIELDNAME = 'LIFNR'.
V_LIFNR = SEL-VALUE.
SELECT EBELN AEDAT
FROM EKKO
INTO TABLE JTAB
WHERE LIFNR = V_LIFNR.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = REPID
IT_FIELDCAT = F_EKKO1
IT_EVENTS = I_EVENTS
TABLES
T_OUTTAB = JTAB
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.
ENDIF.
IF SEL-FIELDNAME = 'EBELN'.
V_EBELN = SEL-VALUE.
SELECT EBELP MATNR
FROM EKPO
INTO TABLE KTAB
WHERE EBELN = V_EBELN.
CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
EXPORTING
I_TITLE = 'ITEM DETAILS'
I_SCREEN_START_COLUMN = 10
I_SCREEN_START_LINE = 10
I_SCREEN_END_COLUMN = 30
I_SCREEN_END_LINE = 30
I_TABNAME = 'EKPO'
IT_FIELDCAT = F_EKPO1
I_CALLBACK_PROGRAM = REPID
IMPORTING
ES_SELFIELD = SEL
TABLES
T_OUTTAB = KTAB
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.
ENDIF.
IF SEL-FIELDNAME = 'MATNR'.
V_MATNR = SEL-VALUE.
SET PARAMETER ID 'MAT' FIELD V_MATNR.
CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
ENDIF.
ENDFORM. "VAL
---
Regards
Jack
2013 Feb 27 9:49 AM
Hi Jack,
im trying to print basic amount and CST amount of a material from a report.
elow is my piece of code relevant for this operation...
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN : SKIP 1.
SELECT-OPTIONS : S_BUDAT FOR RBKP-BUDAT OBLIGATORY.
SELECTION-SCREEN : SKIP 1.
SELECTION-SCREEN : END OF BLOCK B1.
TYPES : BEGIN OF TS_RSEG,
KSCHL TYPE KONV-KSCHL,
KWERT TYPE KONV-KWERT,
KWERT_BASIC TYPE KONV-KWERT,
J_1ICSTNO TYPE J_1IMOVEND-J_1ICSTNO,
AEDAT TYPE EKKO-AEDAT,
BELNR TYPE RSEG-BELNR, "Document Number
GJAHR TYPE RSEG-GJAHR, "Fiscal Year
BUZEI TYPE RSEG-BUZEI, "Item
EBELN TYPE RSEG-EBELN, "Purchasing Doc.
EBELP TYPE RSEG-EBELP, "Item
MATNR TYPE RSEG-MATNR, "Material
LFBNR TYPE RSEG-LFBNR, "Reference Doc.
BUKRS TYPE RSEG-BUKRS, "Company Code
WERKS TYPE RSEG-WERKS, "Plant
WRBTR TYPE RSEG-WRBTR, "Amount
MENGE TYPE RSEG-MENGE, "Quantity
LFPOS TYPE RSEG-LFPOS, "Ref. Doc. Item
LIFNR TYPE RSEG-LIFNR, "Vendor
STBLG TYPE RBKP-STBLG, "Reversed by
BLDAT TYPE RBKP-BLDAT, "Document Date
MWSKZ TYPE RSEG-MWSKZ, " ADDED FOR TEST
KNUMV TYPE EKKO-KNUMV,
END OF TS_RSEG.
TYPES:BEGIN OF TS_RBKP,
BELNR TYPE RBKP-BELNR, "Inv. Doc. No.
GJAHR TYPE RBKP-GJAHR, "Fiscal Year
BLDAT TYPE RBKP-BLDAT, "Document Date
BUDAT TYPE RBKP-BUDAT, "Posting Date
STBLG TYPE RBKP-STBLG, "Document Date
BUZEI TYPE RSEG-BUZEI,
END OF TS_RBKP.
DATA : IT_RSEG TYPE STANDARD TABLE OF TS_RSEG.
DATA : IT_RBKP TYPE STANDARD TABLE OF TS_RBKP.
TYPES: BEGIN OF IIT_SEG,
EBELN TYPE EKKO-EBELN,
KNUMV TYPE EKKO-KNUMV,
END OF IIT_SEG.
DATA: IT_SEG TYPE STANDARD TABLE OF IIT_SEG,
WA_SEG TYPE IIT_SEG.
TYPES: BEGIN OF IIT_SEG1,
KWERT1 TYPE KONV-KWERT,
END OF IIT_SEG1.
DATA: IIT_SEG2 TYPE STANDARD TABLE OF IIT_SEG1,
WA_IIT_SEG2 TYPE IIT_SEG1.
TYPES: BEGIN OF IIT_SEG2,
KWERT TYPE KONV-KWERT,
END OF IIT_SEG2.
DATA: IIT_SEG3 TYPE STANDARD TABLE OF IIT_SEG2,
WA_IIT_SEG3 TYPE IIT_SEG2.
SELECT
RBKP~BELNR
RBKP~GJAHR
RBKP~BLDAT
RBKP~BUDAT
RBKP~STBLG
FROM RBKP INTO TABLE IT_RBKP
WHERE BUDAT IN S_BUDAT.
SELECT RSEG~BELNR
RSEG~GJAHR
RSEG~BUZEI
RSEG~EBELN
RSEG~EBELP
RSEG~MATNR
RSEG~LFBNR
RSEG~BUKRS
RSEG~WRBTR
RSEG~MENGE
RSEG~LFPOS
RSEG~MWSKZ
EKKO~AEDAT
J_1IMOVEND~J_1ICSTNO " ADDED THIS FOR TEST
FROM RSEG INNER JOIN EKKO ON RSEG~EBELN = EKKO~EBELN LEFT OUTER JOIN J_1IMOVEND
ON EKKO~LIFNR = J_1IMOVEND~LIFNR
INTO CORRESPONDING FIELDS OF TABLE IT_RSEG
FOR ALL ENTRIES IN IT_RBKP WHERE BELNR = IT_RBKP-BELNR
AND GJAHR = IT_RBKP-GJAHR.
SELECT RSEG~BELNR
RSEG~GJAHR
RSEG~BUZEI
RSEG~EBELN
RSEG~EBELP
RSEG~MATNR
RSEG~LFBNR
RSEG~BUKRS
RSEG~WRBTR
RSEG~MENGE
RSEG~LFPOS
RSEG~MWSKZ
EKKO~AEDAT
J_1IMOVEND~J_1ICSTNO " ADDED THIS FOR TEST
FROM RSEG INNER JOIN EKKO ON RSEG~EBELN = EKKO~EBELN LEFT OUTER JOIN J_1IMOVEND
ON EKKO~LIFNR = J_1IMOVEND~LIFNR
INTO CORRESPONDING FIELDS OF TABLE IT_RSEG
FOR ALL ENTRIES IN IT_RBKP WHERE BELNR = IT_RBKP-BELNR
AND GJAHR = IT_RBKP-GJAHR.
SELECT EBELN KNUMV FROM EKKO INTO CORRESPONDING FIELDS OF TABLE IT_SEG
FOR ALL ENTRIES IN IT_RSEG
WHERE EKKO~EBELN = IT_RSEG-EBELN.
SELECT
KWERT
FROM KONV INTO CORRESPONDING FIELDS OF TABLE IIT_SEG2
FOR ALL ENTRIES IN IT_SEG
WHERE KNUMV = IT_SEG-KNUMV AND KSCHL = 'JIPC'.
SELECT
KWERT
FROM KONV INTO CORRESPONDING FIELDS OF TABLE IT_RSEG
FOR ALL ENTRIES IN IT_SEG
WHERE KNUMV = IT_SEG-KNUMV AND KSCHL ='BASB'.
*----below im passing the extracted fields to the workaraea of the internal table *-----for which ill create field catalg:
WA_FINAL-KWERT = WA_IIT_SEG2-KWERT1.
WA_FINAL-KWERT_BASIC = WA_IIT_SEG3-KWERT.
APPEND WA_FINAL TO IT_FINAL.
-----And then ill print field in my field catalog passing table IT_FINAL
is my logic fine,, because its not working for me
2013 Feb 27 10:37 AM
i modified a little: ( so that doc condition number is extracted based on item number as well):
SELECT RSEG~BELNR
RSEG~GJAHR
RSEG~BUZEI
RSEG~EBELN
RSEG~EBELP
RSEG~MATNR
RSEG~LFBNR
RSEG~BUKRS
RSEG~WERKS
RSEG~WRBTR
RSEG~LFPOS
RSEG~LIFNR
RSEG~MWSKZ " ADDED THIS FOR TEST
RSEG~MATNR
EKKO~AEDAT
J_1IMOVEND~J_1ICSTNO " ADDED THIS FOR TEST
FROM RSEG INNER JOIN EKKO ON RSEG~EBELN = EKKO~EBELN LEFT OUTER JOIN J_1IMOVEND
ON EKKO~LIFNR = J_1IMOVEND~LIFNR
INTO CORRESPONDING FIELDS OF TABLE IT_RSEG
FOR ALL ENTRIES IN IT_RBKP WHERE BELNR = IT_RBKP-BELNR
AND GJAHR = IT_RBKP-GJAHR
AND WERKS IN S_WERKS.
SELECT EKKO~EBELN EKKO~KNUMV RSEG~BUZEI
FROM RSEG INNER JOIN EKKO ON RSEG~EBELN = EKKO~EBELN
INTO CORRESPONDING FIELDS OF TABLE IT_SEG
FOR ALL ENTRIES IN IT_RSEG
WHERE EKKO~EBELN = IT_RSEG-EBELN.
SELECT
KWERT
FROM KONV INTO CORRESPONDING FIELDS OF TABLE IIT_SEG2
FOR ALL ENTRIES IN IT_SEG
WHERE KNUMV = IT_SEG-KNUMV AND KPOSN = IT_SEG-BUZEI AND KSCHL = 'JIPC'.
SELECT
KWERT
FROM KONV INTO CORRESPONDING FIELDS OF TABLE IT_RSEG
FOR ALL ENTRIES IN IT_SEG
WHERE KNUMV = IT_SEG-KNUMV AND KPOSN = IT_SEG-BUZEI AND KSCHL ='BASB'.
Rest all is same.
2013 Feb 27 11:47 AM
Hi Khushboo,
I am not sure what exactly you are trying to do here, can u copy the whole code in the notepad and upload here so i will try myself n get back to you...........
2013 Feb 27 12:12 PM
2013 Feb 27 12:14 PM
2013 Feb 27 12:15 PM
2013 Feb 27 12:15 PM
2013 Feb 27 12:15 PM
2013 Feb 27 12:15 PM
2013 Feb 27 12:15 PM
2013 Feb 27 12:16 PM
2013 Feb 27 12:18 PM
2013 Feb 27 12:18 PM
2013 Feb 27 12:18 PM
2013 Feb 27 12:21 PM
im not able to upload.. sorry to make it loud.. ill have to paste on discussion wall:
CHECK IF P_RADIO2 = 'X'.
check. PERFORM GET_DATA_RSEG inside IF P_RADIO2 = 'X'.
i have tried to get the basic and cst amount in this form (PERFORM GET_DATA_RSEG inside IF P_RADIO2 = 'X'.)...but in final o/p these vals are 0!
*&---------------------------------------------------------------------*
*& Report ZTEST4
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZTEST4.
************************************************************************
******** T-A-B-L-E-S D-E-C-L-A-R-A-T-I-O-N A-R-E-A ************
************************************************************************
TABLES : MKPF,
RSEG,
RBKP,
EKPO.
************************************************************************
**** T-Y-P-ES - P-O-O-L-S D-E-C-L-A-R-A-T-I-O-N A-R-E-A *****
************************************************************************
TYPE-POOLS: SLIS. " ALV Global types
************************************************************************
******** T-Y-P-E-S D-E-C-L-A-R-A-T-I-O-N A-R-E-A ************
************************************************************************
TYPES: BEGIN OF ekko_aedat,
AEDAT TYPE EKKO-AEDAT,
END OF ekko_aedat.
*DATA: temp_field TYPE TABLE OF ekko_aedat,
* wa_field TYPE LINE OF temp_field.
TYPES : BEGIN OF TS_MKPF,
MBLNR TYPE MKPF-MBLNR, "Number of Material Document
MJAHR TYPE MKPF-MJAHR, "Mat. Doc. Year
BLDAT TYPE MKPF-BLDAT, "Document Date in Document
BUDAT TYPE MKPF-BUDAT, "Posting Date
XBLNR TYPE MKPF-XBLNR, "Reference
END OF TS_MKPF.
TYPES : BEGIN OF TS_MSEG,
MBLNR TYPE MSEG-MBLNR, "Number of Material Document
MJAHR TYPE MSEG-MJAHR, "Mat. Doc. Year
ZEILE TYPE MSEG-ZEILE, "Item
BWART TYPE MSEG-BWART, "Movement Type
MATNR TYPE MSEG-MATNR, "Accounting Document Number BELNR
WERKS TYPE MSEG-WERKS, "Plant
LIFNR TYPE MSEG-LIFNR, "Vendor
DMBTR TYPE MSEG-DMBTR, "Amount in LC
ERFMG TYPE MSEG-ERFMG, "Quantity in UnE
ERFME TYPE MSEG-ERFME, "Unit of Entry
EBELN TYPE MSEG-EBELN, "Purchase Order
EBELP TYPE MSEG-EBELP, "Item
LFBNR TYPE MSEG-LFBNR, "Reference Doc.
GSBER TYPE MSEG-GSBER, "Business Area
LFPOS TYPE MSEG-LFPOS, "Ref. Doc. Item
BUKRS TYPE MSEG-BUKRS, "Company Code
TAG1 TYPE MSEG-BWART, "Movement Type
END OF TS_MSEG.
TYPES : BEGIN OF TS_RSEG,
KSCHL TYPE KONV-KSCHL,
KWERT TYPE KONV-KWERT,
KWERT_BASIC TYPE KONV-KWERT,
J_1ICSTNO TYPE J_1IMOVEND-J_1ICSTNO,
AEDAT TYPE EKKO-AEDAT,
BELNR TYPE RSEG-BELNR, "Document Number
GJAHR TYPE RSEG-GJAHR, "Fiscal Year
BUZEI TYPE RSEG-BUZEI, "Item
EBELN TYPE RSEG-EBELN, "Purchasing Doc.
EBELP TYPE RSEG-EBELP, "Item
MATNR TYPE RSEG-MATNR, "Material
LFBNR TYPE RSEG-LFBNR, "Reference Doc.
BUKRS TYPE RSEG-BUKRS, "Company Code
WERKS TYPE RSEG-WERKS, "Plant
WRBTR TYPE RSEG-WRBTR, "Amount
MENGE TYPE RSEG-MENGE, "Quantity
LFPOS TYPE RSEG-LFPOS, "Ref. Doc. Item
LIFNR TYPE RSEG-LIFNR, "Vendor
STBLG TYPE RBKP-STBLG, "Reversed by
BLDAT TYPE RBKP-BLDAT, "Document Date
MWSKZ TYPE RSEG-MWSKZ, " ADDED FOR TEST
KNUMV TYPE EKKO-KNUMV,
END OF TS_RSEG.
TYPES:BEGIN OF TS_RBKP,
BELNR TYPE RBKP-BELNR, "Inv. Doc. No.
GJAHR TYPE RBKP-GJAHR, "Fiscal Year
BLDAT TYPE RBKP-BLDAT, "Document Date
BUDAT TYPE RBKP-BUDAT, "Posting Date
STBLG TYPE RBKP-STBLG, "Document Date
BUZEI TYPE RSEG-BUZEI,
END OF TS_RBKP.
TYPES: BEGIN OF TS_BKPF ,
BUKRS TYPE BKPF-BUKRS,
BELNR TYPE BKPF-BELNR,
GJAHR TYPE BKPF-GJAHR,
BLART TYPE BKPF-BLART,
BLDAT TYPE BKPF-BLDAT,
BUDAT TYPE BKPF-BUDAT,
XBLNR TYPE BKPF-XBLNR,
AWKEY TYPE BKPF-AWKEY,
END OF TS_BKPF.
TYPES : BEGIN OF TS_LFA1,
LIFNR TYPE LFA1-LIFNR,
LAND1 TYPE LFA1-LAND1,
NAME1 TYPE LFA1-NAME1,
PSTLZ TYPE LFA1-PSTLZ,
REGIO TYPE LFA1-REGIO,
STRAS TYPE LFA1-STRAS,
MCOD3 TYPE LFA1-MCOD3,
STCD1 TYPE LFA1-STCD1,
END OF TS_LFA1.
TYPES : BEGIN OF TS_T005U,
SPRAS TYPE T005U-SPRAS,
LAND1 TYPE T005U-LAND1,
BLAND TYPE T005U-BLAND,
BEZEI TYPE T005U-BEZEI,
END OF TS_T005U.
TYPES : BEGIN OF TS_MAKT,
MATNR TYPE MAKT-MATNR,
SPRAS TYPE MAKT-SPRAS,
MAKTX TYPE MAKT-MAKTX,
END OF TS_MAKT.
TYPES : BEGIN OF TS_Bset,
BUKRS TYPE BSET-BUKRS,
BELNR TYPE BSET-BELNR, "Accounting Document Number
GJAHR TYPE BSET-GJAHR,
BUZEI TYPE BSET-BUZEI,
TXGRP TYPE BSET-TXGRP,
HWBAS TYPE BSET-HWBAS,
HWSTE TYPE BSET-HWSTE,
KTOSL TYPE BSET-KTOSL,
KSCHL TYPE BSET-KSCHL,
KBETR TYPE BSET-KBETR,
END OF TS_BSET.
TYPES: BEGIN OF TS_BSEG ,
BUKRS TYPE BSEG-BUKRS,
BELNR TYPE BSEG-BELNR,
GJAHR TYPE BSEG-GJAHR,
BUZEI TYPE BSEG-BUZEI,
BUZID TYPE BSEG-BUZID,
SHKZG TYPE BSEG-SHKZG,
DMBTR TYPE BSEG-DMBTR,
WRBTR TYPE BSEG-WRBTR,
KTOSL TYPE BSEG-KTOSL,
HKONT TYPE BSEG-HKONT,
TABIX TYPE BSEG-BUZEI,
MATNR TYPE BSEG-MATNR,
MENGE TYPE BSEG-MENGE,
EBELP TYPE BSEG-EBELN,
EBELN TYPE BSEG-EBELN,
DIFF_AMOUNT TYPE BSEG-DMBTR,
SERTAX TYPE BSEG-DMBTR,
END OF TS_BSEG.
TYPES: BEGIN OF TS_T007S,
SPRAS TYPE T007S-SPRAS,
KALSM TYPE T007S-KALSM,
MWSKZ TYPE T007S-MWSKZ,
TEXT1 TYPE T007S-TEXT1,
END OF TS_T007S.
TYPES : BEGIN OF TS_EKPO,
EBELN TYPE EKPO-EBELN,
EBELP TYPE EKPO-EBELP,
MWSKZ TYPE EKPO-MWSKZ,
END OF TS_EKPO.
TYPES: BEGIN OF TS_EKKO,
EBELN TYPE EKKO-EBELN,
BUKRS TYPE EKKO-BUKRS,
BSART TYPE EKKO-BSART,
END OF TS_EKKO.
TYPES: BEGIN OF TS_EKBE,
EBELN TYPE EKBE-EBELN,
EBELP TYPE EKBE-EBELP,
ZEKKN TYPE EKBE-ZEKKN,
VGABE TYPE EKBE-VGABE,
GJAHR TYPE EKBE-GJAHR,
BELNR TYPE EKBE-BELNR,
BUZEI TYPE EKBE-BUZEI,
DMBTR TYPE EKBE-DMBTR,
END OF TS_EKBE.
***** Added by Tapas on 11.02.2010******************
TYPES: BEGIN OF TS_J_1IMOVEND, " Vendor Master Excise Additional Data
LIFNR TYPE J_1IMOVEND-LIFNR, " Account Number of Vendor or Creditor
J_1IPANNO TYPE J_1IMOVEND-J_1IPANNO, " Permanent Account Number
J_1ISERN TYPE J_1IMOVEND-J_1ISERN, " Service Tax Registration Number
END OF TS_J_1IMOVEND.
***********upto**********************
TYPES : BEGIN OF TS_FINAL,
KSCHL1 TYPE KONV-KSCHL,
KWERT TYPE KONV-KWERT,
KWERT_BASIC TYPE KONV-KWERT,
KNUMV TYPE EKKO-KNUMV, "Number of the document condition
MBLNR TYPE MKPF-MBLNR, "Number of Material Document
MJAHR TYPE MKPF-MJAHR, "Header: Material Documen
AEDAT TYPE EKKO-AEDAT, "PO Doc Date
J_1ICSTNO TYPE J_1IMOVEND-J_1ICSTNO, " Central Sales Tax Number
ZREG TYPE C,
BLDAT TYPE MKPF-BLDAT, "Document Date in Document
BUDAT TYPE MKPF-BUDAT, "Posting Date in the Document
XBLNR TYPE MKPF-XBLNR, "Reference Document Number
ZEILE TYPE RSEG-BUZEI, "Document Item in Invoice Document
BWART TYPE MSEG-BWART, " Movement Type (Inventory Management)
MATNR TYPE MSEG-MATNR, "Material Number
WERKS TYPE MSEG-WERKS, "Plant
LIFNR TYPE MSEG-LIFNR, "Vendor Account Number
ERFMG TYPE MSEG-ERFMG, "Quantity in Unit of Entry
ERFME TYPE MSEG-ERFME, "Unit of Entry
EBELN TYPE MSEG-EBELN, "Purchase Order Number
EBELP TYPE MSEG-EBELP, "Purchase Order Number
LFBNR TYPE MSEG-LFBNR, "Document No. of a Reference Document
GSBER TYPE MSEG-GSBER, "Business Area
BUKRS TYPE MSEG-BUKRS, "Company Code
MWSKZ TYPE EKPO-MWSKZ, "Sales Tax Code
BUZEI TYPE RSEG-BUZEI, "Document Item in Invoice Document
GJAHR TYPE RSEG-GJAHR, "Fiscal Year
BELNR TYPE RSEG-BELNR, "Accounting Document Number
WRBTR TYPE BSET-HWBAS, "Tax Base Amount in Local Currency
LFPOS TYPE RSEG-LFPOS, "Item of a Reference Document
AWKEY TYPE BKPF-AWKEY, "Reference Key
BELNR1 TYPE BKPF-BELNR, "Accounting Document Number
BLDAT1 TYPE BKPF-BLDAT, "Document Date in Document
BUDAT1 TYPE BKPF-BUDAT, "Posting Date in the Document
XBLNR1 TYPE BKPF-XBLNR, "Reference Document Number
BLART TYPE BKPF-BLART, "Document Type
LAND1 TYPE LFA1-LAND1, "Country Key
NAME1 TYPE LFA1-NAME1, "Name 1
PSTLZ TYPE LFA1-PSTLZ, "Postal Code
REGIO TYPE LFA1-REGIO, "Region (State, Province, County)
STRAS TYPE LFA1-STRAS, "House number and street
MCOD3 TYPE LFA1-MCOD3, "Search term for matchcode search
STCD1 TYPE LFA1-STCD1, "Tax Number 1
BEZEI TYPE T005U-BEZEI, "Description
STBLG TYPE RBKP-STBLG, "Reversal document number
MAKTX TYPE MAKT-MAKTX, "Material Description (Short Text)
HWBAS TYPE BSET-HWBAS, "Tax Base Amount in Local Currency
HWSTE TYPE BSET-HWSTE, "Tax Amount in Local Currency
KTOSL TYPE BSET-KTOSL, "Transaction Key
* KSCHL TYPE BSET-KSCHL, "Condition Type
KBETR TYPE BSET-KBETR, "Tax Rate
W_ED TYPE BSET-HWBAS, "Tax Base Amount in Local Currency
W_AED TYPE BSET-HWBAS, "Tax Base Amount in Local Currency
W_ECESS TYPE BSET-HWBAS, "Tax Base Amount in Local Currency
W_SCESS TYPE BSET-HWBAS, "Tax Base Amount in Local Currency
W_SERTX TYPE BSET-HWBAS, "Tax Base Amount in Local Currency
W_VATCST TYPE BSET-HWBAS, "Tax Base Amount in Local Currency
W_OTHCHA TYPE BSET-HWBAS, "Tax Base Amount in Local Currency
TXGRP TYPE BSET-TXGRP, "Group Indicator for Tax Line Items
TXGRP1 TYPE BSET-TXGRP, "Group Indicator for Tax Line Items
WRBTR1 TYPE BSEG-WRBTR, "Amount in Document Currency
HKONT TYPE BSEG-HKONT, "General Ledger Account
TEXT1 TYPE T007S-TEXT1, "Name for value-added tax
BSART TYPE EKKO-BSART, "Purchasing Document Type
SUM TYPE BSET-HWBAS, "Tax Base Amount in Local Currency
BUZEINEW TYPE RSEG-BUZEI, "Document Item in Invoice Document
TABIX TYPE BSEG-BUZEI, "Document Item in Invoice Document
TABIX1 TYPE BSEG-BUZEI, "Document Item in Invoice Document
******* Added by Tapas on 11-02-2010*************
J_1IPANNO TYPE J_1IMOVEND-J_1IPANNO, "Permanent Account Number
J_1ISERN TYPE J_1IMOVEND-J_1ISERN, "Service Tax Registration Number
DIFF_AMOUNT TYPE BSEG-DMBTR, "Amount in Local Currency
DMBTR TYPE BSEG-DMBTR, "Amount in Local Currency
SDMBTR TYPE BSEG-DMBTR, "Amount in Local Currency
SERTAX TYPE BSEG-DMBTR, "Amount in Local Currency
* MM_EX_RATE TYPE BSEG-DMBTR, " ADDED TO CAPTURE MM X-RATE RATE DIFF
END OF TS_FINAL.
TYPES: BEGIN OF IIT_SEG,
EBELN TYPE EKKO-EBELN,
KNUMV TYPE EKKO-KNUMV,
BUZEI TYPE RSEG-BUZEI,
END OF IIT_SEG.
DATA: IT_SEG TYPE STANDARD TABLE OF IIT_SEG,
WA_SEG TYPE IIT_SEG.
TYPES: BEGIN OF IIT_SEG1,
KWERT1 TYPE KONV-KWERT,
END OF IIT_SEG1.
DATA: IIT_SEG2 TYPE STANDARD TABLE OF IIT_SEG1,
WA_IIT_SEG2 TYPE IIT_SEG1.
TYPES: BEGIN OF IIT_SEG2,
KWERT TYPE KONV-KWERT,
END OF IIT_SEG2.
DATA: IIT_SEG3 TYPE STANDARD TABLE OF IIT_SEG2,
WA_IIT_SEG3 TYPE IIT_SEG2.
DATA: COUNT(10).
DATA: COUNT1(10).
DATA: COUNT2(10).
************************************************************************
****** C-O-N-S-T-A-N-T-S D-E-C-L-A-R-A-T-I-O-N A-R-E-A *******
************************************************************************
CONSTANTS: C_X(1) TYPE C VALUE 'X'.
************************************************************************
******** A-L-V D-E-C-L-A-R-A-T-I-O-N A-R-E-A ************
************************************************************************
************************************************************************
***** A-L-V F-I-E-L-D-C-A-T-A-L-O-G-S D-E-C-L-A-R-A-T-I-O-N ******
************************************************************************
************************************************************************
* L A Y O U T S
************************************************************************
*DATA: IS_G_A_LAYOUT TYPE SLIS_LAYOUT_ALV. "Layout for First BLOCK
************************************************************************
* E-V-E-N-T-S
************************************************************************
DATA: FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME
VALUE 'TOP_OF_PAGE',
GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
* LS_PRIVATE TYPE SLIS_DATA_CALLER_EXIT,
GT_EVENT TYPE SLIS_T_EVENT,
LS_LINE TYPE SLIS_LISTHEADER,
L_INFO(200) TYPE C.
************************************************************************
* S-O-R-T - T-A-B-L-E-S
************************************************************************
DATA: GT_SORT TYPE SLIS_T_SORTINFO_ALV,
GS_SORT TYPE SLIS_SORTINFO_ALV. "Sort table
************************************************************************
***** I-N-T-E-R-N-A-L T-A-B-L-E-S D-E-C-L-A-R-A-T-I-O-N A-R-E-A ****
************************************************************************
DATA : IT_MKPF TYPE STANDARD TABLE OF TS_MKPF.
DATA : IT_MSEG TYPE STANDARD TABLE OF TS_MSEG.
DATA : IT_MSEG1 TYPE STANDARD TABLE OF TS_MSEG.
DATA : IT_MSEG2 TYPE STANDARD TABLE OF TS_MSEG.
DATA : IT_RSEG TYPE STANDARD TABLE OF TS_RSEG.
DATA : IT_LFA1 TYPE STANDARD TABLE OF TS_LFA1.
DATA : IT_T005U TYPE STANDARD TABLE OF TS_T005U.
DATA : IT_BSETG TYPE STANDARD TABLE OF TS_BSET.
DATA : IT_BSET TYPE STANDARD TABLE OF TS_BSET.
DATA : IT_BSET1 TYPE STANDARD TABLE OF TS_BSET.
DATA : IT_FINAL TYPE STANDARD TABLE OF TS_FINAL.
DATA : IT_RBKP TYPE STANDARD TABLE OF TS_RBKP.
DATA : IT_BKPF TYPE STANDARD TABLE OF TS_BKPF.
DATA : IT_MAKT TYPE STANDARD TABLE OF TS_MAKT.
DATA : IT_BSEGL TYPE STANDARD TABLE OF TS_BSEG.
DATA : IT_BSEG TYPE STANDARD TABLE OF TS_BSEG.
DATA : IT_BSEG1 TYPE STANDARD TABLE OF TS_BSEG.
DATA : IT_BSEG2 TYPE STANDARD TABLE OF TS_BSEG.
DATA : IT_BSEG3 TYPE STANDARD TABLE OF TS_BSEG.
DATA : IT_BSEG4 TYPE STANDARD TABLE OF TS_BSEG.
DATA : IT_BSEG_SER TYPE STANDARD TABLE OF TS_BSEG.
*DATA : IT_BSEG_MM_EXC TYPE STANDARD TABLE OF TS_BSEG. " ADDED THIS 21/02/2012
DATA : IT_T007S TYPE STANDARD TABLE OF TS_T007S.
DATA : IT_EKKO TYPE STANDARD TABLE OF TS_EKKO.
DATA : IT_EKPO TYPE STANDARD TABLE OF TS_EKPO.
DATA : IT_EKBE TYPE STANDARD TABLE OF TS_EKBE.
DATA : IT_J_1IMOVEND TYPE STANDARD TABLE OF TS_J_1IMOVEND.
************************************************************************
********** W-O-R-K--A-R-E-A D-E-C-L-A-R-A-T-I-O-N ***********
************************************************************************
DATA : WA_MKPF TYPE TS_MKPF.
DATA : WA_MSEG TYPE TS_MSEG.
DATA : WA_MSEG1 TYPE TS_MSEG.
DATA : WA_MSEG2 TYPE TS_MSEG.
DATA : WA_RSEG TYPE TS_RSEG.
DATA : WA_LFA1 TYPE TS_LFA1.
DATA : WA_T005U TYPE TS_T005U.
DATA : WA_BSETG TYPE TS_BSET.
DATA : WA_BSET TYPE TS_BSET.
DATA : WA_BSET1 TYPE TS_BSET.
DATA : WA_FINAL TYPE TS_FINAL.
DATA : WA_RBKP TYPE TS_RBKP.
DATA : WA_BKPF TYPE TS_BKPF.
DATA : WA_MAKT TYPE TS_MAKT.
DATA : WA_BSEGL TYPE TS_BSEG.
DATA : WA_BSEG TYPE TS_BSEG.
DATA : WA_BSEG1 TYPE TS_BSEG.
DATA : WA_BSEG2 TYPE TS_BSEG.
DATA : WA_BSEG3 TYPE TS_BSEG.
DATA : WA_BSEG4 TYPE TS_BSEG.
DATA : WA_BSEG_SER TYPE TS_BSEG.
*DATA : WA_BSEG_MM_EXC TYPE TS_BSEG. " ADDED THIS 21/02/2012
DATA : WA_T007S TYPE TS_T007S.
DATA : WA_EKKO TYPE TS_EKKO.
DATA : WA_EKPO TYPE TS_EKPO.
DATA : WA_EKBE TYPE TS_EKBE.
DATA : WA_J_1IMOVEND TYPE TS_J_1IMOVEND
.
***********************************************************************
******** S-T-A-R-T O-F S-E-L-E-C-T-I-O-N ************
************************************************************************
SELECTION-SCREEN COMMENT 52(30) COMM1 MODIF ID MOD .
SELECTION-SCREEN ULINE /48(19).
SELECTION-SCREEN COMMENT /48(35) COMM2 MODIF ID MOE.
SELECTION-SCREEN ULINE /43(29).
************************************************************************
****** V-A-R-I-A-B-L-E-S D-E-C-L-A-R-A-T-I-O-N A-R-E-A *******
************************************************************************
DATA : V_LAYOUT TYPE SLIS_LAYOUT_ALV,
V_CNT TYPE I,
V_REPID TYPE SYST-REPID,
V_CURRENT_DATE(10) TYPE C,
V_MONTH(2) TYPE C,
V_DAY(2) TYPE C,
V_YEAR(4) TYPE C.
DATA : L_DATE(10) TYPE C,
L_DATE1(10) TYPE C.
************************************************************************
******** S-T-A-R-T O-F S-E-L-E-C-T-I-O-N ************
************************************************************************
INITIALIZATION.
COMM1 = TEXT-002. "'I S & W P LTD.'.
COMM2 = TEXT-003. "'.'.
V_REPID = SY-REPID.
V_LAYOUT-ZEBRA = C_X.
************************************************************************
******** S-E-L-E-C-T-I-O-N S-C-R-E-E-N ************
************************************************************************
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN : SKIP 1.
SELECT-OPTIONS : S_WERKS FOR RSEG-WERKS .
SELECT-OPTIONS : S_BUDAT FOR RBKP-BUDAT OBLIGATORY.
SELECT-OPTIONS : S_LIFNR FOR RSEG-LIFNR.
SELECTION-SCREEN : SKIP 1.
SELECTION-SCREEN : END OF BLOCK B1.
SELECTION-SCREEN:BEGIN OF BLOCK B4 WITH FRAME TITLE TEXT-051.
PARAMETERS : P_RADIO1 TYPE CHAR1 RADIOBUTTON GROUP T1 USER-COMMAND UC1 DEFAULT 'X'.
PARAMETERS : P_RADIO2 TYPE CHAR1 RADIOBUTTON GROUP T1.
PARAMETERS : P_RADIO3 TYPE CHAR1 RADIOBUTTON GROUP T1.
PARAMETERS : P_RADIO4 TYPE CHAR1 RADIOBUTTON GROUP T1.
PARAMETERS : P_RADIO5 TYPE CHAR1 RADIOBUTTON GROUP T1.
PARAMETERS : P_RADIO6 TYPE CHAR1 RADIOBUTTON GROUP T1.
PARAMETERS : P_RADIO7 TYPE CHAR1 RADIOBUTTON GROUP T1.
SELECTION-SCREEN: END OF BLOCK B4.
START-OF-SELECTION.
IF P_RADIO1 = 'X'. " Normal Purchase(Raw Material VAT) PO
PERFORM GUI_STATUS.
PERFORM GET_DATA_RSEG. " Fecting Invoice detail
PERFORM GET_DATA_MSEG. " Fecting GRN details(Document Segment: Material)
PERFORM GET_DATA_MKPF. " Fetch Material Document related data
PERFORM FETCH_RAW_MAT. " Tax xodes for Raw material
PERFORM GET_DATA_BKPF. " Fecth Account Document Detals
PERFORM GET_DATA_LFA1. " Fetch Vendor Details
PERFORM GET_DATA_T005U. " Fetch Taxes: Region Key: Texts
PERFORM GET_DATA_MAKT. " Fecth Material Description
PERFORM GET_DATA_TAXGROUP. " Fetch Tax group details from BSET
PERFORM GET_DATA_BSET. " Fetch Condtion type for taxes and amount
PERFORM GET_DATA_BSEG_LINE. " Fecth IR Related data (Frieght charges)
PERFORM GET_DATA_BSEG. " Fecth IR Related data
PERFORM GET_DATA_T007S. " Fetch Tax Code Names
PERFORM GET_DATA_EKKO. " Fetch PO details
PERFORM GET_DATA_EKBE. " Fecth History per Purchasing Document details
ENDIF.
IF P_RADIO2 = 'X'. " Normal Purchase(Raw Material C.G & CAT) PO
PERFORM GUI_STATUS.
PERFORM GET_DATA_RSEG.
PERFORM GET_DATA_MSEG.
PERFORM GET_DATA_MKPF.
PERFORM FETCH_RAW_MAT_CST. " Fetch material Detail where CST/VAT is appilcable
PERFORM GET_DATA_BKPF.
PERFORM GET_DATA_LFA1.
PERFORM GET_DATA_T005U.
PERFORM GET_DATA_MAKT.
PERFORM GET_DATA_TAXGROUP.
PERFORM GET_DATA_BSET.
PERFORM GET_DATA_BSEG_LINE.
PERFORM GET_DATA_BSEG.
PERFORM GET_DATA_T007S.
PERFORM GET_DATA_EKKO.
PERFORM GET_DATA_EKBE.
ENDIF.
IF P_RADIO3 = 'X'. " Normal Purchase(NON Taxable Goods) PO
PERFORM GUI_STATUS.
PERFORM GET_DATA_RSEG.
PERFORM GET_DATA_MSEG.
PERFORM GET_DATA_MKPF.
PERFORM FETCH_NONTAX. " Fetch material Detail where Its NON taxable from EKPO
PERFORM GET_DATA_BKPF.
PERFORM GET_DATA_LFA1.
PERFORM GET_DATA_T005U.
PERFORM GET_DATA_MAKT.
PERFORM GET_DATA_TAXGROUP.
PERFORM GET_DATA_BSET.
PERFORM GET_DATA_BSEG_LINE.
PERFORM GET_DATA_BSEG.
PERFORM GET_DATA_T007S.
PERFORM GET_DATA_EKKO.
PERFORM GET_DATA_EKBE.
ENDIF.
IF P_RADIO4 = 'X'. " Normal Purchase(Capital Goods VAT) PO
PERFORM GUI_STATUS.
PERFORM GET_DATA_RSEG.
PERFORM GET_DATA_MSEG.
PERFORM GET_DATA_MKPF.
PERFORM FETCH_CAP_VAT. " Fetch material Detail where Its NON taxable from EKPO
PERFORM GET_DATA_BKPF.
PERFORM GET_DATA_LFA1.
PERFORM GET_DATA_T005U.
PERFORM GET_DATA_MAKT.
PERFORM GET_DATA_TAXGROUP.
PERFORM GET_DATA_BSET_CGVAT. " Fetch material Detail C G VAT from BSET
PERFORM GET_DATA_BSEG_LINE.
PERFORM GET_DATA_BSEG.
PERFORM GET_DATA_T007S.
PERFORM GET_DATA_EKKO.
PERFORM GET_DATA_EKBE.
ENDIF.
IF P_RADIO5 = 'X'. "Servies Tax PO
PERFORM GUI_STATUS.
PERFORM GET_DATA_RSEG_SERVICE. "Fetch material data Related for servcices from RSEG
PERFORM GET_DATA_MSEG_SERVICE. "Fetch material data Related for servcices from MSEG
PERFORM GET_DATA_MKPF_SERVICE. "Fetch material data Related for services from MKPF
PERFORM FETCH_SERVICE.
PERFORM GET_DATA_BKPF.
PERFORM GET_DATA_LFA1.
PERFORM GET_DATA_J_1IMOVEND. "Fetch material data Related for services.
PERFORM GET_DATA_T005U.
PERFORM GET_DATA_TAXGROUP.
PERFORM GET_DATA_BSET_SER.
PERFORM GET_DATA_BSEG_LINE.
PERFORM GET_DATA_BSEG_SER.
PERFORM GET_DATA_BSEG_SERVICE.
PERFORM GET_DATA_T007S.
PERFORM GET_DATA_EKKO.
PERFORM GET_DATA_EKBE.
ENDIF.
IF P_RADIO6 = 'X'. " Import PO
PERFORM GUI_STATUS.
PERFORM GET_DATA_RSEG_IMPORT. "Fetch material data Related for services from RSEG
PERFORM GET_DATA_MSEG_IMPORT. "Fetch material data Related for services from MSEG
PERFORM GET_DATA_MKPF.
PERFORM FETCH_IMPORT.
PERFORM GET_DATA_BKPF.
PERFORM GET_DATA_LFA1.
PERFORM GET_DATA_T005U.
PERFORM GET_DATA_MAKT.
PERFORM GET_DATA_TAXGROUP.
PERFORM GET_DATA_BSET.
PERFORM GET_DATA_BSEG_LINE.
PERFORM GET_DATA_BSEG_IMPORT.
PERFORM GET_DATA_BSEG_NETAMOUNT. "Fetch material data Related for services from MSEG
PERFORM GET_DATA_T007S.
PERFORM GET_DATA_EKKO.
PERFORM GET_DATA_EKBE_IMPORT.
ENDIF.
IF P_RADIO7 = 'X'. "Servies Tax PO
PERFORM GUI_STATUS.
PERFORM GET_DATA_RSEG_SERVICE. "Fetch material data Related for servcices from RSEG
PERFORM GET_DATA_MSEG_GANGAA. "Fetch material data Related for servcices from MSEG
PERFORM GET_DATA_MKPF_SERVICE. "Fetch material data Related for services from MKPF
PERFORM FETCH_SERVICE.
PERFORM GET_DATA_BKPF_SERVICE.
PERFORM GET_DATA_LFA1.
PERFORM GET_DATA_J_1IMOVEND. "Fetch material data Related for services.
PERFORM GET_DATA_T005U.
PERFORM GET_DATA_TAXGROUP.
PERFORM GET_DATA_BSET_SER.
PERFORM GET_DATA_BSEG_LINE.
PERFORM GET_DATA_BSEG_SER.
PERFORM GET_DATA_BSEG_SERVICE.
PERFORM GET_DATA_T007S.
PERFORM GET_DATA_EKKO.
PERFORM GET_DATA_EKBE.
ENDIF.
* ******** DISPLAY****************
PERFORM PASS_FIELD_NAME USING FIELDCAT.
PERFORM EVENTTAB_BUILD USING GT_EVENT[].
PERFORM COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].
PERFORM PASS_DATA_LIST_OUTPUT.
PERFORM TOP_OF_PAGE.
* ***********************************
*&---------------------------------------------------------------------*
*& Form GET_DATA_LFA1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_LFA1 .
SELECT LIFNR
LAND1
NAME1
PSTLZ
REGIO
STRAS
MCOD3
STCD1
FROM LFA1 INTO TABLE IT_LFA1
FOR ALL ENTRIES IN IT_FINAL
WHERE LIFNR = IT_FINAL-LIFNR
AND LIFNR IN S_LIFNR.
SORT IT_LFA1 BY LIFNR.
SORT IT_FINAL BY LIFNR.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_LFA1.
READ TABLE IT_LFA1 INTO WA_LFA1 WITH KEY LIFNR = WA_FINAL-LIFNR
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL-LAND1 = WA_LFA1-LAND1.
WA_FINAL-NAME1 = WA_LFA1-NAME1.
WA_FINAL-REGIO = WA_LFA1-REGIO.
WA_FINAL-PSTLZ = WA_LFA1-PSTLZ.
WA_FINAL-STRAS = WA_LFA1-STRAS.
WA_FINAL-MCOD3 = WA_LFA1-MCOD3.
WA_FINAL-STCD1 = WA_LFA1-STCD1.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING LAND1 NAME1 REGIO PSTLZ STRAS MCOD3 STCD1.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
DELETE IT_FINAL WHERE LIFNR = 'S083'.
DELETE IT_FINAL WHERE NAME1 = ' '.
ENDFORM. " GET_DATA_LFA1
*&---------------------------------------------------------------------*
*& Form GET_DATA_T005U
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_T005U .
SELECT SPRAS
LAND1
BLAND
BEZEI FROM T005U INTO TABLE IT_T005U
FOR ALL ENTRIES IN IT_FINAL
WHERE LAND1 = IT_FINAL-LAND1
AND BLAND = IT_FINAL-REGIO.
SORT IT_T005U BY LAND1 BLAND.
SORT IT_FINAL BY LAND1 REGIO.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_T005U.
READ TABLE IT_T005U INTO WA_T005U WITH KEY LAND1 = WA_FINAL-LAND1
BLAND = WA_FINAL-REGIO
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL-BEZEI = WA_T005U-BEZEI.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING BEZEI.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
V_MONTH = SY-DATUM+4(2).
V_DAY = SY-DATUM+6(2).
V_YEAR = SY-DATUM(4) .
CONCATENATE V_DAY ':' V_MONTH ':' V_YEAR INTO V_CURRENT_DATE.
CONCATENATE S_BUDAT-LOW+6(2) '.' S_BUDAT-LOW+4(2) '.' S_BUDAT-LOW+0(4)
INTO L_DATE.
CONCATENATE S_BUDAT-HIGH+6(2) '.' S_BUDAT-HIGH+4(2) '.' S_BUDAT-HIGH+0(4)
INTO L_DATE1.
ENDFORM. " GET_DATA_T005U
*&---------------------------------------------------------------------*
*& Form GET_DATA_MAKT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_MAKT .
SELECT
MATNR
SPRAS
MAKTX
FROM MAKT INTO TABLE IT_MAKT
FOR ALL ENTRIES IN IT_FINAL
WHERE MATNR = IT_FINAL-MATNR.
SORT IT_MAKT BY MATNR.
SORT IT_FINAL BY MATNR.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_MAKT.
READ TABLE IT_MAKT INTO WA_MAKT WITH KEY MATNR = WA_FINAL-MATNR
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL-MAKTX = WA_MAKT-MAKTX.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING MAKTX.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
LOOP AT IT_FINAL INTO WA_FINAL.
SHIFT WA_FINAL-MATNR LEFT DELETING LEADING '0'.
MODIFY IT_FINAL FROM WA_FINAL .
ENDLOOP.
ENDFORM. " GET_DATA_MAKT
*&---------------------------------------------------------------------*
*& Form GET_DATA_TAXGROUP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_TAXGROUP .
SELECT BUKRS
BELNR
GJAHR
BUZEI
TXGRP
HWBAS
HWSTE
KTOSL
KSCHL
KBETR FROM BSET INTO TABLE IT_BSETG
FOR ALL ENTRIES IN IT_FINAL
WHERE BELNR = IT_FINAL-BELNR1
AND GJAHR = IT_FINAL-GJAHR
AND BUKRS = '1000'
AND HWBAS = IT_FINAL-WRBTR.
SORT IT_BSETG BY BELNR HWBAS.
SORT IT_FINAL BY BELNR1 WRBTR.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_BSETG.
READ TABLE IT_BSETG INTO WA_BSETG WITH KEY BELNR = WA_FINAL-BELNR1
GJAHR = WA_FINAL-GJAHR
HWBAS = WA_FINAL-WRBTR
BUKRS = '1000'.
IF SY-SUBRC = 0.
WA_FINAL-TXGRP = WA_BSETG-TXGRP.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING TXGRP.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
ENDFORM. " GET_DATA_TAXGROUP
*&---------------------------------------------------------------------*
*& Form GET_DATA_BSET
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_BSET .
SORT IT_FINAL BY BELNR1.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_BSET.
SELECT BUKRS
BELNR
GJAHR
BUZEI
TXGRP
HWBAS
HWSTE
KTOSL
KSCHL
KBETR FROM BSET INTO TABLE IT_BSET
WHERE BELNR = WA_FINAL-BELNR1
AND GJAHR = WA_FINAL-GJAHR
AND BUKRS = '1000'
AND KSCHL IN ('JMOQ','JAOP','JMOP','JMIP','JMIQ','JEC1','JEC2','JSEI','JSEP',
'JVRD','JVRN','JIPL','JIPS','JIPC','JVCN','JVCD','JVCS' )
AND TXGRP = WA_FINAL-TXGRP
AND HKONT NE ' '.
DELETE IT_BSET WHERE HWSTE IS INITIAL.
* IF SY-SUBRC = 0.
PERFORM GET_ED.
PERFORM GET_AED.
PERFORM GET_ECESS.
PERFORM GET_SCESS.
* PERFORM GET_VAT_CST.
PERFORM GET_OTHCHARGE.
* ENDIF.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING
W_ED W_AED W_ECESS W_SCESS W_VATCST W_OTHCHA .
CLEAR WA_FINAL.
ENDLOOP.
ENDFORM. " GET_DATA_BSET
*&---------------------------------------------------------------------*
*& Form GET_DATA_BSEG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_BSEG .
SORT IT_FINAL BY BELNR1.
CLEAR IT_BSEG.
* LOOP AT IT_FINAL INTO WA_FINAL.
SELECT
BUKRS
BELNR
GJAHR
BUZEI
BUZID
SHKZG
DMBTR
WRBTR
KTOSL
HKONT FROM BSEG INTO CORRESPONDING FIELDS OF TABLE IT_BSEG
FOR ALL ENTRIES IN IT_FINAL
WHERE BELNR = IT_FINAL-BELNR1
AND GJAHR = IT_FINAL-GJAHR
* AND BUZEI = IT_FINAL-TABIX1
AND KTOSL IN ('FR0','FR1','FR3','FR6','FR7')
AND BUKRS = '1000'.
* ENDLOOP.
LOOP AT IT_FINAL INTO WA_FINAL.
ON CHANGE OF WA_FINAL-BELNR1.
LOOP AT IT_BSEG INTO WA_BSEG WHERE BELNR = WA_FINAL-BELNR1
AND GJAHR = WA_FINAL-GJAHR.
WA_FINAL-W_OTHCHA = WA_FINAL-W_OTHCHA + WA_BSEG-WRBTR.
ENDLOOP.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING W_OTHCHA.
CLEAR WA_FINAL.
ENDON.
ENDLOOP.
"""""""""""""""""""""""""""""""""""""""""""""""""""""12/04/2012 "Suresh
SELECT BUKRS
BELNR
GJAHR
BUZEI
TXGRP
HWBAS
HWSTE
KTOSL
KSCHL
KBETR FROM BSET INTO TABLE IT_BSETG
FOR ALL ENTRIES IN IT_FINAL
WHERE BELNR = IT_FINAL-BELNR1
AND GJAHR = IT_FINAL-GJAHR
AND BUKRS = '1000'
AND HWBAS = IT_FINAL-W_OTHCHA.
SORT IT_BSETG BY BELNR HWBAS.
SORT IT_FINAL BY BELNR1 WRBTR.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_BSETG.
READ TABLE IT_BSETG INTO WA_BSETG WITH KEY BELNR = WA_FINAL-BELNR1
GJAHR = WA_FINAL-GJAHR
HWBAS = WA_FINAL-WRBTR
BUKRS = '1000'.
IF SY-SUBRC = 0.
WA_FINAL-TXGRP1 = WA_BSETG-TXGRP.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING TXGRP1.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
SORT IT_FINAL BY BELNR1.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_BSET.
SELECT BUKRS
BELNR
GJAHR
BUZEI
TXGRP
HWBAS
HWSTE
KTOSL
KSCHL
KBETR FROM BSET INTO TABLE IT_BSET
WHERE BELNR = WA_FINAL-BELNR1
AND GJAHR = WA_FINAL-GJAHR
AND BUKRS = '1000'
AND KSCHL IN ('JMOQ','JAOP','JMOP','JMIP','JMIQ','JEC1','JEC2','JSEI','JSEP',
'JVRD','JVRN','JIPL','JIPS','JIPC','JVCN','JVCD','JVCS' )
AND TXGRP = WA_FINAL-TXGRP1
AND HKONT NE ' '.
DELETE IT_BSET WHERE HWSTE IS INITIAL.
* IF SY-SUBRC = 0.
PERFORM GET_ED.
PERFORM GET_AED.
PERFORM GET_ECESS.
PERFORM GET_SCESS.
* PERFORM GET_VAT_CST.
PERFORM GET_OTHCHARGE.
* ENDIF.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING
W_ED W_AED W_ECESS W_SCESS W_VATCST W_OTHCHA .
CLEAR WA_FINAL.
ENDLOOP.
"""""""""""""""""""""""""""""""""""""""""""""""""END Suresh
*************************************************SELECTION FOR G\L ACCOUNT.
SELECT BUKRS
BELNR
GJAHR
BUZEI
BUZID
SHKZG
DMBTR
WRBTR
KTOSL
HKONT
MATNR
MENGE
EBELP
EBELN FROM BSEG INTO CORRESPONDING FIELDS OF TABLE IT_BSEG
FOR ALL ENTRIES IN IT_FINAL
WHERE BELNR = IT_FINAL-BELNR1
AND GJAHR = IT_FINAL-GJAHR
AND KTOSL = 'WRX'
AND BUKRS = '1000'.
SORT IT_FINAL BY BELNR1 GJAHR MATNR EBELN EBELP ERFMG.
SORT IT_BSEG BY BELNR GJAHR MATNR EBELN EBELP MENGE.
* *********************** CHANGE STRATED ON 28/02/2012 BY RANJITH ****************************
* LOOP AT IT_BSEG INTO WA_BSEG.
* IF SY-SUBRC = 0.
* WA_FINAL-HKONT = WA_BSEG-HKONT.
* WA_FINAL-WRBTR1 = WA_BSEG-DMBTR.
* MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING HKONT WRBTR1.
* ENDIF.
* ENDLOOP.
* ************************ END OF CHANGE ON 28/02/2012 **************************************
LOOP AT IT_BSEG INTO WA_BSEG.
WA_BSEG-MATNR = WA_BSEG-MATNR+9(9).
MODIFY IT_BSEG FROM WA_BSEG TRANSPORTING MATNR.
ENDLOOP.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_BSEG.
READ TABLE IT_BSEG INTO WA_BSEG WITH KEY BELNR = WA_FINAL-BELNR1
GJAHR = WA_FINAL-GJAHR
MATNR = WA_FINAL-MATNR
EBELN = WA_FINAL-EBELN
EBELP = WA_FINAL-EBELP
MENGE = WA_FINAL-ERFMG
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL-HKONT = WA_BSEG-HKONT.
WA_FINAL-WRBTR1 = WA_BSEG-DMBTR.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING HKONT WRBTR1.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
SELECT BUKRS
BELNR
GJAHR
BUZEI
BUZID
SHKZG
DMBTR
WRBTR
KTOSL
HKONT FROM BSEG INTO TABLE IT_BSEG3
FOR ALL ENTRIES IN IT_FINAL
WHERE BELNR = IT_FINAL-BELNR1
AND GJAHR = IT_FINAL-GJAHR
AND KTOSL = 'KBS'
AND BUKRS = '1000'
AND SHKZG = 'H'
.
LOOP AT IT_BSEG3 INTO WA_BSEG3.
IF WA_BSEG3-SHKZG = 'H'.
WA_BSEG3-DMBTR = -1 * WA_BSEG3-DMBTR.
ENDIF.
MODIFY IT_BSEG3 FROM WA_BSEG3 TRANSPORTING DMBTR.
ENDLOOP.
SORT IT_FINAL BY BELNR1 GJAHR.
SORT IT_BSEG3 BY BELNR GJAHR.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_BSEG3.
LOOP AT IT_BSEG3 INTO WA_BSEG3 WHERE BELNR = WA_FINAL-BELNR1
AND GJAHR = WA_FINAL-GJAHR.
* READ TABLE IT_BSEG3 INTO WA_BSEG3 WITH KEY BELNR = WA_FINAL-BELNR1
* GJAHR = WA_FINAL-GJAHR
* BINARY SEARCH.
* IF SY-SUBRC = 0.
WA_FINAL-DMBTR = WA_FINAL-DMBTR + WA_BSEG3-DMBTR .
ENDLOOP.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING DMBTR.
* ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
*******************************************
SELECT BUKRS
BELNR
GJAHR
BUZEI
BUZID
SHKZG
DMBTR
WRBTR
KTOSL
HKONT FROM BSEG INTO TABLE IT_BSEG4
FOR ALL ENTRIES IN IT_FINAL
WHERE BELNR = IT_FINAL-BELNR1
AND GJAHR = IT_FINAL-GJAHR
AND KTOSL = 'KBS'
AND BUKRS = '1000'
AND SHKZG = 'S'.
SORT IT_FINAL BY BELNR1 GJAHR.
SORT IT_BSEG3 BY BELNR GJAHR.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_BSEG4.
READ TABLE IT_BSEG4 INTO WA_BSEG4 WITH KEY BELNR = WA_FINAL-BELNR1
GJAHR = WA_FINAL-GJAHR
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL-SDMBTR = WA_BSEG4-DMBTR.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING SDMBTR.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
********************************************
SELECT BUKRS
BELNR
GJAHR
BUZEI
BUZID
SHKZG
DMBTR
WRBTR
KTOSL
HKONT FROM BSEG INTO TABLE IT_BSEG2
FOR ALL ENTRIES IN IT_FINAL
WHERE BELNR = IT_FINAL-BELNR1
AND GJAHR = IT_FINAL-GJAHR
AND KTOSL IN ('BSX','DIF','PRD','WIT' ,'KDM') " ADDED KDM FOR MM EXCHANGE RATE
AND BUKRS = '1000'.
SORT IT_FINAL BY BELNR1 GJAHR.
SORT IT_BSEG2 BY BELNR GJAHR.
LOOP AT IT_BSEG2 INTO WA_BSEG2.
IF WA_BSEG2-SHKZG = 'H'.
WA_BSEG2-DMBTR = -1 * WA_BSEG2-DMBTR.
ENDIF.
MODIFY IT_BSEG2 FROM WA_BSEG2 TRANSPORTING DMBTR.
ENDLOOP.
LOOP AT IT_FINAL INTO WA_FINAL.
ON CHANGE OF WA_FINAL-BELNR1.
LOOP AT IT_BSEG2 INTO WA_BSEG2 WHERE BELNR = WA_FINAL-BELNR1
AND GJAHR = WA_FINAL-GJAHR.
WA_FINAL-DIFF_AMOUNT = WA_FINAL-DIFF_AMOUNT + WA_BSEG2-DMBTR.
ENDLOOP.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING DIFF_AMOUNT.
ENDON.
ENDLOOP.
ENDFORM. " GET_DATA_BSEG
*&---------------------------------------------------------------------*
*& Form GET_DATA_BSEG_LINE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_BSEG_LINE .
SORT IT_FINAL BY BELNR1.
LOOP AT IT_FINAL INTO WA_FINAL.
ON CHANGE OF WA_FINAL-BELNR1.
COUNT1 = '0'.
ENDON.
COUNT1 = COUNT1 + 1.
WA_FINAL-TABIX = COUNT1.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING TABIX.
ENDLOOP.
SELECT BUKRS
BELNR
GJAHR
BUZEI
BUZID
SHKZG
DMBTR
WRBTR
KTOSL
HKONT FROM BSEG INTO TABLE IT_BSEGL
FOR ALL ENTRIES IN IT_FINAL
WHERE BELNR = IT_FINAL-BELNR1
AND GJAHR = IT_FINAL-GJAHR
AND KTOSL IN ('FR0','FR1','FR3','FR6','FR7')
AND BUKRS = '1000'.
SORT IT_BSEGL BY BELNR.
LOOP AT IT_BSEGL INTO WA_BSEGL.
ON CHANGE OF WA_BSEGL-BELNR.
COUNT2 = '0'.
ENDON.
COUNT2 = COUNT2 + 1.
WA_BSEGL-TABIX = COUNT2.
MODIFY IT_BSEGL FROM WA_BSEGL TRANSPORTING TABIX.
ENDLOOP.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_BSEGL.
READ TABLE IT_BSEGL INTO WA_BSEGL WITH KEY BELNR = WA_FINAL-BELNR1
GJAHR = WA_FINAL-GJAHR
TABIX = WA_FINAL-TABIX
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL-TABIX1 = WA_BSEGL-BUZEI.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING TABIX1.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
ENDFORM. " GET_DATA_BSEG_LINE
*&---------------------------------------------------------------------*
*& Form GET_DATA_T007S
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_T007S .
SELECT SPRAS
KALSM
MWSKZ
TEXT1 FROM T007S INTO TABLE IT_T007S
FOR ALL ENTRIES IN IT_FINAL
WHERE SPRAS = 'EN'
AND KALSM = 'TAXINN'
AND MWSKZ = IT_FINAL-MWSKZ.
SORT IT_T007S BY MWSKZ.
SORT IT_FINAL BY MWSKZ.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_T007S.
READ TABLE IT_T007S INTO WA_T007S WITH KEY MWSKZ = WA_FINAL-MWSKZ
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL-TEXT1 = WA_T007S-TEXT1.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING TEXT1.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
ENDFORM. " GET_DATA_T007S
*&---------------------------------------------------------------------*
*& Form GET_DATA_EKKO
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_EKKO .
SELECT EBELN
BUKRS
BSART FROM EKKO INTO TABLE IT_EKKO
FOR ALL ENTRIES IN IT_FINAL
WHERE EBELN = IT_FINAL-EBELN
AND BUKRS = '1000'
AND BSART IN ('IB','IC','IR','IS').
SORT IT_EKKO BY EBELN.
SORT IT_FINAL BY EBELN.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_EKKO.
READ TABLE IT_EKKO INTO WA_EKKO WITH KEY EBELN = WA_FINAL-EBELN
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL-BSART = WA_EKKO-BSART.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING BSART.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
ENDFORM. " GET_DATA_EKKO
*&---------------------------------------------------------------------*
*& Form GET_DATA_EKBE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_EKBE .
SORT IT_FINAL BY EBELN EBELP MBLNR.
LOOP AT IT_FINAL INTO WA_FINAL.
IF WA_FINAL-BELNR IS INITIAL.
SELECT EBELN
EBELP
ZEKKN
VGABE
GJAHR
BELNR
BUZEI
DMBTR FROM EKBE INTO TABLE IT_EKBE
WHERE EBELN = WA_FINAL-EBELN
AND EBELP = WA_FINAL-EBELP
AND BELNR = WA_FINAL-MBLNR
AND VGABE = 1.
LOOP AT IT_EKBE INTO WA_EKBE.
WA_FINAL-WRBTR = WA_EKBE-DMBTR.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING WRBTR.
ENDLOOP.
CLEAR WA_FINAL.
ENDIF.
ENDLOOP.
DELETE IT_FINAL WHERE BSART IS NOT INITIAL.
LOOP AT IT_FINAL INTO WA_FINAL.
WA_FINAL-SUM = ( WA_FINAL-WRBTR1 "Amount in Doc Currency
+ WA_FINAL-W_ED "Tax Base Amount in Local Currency
+ WA_FINAL-W_AED ""Tax Base Amount in Local Currency
+ WA_FINAL-W_ECESS + "Tax Base Amount in Local Currency
WA_FINAL-W_SCESS + "Tax Base Amount in Local Currency
WA_FINAL-W_SERTX + "Tax Base Amount in Local Currency
WA_FINAL-W_VATCST + "Tax Base Amount in Local Currency
WA_FINAL-W_OTHCHA + "Tax Base Amount in Local Currency
+ WA_FINAL-DIFF_AMOUNT + "Amount in Local Currency
WA_FINAL-SDMBTR + "Amount in Local Currency
wa_final-sertax "Amount in Local Currency
).
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING SUM.
CLEAR WA_FINAL.
ENDLOOP.
ENDFORM. " GET_DATA_EKBE
*&---------------------------------------------------------------------*
*& Form GET_ED
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_ED .
LOOP AT IT_BSET INTO WA_BSET.
IF WA_BSET-KSCHL = 'JMOQ' OR
WA_BSET-KSCHL = 'JMOP' OR
WA_BSET-KSCHL = 'JMIP' OR
WA_BSET-KSCHL = 'JMIQ' .
* IF SY-SUBRC = 0.
WA_FINAL-W_ED = WA_FINAL-W_ED + WA_BSET-HWSTE.
* ENDIF.
ENDIF.
ENDLOOP.
ENDFORM. " GET_ED
*&---------------------------------------------------------------------*
*& Form GET_AED
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_AED .
LOOP AT IT_BSET INTO WA_BSET.
IF WA_BSET-KSCHL = 'JAOP'.
WA_FINAL-W_AED = WA_FINAL-W_AED + WA_BSET-HWSTE.
ENDIF.
ENDLOOP.
ENDFORM. " GET_AED
*&---------------------------------------------------------------------*
*& Form GET_ECESS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_ECESS .
LOOP AT IT_BSET INTO WA_BSET.
IF WA_BSET-KSCHL = 'JEC1' OR
WA_BSET-KSCHL = 'JEC2'.
IF SY-SUBRC = 0.
WA_FINAL-W_ECESS = WA_FINAL-W_ECESS + WA_BSET-HWSTE.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM. " GET_ECESS
*&---------------------------------------------------------------------*
*& Form GET_SCESS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_SCESS . " CHECK THIS HERE
LOOP AT IT_BSET INTO WA_BSET.
IF WA_BSET-KSCHL = 'JSEI' OR
WA_BSET-KSCHL = 'JSEP'.
IF SY-SUBRC = 0.
WA_FINAL-W_SCESS = WA_FINAL-W_SCESS + WA_BSET-HWSTE.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM. " GET_SCESS
*&---------------------------------------------------------------------*
*& Form GET_VAT_CST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_VAT_CST .
LOOP AT IT_BSET INTO WA_BSET.
IF WA_BSET-KSCHL = 'JVRD' OR
WA_BSET-KSCHL = 'JVRN' OR
WA_BSET-KSCHL = 'JIPL' OR
WA_BSET-KSCHL = 'JIPS' OR
WA_BSET-KSCHL = 'JIPC'.
IF SY-SUBRC = 0.
WA_FINAL-W_VATCST = WA_FINAL-W_VATCST + WA_BSET-HWSTE.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM. " GET_VAT_CST
*&---------------------------------------------------------------------*
*& Form GET_OTHCHARGE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_OTHCHARGE .
LOOP AT IT_BSET INTO WA_BSET.
IF WA_BSET-KSCHL = 'JVCD' OR
WA_BSET-KSCHL = 'JVCN' OR
WA_BSET-KSCHL = 'JVCS' .
IF SY-SUBRC = 0.
WA_FINAL-W_OTHCHA = WA_FINAL-W_OTHCHA + WA_BSET-HWSTE.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM. " GET_OTHCHARGE
*&---------------------------------------------------------------------*
*& Form GET_FREIGHT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_FREIGHT .
LOOP AT IT_BSEG INTO WA_BSEG.
WA_FINAL-W_OTHCHA = WA_FINAL-W_OTHCHA + WA_BSEG-WRBTR.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING W_OTHCHA.
ENDLOOP.
ENDFORM. " GET_FREIGHT
*&---------------------------------------------------------------------*
*& Form PASS_FIELD_NAME
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_FIELDCAT text
*----------------------------------------------------------------------*
FORM PASS_FIELD_NAME USING P_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'KWERT'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '09'.
LS_FIELDCAT-KEY = 'X'.
LS_FIELDCAT-SELTEXT_S = TEXT-055. "CS Tax
LS_FIELDCAT-SELTEXT_M = TEXT-055. "CS Tax
LS_FIELDCAT-SELTEXT_L = TEXT-055. "CS Tax
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'KWERT_BASIC'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '09'.
LS_FIELDCAT-KEY = 'X'.
LS_FIELDCAT-SELTEXT_S = TEXT-056. "Basic
LS_FIELDCAT-SELTEXT_M = TEXT-056. "Basic
LS_FIELDCAT-SELTEXT_L = TEXT-056. "Basic
APPEND LS_FIELDCAT TO P_FIELDCAT.
* CLEAR LS_FIELDCAT.
* LS_FIELDCAT-ROW_POS = '01'.
* LS_FIELDCAT-COL_POS = V_CNT.
* LS_FIELDCAT-FIELDNAME = 'KSCHL1'.
* LS_FIELDCAT-TABNAME = 'IT_FINAL'.
* LS_FIELDCAT-DO_SUM = SPACE.
* LS_FIELDCAT-OUTPUTLEN = '09'.
* LS_FIELDCAT-KEY = 'X'.
* LS_FIELDCAT-SELTEXT_S = TEXT-055. "'VENDOR NUM.'.
* LS_FIELDCAT-SELTEXT_M = TEXT-055. "'VENDOR NUM'.
* LS_FIELDCAT-SELTEXT_L = TEXT-055. "'VENDOR NUM'.
* APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'LIFNR'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '09'.
LS_FIELDCAT-KEY = 'X'.
LS_FIELDCAT-SELTEXT_S = TEXT-005. "'VENDOR NUM.'.
LS_FIELDCAT-SELTEXT_M = TEXT-005. "'VENDOR NUM'.
LS_FIELDCAT-SELTEXT_L = TEXT-005. "'VENDOR NUM'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'J_1ICSTNO'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '09'.
LS_FIELDCAT-KEY = 'X'.
LS_FIELDCAT-SELTEXT_S = TEXT-053. "'VENDOR NUM.'.
LS_FIELDCAT-SELTEXT_M = TEXT-053. "'VENDOR NUM'.
LS_FIELDCAT-SELTEXT_L = TEXT-053. "'VENDOR NUM'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'ZREG'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '09'.
LS_FIELDCAT-KEY = 'X'.
LS_FIELDCAT-SELTEXT_S = TEXT-054. "'VENDOR NUM.'.
LS_FIELDCAT-SELTEXT_M = TEXT-054. "'VENDOR NUM'.
LS_FIELDCAT-SELTEXT_L = TEXT-054. "'VENDOR NUM'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'NAME1'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '25'.
LS_FIELDCAT-SELTEXT_S = TEXT-006. "'VENDOR NAME'.
LS_FIELDCAT-SELTEXT_M = TEXT-006. "'VENDOR NAME.'.
LS_FIELDCAT-SELTEXT_L = TEXT-006. "'VENDOR NAME.'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'XBLNR1'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '15'.
LS_FIELDCAT-SELTEXT_S = TEXT-007. "'REF.DOC. NO.'.
LS_FIELDCAT-SELTEXT_M = TEXT-007. "'REF.DOC. NO.'.
LS_FIELDCAT-SELTEXT_L = TEXT-007. "'REF.DOC. NO.'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'BLDAT1'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '09'.
LS_FIELDCAT-SELTEXT_S = TEXT-022. "'INVOICE DATE'.
LS_FIELDCAT-SELTEXT_M = TEXT-022. "'INVOICE DATE'.
LS_FIELDCAT-SELTEXT_L = TEXT-022. "'INVOICE DATE'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'AEDAT'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '10'.
LS_FIELDCAT-SELTEXT_S = TEXT-008. "'DOC.DATE'.
LS_FIELDCAT-SELTEXT_M = TEXT-008. "'DOC.DATE'.
LS_FIELDCAT-SELTEXT_L = TEXT-008. "'DOC.DATE'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'MWSKZ'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '06'.
LS_FIELDCAT-SELTEXT_S = TEXT-009."'TAX CODE'.
LS_FIELDCAT-SELTEXT_M = TEXT-009."'TAX CODE'.
LS_FIELDCAT-SELTEXT_L = TEXT-009."'TAX CODE'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'TEXT1'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '25'.
LS_FIELDCAT-SELTEXT_S = TEXT-010."'TAX DESCRIPTION'.
LS_FIELDCAT-SELTEXT_M = TEXT-010."'TAX DESCRIPTION'.
LS_FIELDCAT-SELTEXT_L = TEXT-010."'TAX DESCRIPTION'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'WRBTR1'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '10'.
LS_FIELDCAT-SELTEXT_S = TEXT-011. "'NET AMOUNT'.
LS_FIELDCAT-SELTEXT_M = TEXT-011. "'NET AMOUNT'.
LS_FIELDCAT-SELTEXT_L = TEXT-011. "'NET AMOUNT'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
IF P_RADIO5 NE 'X'.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'W_ED'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '10'.
LS_FIELDCAT-SELTEXT_S = TEXT-014. "'ED'.
LS_FIELDCAT-SELTEXT_M = TEXT-014. "'ED'.
LS_FIELDCAT-SELTEXT_L = TEXT-014. "'ED'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'W_AED'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '10'.
LS_FIELDCAT-SELTEXT_S = TEXT-045. "'AED'.
LS_FIELDCAT-SELTEXT_M = TEXT-045. "'AED'.
LS_FIELDCAT-SELTEXT_L = TEXT-045. "'AED'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
ENDIF.
IF P_RADIO5 = 'X'.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'W_SERTX'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '10'.
LS_FIELDCAT-SELTEXT_S = TEXT-013. "'SERVICE TAX'.
LS_FIELDCAT-SELTEXT_M = TEXT-013. "'SERVICE TAX'.
LS_FIELDCAT-SELTEXT_L = TEXT-013. "'SERVICE TAX'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'SERTAX'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '10'.
LS_FIELDCAT-SELTEXT_S = TEXT-044. "' TAX OTHERS'.
LS_FIELDCAT-SELTEXT_M = TEXT-044. "' TAX'.
LS_FIELDCAT-SELTEXT_L = TEXT-044. "' TAX'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'J_1IPANNO'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '10'.
LS_FIELDCAT-SELTEXT_S = TEXT-042. "'PAN'. "Permanent Account Number
LS_FIELDCAT-SELTEXT_M = TEXT-042. "'PAN'.
LS_FIELDCAT-SELTEXT_L = TEXT-042. "'PAN'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'J_1ISERN'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '20'.
LS_FIELDCAT-SELTEXT_S = TEXT-043. "'SERVICE TAX REG NO'. "Service Tax Registration Number
LS_FIELDCAT-SELTEXT_M = TEXT-043. "''.
LS_FIELDCAT-SELTEXT_L = TEXT-043. "''.
APPEND LS_FIELDCAT TO P_FIELDCAT.
ENDIF.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'W_ECESS'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '10'.
LS_FIELDCAT-SELTEXT_S = TEXT-015. "'E.cess'.
LS_FIELDCAT-SELTEXT_M = TEXT-015. "'E.cess'.
LS_FIELDCAT-SELTEXT_L = TEXT-015. "'E.cess'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'W_SCESS'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '10'.
LS_FIELDCAT-SELTEXT_S = TEXT-016. "'SE.cess'.
LS_FIELDCAT-SELTEXT_M = TEXT-016. "'SE.cess'.
LS_FIELDCAT-SELTEXT_L = TEXT-016. "'SE.cess'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
* IF P_RADIO5 NE 'X'.
* CLEAR LS_FIELDCAT.
* LS_FIELDCAT-ROW_POS = '01'.
* LS_FIELDCAT-COL_POS = V_CNT.
* LS_FIELDCAT-FIELDNAME = 'W_VATCST'.
* LS_FIELDCAT-FIELDNAME = 'W_VATCST'.
* LS_FIELDCAT-TABNAME = 'IT_FINAL'.
* LS_FIELDCAT-DO_SUM = SPACE.
* LS_FIELDCAT-OUTPUTLEN = '08'.
* LS_FIELDCAT-SELTEXT_S = TEXT-012. "'VAT/CST'.
* LS_FIELDCAT-SELTEXT_M = TEXT-012. "'VAT/CST'.
* LS_FIELDCAT-SELTEXT_L = TEXT-012. "'VAT/CST'.
* APPEND LS_FIELDCAT TO P_FIELDCAT.
* ENDIF.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'W_OTHCHA'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '10'.
LS_FIELDCAT-SELTEXT_S = TEXT-017. "'OTHER CHARGES'.
LS_FIELDCAT-SELTEXT_M = TEXT-017. "'OTHER CHARGES'.
LS_FIELDCAT-SELTEXT_L = TEXT-017. "'OTHER CHARGES'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'DIFF_AMOUNT'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '10'.
LS_FIELDCAT-SELTEXT_S = TEXT-046. "'OTHER CHARGES'.
LS_FIELDCAT-SELTEXT_M = TEXT-046. "'OTHER CHARGES'.
LS_FIELDCAT-SELTEXT_L = TEXT-046. "'OTHER CHARGES'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'SUM'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '10'.
LS_FIELDCAT-SELTEXT_S = TEXT-018. "'GROSS Amt.'.
LS_FIELDCAT-SELTEXT_M = TEXT-018. "'GROSS Amt.'.
LS_FIELDCAT-SELTEXT_L = TEXT-018. "'GROSS Amt.'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'DMBTR'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '10'.
LS_FIELDCAT-SELTEXT_S = TEXT-047. "'G/L AMOUNT.'.
LS_FIELDCAT-SELTEXT_M = TEXT-047. "'.'.
LS_FIELDCAT-SELTEXT_L = TEXT-047. "''.
APPEND LS_FIELDCAT TO P_FIELDCAT.
* CLEAR LS_FIELDCAT.
* LS_FIELDCAT-ROW_POS = '01'.
* LS_FIELDCAT-COL_POS = V_CNT.
* LS_FIELDCAT-FIELDNAME = 'WRBTR1'.
* LS_FIELDCAT-TABNAME = 'IT_FINAL'.
* LS_FIELDCAT-DO_SUM = SPACE.
* LS_FIELDCAT-OUTPUTLEN = '10'.
* LS_FIELDCAT-SELTEXT_S = TEXT-044. "'Vendor Amt.'.
* LS_FIELDCAT-SELTEXT_M = TEXT-044. "'Vendor Amt.'.
* LS_FIELDCAT-SELTEXT_L = TEXT-044. "'Vendor Amt.'.
* APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'HKONT'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '10 '.
LS_FIELDCAT-SELTEXT_S = TEXT-019. "'G\L ACCOUNT'.
LS_FIELDCAT-SELTEXT_M = TEXT-019. "'G\L ACCOUNT'.
LS_FIELDCAT-SELTEXT_L = TEXT-019. "'G\L ACCOUNT'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'EBELN'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '11'.
LS_FIELDCAT-SELTEXT_S = TEXT-021. "'PURCHASE ORDER NO.'.
LS_FIELDCAT-SELTEXT_M = TEXT-021. "'PURCHASE ORDER NO.'.
LS_FIELDCAT-SELTEXT_L = TEXT-021. "'PURCHASE ORDER NO.'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'BUZEI'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '05'.
LS_FIELDCAT-SELTEXT_S = TEXT-024. "'LINE ITEM NO.'.
LS_FIELDCAT-SELTEXT_M = TEXT-024. "'LINE ITEM NO.'.
LS_FIELDCAT-SELTEXT_L = TEXT-024. "'LINE ITEM NO.'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'BELNR'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '15'.
LS_FIELDCAT-SELTEXT_S = TEXT-023. "'INVOICE RECEPIT DOC NO.'.
LS_FIELDCAT-SELTEXT_M = TEXT-023. "'INVOICE NO.'.
LS_FIELDCAT-SELTEXT_L = TEXT-023. "'INVOICE NO.'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'BUDAT1'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '15'.
LS_FIELDCAT-SELTEXT_S = TEXT-034. "'INVOICE POSTING DATE'.
LS_FIELDCAT-SELTEXT_M = TEXT-034. "'POSTING DATE'.
LS_FIELDCAT-SELTEXT_L = TEXT-034. "'POSTING DATE'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'BELNR1'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '09'.
LS_FIELDCAT-SELTEXT_S = TEXT-020. "'FI DOC NO'.
LS_FIELDCAT-SELTEXT_M = TEXT-020. "'FI DOC NO'.
LS_FIELDCAT-SELTEXT_L = TEXT-020. "'FI DOC NO'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'STRAS'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '15'.
LS_FIELDCAT-SELTEXT_S = TEXT-025. "'ADDRESS'.
LS_FIELDCAT-SELTEXT_M = TEXT-025. "'ADDRESS'.
LS_FIELDCAT-SELTEXT_L = TEXT-025. "'ADDRESS'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'MCOD3'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '10'.
LS_FIELDCAT-SELTEXT_S = TEXT-026. "'CITY'.
LS_FIELDCAT-SELTEXT_M = TEXT-026. "'CITY'.
LS_FIELDCAT-SELTEXT_L = TEXT-026. "'CITY'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'PSTLZ'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '09'.
LS_FIELDCAT-SELTEXT_S = TEXT-027. "'POSTAL CODE'.
LS_FIELDCAT-SELTEXT_M = TEXT-027. "'POSTAL CODE'.
LS_FIELDCAT-SELTEXT_L = TEXT-027. "'POSTAL CODE'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'BEZEI'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '09'.
LS_FIELDCAT-SELTEXT_S = TEXT-028. "'REGION'.
LS_FIELDCAT-SELTEXT_M = TEXT-028. "'REGION'.
LS_FIELDCAT-SELTEXT_L = TEXT-028. "'REGION'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'STCD1'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '09'.
LS_FIELDCAT-SELTEXT_S = TEXT-029. "'TIN NUMBER'.
LS_FIELDCAT-SELTEXT_M = TEXT-029. "'TIN NUMBER'.
LS_FIELDCAT-SELTEXT_L = TEXT-029. "'TIN NUMBER'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'BWART'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '06'.
LS_FIELDCAT-SELTEXT_S = TEXT-030. "'MOVEMENT TYPE'.
LS_FIELDCAT-SELTEXT_M = TEXT-030. "'MOVEMENT TYPE'.
LS_FIELDCAT-SELTEXT_L = TEXT-030. "'MOVEMENT TYPE'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'MBLNR'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '12'.
LS_FIELDCAT-SELTEXT_S = TEXT-032. "'GRN DOC NO'.
LS_FIELDCAT-SELTEXT_M = TEXT-032. "'MATERIAL DOC.NUM'.
LS_FIELDCAT-SELTEXT_L = TEXT-032. "'MATERIAL DOC.NUM'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
* CLEAR LS_FIELDCAT.
* LS_FIELDCAT-ROW_POS = '01'.
* LS_FIELDCAT-COL_POS = V_CNT.
* LS_FIELDCAT-FIELDNAME = 'BLDAT'.
* LS_FIELDCAT-TABNAME = 'IT_FINAL'.
* LS_FIELDCAT-DO_SUM = SPACE.
* LS_FIELDCAT-OUTPUTLEN = '10'.
* LS_FIELDCAT-SELTEXT_S = TEXT-033. "'GRN DOC.DATE'.
* LS_FIELDCAT-SELTEXT_M = TEXT-033. "'DOC.DATE'.
* LS_FIELDCAT-SELTEXT_L = TEXT-033. "'DOC.DATE'.
* APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'BUDAT'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '10'.
LS_FIELDCAT-SELTEXT_S = TEXT-052. "'GRN POSTING DATE'.
LS_FIELDCAT-SELTEXT_M = TEXT-052. "'DOC.DATE'.
LS_FIELDCAT-SELTEXT_L = TEXT-052. "'DOC.DATE'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
* CLEAR LS_FIELDCAT.
* LS_FIELDCAT-ROW_POS = '01'.
* LS_FIELDCAT-COL_POS = V_CNT.
* LS_FIELDCAT-FIELDNAME = 'XBLNR'.
* LS_FIELDCAT-TABNAME = 'IT_FINAL'.
* LS_FIELDCAT-DO_SUM = SPACE.
* LS_FIELDCAT-OUTPUTLEN = '13'.
* LS_FIELDCAT-SELTEXT_S = TEXT-031. "'GRN CHA. NO.'.
* LS_FIELDCAT-SELTEXT_M = TEXT-031. "'GRN CHA. NO.'.
* LS_FIELDCAT-SELTEXT_L = TEXT-031. "'GRN CHA. NO.'.
* APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'ERFMG'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '10'.
LS_FIELDCAT-SELTEXT_S = TEXT-035. "'QUANTITY'.
LS_FIELDCAT-SELTEXT_M = TEXT-035. "'QUANTITY'.
LS_FIELDCAT-SELTEXT_L = TEXT-035. "'QUANTITY'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'ERFME'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '06'.
LS_FIELDCAT-SELTEXT_S = TEXT-036. "'UNIT OF MEASUREMENT'.
LS_FIELDCAT-SELTEXT_M = TEXT-036. "'UNIT OF MEASUREMENT'.
LS_FIELDCAT-SELTEXT_L = TEXT-036. "'UNIT OF MEASUREMENT'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'WERKS'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '06'.
LS_FIELDCAT-SELTEXT_S = TEXT-037. "'PLANT'.
LS_FIELDCAT-SELTEXT_M = TEXT-037. "'PLANT'.
LS_FIELDCAT-SELTEXT_L = TEXT-037. "'PLANT'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
IF P_RADIO5 NE 'X'.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'MATNR'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '13'.
LS_FIELDCAT-SELTEXT_S = TEXT-038. "'MAT. NUMBER'.
LS_FIELDCAT-SELTEXT_M = TEXT-038. "'MAT. NUMBER'.
LS_FIELDCAT-SELTEXT_L = TEXT-038. "'MAT. NUMBER'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'MAKTX'.
LS_FIELDCAT-TABNAME = 'IT_FINAL'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '35 '.
LS_FIELDCAT-SELTEXT_S = TEXT-039. "'MATERIAL DESC.'.
LS_FIELDCAT-SELTEXT_M = TEXT-039. "'MATERIAL DESC.'.
LS_FIELDCAT-SELTEXT_L = TEXT-039. "'MATERIAL DESC.'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
ENDIF.
GS_SORT-FIELDNAME = 'BELNR'.
GS_SORT-SPOS = 1.
GS_SORT-UP = 'X'.
GS_SORT-SUBTOT = 'X'.
APPEND GS_SORT TO GT_SORT.
ENDFORM. " PASS_FIELD_NAME
*&---------------------------------------------------------------------*
*& Form EVENTTAB_BUILD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GT_EVENT[] text
*----------------------------------------------------------------------*
FORM EVENTTAB_BUILD USING P_GT_EVENTS TYPE SLIS_T_EVENT .
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = P_GT_EVENTS[].
READ TABLE P_GT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO P_GT_EVENTS.
ENDIF.
ENDFORM. " EVENTTAB_BUILD
*&---------------------------------------------------------------------*
*& Form COMMENT_BUILD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GT_LIST_TOP_OF_PAGE[] text
*----------------------------------------------------------------------*
FORM COMMENT_BUILD USING P_GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER .
CLEAR LS_LINE.
LS_LINE-TYP = 'H'.
LS_LINE-INFO = TEXT-003.
APPEND LS_LINE TO P_GT_LIST_TOP_OF_PAGE.
CLEAR : L_INFO, LS_LINE.
CONCATENATE L_DATE 'to' L_DATE1
INTO L_INFO SEPARATED BY SPACE.
CLEAR LS_LINE.
LS_LINE-TYP = 'H'.
LS_LINE-INFO = L_INFO.
APPEND LS_LINE TO P_GT_LIST_TOP_OF_PAGE.
CLEAR : L_INFO, LS_LINE.
CONCATENATE TEXT-040 V_CURRENT_DATE
INTO L_INFO SEPARATED BY SPACE.
CLEAR LS_LINE.
LS_LINE-TYP = 'A'.
LS_LINE-INFO = L_INFO.
APPEND LS_LINE TO P_GT_LIST_TOP_OF_PAGE.
CLEAR : L_INFO, LS_LINE.
ENDFORM. " COMMENT_BUILD
*&---------------------------------------------------------------------*
*& Form PASS_DATA_LIST_OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM PASS_DATA_LIST_OUTPUT .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID
IS_LAYOUT = V_LAYOUT
IT_FIELDCAT = FIELDCAT
I_SAVE = 'A'
IT_EVENTS = GT_EVENT
IT_SORT = GT_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.
LEAVE LIST-PROCESSING.
ENDFORM. " PASS_DATA_LIST_OUTPUT
*&---------------------------------------------------------------------*
*& Form TOP_OF_PAGE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM TOP_OF_PAGE .
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
ENDFORM. " TOP_OF_PAGE
*&---------------------------------------------------------------------*
*& Form GET_DATA_RSEG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_RSEG .
SELECT RBKP~BELNR
RBKP~GJAHR
RBKP~BLDAT
RBKP~BUDAT
RBKP~STBLG
FROM RBKP INTO TABLE IT_RBKP
WHERE BUDAT IN S_BUDAT.
IF SY-SUBRC = '0'.
SORT IT_RBKP BY BELNR.
ELSE.
LEAVE LIST-PROCESSING.
ENDIF.
SORT IT_RBKP BY BELNR.
IF S_WERKS IS INITIAL.
SELECT RSEG~BELNR
RSEG~GJAHR
RSEG~BUZEI
RSEG~EBELN
RSEG~EBELP
RSEG~MATNR
RSEG~LFBNR
RSEG~BUKRS
RSEG~WRBTR
RSEG~MENGE
RSEG~LFPOS
RSEG~MWSKZ
EKKO~AEDAT
J_1IMOVEND~J_1ICSTNO " ADDED THIS FOR TEST
FROM RSEG INNER JOIN EKKO ON RSEG~EBELN = EKKO~EBELN LEFT OUTER JOIN J_1IMOVEND
ON EKKO~LIFNR = J_1IMOVEND~LIFNR
INTO CORRESPONDING FIELDS OF TABLE IT_RSEG
FOR ALL ENTRIES IN IT_RBKP WHERE BELNR = IT_RBKP-BELNR
AND GJAHR = IT_RBKP-GJAHR.
SELECT EKKO~EBELN EKKO~KNUMV RSEG~BUZEI
FROM RSEG INNER JOIN EKKO ON RSEG~EBELN = EKKO~EBELN
INTO CORRESPONDING FIELDS OF TABLE IT_SEG
FOR ALL ENTRIES IN IT_RSEG
WHERE EKKO~EBELN = IT_RSEG-EBELN.
SELECT
KWERT
FROM KONV INTO CORRESPONDING FIELDS OF TABLE IIT_SEG2
FOR ALL ENTRIES IN IT_SEG
WHERE KNUMV = IT_SEG-KNUMV AND KPOSN = IT_SEG-BUZEI AND KSCHL = 'JIPC'.
SELECT
KWERT
FROM KONV INTO CORRESPONDING FIELDS OF TABLE IIT_SEG3
FOR ALL ENTRIES IN IT_SEG
WHERE KNUMV = IT_SEG-KNUMV AND KPOSN = IT_SEG-BUZEI AND KSCHL ='BASB'.
ELSE.
SELECT RSEG~BELNR
RSEG~GJAHR
RSEG~BUZEI
RSEG~EBELN
RSEG~EBELP
RSEG~MATNR
RSEG~LFBNR
RSEG~BUKRS
RSEG~WERKS
RSEG~WRBTR
RSEG~LFPOS
RSEG~LIFNR
RSEG~MWSKZ " ADDED THIS FOR TEST
RSEG~MATNR
EKKO~AEDAT
J_1IMOVEND~J_1ICSTNO " ADDED THIS FOR TEST
FROM RSEG INNER JOIN EKKO ON RSEG~EBELN = EKKO~EBELN LEFT OUTER JOIN J_1IMOVEND
ON EKKO~LIFNR = J_1IMOVEND~LIFNR
INTO CORRESPONDING FIELDS OF TABLE IT_RSEG
FOR ALL ENTRIES IN IT_RBKP WHERE BELNR = IT_RBKP-BELNR
AND GJAHR = IT_RBKP-GJAHR
AND WERKS IN S_WERKS.
SELECT EKKO~EBELN EKKO~KNUMV RSEG~BUZEI
FROM RSEG INNER JOIN EKKO ON RSEG~EBELN = EKKO~EBELN
INTO CORRESPONDING FIELDS OF TABLE IT_SEG
FOR ALL ENTRIES IN IT_RSEG
WHERE EKKO~EBELN = IT_RSEG-EBELN.
SELECT
KWERT
FROM KONV INTO CORRESPONDING FIELDS OF TABLE IIT_SEG2
FOR ALL ENTRIES IN IT_SEG
WHERE KNUMV = IT_SEG-KNUMV AND KPOSN = IT_SEG-BUZEI AND KSCHL = 'JIPC'.
SELECT
KWERT
FROM KONV INTO CORRESPONDING FIELDS OF TABLE IIT_SEG3
FOR ALL ENTRIES IN IT_SEG
WHERE KNUMV = IT_SEG-KNUMV AND KPOSN = IT_SEG-BUZEI AND KSCHL ='BASB'.
ENDIF.
DELETE IT_RSEG WHERE MATNR IS INITIAL.
SORT IT_RSEG BY BELNR.
SORT IT_RBKP BY BELNR.
LOOP AT IT_RSEG INTO WA_RSEG.
WA_FINAL-J_1ICSTNO = WA_RSEG-J_1ICSTNO.
IF WA_FINAL-J_1ICSTNO IS NOT INITIAL.
WA_FINAL-ZREG = 'Y'.
ELSE.
WA_FINAL-ZREG = 'N'.
ENDIF.
WA_FINAL-KNUMV = WA_RSEG-KNUMV.
WA_FINAL-AEDAT = WA_RSEG-AEDAT.
WA_FINAL-BUZEI = WA_RSEG-BUZEI.
WA_FINAL-BELNR = WA_RSEG-BELNR.
WA_FINAL-GJAHR = WA_RSEG-GJAHR.
WA_FINAL-WRBTR = WA_RSEG-WRBTR.
WA_FINAL-EBELN = WA_RSEG-EBELN.
WA_FINAL-EBELP = WA_RSEG-EBELP.
WA_FINAL-MATNR = WA_RSEG-MATNR.
WA_FINAL-LFBNR = WA_RSEG-LFBNR.
WA_FINAL-MWSKZ = WA_RSEG-MWSKZ. " ADDED THIS FOR TEST
APPEND WA_FINAL TO IT_FINAL.
ENDLOOP.
LOOP AT IIT_SEG2 INTO WA_IIT_SEG2.
WA_FINAL-KWERT = WA_IIT_SEG2-KWERT1.
WA_FINAL-KWERT_BASIC = WA_IIT_SEG3-KWERT.
APPEND WA_FINAL TO IT_FINAL.
ENDLOOP.
DELETE IT_FINAL WHERE MATNR IS INITIAL.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_RBKP.
READ TABLE IT_RBKP INTO WA_RBKP WITH KEY BELNR = WA_FINAL-BELNR
GJAHR = WA_FINAL-GJAHR
BINARY SEARCH.
IF SY-SUBRC = 0.
* WA_FINAL-BLDAT1 = WA_RBKP-BLDAT.
WA_FINAL-STBLG = WA_RBKP-STBLG.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING STBLG.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
ENDFORM. " GET_DATA_RSEG
*&---------------------------------------------------------------------*
*& Form GET_DATA_MSEG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_MSEG .
SELECT
MBLNR "Number of Material Document
MJAHR
ZEILE
BWART
MATNR
WERKS
LIFNR
DMBTR
ERFMG
ERFME
EBELN
EBELP
LFBNR
GSBER
LFPOS
BUKRS
FROM MSEG INTO TABLE IT_MSEG
FOR ALL ENTRIES IN IT_RSEG
WHERE MBLNR = IT_RSEG-LFBNR
AND MATNR = IT_RSEG-MATNR
AND MENGE = IT_RSEG-MENGE
AND BWART IN ('101','102','105','122').
DELETE IT_MSEG WHERE MATNR IS INITIAL.
IT_MSEG1[] = IT_MSEG[].
DELETE IT_MSEG1 WHERE BWART = '101'.
DELETE IT_MSEG1 WHERE LFBNR IS INITIAL.
DELETE IT_MSEG WHERE BWART = '102'.
DELETE IT_MSEG WHERE BWART = '122'.
SORT IT_MSEG1 BY LFBNR.
SORT IT_MSEG BY MBLNR.
LOOP AT IT_MSEG INTO WA_MSEG.
LOOP AT IT_MSEG1 INTO WA_MSEG1.
IF WA_MSEG1-LFBNR = WA_MSEG-MBLNR AND
WA_MSEG1-MATNR = WA_MSEG-MATNR.
WA_MSEG-TAG1 = 'A'.
MODIFY IT_MSEG FROM WA_MSEG TRANSPORTING TAG1.
ENDIF.
ENDLOOP.
ENDLOOP.
DELETE IT_MSEG WHERE TAG1 = 'A'.
IF SY-SUBRC = 0.
DELETE IT_MSEG WHERE BWART IS INITIAL.
DELETE IT_MSEG WHERE WERKS IS INITIAL.
SORT IT_MSEG BY MBLNR.
ENDIF.
SORT IT_FINAL BY MATNR LFBNR.
SORT IT_MSEG BY MATNR LFBNR.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_MSEG.
READ TABLE IT_MSEG INTO WA_MSEG WITH KEY MBLNR = WA_FINAL-LFBNR
MATNR = WA_FINAL-MATNR
EBELN = WA_FINAL-EBELN
EBELP = WA_FINAL-EBELP.
IF SY-SUBRC = 0.
WA_FINAL-ZEILE = WA_MSEG-ZEILE.
WA_FINAL-MBLNR = WA_MSEG-MBLNR.
WA_FINAL-MJAHR = WA_MSEG-MJAHR.
WA_FINAL-BWART = WA_MSEG-BWART.
WA_FINAL-WERKS = WA_MSEG-WERKS.
WA_FINAL-LIFNR = WA_MSEG-LIFNR.
WA_FINAL-ERFMG = WA_MSEG-ERFMG.
WA_FINAL-ERFME = WA_MSEG-ERFME.
WA_FINAL-LFBNR = WA_MSEG-LFBNR.
WA_FINAL-GSBER = WA_MSEG-GSBER.
WA_FINAL-LFPOS = WA_MSEG-LFPOS.
WA_FINAL-BUKRS = WA_MSEG-BUKRS.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING ZEILE MBLNR MJAHR BWART WERKS LIFNR ERFMG ERFME LFBNR GSBER LFPOS BUKRS.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
DELETE IT_FINAL WHERE BWART IS INITIAL.
DELETE IT_FINAL WHERE LIFNR IS INITIAL.
SORT IT_FINAL BY MBLNR MJAHR.
SORT IT_MKPF BY MBLNR MJAHR.
ENDFORM. " GET_DATA_MSEG
*&---------------------------------------------------------------------*
*& Form GET_DATA_MKPF
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_MKPF .
SELECT
MBLNR "Number of Material Document
MJAHR "Material Document Year
BLDAT "Document Date in Document
BUDAT "POSTING DATE
XBLNR "GRN challan no.
FROM MKPF INTO TABLE IT_MKPF
FOR ALL ENTRIES IN IT_MSEG
WHERE MBLNR = IT_MSEG-MBLNR
AND MJAHR = IT_MSEG-MJAHR.
SORT IT_FINAL BY MBLNR MJAHR.
SORT IT_MKPF BY MBLNR MJAHR.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_MKPF.
READ TABLE IT_MKPF INTO WA_MKPF WITH KEY MBLNR = WA_FINAL-MBLNR
MJAHR = WA_FINAL-MJAHR
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL-BUDAT = WA_MKPF-BUDAT.
WA_FINAL-BLDAT = WA_MKPF-BLDAT.
WA_FINAL-XBLNR = WA_MKPF-XBLNR.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING BUDAT BLDAT XBLNR.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
ENDFORM. " GET_DATA_MKPF
*&---------------------------------------------------------------------*
*& Form FETCH_RAW_MAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FETCH_RAW_MAT .
SELECT EBELN
EBELP
MWSKZ
FROM EKPO INTO CORRESPONDING FIELDS OF
TABLE IT_EKPO FOR ALL ENTRIES IN IT_MSEG WHERE EBELN = IT_MSEG-EBELN
AND EBELP = IT_MSEG-EBELP.
SORT IT_EKPO BY EBELN EBELP .
SORT IT_FINAL BY EBELN EBELP.
************************************** COMMENTED THIS THIS FOR TEST***********************************
* LOOP AT IT_FINAL INTO WA_FINAL.
* CLEAR WA_EKPO.
* READ TABLE IT_EKPO INTO WA_EKPO WITH KEY EBELN = WA_FINAL-EBELN
* EBELP = WA_FINAL-EBELP
* BINARY SEARCH.
* IF SY-SUBRC = 0.
* WA_FINAL-MWSKZ = WA_EKPO-MWSKZ.
* MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING MWSKZ.
* ENDIF.
* CLEAR WA_FINAL.
* ENDLOOP.
***************************************************************************************************
****************************************************************************************************
DELETE IT_FINAL WHERE EBELN IS INITIAL.
DELETE IT_FINAL WHERE ( MWSKZ = 'A0') OR ( MWSKZ = 'C1' ) OR ( MWSKZ = 'C3' ) OR ( MWSKZ = 'C4' )
OR ( MWSKZ = 'C5' ) OR ( MWSKZ = 'CA' ) OR ( MWSKZ = 'CB' ) OR ( MWSKZ = 'CC' ) OR ( MWSKZ = 'CD' )
OR ( MWSKZ = 'CE' ) OR ( MWSKZ = 'CT' ) OR ( MWSKZ = 'L1' ) OR ( MWSKZ = 'L2' ) OR ( MWSKZ = 'L3' )
OR ( MWSKZ = 'L4' ) OR ( MWSKZ = 'L5' ) OR ( MWSKZ = 'L6' ) OR ( MWSKZ = 'L7' ) OR ( MWSKZ = 'L8' )
OR ( MWSKZ = 'L9' ).
DELETE IT_FINAL WHERE ( MWSKZ = 'A1') OR ( MWSKZ = 'A2' ) OR ( MWSKZ = 'A5' ) OR ( MWSKZ = 'A6' )
OR ( MWSKZ = 'AA' ) OR ( MWSKZ = 'AB' ) OR ( MWSKZ = 'AE' ) OR ( MWSKZ = 'AF' ) OR ( MWSKZ = 'AM' )
OR ( MWSKZ = 'AN' ) OR ( MWSKZ = 'B1' ) OR ( MWSKZ = 'B2' ) OR ( MWSKZ = 'B5' ) OR ( MWSKZ = 'B6' )
OR ( MWSKZ = 'BA' ) OR ( MWSKZ = 'BB' ) OR ( MWSKZ = 'BE' ) OR ( MWSKZ = 'BF' ) OR ( MWSKZ = 'V1' ) OR ( MWSKZ = 'V2' ).
DELETE IT_FINAL WHERE ( MWSKZ = 'S1') OR ( MWSKZ = 'S2' ) OR ( MWSKZ = 'S3' ) OR ( MWSKZ = 'S4' )
OR ( MWSKZ = 'S5' ) OR ( MWSKZ = 'S6' ) OR ( MWSKZ = 'S7' ) OR ( MWSKZ = 'S8' ) OR ( MWSKZ = 'S9' )
OR ( MWSKZ = 'SA' ) OR ( MWSKZ = 'SB' ) OR ( MWSKZ = 'SC' ) OR ( MWSKZ = 'SD' ) OR ( MWSKZ = 'SE' )
OR ( MWSKZ = 'SF' ) OR ( MWSKZ = 'SG' ) OR ( MWSKZ = 'SH' ) OR ( MWSKZ = 'SI' )
OR ( MWSKZ = 'X0' ) OR ( MWSKZ = 'Z0' ) OR ( MWSKZ = 'Z1' ) .
DELETE IT_FINAL WHERE ( MWSKZ = 'L1') OR ( MWSKZ = 'L2' ) OR ( MWSKZ = 'L3' ) OR ( MWSKZ = 'L4' )
OR ( MWSKZ = 'L5' ) OR ( MWSKZ = 'L6' ) OR ( MWSKZ = 'L7' ) OR ( MWSKZ = 'L8' ) OR ( MWSKZ = 'L9' )
OR ( MWSKZ = 'X0' ).
DELETE IT_FINAL WHERE ( MWSKZ = 'X1').
ENDFORM. " FETCH_RAW_MAT
*&---------------------------------------------------------------------*
*& Form GET_DATA_BKPF
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_BKPF .
LOOP AT IT_FINAL INTO WA_FINAL.
CONCATENATE WA_FINAL-BELNR WA_FINAL-GJAHR INTO WA_FINAL-AWKEY.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING AWKEY.
ENDLOOP.
SELECT BUKRS
BELNR
GJAHR
BLART
BLDAT
BUDAT
XBLNR
AWKEY FROM BKPF INTO TABLE IT_BKPF
FOR ALL ENTRIES IN IT_FINAL
WHERE AWKEY = IT_FINAL-AWKEY
AND BLART IN ('RE','RL')
AND BUKRS = '1000'.
SORT IT_BKPF BY AWKEY.
SORT IT_FINAL BY AWKEY.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_BKPF.
READ TABLE IT_BKPF INTO WA_BKPF WITH KEY AWKEY = WA_FINAL-AWKEY
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL-BELNR1 = WA_BKPF-BELNR.
WA_FINAL-BLDAT1 = WA_BKPF-BLDAT.
WA_FINAL-BUDAT1 = WA_BKPF-BUDAT.
WA_FINAL-XBLNR1 = WA_BKPF-XBLNR.
WA_FINAL-BLART = WA_BKPF-BLART.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING BELNR1 BLDAT1 BUDAT1 XBLNR1 BLART.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
DELETE IT_FINAL WHERE BLART = 'RL'.
DELETE IT_FINAL WHERE XBLNR1 IS INITIAL.
DELETE IT_FINAL WHERE LIFNR = 'G034'.
ENDFORM. " GET_DATA_BKPF
*&---------------------------------------------------------------------*
*& Form FETCH_RAW_MAT_CST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FETCH_RAW_MAT_CST .
SELECT EBELN
EBELP
MWSKZ FROM EKPO INTO CORRESPONDING FIELDS OF
TABLE IT_EKPO FOR ALL ENTRIES IN IT_FINAL WHERE EBELN = IT_FINAL-EBELN
AND EBELP = IT_FINAL-EBELP.
SORT IT_EKPO BY EBELN EBELP .
SORT IT_FINAL BY EBELN EBELP.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_EKPO.
READ TABLE IT_EKPO INTO WA_EKPO WITH KEY EBELN = WA_FINAL-EBELN
EBELP = WA_FINAL-EBELP
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL-MWSKZ = WA_EKPO-MWSKZ.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING MWSKZ.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
DELETE IT_FINAL WHERE ( MWSKZ = 'A3') OR ( MWSKZ = 'A4' ) OR ( MWSKZ = 'A7' ) OR ( MWSKZ = 'A8' )
OR ( MWSKZ = 'AC' ) OR ( MWSKZ = 'AD' ) OR ( MWSKZ = 'AG' ) OR ( MWSKZ = 'AH' ) OR ( MWSKZ = 'AI' )
OR ( MWSKZ = 'AJ' ) OR ( MWSKZ = 'AK' ) OR ( MWSKZ = 'AL' ) OR ( MWSKZ = 'B3' ) OR ( MWSKZ = 'B4' )
OR ( MWSKZ = 'B7' ) OR ( MWSKZ = 'B8' ) OR ( MWSKZ = 'BC' ) OR ( MWSKZ = 'BD' ) OR ( MWSKZ = 'BG' ) OR ( MWSKZ = 'BH' ).
DELETE IT_FINAL WHERE ( MWSKZ = 'A1') OR ( MWSKZ = 'A2' ) OR ( MWSKZ = 'A5' ) OR ( MWSKZ = 'A6' )
OR ( MWSKZ = 'AA' ) OR ( MWSKZ = 'AB' ) OR ( MWSKZ = 'AE' ) OR ( MWSKZ = 'AF' ) OR ( MWSKZ = 'AM' )
OR ( MWSKZ = 'AN' ) OR ( MWSKZ = 'B1' ) OR ( MWSKZ = 'B2' ) OR ( MWSKZ = 'B5' ) OR ( MWSKZ = 'B6' )
OR ( MWSKZ = 'BA' ) OR ( MWSKZ = 'BB' ) OR ( MWSKZ = 'BE' ) OR ( MWSKZ = 'BF' ) .
DELETE IT_FINAL WHERE ( MWSKZ = 'S1') OR ( MWSKZ = 'S2' ) OR ( MWSKZ = 'S3' ) OR ( MWSKZ = 'S4' )
OR ( MWSKZ = 'S5' ) OR ( MWSKZ = 'S6' ) OR ( MWSKZ = 'S7' ) OR ( MWSKZ = 'S8' ) OR ( MWSKZ = 'S9' )
OR ( MWSKZ = 'SA' ) OR ( MWSKZ = 'SB' ) OR ( MWSKZ = 'SC' ) OR ( MWSKZ = 'SD' ) OR ( MWSKZ = 'SE' )
OR ( MWSKZ = 'SF' ) OR ( MWSKZ = 'SG' ) OR ( MWSKZ = 'SH' ) OR ( MWSKZ = 'SI' )
OR ( MWSKZ = 'X0' ) OR ( MWSKZ = 'Z0' ).
DELETE IT_FINAL WHERE ( MWSKZ = 'L1') OR ( MWSKZ = 'L2' ) OR ( MWSKZ = 'L3' ) OR ( MWSKZ = 'L4' )
OR ( MWSKZ = 'L5' ) OR ( MWSKZ = 'L6' ) OR ( MWSKZ = 'L7' ) OR ( MWSKZ = 'L8' ) OR ( MWSKZ = 'L9' )
OR ( MWSKZ = 'X0' ) OR ( MWSKZ = 'Z1' ).
DELETE IT_FINAL WHERE ( MWSKZ = 'X1').
ENDFORM. " FETCH_RAW_MAT_CST
*&---------------------------------------------------------------------*
*& Form GUI_STATUS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GUI_STATUS .
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = 50
TEXT = TEXT-004. "Extracting Data...
ENDFORM. " GUI_STATUS
*&---------------------------------------------------------------------*
*& Form FETCH_NONTAX
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FETCH_NONTAX .
SELECT EBELN
EBELP
MWSKZ FROM EKPO INTO CORRESPONDING FIELDS OF
TABLE IT_EKPO FOR ALL ENTRIES IN IT_FINAL WHERE EBELN = IT_FINAL-EBELN
AND EBELP = IT_FINAL-EBELP.
SORT IT_EKPO BY EBELN EBELP .
SORT IT_FINAL BY EBELN EBELP.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_EKPO.
READ TABLE IT_EKPO INTO WA_EKPO WITH KEY EBELN = WA_FINAL-EBELN
EBELP = WA_FINAL-EBELP
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL-MWSKZ = WA_EKPO-MWSKZ.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING MWSKZ.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
DELETE IT_FINAL WHERE ( MWSKZ = 'A3') OR ( MWSKZ = 'A4' ) OR ( MWSKZ = 'A7' ) OR ( MWSKZ = 'A8' )
OR ( MWSKZ = 'AC' ) OR ( MWSKZ = 'AD' ) OR ( MWSKZ = 'AG' ) OR ( MWSKZ = 'AH' ) OR ( MWSKZ = 'AI' )
OR ( MWSKZ = 'AJ' ) OR ( MWSKZ = 'AK' ) OR ( MWSKZ = 'AL' ) OR ( MWSKZ = 'B3' ) OR ( MWSKZ = 'B4' )
OR ( MWSKZ = 'B7' ) OR ( MWSKZ = 'B8' ) OR ( MWSKZ = 'BC' ) OR ( MWSKZ = 'BD' ) OR ( MWSKZ = 'BG' ) OR ( MWSKZ = 'BH' ).
DELETE IT_FINAL WHERE ( MWSKZ = 'A1') OR ( MWSKZ = 'A2' ) OR ( MWSKZ = 'A5' ) OR ( MWSKZ = 'A6' )
OR ( MWSKZ = 'AA' ) OR ( MWSKZ = 'AB' ) OR ( MWSKZ = 'AE' ) OR ( MWSKZ = 'AF' ) OR ( MWSKZ = 'AM' )
OR ( MWSKZ = 'AN' ) OR ( MWSKZ = 'B1' ) OR ( MWSKZ = 'B2' ) OR ( MWSKZ = 'B5' ) OR ( MWSKZ = 'B6' )
OR ( MWSKZ = 'BA' ) OR ( MWSKZ = 'BB' ) OR ( MWSKZ = 'BE' ) OR ( MWSKZ = 'BF' ) .
DELETE IT_FINAL WHERE ( MWSKZ = 'C1' ) OR ( MWSKZ = 'C3' ) OR ( MWSKZ = 'C4' )
OR ( MWSKZ = 'C5' ) OR ( MWSKZ = 'CA' ) OR ( MWSKZ = 'CB' ) OR ( MWSKZ = 'CC' ) OR ( MWSKZ = 'CD' )
OR ( MWSKZ = 'CE' ) OR ( MWSKZ = 'CT' ).
DELETE IT_FINAL WHERE ( MWSKZ = 'S1') OR ( MWSKZ = 'S2' ) OR ( MWSKZ = 'S3' ) OR ( MWSKZ = 'S4' )
OR ( MWSKZ = 'S5' ) OR ( MWSKZ = 'S6' ) OR ( MWSKZ = 'S7' ) OR ( MWSKZ = 'S8' ) OR ( MWSKZ = 'S9' )
OR ( MWSKZ = 'SA' ) OR ( MWSKZ = 'SB' ) OR ( MWSKZ = 'SC' ) OR ( MWSKZ = 'SD' ) OR ( MWSKZ = 'SE' )
OR ( MWSKZ = 'SF' ) OR ( MWSKZ = 'SG' ) OR ( MWSKZ = 'SH' ) OR ( MWSKZ = 'SI' ) OR ( MWSKZ = 'X1' ).
ENDFORM. " FETCH_NONTAX
*&---------------------------------------------------------------------*
*& Form FETCH_CAP_VAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FETCH_CAP_VAT .
SELECT EBELN
EBELP
MWSKZ FROM EKPO INTO CORRESPONDING FIELDS OF
TABLE IT_EKPO FOR ALL ENTRIES IN IT_FINAL WHERE EBELN = IT_FINAL-EBELN
AND EBELP = IT_FINAL-EBELP.
SORT IT_EKPO BY EBELN EBELP .
SORT IT_FINAL BY EBELN EBELP.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_EKPO.
READ TABLE IT_EKPO INTO WA_EKPO WITH KEY EBELN = WA_FINAL-EBELN
EBELP = WA_FINAL-EBELP
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL-MWSKZ = WA_EKPO-MWSKZ.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING MWSKZ.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
DELETE IT_FINAL WHERE EBELN IS INITIAL.
DELETE IT_FINAL WHERE ( MWSKZ = 'A0') OR ( MWSKZ = 'C1' ) OR ( MWSKZ = 'C3' ) OR ( MWSKZ = 'C4' )
OR ( MWSKZ = 'C5' ) OR ( MWSKZ = 'CA' ) OR ( MWSKZ = 'CB' ) OR ( MWSKZ = 'CC' ) OR ( MWSKZ = 'CD' )
OR ( MWSKZ = 'CE' ) OR ( MWSKZ = 'CT' ) OR ( MWSKZ = 'L1' ) OR ( MWSKZ = 'L2' ) OR ( MWSKZ = 'L3' )
OR ( MWSKZ = 'L4' ) OR ( MWSKZ = 'L5' ) OR ( MWSKZ = 'L6' ) OR ( MWSKZ = 'L7' ) OR ( MWSKZ = 'L8' )
OR ( MWSKZ = 'L9' ).
DELETE IT_FINAL WHERE ( MWSKZ = 'S1') OR ( MWSKZ = 'S2' ) OR ( MWSKZ = 'S3' ) OR ( MWSKZ = 'S4' )
OR ( MWSKZ = 'S5' ) OR ( MWSKZ = 'S6' ) OR ( MWSKZ = 'S7' ) OR ( MWSKZ = 'S8' ) OR ( MWSKZ = 'S9' )
OR ( MWSKZ = 'SA' ) OR ( MWSKZ = 'SB' ) OR ( MWSKZ = 'SC' ) OR ( MWSKZ = 'SD' ) OR ( MWSKZ = 'SE' )
OR ( MWSKZ = 'SF' ) OR ( MWSKZ = 'SG' ) OR ( MWSKZ = 'SH' ) OR ( MWSKZ = 'SI' )
OR ( MWSKZ = 'X0' ) ."OR ( MWSKZ = 'Z0' ) .
DELETE IT_FINAL WHERE ( MWSKZ = 'L1') OR ( MWSKZ = 'L2' ) OR ( MWSKZ = 'L3' ) OR ( MWSKZ = 'L4' )
OR ( MWSKZ = 'L5' ) OR ( MWSKZ = 'L6' ) OR ( MWSKZ = 'L7' ) OR ( MWSKZ = 'L8' ) OR ( MWSKZ = 'L9' )
OR ( MWSKZ = 'X0' ).
DELETE IT_FINAL WHERE ( MWSKZ = 'A3') OR ( MWSKZ = 'A4' ) OR ( MWSKZ = 'A7' ) OR ( MWSKZ = 'A8' )
OR ( MWSKZ = 'AC' ) OR ( MWSKZ = 'AD' ) OR ( MWSKZ = 'AG' ) OR ( MWSKZ = 'AH' ) OR ( MWSKZ = 'AI' )
OR ( MWSKZ = 'AJ' ) OR ( MWSKZ = 'AK' ) OR ( MWSKZ = 'AL' ) OR ( MWSKZ = 'B7' ) OR ( MWSKZ = 'B8' )
OR ( MWSKZ = 'BC' ) OR ( MWSKZ = 'BD' ) OR ( MWSKZ = 'BG' ) OR ( MWSKZ = 'BH' ).
DELETE IT_FINAL WHERE ( MWSKZ = 'X1')." OR ( MWSKZ = 'Z1' ). ***************************************
ENDFORM. " FETCH_CAP_VAT
*&---------------------------------------------------------------------*
*& Form GET_DATA_BSET_CGVAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_BSET_CGVAT .
SORT IT_FINAL BY BELNR1.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_BSET.
SELECT BUKRS
BELNR
GJAHR
BUZEI
TXGRP
HWBAS
HWSTE
KTOSL
KSCHL
KBETR FROM BSET INTO TABLE IT_BSET
WHERE BELNR = WA_FINAL-BELNR1
AND GJAHR = WA_FINAL-GJAHR
AND BUKRS = '1000'
AND KSCHL IN ('JMOQ','JMOP','JMIP','JMIQ','JEC1','JEC2','JSEI','JSEP',
'JVRD','JVRN','JIPL','JIPS','JIPC','JVCN','JVCD','JVCS')
AND TXGRP = WA_FINAL-TXGRP.
DELETE IT_BSET WHERE HWSTE IS INITIAL.
* IF SY-SUBRC = 0.
PERFORM GET_ED.
PERFORM GET_ECESS.
PERFORM GET_SCESS.
* PERFORM GET_VAT_CST_CGCAP.
PERFORM GET_OTHCHARGE_CGCAP.
* ENDIF.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING
W_ED W_ECESS W_SCESS W_VATCST W_OTHCHA .
CLEAR WA_FINAL.
ENDLOOP.
ENDFORM. " GET_DATA_BSET_CGVAT
*&---------------------------------------------------------------------*
*& Form GET_OTHCHARGE_CGCAP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_OTHCHARGE_CGCAP .
ENDFORM. " GET_OTHCHARGE_CGCAP
*&---------------------------------------------------------------------*
*& Form GET_VAT_CST_CGCAP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_VAT_CST_CGCAP .
LOOP AT IT_BSET INTO WA_BSET.
IF WA_BSET-KSCHL = 'JVRD' OR
WA_BSET-KSCHL = 'JVRN' OR
WA_BSET-KSCHL = 'JIPL' OR
WA_BSET-KSCHL = 'JIPS' OR
WA_BSET-KSCHL = 'JVCD' OR
WA_BSET-KSCHL = 'JVCN' OR
WA_BSET-KSCHL = 'JVCS' OR
WA_BSET-KSCHL = 'JIPC'.
IF SY-SUBRC = 0.
WA_FINAL-W_VATCST = WA_FINAL-W_VATCST + WA_BSET-HWSTE.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM. " GET_VAT_CST_CGCAP
*&---------------------------------------------------------------------*
*& Form GET_DATA_BSET_SER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_BSET_SER .
SORT IT_FINAL BY BELNR1.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_BSET1.
SELECT BUKRS
BELNR
GJAHR
BUZEI
TXGRP
HWBAS
HWSTE
KTOSL
KSCHL
KBETR FROM BSET INTO TABLE IT_BSET1
WHERE BELNR = WA_FINAL-BELNR1
AND GJAHR = WA_FINAL-GJAHR
AND BUKRS = '1000'
AND KSCHL IN ('JSER','JSVD','JEC3','JEC4','JEC5','JEC6','JVCN','JVCD','JVCS')
AND TXGRP = WA_FINAL-TXGRP.
DELETE IT_BSET1 WHERE HWSTE IS INITIAL.
* IF SY-SUBRC = 0.
* PERFORM GET_SER_TAX.
PERFORM GET_OTHCHARGE1.
* ENDIF.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING W_SERTX W_ECESS W_SCESS W_OTHCHA.
CLEAR WA_FINAL.
ENDLOOP.
ENDFORM. " GET_DATA_BSET_SER
*&---------------------------------------------------------------------*
*& Form GET_SER_TAX
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_SER_TAX .
LOOP AT IT_BSET1 INTO WA_BSET1.
IF WA_BSET1-KSCHL = 'JSER' OR
WA_BSET1-KSCHL = 'JSVD' .
* IF SY-SUBRC = 0.
WA_FINAL-W_SERTX = WA_FINAL-W_SERTX + WA_BSET1-HWSTE.
* ENDIF.
ENDIF.
IF WA_BSET1-KSCHL = 'JEC3' OR
WA_BSET1-KSCHL = 'JEC4' .
* IF SY-SUBRC = 0.
WA_FINAL-W_ECESS = WA_FINAL-W_ECESS + WA_BSET1-HWSTE.
* ENDIF.
ENDIF.
IF WA_BSET1-KSCHL = 'JEC5' OR
WA_BSET1-KSCHL = 'JEC6' .
* IF SY-SUBRC = 0.
WA_FINAL-W_SCESS = WA_FINAL-W_SCESS + WA_BSET1-HWSTE.
* ENDIF.
ENDIF.
ENDLOOP.
ENDFORM. " GET_SER_TAX
*&---------------------------------------------------------------------*
*& Form GET_OTHCHARGE1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_OTHCHARGE1 .
LOOP AT IT_BSET1 INTO WA_BSET1.
IF WA_BSET1-KSCHL = 'JVCD' OR
WA_BSET1-KSCHL = 'JVCN' OR
WA_BSET1-KSCHL = 'JVCS' .
IF SY-SUBRC = 0.
WA_FINAL-W_OTHCHA = WA_FINAL-W_OTHCHA + WA_BSET1-HWSTE.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM. " GET_OTHCHARGE1
*&---------------------------------------------------------------------*
*& Form GET_DATA_RSEG_SERVICE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_RSEG_SERVICE .
SELECT BELNR
GJAHR
BLDAT
BUDAT
STBLG FROM RBKP INTO TABLE IT_RBKP
WHERE BUDAT IN S_BUDAT.
IF SY-SUBRC = '0'.
SORT IT_RBKP BY BELNR.
ELSE.
LEAVE LIST-PROCESSING.
ENDIF.
SORT IT_RBKP BY BELNR.
IF S_WERKS IS INITIAL.
SELECT BELNR
GJAHR
BUZEI
EBELN
EBELP
MATNR
LFBNR
BUKRS
WRBTR
LFPOS
FROM RSEG INTO CORRESPONDING FIELDS OF TABLE IT_RSEG
FOR ALL ENTRIES IN IT_RBKP WHERE BELNR = IT_RBKP-BELNR
AND GJAHR = IT_RBKP-GJAHR
AND MATNR = ' '.
ELSE.
SELECT BELNR
GJAHR
BUZEI
EBELN
EBELP
MATNR
LFBNR
BUKRS
WERKS
WRBTR
LFPOS
LIFNR
FROM RSEG INTO CORRESPONDING FIELDS OF TABLE IT_RSEG
FOR ALL ENTRIES IN IT_RBKP WHERE BELNR = IT_RBKP-BELNR
AND GJAHR = IT_RBKP-GJAHR
AND WERKS IN S_WERKS
AND MATNR = ' '.
ENDIF.
DELETE IT_RSEG WHERE MATNR IS NOT INITIAL.
SORT IT_RSEG BY BELNR.
SORT IT_RBKP BY BELNR.
LOOP AT IT_RSEG INTO WA_RSEG.
WA_FINAL-BUZEI = WA_RSEG-BUZEI.
WA_FINAL-BELNR = WA_RSEG-BELNR.
WA_FINAL-GJAHR = WA_RSEG-GJAHR.
WA_FINAL-WRBTR = WA_RSEG-WRBTR.
WA_FINAL-EBELN = WA_RSEG-EBELN.
WA_FINAL-EBELP = WA_RSEG-EBELP.
WA_FINAL-MATNR = WA_RSEG-MATNR.
WA_FINAL-LFBNR = WA_RSEG-LFBNR.
APPEND WA_FINAL TO IT_FINAL.
ENDLOOP.
DELETE IT_FINAL WHERE MATNR IS NOT INITIAL.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_RBKP.
READ TABLE IT_RBKP INTO WA_RBKP WITH KEY BELNR = WA_FINAL-BELNR
GJAHR = WA_FINAL-GJAHR
BINARY SEARCH.
IF SY-SUBRC = 0.
* WA_FINAL-BLDAT1 = WA_RBKP-BLDAT.
WA_FINAL-STBLG = WA_RBKP-STBLG.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING STBLG.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
ENDFORM. " GET_DATA_RSEG_SERVICE
*&---------------------------------------------------------------------*
*& Form GET_DATA_MSEG_SERVICE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_MSEG_SERVICE .
SELECT
MBLNR "Number of Material Document
MJAHR
ZEILE
BWART
MATNR
WERKS
LIFNR
DMBTR
ERFMG
ERFME
EBELN
EBELP
LFBNR
GSBER
LFPOS
BUKRS
FROM MSEG INTO TABLE IT_MSEG2
FOR ALL ENTRIES IN IT_RSEG
WHERE LFBNR = IT_RSEG-LFBNR
AND EBELN = IT_RSEG-EBELN
AND BWART IN ('101','102','105','122').
DELETE IT_MSEG2 WHERE MATNR IS NOT INITIAL.
IT_MSEG1[] = IT_MSEG2[].
DELETE IT_MSEG1 WHERE BWART = '101'.
DELETE IT_MSEG1 WHERE LFBNR IS INITIAL.
DELETE IT_MSEG2 WHERE BWART = '102'.
DELETE IT_MSEG2 WHERE BWART = '122'.
SORT IT_MSEG1 BY LFBNR.
SORT IT_MSEG BY MBLNR.
LOOP AT IT_MSEG2 INTO WA_MSEG2.
LOOP AT IT_MSEG1 INTO WA_MSEG1.
IF WA_MSEG1-LFBNR = WA_MSEG2-MBLNR AND
WA_MSEG1-MATNR = WA_MSEG2-MATNR.
WA_MSEG-TAG1 = 'A'.
MODIFY IT_MSEG2 FROM WA_MSEG2 TRANSPORTING TAG1.
ENDIF.
ENDLOOP.
ENDLOOP.
DELETE IT_MSEG2 WHERE TAG1 = 'A'.
IF SY-SUBRC = 0.
DELETE IT_MSEG2 WHERE BWART IS INITIAL.
DELETE IT_MSEG2 WHERE WERKS IS INITIAL.
SORT IT_MSEG2 BY MBLNR.
ENDIF.
SORT IT_FINAL BY MATNR LFBNR.
SORT IT_MSEG2 BY MATNR LFBNR.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_MSEG2.
READ TABLE IT_MSEG2 INTO WA_MSEG2 WITH KEY LFBNR = WA_FINAL-LFBNR
MATNR = WA_FINAL-MATNR.
IF SY-SUBRC = 0.
WA_FINAL-ZEILE = WA_MSEG2-ZEILE.
WA_FINAL-MBLNR = WA_MSEG2-MBLNR.
WA_FINAL-MJAHR = WA_MSEG2-MJAHR.
WA_FINAL-BWART = WA_MSEG2-BWART.
WA_FINAL-WERKS = WA_MSEG2-WERKS.
WA_FINAL-LIFNR = WA_MSEG2-LIFNR.
* WA_FINAL-WRBTR1 = WA_MSEG2-DMBTR.
WA_FINAL-ERFMG = WA_MSEG2-ERFMG.
WA_FINAL-ERFME = WA_MSEG2-ERFME.
WA_FINAL-LFBNR = WA_MSEG2-LFBNR.
WA_FINAL-GSBER = WA_MSEG2-GSBER.
WA_FINAL-LFPOS = WA_MSEG2-LFPOS.
WA_FINAL-BUKRS = WA_MSEG2-BUKRS.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING ZEILE MBLNR MJAHR BWART WERKS LIFNR ERFMG ERFME LFBNR GSBER LFPOS BUKRS.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
DELETE IT_FINAL WHERE BWART IS INITIAL.
DELETE IT_FINAL WHERE LIFNR IS INITIAL.
SORT IT_FINAL BY MBLNR MJAHR.
SORT IT_MKPF BY MBLNR MJAHR.
ENDFORM. " GET_DATA_MSEG_SERVICE
*&---------------------------------------------------------------------*
*& Form FETCH_SERVICE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FETCH_SERVICE .
SELECT EBELN
EBELP
MWSKZ FROM EKPO INTO CORRESPONDING FIELDS OF
TABLE IT_EKPO FOR ALL ENTRIES IN IT_FINAL WHERE EBELN = IT_FINAL-EBELN
AND EBELP = IT_FINAL-EBELP.
SORT IT_EKPO BY EBELN EBELP .
SORT IT_FINAL BY EBELN EBELP.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_EKPO.
READ TABLE IT_EKPO INTO WA_EKPO WITH KEY EBELN = WA_FINAL-EBELN
EBELP = WA_FINAL-EBELP
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL-MWSKZ = WA_EKPO-MWSKZ.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING MWSKZ.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
DELETE IT_FINAL WHERE EBELN IS INITIAL.
DELETE IT_FINAL WHERE ( MWSKZ = 'A0') OR ( MWSKZ = 'C1' ) OR ( MWSKZ = 'C3' ) OR ( MWSKZ = 'C4' )
OR ( MWSKZ = 'C5' ) OR ( MWSKZ = 'CA' ) OR ( MWSKZ = 'CB' ) OR ( MWSKZ = 'CC' ) OR ( MWSKZ = 'CD' )
OR ( MWSKZ = 'CE' ) OR ( MWSKZ = 'CT' ) OR ( MWSKZ = 'L1' ) OR ( MWSKZ = 'L2' ) OR ( MWSKZ = 'L3' )
OR ( MWSKZ = 'L4' ) OR ( MWSKZ = 'L5' ) OR ( MWSKZ = 'L6' ) OR ( MWSKZ = 'L7' ) OR ( MWSKZ = 'L8' )
OR ( MWSKZ = 'L9' ) OR ( MWSKZ = 'X0' ).
DELETE IT_FINAL WHERE ( MWSKZ = 'AK') OR ( MWSKZ = 'AI' ) OR ( MWSKZ = 'AG' ) OR ( MWSKZ = 'AL' ) OR
( MWSKZ = 'AE') OR ( MWSKZ = 'AH' ) OR ( MWSKZ = 'AN' ) ."OR ( MWSKZ = 'Z0') OR ( MWSKZ = 'Z1' ).****
ENDFORM. " FETCH_SERVICE
*&---------------------------------------------------------------------*
*& Form GET_DATA_MSEG_IMPORT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_MSEG_IMPORT .
IF S_WERKS IS INITIAL.
SELECT MBLNR "Number of Material Document
MJAHR
ZEILE
BWART
MATNR
WERKS
LIFNR
DMBTR
ERFMG
ERFME
EBELN
EBELP
LFBNR
GSBER
LFPOS
BUKRS
FROM MSEG INTO TABLE IT_MSEG
FOR ALL ENTRIES IN IT_FINAL
WHERE MATNR = IT_FINAL-MATNR
AND EBELN = IT_FINAL-EBELN
AND EBELP = IT_FINAL-EBELP
AND BUKRS = '1000'
AND BWART IN ('101','102','105','122')
AND LIFNR IN S_LIFNR.
ELSE.
SELECT MBLNR "Number of Material Document
MJAHR
ZEILE
BWART
MATNR
WERKS
LIFNR
DMBTR
ERFMG
ERFME
EBELN
EBELP
LFBNR
GSBER
LFPOS
BUKRS
FROM MSEG INTO TABLE IT_MSEG
FOR ALL ENTRIES IN IT_FINAL
WHERE MATNR = IT_FINAL-MATNR
AND EBELN = IT_FINAL-EBELN
AND EBELP = IT_FINAL-EBELP
AND BUKRS = '1000'
AND BWART IN ('101','102','105','122')
AND LIFNR IN S_LIFNR
AND WERKS IN S_WERKS.
ENDIF.
DELETE IT_MSEG WHERE MATNR IS INITIAL.
IT_MSEG1[] = IT_MSEG[].
DELETE IT_MSEG1 WHERE BWART = '101'.
DELETE IT_MSEG1 WHERE LFBNR IS INITIAL.
DELETE IT_MSEG WHERE BWART = '102'.
DELETE IT_MSEG WHERE BWART = '122'.
SORT IT_MSEG1 BY LFBNR.
SORT IT_MSEG BY MBLNR.
LOOP AT IT_MSEG INTO WA_MSEG.
LOOP AT IT_MSEG1 INTO WA_MSEG1.
IF WA_MSEG1-LFBNR = WA_MSEG-MBLNR AND
WA_MSEG1-MATNR = WA_MSEG-MATNR.
WA_MSEG-TAG1 = 'A'.
MODIFY IT_MSEG FROM WA_MSEG TRANSPORTING TAG1.
ENDIF.
ENDLOOP.
ENDLOOP.
DELETE IT_MSEG WHERE TAG1 = 'A'.
IF SY-SUBRC = 0.
DELETE IT_MSEG WHERE BWART IS INITIAL.
DELETE IT_MSEG WHERE WERKS IS INITIAL.
SORT IT_MSEG BY MBLNR.
ENDIF.
SORT IT_FINAL BY EBELN EBELP MATNR.
SORT IT_MSEG BY EBELN EBELP MATNR.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_MSEG.
READ TABLE IT_MSEG INTO WA_MSEG WITH KEY EBELN = WA_FINAL-EBELN
EBELP = WA_FINAL-EBELP
MATNR = WA_FINAL-MATNR.
IF SY-SUBRC = 0.
WA_FINAL-ZEILE = WA_MSEG-ZEILE.
WA_FINAL-MBLNR = WA_MSEG-MBLNR.
WA_FINAL-MJAHR = WA_MSEG-MJAHR.
WA_FINAL-BWART = WA_MSEG-BWART.
WA_FINAL-WERKS = WA_MSEG-WERKS.
WA_FINAL-LIFNR = WA_MSEG-LIFNR.
* WA_FINAL-WRBTR1 = WA_MSEG-DMBTR.
WA_FINAL-ERFMG = WA_MSEG-ERFMG.
WA_FINAL-ERFME = WA_MSEG-ERFME.
WA_FINAL-LFBNR = WA_MSEG-LFBNR.
WA_FINAL-GSBER = WA_MSEG-GSBER.
WA_FINAL-LFPOS = WA_MSEG-LFPOS.
WA_FINAL-BUKRS = WA_MSEG-BUKRS.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING ZEILE MBLNR MJAHR BWART WERKS LIFNR ERFMG ERFME LFBNR GSBER LFPOS BUKRS.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
ENDFORM. " GET_DATA_MSEG_IMPORT
*&---------------------------------------------------------------------*
*& Form GET_DATA_EKBE_IMPORT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_EKBE_IMPORT .
SORT IT_FINAL BY EBELN EBELP MBLNR.
LOOP AT IT_FINAL INTO WA_FINAL.
IF WA_FINAL-BSART IS NOT INITIAL.
IF WA_FINAL-BELNR IS INITIAL.
SELECT EBELN
EBELP
ZEKKN
VGABE
GJAHR
BELNR
BUZEI
DMBTR FROM EKBE INTO TABLE IT_EKBE
WHERE EBELN = WA_FINAL-EBELN
AND EBELP = WA_FINAL-EBELP
AND BELNR = WA_FINAL-MBLNR.
* LOOP AT IT_EKBE INTO WA_EKBE.
* WA_FINAL-WRBTR = WA_EKBE-DMBTR.
* MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING WRBTR.
* ENDLOOP.
* CLEAR WA_FINAL.
ENDIF.
ENDIF.
ENDLOOP.
DELETE IT_FINAL WHERE BSART IS INITIAL.
LOOP AT IT_FINAL INTO WA_FINAL.
WA_FINAL-SUM = ( WA_FINAL-WRBTR1 + WA_FINAL-W_ED + WA_FINAL-W_AED + WA_FINAL-W_ECESS +
WA_FINAL-W_SCESS + WA_FINAL-W_SERTX + WA_FINAL-W_VATCST + WA_FINAL-W_OTHCHA +
WA_FINAL-DIFF_AMOUNT + WA_FINAL-SDMBTR + wa_final-sertax ).
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING SUM.
CLEAR WA_FINAL.
ENDLOOP.
DELETE IT_FINAL WHERE MWSKZ = 'X0'.
ENDFORM. " GET_DATA_EKBE_IMPORT
*&---------------------------------------------------------------------*
*& Form GET_DATA_BSEG_NETAMOUNT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_BSEG_NETAMOUNT .
SELECT BUKRS
BELNR
GJAHR
BUZEI
BUZID
SHKZG
DMBTR
WRBTR
KTOSL
HKONT FROM BSEG INTO TABLE IT_BSEG1
FOR ALL ENTRIES IN IT_FINAL
WHERE BELNR = IT_FINAL-BELNR1
AND GJAHR = IT_FINAL-GJAHR
AND BSCHL = '31'
AND BUKRS = '1000'.
SORT IT_FINAL BY BELNR1 GJAHR.
SORT IT_BSEG1 BY BELNR GJAHR.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_BSEG1.
READ TABLE IT_BSEG1 INTO WA_BSEG1 WITH KEY BELNR = WA_FINAL-BELNR1
GJAHR = WA_FINAL-GJAHR
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL-WRBTR = WA_BSEG1-DMBTR.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING WRBTR.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
SORT IT_FINAL BY BELNR.
LOOP AT IT_FINAL INTO WA_FINAL.
ON CHANGE OF WA_FINAL-BELNR.
COUNT = '0'.
ENDON.
COUNT = COUNT + 1.
WA_FINAL-BUZEINEW = COUNT.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING BUZEINEW.
ENDLOOP.
LOOP AT IT_FINAL INTO WA_FINAL.
IF WA_FINAL-BUZEINEW <> '1'.
WA_FINAL-WRBTR = 0.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING WRBTR.
ENDIF.
ENDLOOP.
ENDFORM. " GET_DATA_BSEG_NETAMOUNT
*&---------------------------------------------------------------------*
*& Form FETCH_IMPORT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FETCH_IMPORT .
SELECT EBELN
EBELP
MWSKZ FROM EKPO INTO CORRESPONDING FIELDS OF
TABLE IT_EKPO FOR ALL ENTRIES IN IT_FINAL WHERE EBELN = IT_FINAL-EBELN
AND EBELP = IT_FINAL-EBELP.
SORT IT_EKPO BY EBELN EBELP .
SORT IT_FINAL BY EBELN EBELP.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_EKPO.
READ TABLE IT_EKPO INTO WA_EKPO WITH KEY EBELN = WA_FINAL-EBELN
EBELP = WA_FINAL-EBELP
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL-MWSKZ = WA_EKPO-MWSKZ.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING MWSKZ.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
DELETE IT_FINAL WHERE EBELN IS INITIAL.
DELETE IT_FINAL WHERE ( MWSKZ = 'A0') OR ( MWSKZ = 'C1' ) OR ( MWSKZ = 'C3' ) OR ( MWSKZ = 'C4' )
OR ( MWSKZ = 'C5' ) OR ( MWSKZ = 'CA' ) OR ( MWSKZ = 'CB' ) OR ( MWSKZ = 'CC' ) OR ( MWSKZ = 'CD' )
OR ( MWSKZ = 'CE' ) OR ( MWSKZ = 'CT' ) OR ( MWSKZ = 'L1' ) OR ( MWSKZ = 'L2' ) OR ( MWSKZ = 'L3' )
OR ( MWSKZ = 'L4' ) OR ( MWSKZ = 'L5' ) OR ( MWSKZ = 'L6' ) OR ( MWSKZ = 'L7' ) OR ( MWSKZ = 'L8' )
OR ( MWSKZ = 'L9' ).
ENDFORM. " FETCH_IMPORT
*&---------------------------------------------------------------------*
*& Form GET_DATA_MKPF_SERVICE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_MKPF_SERVICE .
SELECT
MBLNR "Number of Material Document
MJAHR "Material Document Year
BLDAT "Document Date in Document
BUDAT "POSTING DATE
XBLNR "GRN challan no.
FROM MKPF INTO TABLE IT_MKPF
FOR ALL ENTRIES IN IT_MSEG2
WHERE MBLNR = IT_MSEG2-MBLNR
AND MJAHR = IT_MSEG2-MJAHR.
SORT IT_FINAL BY MBLNR MJAHR.
SORT IT_MKPF BY MBLNR MJAHR.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_MKPF.
READ TABLE IT_MKPF INTO WA_MKPF WITH KEY MBLNR = WA_FINAL-MBLNR
MJAHR = WA_FINAL-MJAHR
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL-BUDAT = WA_MKPF-BUDAT.
WA_FINAL-BLDAT = WA_MKPF-BLDAT.
WA_FINAL-XBLNR = WA_MKPF-XBLNR.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING BUDAT BLDAT XBLNR.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
ENDFORM. " GET_DATA_MKPF_SERVICE
*&---------------------------------------------------------------------*
*& Form GET_DATA_J_1IMOVEND
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_J_1IMOVEND .
SELECT LIFNR
J_1IPANNO
J_1ISERN
FROM J_1IMOVEND INTO TABLE IT_J_1IMOVEND
FOR ALL ENTRIES IN IT_FINAL
WHERE LIFNR = IT_FINAL-LIFNR
AND LIFNR IN S_LIFNR.
SORT IT_J_1IMOVEND BY LIFNR.
SORT IT_FINAL BY LIFNR.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_J_1IMOVEND.
READ TABLE IT_J_1IMOVEND INTO WA_J_1IMOVEND WITH KEY LIFNR = WA_FINAL-LIFNR
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL-J_1IPANNO = WA_J_1IMOVEND-J_1IPANNO.
WA_FINAL-J_1ISERN = WA_J_1IMOVEND-J_1ISERN .
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING J_1IPANNO J_1ISERN .
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
ENDFORM. " GET_DATA_J_1IMOVEND
*&---------------------------------------------------------------------*
*& Form GET_DATA_RSEG_IMPORT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_RSEG_IMPORT .
SELECT BELNR
GJAHR
BLDAT
BUDAT
STBLG FROM RBKP INTO TABLE IT_RBKP
WHERE BUDAT IN S_BUDAT.
IF SY-SUBRC = '0'.
SORT IT_RBKP BY BELNR.
ELSE.
LEAVE LIST-PROCESSING.
ENDIF.
SORT IT_RBKP BY BELNR.
IF S_WERKS IS INITIAL.
SELECT BELNR
GJAHR
BUZEI
EBELN
EBELP
MATNR
LFBNR
BUKRS
WRBTR
LFPOS
FROM RSEG INTO CORRESPONDING FIELDS OF TABLE IT_RSEG
FOR ALL ENTRIES IN IT_RBKP WHERE BELNR = IT_RBKP-BELNR
AND GJAHR = IT_RBKP-GJAHR.
ELSE.
SELECT BELNR
GJAHR
BUZEI
EBELN
EBELP
MATNR
LFBNR
BUKRS
WERKS
WRBTR
LFPOS
LIFNR
FROM RSEG INTO CORRESPONDING FIELDS OF TABLE IT_RSEG
FOR ALL ENTRIES IN IT_RBKP WHERE BELNR = IT_RBKP-BELNR
AND GJAHR = IT_RBKP-GJAHR
AND WERKS IN S_WERKS.
ENDIF.
DELETE IT_RSEG WHERE MATNR IS INITIAL.
SORT IT_RSEG BY BELNR.
SORT IT_RBKP BY BELNR.
LOOP AT IT_RSEG INTO WA_RSEG.
WA_FINAL-BUZEI = WA_RSEG-BUZEI.
WA_FINAL-BELNR = WA_RSEG-BELNR.
WA_FINAL-GJAHR = WA_RSEG-GJAHR.
WA_FINAL-WRBTR = WA_RSEG-WRBTR.
WA_FINAL-EBELN = WA_RSEG-EBELN.
WA_FINAL-EBELP = WA_RSEG-EBELP.
WA_FINAL-MATNR = WA_RSEG-MATNR.
WA_FINAL-LFBNR = WA_RSEG-LFBNR.
APPEND WA_FINAL TO IT_FINAL.
ENDLOOP.
DELETE IT_FINAL WHERE MATNR IS INITIAL.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_RBKP.
READ TABLE IT_RBKP INTO WA_RBKP WITH KEY BELNR = WA_FINAL-BELNR
GJAHR = WA_FINAL-GJAHR
BINARY SEARCH.
IF SY-SUBRC = 0.
* WA_FINAL-BLDAT1 = WA_RBKP-BLDAT.
WA_FINAL-STBLG = WA_RBKP-STBLG.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING STBLG.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
ENDFORM. " GET_DATA_RSEG_IMPORT
*&---------------------------------------------------------------------*
*& Form GET_DATA_BSEG_SERVICE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_BSEG_SERVICE .
SELECT BUKRS
BELNR
GJAHR
BUZEI
BUZID
SHKZG
DMBTR
WRBTR
KTOSL
HKONT FROM BSEG INTO TABLE IT_BSEG_SER
FOR ALL ENTRIES IN IT_FINAL
WHERE BELNR = IT_FINAL-BELNR1
AND GJAHR = IT_FINAL-GJAHR
AND KTOSL IN ('ESA','VS8','VSE')
AND BUKRS = '1000'.
SORT IT_FINAL BY BELNR1 GJAHR.
SORT IT_BSEG_SER BY BELNR GJAHR.
LOOP AT IT_BSEG_SER INTO WA_BSEG_SER.
IF WA_BSEG_SER-SHKZG = 'H'.
WA_BSEG_SER-SERTAX = -1 * WA_BSEG_SER-DMBTR.
ENDIF.
MODIFY IT_BSEG_SER FROM WA_BSEG_SER TRANSPORTING SERTAX.
ENDLOOP.
LOOP AT IT_FINAL INTO WA_FINAL.
ON CHANGE OF WA_FINAL-BELNR1.
LOOP AT IT_BSEG_SER INTO WA_BSEG_SER WHERE BELNR = WA_FINAL-BELNR1
AND GJAHR = WA_FINAL-GJAHR.
WA_FINAL-SERTAX = WA_FINAL-SERTAX + WA_BSEG_SER-DMBTR.
ENDLOOP.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING SERTAX.
ENDON.
ENDLOOP.
ENDFORM. " GET_DATA_BSEG_SERVICE
*&---------------------------------------------------------------------*
*& Form GET_DATA_BSEG_SER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_BSEG_SER .
SORT IT_FINAL BY BELNR1.
CLEAR IT_BSEG.
* LOOP AT IT_FINAL INTO WA_FINAL.
SELECT
BUKRS
BELNR
GJAHR
BUZEI
BUZID
SHKZG
DMBTR
WRBTR
KTOSL
HKONT FROM BSEG INTO CORRESPONDING FIELDS OF TABLE IT_BSEG
FOR ALL ENTRIES IN IT_FINAL
WHERE BELNR = IT_FINAL-BELNR1
AND GJAHR = IT_FINAL-GJAHR
* AND BUZEI = IT_FINAL-TABIX1
AND KTOSL IN ('FR1','FR6','FR7')
AND BUKRS = '1000'.
* ENDLOOP.
LOOP AT IT_FINAL INTO WA_FINAL.
ON CHANGE OF WA_FINAL-BELNR1.
LOOP AT IT_BSEG INTO WA_BSEG WHERE BELNR = WA_FINAL-BELNR1
AND GJAHR = WA_FINAL-GJAHR.
WA_FINAL-W_OTHCHA = WA_FINAL-W_OTHCHA + WA_BSEG-WRBTR.
ENDLOOP.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING W_OTHCHA.
CLEAR WA_FINAL.
ENDON.
ENDLOOP.
**************************SELECTION FOR G\L ACCOUNT.
SELECT BUKRS
BELNR
GJAHR
BUZEI
BUZID
SHKZG
DMBTR
WRBTR
KTOSL
HKONT
MATNR
EBELP
EBELN FROM BSEG INTO CORRESPONDING FIELDS OF TABLE IT_BSEG
FOR ALL ENTRIES IN IT_FINAL
WHERE BELNR = IT_FINAL-BELNR1
AND GJAHR = IT_FINAL-GJAHR
AND KTOSL = 'WRX'
AND BUKRS = '1000'.
SORT IT_FINAL BY BELNR1 GJAHR MATNR EBELN EBELP.
SORT IT_BSEG BY BELNR GJAHR MATNR EBELN EBELP.
LOOP AT IT_BSEG INTO WA_BSEG.
WA_BSEG-MATNR = WA_BSEG-MATNR+9(9).
MODIFY IT_BSEG FROM WA_BSEG TRANSPORTING MATNR.
ENDLOOP.
LOOP AT IT_FINAL INTO WA_FINAL.
ON CHANGE OF WA_FINAL-BELNR1.
CLEAR WA_BSEG.
* READ TABLE IT_BSEG INTO WA_BSEG WITH KEY BELNR = WA_FINAL-BELNR1
* GJAHR = WA_FINAL-GJAHR
* MATNR = WA_FINAL-MATNR
* EBELN = WA_FINAL-EBELN
* EBELP = WA_FINAL-EBELP
* BINARY SEARCH.
* IF SY-SUBRC = 0.
LOOP AT IT_BSEG INTO WA_BSEG WHERE BELNR = WA_FINAL-BELNR1
AND GJAHR = WA_FINAL-GJAHR.
* WA_FINAL-HKONT = WA_BSEG-HKONT.
WA_FINAL-WRBTR1 = WA_FINAL-WRBTR1 + WA_BSEG-DMBTR.
ENDLOOP.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING WRBTR1. " KNUMV KSCHL1 KWERT.
* ENDIF.
CLEAR WA_FINAL.
ENDON.
ENDLOOP.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_BSEG.
READ TABLE IT_BSEG INTO WA_BSEG WITH KEY BELNR = WA_FINAL-BELNR1
GJAHR = WA_FINAL-GJAHR
MATNR = WA_FINAL-MATNR
EBELN = WA_FINAL-EBELN
EBELP = WA_FINAL-EBELP
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL-HKONT = WA_BSEG-HKONT.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING HKONT.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
SELECT BUKRS
BELNR
GJAHR
BUZEI
BUZID
SHKZG
DMBTR
WRBTR
KTOSL
HKONT FROM BSEG INTO TABLE IT_BSEG3
FOR ALL ENTRIES IN IT_FINAL
WHERE BELNR = IT_FINAL-BELNR1
AND GJAHR = IT_FINAL-GJAHR
AND KTOSL = 'KBS'
AND BUKRS = '1000'
AND SHKZG = 'H'.
SORT IT_FINAL BY BELNR1 GJAHR.
SORT IT_BSEG3 BY BELNR GJAHR.
LOOP AT IT_FINAL INTO WA_FINAL.
ON CHANGE OF WA_FINAL-BELNR1.
CLEAR WA_BSEG3.
LOOP AT IT_BSEG3 INTO WA_BSEG3 WHERE BELNR = WA_FINAL-BELNR1
AND GJAHR = WA_FINAL-GJAHR.
WA_FINAL-DMBTR = WA_FINAL-DMBTR + WA_BSEG3-DMBTR .
ENDLOOP.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING DMBTR.
CLEAR WA_FINAL.
ENDON.
ENDLOOP.
*******************************************
SELECT BUKRS
BELNR
GJAHR
BUZEI
BUZID
SHKZG
DMBTR
WRBTR
KTOSL
HKONT FROM BSEG INTO TABLE IT_BSEG4
FOR ALL ENTRIES IN IT_FINAL
WHERE BELNR = IT_FINAL-BELNR1
AND GJAHR = IT_FINAL-GJAHR
AND KTOSL = 'KBS'
AND BUKRS = '1000'
AND SHKZG = 'S'.
SORT IT_FINAL BY BELNR1 GJAHR.
SORT IT_BSEG3 BY BELNR GJAHR.
LOOP AT IT_FINAL INTO WA_FINAL.
ON CHANGE OF WA_FINAL-BELNR1.
CLEAR WA_BSEG4.
LOOP AT IT_BSEG4 INTO WA_BSEG4 WHERE BELNR = WA_FINAL-BELNR1
AND GJAHR = WA_FINAL-GJAHR.
WA_FINAL-SDMBTR = WA_FINAL-SDMBTR + WA_BSEG4-DMBTR .
ENDLOOP.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING SDMBTR.
CLEAR WA_FINAL.
ENDON.
ENDLOOP.
* LOOP AT IT_FINAL INTO WA_FINAL.
* CLEAR WA_BSEG4.
* READ TABLE IT_BSEG4 INTO WA_BSEG4 WITH KEY BELNR = WA_FINAL-BELNR1
* GJAHR = WA_FINAL-GJAHR
* BINARY SEARCH.
* IF SY-SUBRC = 0.
* WA_FINAL-SDMBTR = WA_BSEG4-DMBTR.
* MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING SDMBTR.
* ENDIF.
* CLEAR WA_FINAL.
* ENDLOOP.
********************************************
SELECT BUKRS
BELNR
GJAHR
BUZEI
BUZID
SHKZG
DMBTR
WRBTR
KTOSL
HKONT FROM BSEG INTO TABLE IT_BSEG2
FOR ALL ENTRIES IN IT_FINAL
WHERE BELNR = IT_FINAL-BELNR1
AND GJAHR = IT_FINAL-GJAHR
AND KTOSL IN ('BSX','DIF','PRD','WIT' , 'KDM')
AND BUKRS = '1000'.
SORT IT_FINAL BY BELNR1 GJAHR.
SORT IT_BSEG2 BY BELNR GJAHR.
LOOP AT IT_BSEG2 INTO WA_BSEG2.
IF WA_BSEG2-SHKZG = 'H'.
WA_BSEG2-DMBTR = -1 * WA_BSEG2-DMBTR.
ENDIF.
MODIFY IT_BSEG2 FROM WA_BSEG2 TRANSPORTING DMBTR.
ENDLOOP.
LOOP AT IT_FINAL INTO WA_FINAL.
ON CHANGE OF WA_FINAL-BELNR1.
LOOP AT IT_BSEG2 INTO WA_BSEG2 WHERE BELNR = WA_FINAL-BELNR1
AND GJAHR = WA_FINAL-GJAHR.
WA_FINAL-DIFF_AMOUNT = WA_FINAL-DIFF_AMOUNT + WA_BSEG2-DMBTR.
ENDLOOP.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING DIFF_AMOUNT.
ENDON.
ENDLOOP.
ENDFORM. " GET_DATA_BSEG_SER
*&---------------------------------------------------------------------*
*& Form GET_DATA_BSEG_IMPORT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_BSEG_IMPORT .
SORT IT_FINAL BY BELNR1.
CLEAR IT_BSEG.
* LOOP AT IT_FINAL INTO WA_FINAL.
SELECT
BUKRS
BELNR
GJAHR
BUZEI
BUZID
SHKZG
DMBTR
WRBTR
KTOSL
HKONT FROM BSEG INTO CORRESPONDING FIELDS OF TABLE IT_BSEG
FOR ALL ENTRIES IN IT_FINAL
WHERE BELNR = IT_FINAL-BELNR1
AND GJAHR = IT_FINAL-GJAHR
* AND BUZEI = IT_FINAL-TABIX1
AND KTOSL IN ('FR0','FR1','FR3','FR6','FR7')
AND BUKRS = '1000'.
* ENDLOOP.
LOOP AT IT_FINAL INTO WA_FINAL.
ON CHANGE OF WA_FINAL-BELNR1.
LOOP AT IT_BSEG INTO WA_BSEG WHERE BELNR = WA_FINAL-BELNR1
AND GJAHR = WA_FINAL-GJAHR.
WA_FINAL-W_OTHCHA = WA_FINAL-W_OTHCHA + WA_BSEG-DMBTR.
ENDLOOP.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING W_OTHCHA.
CLEAR WA_FINAL.
ENDON.
ENDLOOP.
* SORT IT_FINAL BY BELNR1.
* CLEAR IT_BSEG.
* LOOP AT IT_FINAL INTO WA_FINAL.
* SELECT
* BUKRS
* BELNR
* GJAHR
* BUZEI
* BUZID
* SHKZG
* DMBTR
* WRBTR
* KTOSL
* HKONT FROM BSEG INTO CORRESPONDING FIELDS OF TABLE IT_BSEG
* WHERE BELNR = WA_FINAL-BELNR1
* AND GJAHR = WA_FINAL-GJAHR
* AND BUZEI = WA_FINAL-TABIX1
* AND KTOSL IN ('FR1','FR6','FR7')
* AND BUKRS = '1000'.
* LOOP AT IT_FINAL INTO WA_FINAL.
* LOOP AT IT_BSEG INTO WA_BSEG WHERE BELNR = WA_FINAL-BELNR1
* AND GJAHR = WA_FINAL-GJAHR.
* WA_FINAL-W_OTHCHA = WA_FINAL-W_OTHCHA + WA_BSEG-WRBTR.
*
* ENDLOOP.
* MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING W_OTHCHA.
* ENDLOOP.
* IF SY-SUBRC = 0.
* PERFORM GET_FREIGHT.
* ENDIF.
* CLEAR WA_FINAL.
* ENDLOOP.
*************************************************SELECTION FOR G\L ACCOUNT.
SELECT BUKRS
BELNR
GJAHR
BUZEI
BUZID
SHKZG
DMBTR
WRBTR
KTOSL
HKONT
MATNR
EBELP
EBELN FROM BSEG INTO CORRESPONDING FIELDS OF TABLE IT_BSEG
FOR ALL ENTRIES IN IT_FINAL
WHERE BELNR = IT_FINAL-BELNR1
AND GJAHR = IT_FINAL-GJAHR
AND KTOSL = 'WRX'
AND BUKRS = '1000'.
SORT IT_FINAL BY BELNR1 GJAHR MATNR EBELN EBELP.
SORT IT_BSEG BY BELNR GJAHR MATNR EBELN EBELP.
LOOP AT IT_BSEG INTO WA_BSEG.
WA_BSEG-MATNR = WA_BSEG-MATNR+9(9).
MODIFY IT_BSEG FROM WA_BSEG TRANSPORTING MATNR.
ENDLOOP.
LOOP AT IT_FINAL INTO WA_FINAL.
ON CHANGE OF WA_FINAL-BELNR1.
CLEAR WA_BSEG.
* READ TABLE IT_BSEG INTO WA_BSEG WITH KEY BELNR = WA_FINAL-BELNR1
* GJAHR = WA_FINAL-GJAHR
* MATNR = WA_FINAL-MATNR
* EBELN = WA_FINAL-EBELN
* EBELP = WA_FINAL-EBELP
* BINARY SEARCH.
* IF SY-SUBRC = 0.
LOOP AT IT_BSEG INTO WA_BSEG WHERE BELNR = WA_FINAL-BELNR1
AND GJAHR = WA_FINAL-GJAHR.
* WA_FINAL-HKONT = WA_BSEG-HKONT.
WA_FINAL-WRBTR1 = WA_FINAL-WRBTR1 + WA_BSEG-DMBTR.
ENDLOOP.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING WRBTR1.
* ENDIF.
CLEAR WA_FINAL.
ENDON.
ENDLOOP.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_BSEG.
READ TABLE IT_BSEG INTO WA_BSEG WITH KEY BELNR = WA_FINAL-BELNR1
GJAHR = WA_FINAL-GJAHR
* MATNR = WA_FINAL-MATNR
* EBELN = WA_FINAL-EBELN
* EBELP = WA_FINAL-EBELP
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL-HKONT = WA_BSEG-HKONT.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING HKONT.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
SELECT BUKRS
BELNR
GJAHR
BUZEI
BUZID
SHKZG
DMBTR
WRBTR
KTOSL
HKONT FROM BSEG INTO TABLE IT_BSEG3
FOR ALL ENTRIES IN IT_FINAL
WHERE BELNR = IT_FINAL-BELNR1
AND GJAHR = IT_FINAL-GJAHR
AND KTOSL = 'KBS'
AND BUKRS = '1000'
AND SHKZG = 'H'.
SORT IT_FINAL BY BELNR1 GJAHR.
SORT IT_BSEG3 BY BELNR GJAHR.
LOOP AT IT_FINAL INTO WA_FINAL.
ON CHANGE OF WA_FINAL-BELNR1.
CLEAR WA_BSEG3.
LOOP AT IT_BSEG3 INTO WA_BSEG3 WHERE BELNR = WA_FINAL-BELNR1
AND GJAHR = WA_FINAL-GJAHR.
WA_FINAL-DMBTR = WA_FINAL-DMBTR + WA_BSEG3-DMBTR .
ENDLOOP.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING DMBTR.
CLEAR WA_FINAL.
ENDON.
ENDLOOP.
*******************************************
SELECT BUKRS
BELNR
GJAHR
BUZEI
BUZID
SHKZG
DMBTR
WRBTR
KTOSL
HKONT FROM BSEG INTO TABLE IT_BSEG4
FOR ALL ENTRIES IN IT_FINAL
WHERE BELNR = IT_FINAL-BELNR1
AND GJAHR = IT_FINAL-GJAHR
AND KTOSL = 'KBS'
AND BUKRS = '1000'
AND SHKZG = 'S'.
SORT IT_FINAL BY BELNR1 GJAHR.
SORT IT_BSEG3 BY BELNR GJAHR.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_BSEG3.
READ TABLE IT_BSEG4 INTO WA_BSEG4 WITH KEY BELNR = WA_FINAL-BELNR1
GJAHR = WA_FINAL-GJAHR
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL-SDMBTR = WA_BSEG4-DMBTR.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING SDMBTR.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
********************************************
SELECT BUKRS
BELNR
GJAHR
BUZEI
BUZID
SHKZG
DMBTR
WRBTR
KTOSL
HKONT FROM BSEG INTO TABLE IT_BSEG2
FOR ALL ENTRIES IN IT_FINAL
WHERE BELNR = IT_FINAL-BELNR1
AND GJAHR = IT_FINAL-GJAHR
AND KTOSL IN ('BSX','DIF','PRD','WIT' , 'KDM')
AND BUKRS = '1000'.
SORT IT_FINAL BY BELNR1 GJAHR.
SORT IT_BSEG2 BY BELNR GJAHR.
LOOP AT IT_BSEG2 INTO WA_BSEG2.
IF WA_BSEG2-SHKZG = 'H'.
WA_BSEG2-DMBTR = -1 * WA_BSEG2-DMBTR.
ENDIF.
MODIFY IT_BSEG2 FROM WA_BSEG2 TRANSPORTING DMBTR.
ENDLOOP.
LOOP AT IT_FINAL INTO WA_FINAL.
ON CHANGE OF WA_FINAL-BELNR1.
LOOP AT IT_BSEG2 INTO WA_BSEG2 WHERE BELNR = WA_FINAL-BELNR1
AND GJAHR = WA_FINAL-GJAHR.
* WA_FINAL-DIFF_AMOUNT = WA_FINAL-DIFF_AMOUNT + WA_BSEG2-DMBTR.
WA_FINAL-DIFF_AMOUNT = WA_FINAL-DIFF_AMOUNT + WA_BSEG2-DMBTR.
ENDLOOP.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING DIFF_AMOUNT.
ENDON.
ENDLOOP.
ENDFORM. " GET_DATA_BSEG_IMPORT
*&---------------------------------------------------------------------*
*& Form GET_DATA_TAXES
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_TAXES .
ENDFORM. " GET_DATA_TAXES
*&---------------------------------------------------------------------*
*& Form GET_DATA_BSEG_CST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_BSEG_CST .
SORT IT_FINAL BY BELNR1.
CLEAR IT_BSEG.
* LOOP AT IT_FINAL INTO WA_FINAL.
SELECT
BUKRS
BELNR
GJAHR
BUZEI
BUZID
SHKZG
DMBTR
WRBTR
KTOSL
HKONT FROM BSEG INTO CORRESPONDING FIELDS OF TABLE IT_BSEG
FOR ALL ENTRIES IN IT_FINAL
WHERE BELNR = IT_FINAL-BELNR1
AND GJAHR = IT_FINAL-GJAHR
* AND BUZEI = IT_FINAL-TABIX1
AND KTOSL IN ('FR0','FR1','FR3','FR6','FR7')
AND BUKRS = '1000'.
* ENDLOOP.
LOOP AT IT_FINAL INTO WA_FINAL.
ON CHANGE OF WA_FINAL-BELNR1.
LOOP AT IT_BSEG INTO WA_BSEG WHERE BELNR = WA_FINAL-BELNR1
AND GJAHR = WA_FINAL-GJAHR.
WA_FINAL-W_OTHCHA = WA_FINAL-W_OTHCHA + WA_BSEG-WRBTR.
ENDLOOP.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING W_OTHCHA.
CLEAR WA_FINAL.
ENDON.
ENDLOOP.
*************************************************SELECTION FOR G\L ACCOUNT.
SELECT BUKRS
BELNR
GJAHR
BUZEI
BUZID
SHKZG
DMBTR
WRBTR
KTOSL
HKONT
MATNR
MENGE
EBELP
EBELN FROM BSEG INTO CORRESPONDING FIELDS OF TABLE IT_BSEG
FOR ALL ENTRIES IN IT_FINAL
WHERE BELNR = IT_FINAL-BELNR1
AND GJAHR = IT_FINAL-GJAHR
AND KTOSL = 'WRX'
AND BUKRS = '1000'.
SORT IT_FINAL BY BELNR1 GJAHR MATNR EBELN EBELP ERFMG.
SORT IT_BSEG BY BELNR GJAHR MATNR EBELN EBELP MENGE.
LOOP AT IT_BSEG INTO WA_BSEG.
WA_BSEG-MATNR = WA_BSEG-MATNR+9(9).
MODIFY IT_BSEG FROM WA_BSEG TRANSPORTING MATNR.
ENDLOOP.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_BSEG.
READ TABLE IT_BSEG INTO WA_BSEG WITH KEY BELNR = WA_FINAL-BELNR1
GJAHR = WA_FINAL-GJAHR
MATNR = WA_FINAL-MATNR
EBELN = WA_FINAL-EBELN
EBELP = WA_FINAL-EBELP
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL-HKONT = WA_BSEG-HKONT.
WA_FINAL-WRBTR1 = WA_BSEG-DMBTR.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING HKONT WRBTR1.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
SELECT BUKRS
BELNR
GJAHR
BUZEI
BUZID
SHKZG
DMBTR
WRBTR
KTOSL
HKONT FROM BSEG INTO TABLE IT_BSEG3
FOR ALL ENTRIES IN IT_FINAL
WHERE BELNR = IT_FINAL-BELNR1
AND GJAHR = IT_FINAL-GJAHR
AND KTOSL = 'KBS'
AND BUKRS = '1000'
AND SHKZG = 'H'.
LOOP AT IT_BSEG3 INTO WA_BSEG3.
IF WA_BSEG3-SHKZG = 'H'.
WA_BSEG3-DMBTR = -1 * WA_BSEG3-DMBTR.
ENDIF.
MODIFY IT_BSEG3 FROM WA_BSEG3 TRANSPORTING DMBTR.
ENDLOOP.
SORT IT_FINAL BY BELNR1 GJAHR.
SORT IT_BSEG3 BY BELNR GJAHR.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_BSEG3.
LOOP AT IT_BSEG3 INTO WA_BSEG3 WHERE BELNR = WA_FINAL-BELNR1
AND GJAHR = WA_FINAL-GJAHR.
* READ TABLE IT_BSEG3 INTO WA_BSEG3 WITH KEY BELNR = WA_FINAL-BELNR1
* GJAHR = WA_FINAL-GJAHR
* BINARY SEARCH.
* IF SY-SUBRC = 0.
WA_FINAL-DMBTR = WA_FINAL-DMBTR + WA_BSEG3-DMBTR .
ENDLOOP.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING DMBTR.
* ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
*******************************************
SELECT BUKRS
BELNR
GJAHR
BUZEI
BUZID
SHKZG
DMBTR
WRBTR
KTOSL
HKONT FROM BSEG INTO TABLE IT_BSEG4
FOR ALL ENTRIES IN IT_FINAL
WHERE BELNR = IT_FINAL-BELNR1
AND GJAHR = IT_FINAL-GJAHR
AND KTOSL = 'KBS'
AND BUKRS = '1000'
AND SHKZG = 'S'.
SORT IT_FINAL BY BELNR1 GJAHR.
SORT IT_BSEG3 BY BELNR GJAHR.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_BSEG3.
READ TABLE IT_BSEG4 INTO WA_BSEG4 WITH KEY BELNR = WA_FINAL-BELNR1
GJAHR = WA_FINAL-GJAHR
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL-SDMBTR = WA_BSEG4-DMBTR.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING SDMBTR.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
********************************************
SELECT BUKRS
BELNR
GJAHR
BUZEI
BUZID
SHKZG
DMBTR
WRBTR
KTOSL
HKONT FROM BSEG INTO TABLE IT_BSEG2
FOR ALL ENTRIES IN IT_FINAL
WHERE BELNR = IT_FINAL-BELNR1
AND GJAHR = IT_FINAL-GJAHR
AND KTOSL IN ('BSX','DIF','PRD','WIT' , 'KDM')
AND BUKRS = '1000'.
SORT IT_FINAL BY BELNR1 GJAHR.
SORT IT_BSEG2 BY BELNR GJAHR.
LOOP AT IT_BSEG2 INTO WA_BSEG2.
IF WA_BSEG2-SHKZG = 'H'.
WA_BSEG2-DMBTR = -1 * WA_BSEG2-DMBTR.
ENDIF.
MODIFY IT_BSEG2 FROM WA_BSEG2 TRANSPORTING DMBTR.
ENDLOOP.
LOOP AT IT_FINAL INTO WA_FINAL.
ON CHANGE OF WA_FINAL-BELNR1.
LOOP AT IT_BSEG2 INTO WA_BSEG2 WHERE BELNR = WA_FINAL-BELNR1
AND GJAHR = WA_FINAL-GJAHR.
WA_FINAL-DIFF_AMOUNT = WA_FINAL-DIFF_AMOUNT + WA_BSEG2-DMBTR.
ENDLOOP.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING DIFF_AMOUNT.
ENDON.
ENDLOOP.
ENDFORM. " GET_DATA_BSEG_CST
*&---------------------------------------------------------------------*
*& Form GET_DATA_BKPF_SERVICE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_BKPF_SERVICE .
LOOP AT IT_FINAL INTO WA_FINAL.
CONCATENATE WA_FINAL-BELNR WA_FINAL-GJAHR INTO WA_FINAL-AWKEY.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING AWKEY.
ENDLOOP.
SELECT BUKRS
BELNR
GJAHR
BLART
BLDAT
BUDAT
XBLNR
AWKEY FROM BKPF INTO TABLE IT_BKPF
FOR ALL ENTRIES IN IT_FINAL
WHERE AWKEY = IT_FINAL-AWKEY
AND BLART IN ('RE','RL')
AND BUKRS = '1000'
AND XBLNR LIKE 'CC%'.
SORT IT_BKPF BY AWKEY.
SORT IT_FINAL BY AWKEY.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_BKPF.
READ TABLE IT_BKPF INTO WA_BKPF WITH KEY AWKEY = WA_FINAL-AWKEY
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL-BELNR1 = WA_BKPF-BELNR.
WA_FINAL-BLDAT1 = WA_BKPF-BLDAT.
WA_FINAL-BUDAT1 = WA_BKPF-BUDAT.
WA_FINAL-XBLNR1 = WA_BKPF-XBLNR.
WA_FINAL-BLART = WA_BKPF-BLART.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING BELNR1 BLDAT1 BUDAT1 XBLNR1 BLART.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
DELETE IT_FINAL WHERE BLART = 'RL'.
DELETE IT_FINAL WHERE XBLNR1 IS INITIAL.
ENDFORM. " GET_DATA_BKPF_SERVICE
*&---------------------------------------------------------------------*
*& Form GET_DATA_MSEG_GANGAA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_MSEG_GANGAA .
SELECT
MBLNR "Number of Material Document
MJAHR
ZEILE
BWART
MATNR
WERKS
LIFNR
DMBTR
ERFMG
ERFME
EBELN
EBELP
LFBNR
GSBER
LFPOS
BUKRS
FROM MSEG INTO TABLE IT_MSEG2
FOR ALL ENTRIES IN IT_RSEG
WHERE LFBNR = IT_RSEG-LFBNR
AND EBELN = IT_RSEG-EBELN
AND BWART IN ('101','102','105','122')
AND LIFNR = 'G034'.
DELETE IT_MSEG2 WHERE MATNR IS NOT INITIAL.
IT_MSEG1[] = IT_MSEG2[].
DELETE IT_MSEG1 WHERE BWART = '101'.
DELETE IT_MSEG1 WHERE LFBNR IS INITIAL.
DELETE IT_MSEG2 WHERE BWART = '102'.
DELETE IT_MSEG2 WHERE BWART = '122'.
SORT IT_MSEG1 BY LFBNR.
SORT IT_MSEG BY MBLNR.
LOOP AT IT_MSEG2 INTO WA_MSEG2.
LOOP AT IT_MSEG1 INTO WA_MSEG1.
IF WA_MSEG1-LFBNR = WA_MSEG2-MBLNR AND
WA_MSEG1-MATNR = WA_MSEG2-MATNR.
WA_MSEG-TAG1 = 'A'.
MODIFY IT_MSEG2 FROM WA_MSEG2 TRANSPORTING TAG1.
ENDIF.
ENDLOOP.
ENDLOOP.
DELETE IT_MSEG2 WHERE TAG1 = 'A'.
IF SY-SUBRC = 0.
DELETE IT_MSEG2 WHERE BWART IS INITIAL.
DELETE IT_MSEG2 WHERE WERKS IS INITIAL.
SORT IT_MSEG2 BY MBLNR.
ENDIF.
SORT IT_FINAL BY MATNR LFBNR.
SORT IT_MSEG2 BY MATNR LFBNR.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_MSEG2.
READ TABLE IT_MSEG2 INTO WA_MSEG2 WITH KEY LFBNR = WA_FINAL-LFBNR
MATNR = WA_FINAL-MATNR.
IF SY-SUBRC = 0.
WA_FINAL-ZEILE = WA_MSEG2-ZEILE.
WA_FINAL-MBLNR = WA_MSEG2-MBLNR.
WA_FINAL-MJAHR = WA_MSEG2-MJAHR.
WA_FINAL-BWART = WA_MSEG2-BWART.
WA_FINAL-WERKS = WA_MSEG2-WERKS.
WA_FINAL-LIFNR = WA_MSEG2-LIFNR.
* WA_FINAL-WRBTR1 = WA_MSEG2-DMBTR.
WA_FINAL-ERFMG = WA_MSEG2-ERFMG.
WA_FINAL-ERFME = WA_MSEG2-ERFME.
WA_FINAL-LFBNR = WA_MSEG2-LFBNR.
WA_FINAL-GSBER = WA_MSEG2-GSBER.
WA_FINAL-LFPOS = WA_MSEG2-LFPOS.
WA_FINAL-BUKRS = WA_MSEG2-BUKRS.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING ZEILE MBLNR MJAHR BWART WERKS LIFNR ERFMG ERFME LFBNR GSBER LFPOS BUKRS.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
DELETE IT_FINAL WHERE BWART IS INITIAL.
DELETE IT_FINAL WHERE LIFNR IS INITIAL.
SORT IT_FINAL BY MBLNR MJAHR.
SORT IT_MKPF BY MBLNR MJAHR.
ENDFORM. " GET_DATA_MSEG_GANGAA
*&---------------------------------------------------------------------*
*& Form GET_DATA_MSEG_GANGA_CST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_MSEG_GANGA_CST .
SELECT
MBLNR "Number of Material Document
MJAHR
ZEILE
BWART
MATNR
WERKS
LIFNR
DMBTR
ERFMG
ERFME
EBELN
EBELP
LFBNR
GSBER
LFPOS
BUKRS
FROM MSEG INTO TABLE IT_MSEG
FOR ALL ENTRIES IN IT_RSEG
WHERE MBLNR = IT_RSEG-LFBNR
AND MATNR = IT_RSEG-MATNR
AND ERFMG = IT_RSEG-MENGE
AND BWART IN ('101','102','105','122').
DELETE IT_MSEG WHERE MATNR IS INITIAL.
IT_MSEG1[] = IT_MSEG[].
DELETE IT_MSEG1 WHERE BWART = '101'.
DELETE IT_MSEG1 WHERE LFBNR IS INITIAL.
DELETE IT_MSEG WHERE BWART = '102'.
DELETE IT_MSEG WHERE BWART = '122'.
SORT IT_MSEG1 BY LFBNR.
SORT IT_MSEG BY MBLNR.
LOOP AT IT_MSEG INTO WA_MSEG.
LOOP AT IT_MSEG1 INTO WA_MSEG1.
IF WA_MSEG1-LFBNR = WA_MSEG-MBLNR AND
WA_MSEG1-MATNR = WA_MSEG-MATNR.
WA_MSEG-TAG1 = 'A'.
MODIFY IT_MSEG FROM WA_MSEG TRANSPORTING TAG1.
ENDIF.
ENDLOOP.
ENDLOOP.
DELETE IT_MSEG WHERE TAG1 = 'A'.
IF SY-SUBRC = 0.
DELETE IT_MSEG WHERE BWART IS INITIAL.
DELETE IT_MSEG WHERE WERKS IS INITIAL.
SORT IT_MSEG BY MBLNR.
ENDIF.
SORT IT_FINAL BY MATNR LFBNR.
SORT IT_MSEG BY MATNR LFBNR.
LOOP AT IT_FINAL INTO WA_FINAL.
CLEAR WA_MSEG.
READ TABLE IT_MSEG INTO WA_MSEG WITH KEY MBLNR = WA_FINAL-LFBNR
MATNR = WA_FINAL-MATNR
EBELN = WA_FINAL-EBELN
EBELP = WA_FINAL-EBELP.
IF SY-SUBRC = 0.
WA_FINAL-ZEILE = WA_MSEG-ZEILE.
WA_FINAL-MBLNR = WA_MSEG-MBLNR.
WA_FINAL-MJAHR = WA_MSEG-MJAHR.
WA_FINAL-BWART = WA_MSEG-BWART.
WA_FINAL-WERKS = WA_MSEG-WERKS.
WA_FINAL-LIFNR = WA_MSEG-LIFNR.
* WA_FINAL-WRBTR1 = WA_MSEG-DMBTR.
WA_FINAL-ERFMG = WA_MSEG-ERFMG.
WA_FINAL-ERFME = WA_MSEG-ERFME.
WA_FINAL-LFBNR = WA_MSEG-LFBNR.
WA_FINAL-GSBER = WA_MSEG-GSBER.
WA_FINAL-LFPOS = WA_MSEG-LFPOS.
WA_FINAL-BUKRS = WA_MSEG-BUKRS.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING ZEILE MBLNR MJAHR BWART WERKS LIFNR ERFMG ERFME LFBNR GSBER LFPOS BUKRS.
ENDIF.
CLEAR WA_FINAL.
ENDLOOP.
DELETE IT_FINAL WHERE BWART IS INITIAL.
DELETE IT_FINAL WHERE LIFNR IS INITIAL.
SORT IT_FINAL BY MBLNR MJAHR.
SORT IT_MKPF BY MBLNR MJAHR.
ENDFORM. " GET_DATA_MSEG_GANGA_CST
2013 Feb 27 12:34 PM
2013 Feb 27 12:40 PM
Fields: 'WA_FINAL-KWERT' and
'WA_FINAL-KWERT_BASIC' should not be null.. atleast WA_FINAL-KWERT_BASIC
cannot be null.
2013 Feb 27 1:45 PM
Hi khusboo,
I have seen your code, there is a problem in query ,
SELECT
KWERT
FROM KONV INTO TABLE IIT_SEG2
FOR ALL ENTRIES IN IT_SEG
WHERE KNUMV = IT_SEG-KNUMV AND KPOSN = IT_SEG-BUZEI AND KSCHL = 'AUDI'.
SELECT
KWERT
FROM KONV INTO CORRESPONDING FIELDS OF TABLE IIT_SEG3
FOR ALL ENTRIES IN IT_SEG
WHERE KNUMV = IT_SEG-KNUMV AND KPOSN = IT_SEG-BUZEI AND KSCHL ='BASB'.
the data element is different of buzei of kposn, try to remove that condition you will get your value......
still you are facing any problem let me know................
--
regards
Jack
2013 Feb 27 5:51 PM
ok, im gonna try changing the data element as you have said, as soon as i get hang of sytem,.. thankyou for the reply and ill let you how it goes.
Thankyou.
2013 Feb 27 5:53 PM
sorry ill try changing the field value to
KSCHL = 'AUDI'. (not the data element )
2013 Feb 28 2:09 AM
i removed '
KPOSN = IT_SEG-BUZEI'
from conditions and its still not working... most likely, im not getting the relations right on how to extract base amount and cst amount of an item from rseg..lets hope ill drill down to the answer and meanwhile thankyou lots for your efforts,
Regards,
Khushboo
2013 Feb 28 5:43 AM
hi Khushboo,
check that KSCHL Value or just check in the database in knov whether you have any records belongs to that value or not...........i think its not finding the value you have provided..........
--
Regards
Jack
2013 Feb 28 6:40 AM
ive been going in an adventurous circle here.. apparently, Cond Types 'JISB' (cst amount) and 'basb' (base amount) will not be there in KONV.. now ill have to link BSET and EKKO ( and EKKO is linked with RSEG).. lets see if i cant get those condition types in BSET.. till then if you find out on how to link them, let me know, or elese once im done ill post here.
Thanks & Regards,
Khushboo