ลิขิตฟ้า หรือ จะสู้มานะคน

chon_pro
Location :
สมุทรปราการ Thailand

[Profile ทั้งหมด]

ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 12 คน [?]




ผมแค่อยากเขียน บันทึกเกี่ยวกับข้อมูลการทำงานของผมต่างๆ เพื่อเก็บเอาไว้ใช้ดูเวลาที่ผมหลงลืม และเพื่อเป็นประโยชน์ กับน้องๆๆๆ ทั้งหลาย
loaocat

Stat Counter :
Group Blog
 
All Blogs
 
Friends' blogs
[Add chon_pro's blog to your web]
Links
 

 
Purchase order performance report.

*----------------------------------------------------------------------
* Modification Log:
* 1) Changed by : Suchon Poomcharoen
* Changed on : 14/10/2009
* Transport :
* Correction-No : CH01
* Description : 1) Add Pur. Doc , WBS , find Acct Doc.
*----------------------------------------------------------------------

REPORT ZMM005 MESSAGE-ID ZRTC .

*--------------------------------------------
TABLES:
*--------------------------------------------
EKKO, EKPO, EKET, EKBE, EKKN.


*--------------------------------------------
*SELECTION
*--------------------------------------------
*BLOCK 0
SELECTION-SCREEN BEGIN OF BLOCK 0 WITH
FRAME TITLE TEXT-001.
SELECT-OPTIONS S_LIFNR FOR EKKO-LIFNR NO INTERVALS.
SELECT-OPTIONS S_MATNR FOR EKPO-MATNR NO INTERVALS.
SELECT-OPTIONS S_MATKL FOR EKPO-MATKL NO INTERVALS.
SELECT-OPTIONS S_EKGRP FOR EKKO-EKGRP NO INTERVALS.
SELECT-OPTIONS S_BEDAT FOR EKKO-BEDAT.
SELECT-OPTIONS S_PURDOC for EKKO-EBELN.
PARAMETER S_WBS LIKE EKKN-PS_PSP_PNR .
*SELECT-OPTIONS S_WBS for EKKN-PS_PSP_PNR NO INTERVALS.
SELECTION-SCREEN END OF BLOCK 0.
*BLOCK 2
SELECTION-SCREEN BEGIN OF BLOCK 2 WITH
FRAME TITLE TEXT-010.
PARAMETERS: P_VARI LIKE DISVARIANT-VARIANT. " ALV Variant
*SELECTION-SCREEN SKIP.
*SELECTION-SCREEN PUSHBUTTON /10(20) SUMMA USER-COMMAND ABCD.
SELECTION-SCREEN END OF BLOCK 2.


*--------------------------------------------
*DATA
*--------------------------------------------
*ALV DATA
TYPE-POOLS: SLIS.
DATA: GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
GT_EVENTS TYPE SLIS_T_EVENT,
GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
GT_SORT TYPE SLIS_T_SORTINFO_ALV,
GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
FIELDCAT_LN LIKE LINE OF GT_FIELDCAT,
REPNAME LIKE SY-REPID,
G_SAVE(1) TYPE C,
G_EXIT(1) TYPE C,
G_VARIANT LIKE DISVARIANT,
GX_VARIANT LIKE DISVARIANT.

*USER DATA
DATA VWCASE(3) TYPE N.
DATA SDAT LIKE EKET-EINDT.


*--------------------------------------------
*INTERNAL TABLE
*--------------------------------------------
*ITAB
DATA: BEGIN OF ITAB OCCURS 0,
BELNR LIKE EKBE-BELNR, "Start insert by suchon CH01
LIFNR LIKE EKKO-LIFNR,
BEDAT LIKE EKKO-BEDAT,
WAERS LIKE EKKO-WAERS,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
MATNR LIKE EKPO-MATNR,
TXZ01 LIKE EKPO-TXZ01,
MENGE LIKE EKPO-MENGE,
MEINS LIKE EKPO-MEINS,
NETPR LIKE EKPO-NETPR,
ELIKZ LIKE EKPO-ELIKZ,
EINDT LIKE EKET-EINDT,
BUDAT LIKE EKBE-BUDAT,
MENGE2 LIKE EKBE-MENGE,
DELP TYPE I,
CMT(15) TYPE C,
*BELNR LIKE EKBE-BELNR, "Start insert by suchon CH01
BUZEI LIKE EKBE-BUZEI,
DMBTR LIKE EKBE-DMBTR,
PS_PSP_PNR LIKE EKKN-PS_PSP_PNR,"End insert by suchon CH01
DMBTR1 LIKE EKBE-DMBTR,
DMBTR2 LIKE EKBE-DMBTR,
DMBTR3 LIKE EKBE-DMBTR,
DMBTR4 LIKE EKBE-DMBTR,
DMBTR5 LIKE EKBE-DMBTR,
DMBTR6 LIKE EKBE-DMBTR,
DMBTR7 LIKE EKBE-DMBTR,
DMBTR8 LIKE EKBE-DMBTR,
DMBTR9 LIKE EKBE-DMBTR,
DMBTR10 LIKE EKBE-DMBTR,
DMBTR11 LIKE EKBE-DMBTR,
DMBTR12 LIKE EKBE-DMBTR,
*BRTWR1 LIKE EKPO-BRTWR,
BRTWR1(13) TYPE C,
BRTWR2(13) TYPE C,
BRTWR3(13) TYPE C,
BRTWR4(13) TYPE C,
BRTWR5(13) TYPE C,
BRTWR6(13) TYPE C,
BRTWR7(13) TYPE C,
BRTWR8(13) TYPE C,
BRTWR9(13) TYPE C,
BRTWR10(13) TYPE C,
BRTWR11(13) TYPE C,
BRTWR12(13) TYPE C,
SUM_BRTWR LIKE EKPO-BRTWR,
POST1 LIKE PRPS-POST1,
H_note LIKE TLINE-TDLINE,
SUM_OUT LIKE EKPO-BRTWR,
SUM_ACT LIKE EKBE-DMBTR,
END OF ITAB.

*ITAB1
DATA: BEGIN OF ITAB1 OCCURS 0,
LIFNR LIKE EKKO-LIFNR,
BEDAT LIKE EKKO-BEDAT,
WAERS LIKE EKKO-WAERS,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
MATNR LIKE EKPO-MATNR,
TXZ01 LIKE EKPO-TXZ01,
MENGE LIKE EKPO-MENGE,
MEINS LIKE EKPO-MEINS,
NETPR LIKE EKPO-NETPR,
ELIKZ LIKE EKPO-ELIKZ,
EINDT LIKE EKET-EINDT,
BUDAT LIKE EKBE-BUDAT,
MENGE2 LIKE EKBE-MENGE,
DELP TYPE I,
CMT(15) TYPE C,
BELNR LIKE EKBE-BELNR, "Start insert by suchon CH01
BUZEI LIKE EKBE-BUZEI,
DMBTR LIKE EKBE-DMBTR,
PS_PSP_PNR LIKE EKKN-PS_PSP_PNR, "End insert by suchon CH01
DMBTR1 LIKE EKBE-DMBTR,
DMBTR2 LIKE EKBE-DMBTR,
DMBTR3 LIKE EKBE-DMBTR,
DMBTR4 LIKE EKBE-DMBTR,
DMBTR5 LIKE EKBE-DMBTR,
DMBTR6 LIKE EKBE-DMBTR,
DMBTR7 LIKE EKBE-DMBTR,
DMBTR8 LIKE EKBE-DMBTR,
DMBTR9 LIKE EKBE-DMBTR,
DMBTR10 LIKE EKBE-DMBTR,
DMBTR11 LIKE EKBE-DMBTR,
DMBTR12 LIKE EKBE-DMBTR,
*BRTWR1 LIKE EKPO-BRTWR,
BRTWR1(13) TYPE C,
BRTWR2(13) TYPE C,
BRTWR3(13) TYPE C,
BRTWR4(13) TYPE C,
BRTWR5(13) TYPE C,
BRTWR6(13) TYPE C,
BRTWR7(13) TYPE C,
BRTWR8(13) TYPE C,
BRTWR9(13) TYPE C,
BRTWR10(13) TYPE C,
BRTWR11(13) TYPE C,
BRTWR12(13) TYPE C,
SUM_BRTWR LIKE EKPO-BRTWR,
POST1 LIKE PRPS-POST1,
H_note LIKE TLINE-TDLINE,
SUM_OUT LIKE EKPO-BRTWR,
SUM_ACT LIKE EKBE-DMBTR,

END OF ITAB1.
*MTEXT
DATA: BEGIN OF mtext OCCURS 50.
INCLUDE STRUCTURE tline.
DATA: END OF mtext.
*Temp data
DATA TEMP1 LIKE ITAB1.

*EKKOTAB
DATA: BEGIN OF EKKOTAB OCCURS 0,
EBELN LIKE EKKO-EBELN,
LIFNR LIKE EKKO-LIFNR,
BEDAT LIKE EKKO-BEDAT,
WAERS LIKE EKKO-WAERS,
END OF EKKOTAB.

*EKPOTAB
DATA: BEGIN OF EKPOTAB OCCURS 0,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
LIFNR LIKE EKKO-LIFNR,
BEDAT LIKE EKKO-BEDAT,
WAERS LIKE EKKO-WAERS,
MATNR LIKE EKPO-MATNR,
TXZ01 LIKE EKPO-TXZ01,
MENGE LIKE EKPO-MENGE,
MEINS LIKE EKPO-MEINS,
NETPR LIKE EKPO-NETPR,
ELIKZ LIKE EKPO-ELIKZ,
EINDT LIKE EKET-EINDT,
BRTWR LIKE EKPO-BRTWR,
END OF EKPOTAB.




*--------------------------------------------
INITIALIZATION.
*--------------------------------------------
REPNAME = SY-REPID.
PERFORM BUILD.
PERFORM EVENTTAB_BUILD CHANGING GT_EVENTS.
PERFORM COMMENT_BUILD CHANGING GT_LIST_TOP_OF_PAGE.
PERFORM INITIALIZE_VARIANT.



*--------------------------------------------
AT SELECTION-SCREEN.
*--------------------------------------------
IF S_BEDAT IS INITIAL.
MESSAGE E000
WITH 'Please enter a date in Main Selection Criteria'.
ENDIF.

* IF P_01 = 'X' AND P_D01 IS INITIAL.
* MESSAGE E000
* WITH 'Please enter a number on Delivered Before Plan Delivery'.
* ENDIF.
*
* IF P_02 = 'X' AND P_D02 IS INITIAL.
* MESSAGE E000
* WITH 'Please enter a number on Delivered After Plan Delivery'.
* ENDIF.
*
* IF P_04 = 'X' AND P_D04 IS INITIAL.
* MESSAGE E000
* WITH 'Please enter a number on Un-delivered Before Plan Delivery'.
* ENDIF.
*
* IF P_05 = 'X' AND P_D05 IS INITIAL.
* MESSAGE E000
* WITH 'Please enter a number on Un-delivered After Plan Delivery'.
* ENDIF.

PERFORM PAI_OF_SELECTION_SCREEN.


*--------------------------------------------
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
*--------------------------------------------
PERFORM F4_FOR_VARIANT.


*--------------------------------------------
START-OF-SELECTION.
*--------------------------------------------
PERFORM START.


*--------------------------------------------
END-OF-SELECTION.
*--------------------------------------------
PERFORM CALL_ALV.





*--------------------------------------------
FORM START.
*--------------------------------------------

PERFORM GET_EKKOTAB.
PERFORM GET_EKPOTAB.
PERFORM GET_ITAB1.
PERFORM MOVE_ITAB1_TO_ITAB.
* START INSERT BY SUCHON CH01
IF NOT S_WBS IS INITIAL.
DELETE ITAB WHERE PS_PSP_PNR <> S_WBS.
ENDIF.
ENDFORM. "START
* END INSERT BY SUCHON CH01


*--------------------------------------------
FORM GET_EKKOTAB.
*--------------------------------------------
REFRESH EKKOTAB. CLEAR EKKOTAB.

SELECT EBELN LIFNR BEDAT WAERS
INTO (EKKO-EBELN, EKKO-LIFNR, EKKO-BEDAT, EKKO-WAERS)
FROM EKKO WHERE
LIFNR IN S_LIFNR AND
EKGRP IN S_EKGRP AND
BEDAT IN S_BEDAT
AND EBELN IN S_Purdoc. " INSERT BY SUCHON , CH01

MOVE EKKO-EBELN TO EKKOTAB-EBELN.
MOVE EKKO-LIFNR TO EKKOTAB-LIFNR.
MOVE EKKO-BEDAT TO EKKOTAB-BEDAT.
MOVE EKKO-WAERS TO EKKOTAB-WAERS.
APPEND EKKOTAB. CLEAR EKKOTAB.

ENDSELECT.


ENDFORM. "GET_EKKOTAB



*--------------------------------------------
FORM GET_EKPOTAB.
*--------------------------------------------
REFRESH EKPOTAB. CLEAR EKPOTAB.

LOOP AT EKKOTAB.

SELECT EBELN EBELP MATNR TXZ01 MENGE MEINS NETPR ELIKZ BRTWR
INTO (EKPO-EBELN, EKPO-EBELP, EKPO-MATNR, EKPO-TXZ01,
EKPO-MENGE, EKPO-MEINS, EKPO-NETPR, EKPO-ELIKZ,
EKPO-BRTWR)
FROM EKPO WHERE
EBELN = EKKOTAB-EBELN AND
MATNR IN S_MATNR AND
MATKL IN S_MATKL.

SELECT SINGLE EINDT INTO EKET-EINDT
FROM EKET WHERE
EBELN = EKPO-EBELN AND EBELP = EKPO-EBELP.
MOVE EKKOTAB-LIFNR TO EKPOTAB-LIFNR.
MOVE EKKOTAB-BEDAT TO EKPOTAB-BEDAT.
MOVE EKKOTAB-WAERS TO EKPOTAB-WAERS.
MOVE EKPO-EBELN TO EKPOTAB-EBELN.
MOVE EKPO-EBELP TO EKPOTAB-EBELP.
MOVE EKPO-MATNR TO EKPOTAB-MATNR.
MOVE EKPO-TXZ01 TO EKPOTAB-TXZ01.
MOVE EKPO-MENGE TO EKPOTAB-MENGE.
MOVE EKPO-MEINS TO EKPOTAB-MEINS.
MOVE EKPO-NETPR TO EKPOTAB-NETPR.
MOVE EKPO-ELIKZ TO EKPOTAB-ELIKZ.
MOVE EKET-EINDT TO EKPOTAB-EINDT.
MOVE EKPO-BRTWR TO EKPOTAB-BRTWR.
APPEND EKPOTAB. CLEAR EKPOTAB.

ENDSELECT.

ENDLOOP.

ENDFORM. "GET_EKPOTAB

*--------------------------------------------
FORM GET_ITAB1.
*--------------------------------------------
DATA DVPLAN TYPE I.
DATA COMMT(15) TYPE C.
DATA tname LIKE thead-tdname.



REFRESH ITAB1. CLEAR ITAB1.

LOOP AT EKPOTAB.

SELECT SINGLE PS_PSP_PNR
INTO (ITAB1-PS_PSP_PNR)
FROM EKKN WHERE EBELN = EKPOTAB-EBELN
AND EBELP = EKPOTAB-EBELP.

SELECT SINGLE POST1
INTO (ITAB1-POST1)
FROM PRPS
WHERE PSPNR = ITAB1-PS_PSP_PNR.

MOVE EKPOTAB-EBELN TO TNAME.

***************CALL HEADER NOTES*******************
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = 'F02'
language = 'E'
name = tname
object = 'EKKO'
TABLES
lines = MTEXT
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
****************************************************
IF SY-SUBRC = 0.
READ TABLE MTEXT INDEX 1 ."INTO itab1-h_note.
MOVE MTEXT-TDLINE TO ITAB1-H_NOTE.
ENDIF.

ITAB1-SUM_BRTWR = ITAB1-SUM_BRTWR + EKPOTAB-BRTWR.

SELECT DMBTR BUDAT
INTO (ITAB1-DMBTR,ITAB1-BUDAT)
FROM EKBE WHERE EBELN = EKPOTAB-EBELN
AND EBELP = EKPOTAB-EBELP AND BEWTP = 'Q'.
TEMP1-DMBTR = TEMP1-DMBTR + ITAB1-DMBTR.
TEMP1-BUDAT = ITAB1-BUDAT.
ENDSELECT.

ITAB1-SUM_ACT = ITAB1-SUM_ACT + TEMP1-DMBTR .

CASE EKPOTAB-EINDT+4(2) .
WHEN 1.
ITAB1-BRTWR1 = EKPOTAB-BRTWR - TEMP1-DMBTR.

IF EKPOTAB-EINDT+4(2) = TEMP1-BUDAT+4(2).
ITAB1-DMBTR1 = TEMP1-DMBTR.
ELSE.
PERFORM CHK_DATE_INV.
ENDIF.
CLEAR TEMP1.
WHEN 2.
ITAB1-BRTWR2 = EKPOTAB-BRTWR.
IF EKPOTAB-EINDT+4(2) = TEMP1-BUDAT+4(2).
ITAB1-DMBTR2 = TEMP1-DMBTR.
ELSE.
PERFORM CHK_DATE_INV.
ENDIF.
CLEAR TEMP1.
WHEN 3.
ITAB1-BRTWR3 = EKPOTAB-BRTWR.
IF EKPOTAB-EINDT+4(2) = TEMP1-BUDAT+4(2).
ITAB1-DMBTR3 = TEMP1-DMBTR.
ELSE.
PERFORM CHK_DATE_INV.
ENDIF.
CLEAR TEMP1.

WHEN 4.
ITAB1-BRTWR4 = EKPOTAB-BRTWR.
IF EKPOTAB-EINDT+4(2) = TEMP1-BUDAT+4(2).
ITAB1-DMBTR4 = TEMP1-DMBTR.
ELSE.
PERFORM CHK_DATE_INV.
ENDIF.
CLEAR TEMP1.

WHEN 5.
ITAB1-BRTWR5 = EKPOTAB-BRTWR.
IF EKPOTAB-EINDT+4(2) = TEMP1-BUDAT+4(2).
ITAB1-DMBTR5 = TEMP1-DMBTR.
ELSE.
PERFORM CHK_DATE_INV.
ENDIF.
CLEAR TEMP1.

WHEN 6.
ITAB1-BRTWR6 = EKPOTAB-BRTWR.
IF EKPOTAB-EINDT+4(2) = TEMP1-BUDAT+4(2).
ITAB1-DMBTR6 = TEMP1-DMBTR.
ELSE.
PERFORM CHK_DATE_INV.
ENDIF.
CLEAR TEMP1.

WHEN 7.
ITAB1-BRTWR7 = EKPOTAB-BRTWR.
IF EKPOTAB-EINDT+4(2) = TEMP1-BUDAT+4(2).
ITAB1-DMBTR7 = TEMP1-DMBTR.
ELSE.
PERFORM CHK_DATE_INV.
ENDIF.
CLEAR TEMP1.

WHEN 8.
ITAB1-BRTWR8 = EKPOTAB-BRTWR.
IF EKPOTAB-EINDT+4(2) = TEMP1-BUDAT+4(2).
ITAB1-DMBTR8 = TEMP1-DMBTR.
ELSE.
PERFORM CHK_DATE_INV.
ENDIF.
CLEAR TEMP1.

WHEN 9.
ITAB1-BRTWR9 = EKPOTAB-BRTWR.
IF EKPOTAB-EINDT+4(2) = TEMP1-BUDAT+4(2).
ITAB1-DMBTR9 = TEMP1-DMBTR.
ELSE.
PERFORM CHK_DATE_INV.
ENDIF.
CLEAR TEMP1.

WHEN 10.
ITAB1-BRTWR10 = EKPOTAB-BRTWR.
IF EKPOTAB-EINDT+4(2) = TEMP1-BUDAT+4(2).
ITAB1-DMBTR10 = TEMP1-DMBTR.
ELSE.
PERFORM CHK_DATE_INV.
ENDIF.
CLEAR TEMP1.

WHEN 11.
ITAB1-BRTWR11 = EKPOTAB-BRTWR.
IF EKPOTAB-EINDT+4(2) = TEMP1-BUDAT+4(2).
ITAB1-DMBTR11 = TEMP1-DMBTR.
ELSE.
PERFORM CHK_DATE_INV.
ENDIF.
CLEAR TEMP1.

WHEN 12.
ITAB1-BRTWR12 = EKPOTAB-BRTWR.
IF EKPOTAB-EINDT+4(2) = TEMP1-BUDAT+4(2).
ITAB1-DMBTR12 = TEMP1-DMBTR.
ELSE.
PERFORM CHK_DATE_INV.
ENDIF.
CLEAR TEMP1.

ENDCASE.
Perform move_ekpotab_to_itab1.
AT end of EBELN .
sum.
ITAB1-SUM_OUT = EKPOTAB-BRTWR.
APPEND ITAB1.
CLEAR ITAB1.
CLEAR TEMP1.
endat.

ENDLOOP.


ENDFORM. "GET_ITAB1

*--------------------------------------------
FORM MOVE_ITAB1_TO_ITAB.
*--------------------------------------------

REFRESH ITAB. CLEAR ITAB.
PERFORM GET_FILTER_CASE.

LOOP AT ITAB1.

CLEAR SDAT.
CASE VWCASE.

*Deliver - Select All
WHEN '003'.
IF ITAB1-BUDAT <> SPACE.
MOVE-CORRESPONDING ITAB1 TO ITAB.
APPEND ITAB. CLEAR ITAB.
ENDIF.
*UnDeliver - Select All
WHEN '006'.
IF ITAB1-BUDAT IS INITIAL OR ITAB1-BUDAT = ''.
MOVE-CORRESPONDING ITAB1 TO ITAB.
APPEND ITAB. CLEAR ITAB.
ENDIF.
*Select All
WHEN '007'.
MOVE-CORRESPONDING ITAB1 TO ITAB.
APPEND ITAB. CLEAR ITAB.

ENDCASE. "VWCASE

ENDLOOP. "ITAB1

ENDFORM. "MOVE_ITAB1_TO_ITAB

*--------------------------------------------
FORM GET_FILTER_CASE.
*--------------------------------------------
CLEAR VWCASE.
MOVE '007' TO VWCASE.
ENDFORM. "GET_FILTER_CASE


*--------------------------------------------
FORM F4_FOR_VARIANT.
*--------------------------------------------
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
IS_VARIANT = G_VARIANT
I_SAVE = G_SAVE
IMPORTING
E_EXIT = G_EXIT
ES_VARIANT = GX_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 2.
MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
IF G_EXIT = SPACE.
P_VARI = GX_VARIANT-VARIANT.
ENDIF.
ENDIF.
ENDFORM. " F4_FOR_VARIANT



*--------------------------------------------
FORM PAI_OF_SELECTION_SCREEN.
*--------------------------------------------
IF NOT P_VARI IS INITIAL.
MOVE G_VARIANT TO GX_VARIANT.
MOVE P_VARI TO GX_VARIANT-VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
I_SAVE = G_SAVE
CHANGING
CS_VARIANT = GX_VARIANT.
G_VARIANT = GX_VARIANT.
ELSE.
PERFORM INITIALIZE_VARIANT.
ENDIF.
ENDFORM. " PAI_OF_SELECTION_SCREEN



*--------------------------------------------
FORM CALL_ALV.
*--------------------------------------------
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = REPNAME
* I_STRUCTURE_NAME = 'ITAB1'
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = GT_FIELDCAT[]
IT_SORT = GT_SORT[]
IT_EVENTS = GT_EVENTS[]
IS_VARIANT = G_VARIANT
I_DEFAULT = 'A'
I_SAVE = G_SAVE
TABLES
T_OUTTAB = ITAB
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
ENDFORM. "CALL ALV

*--------------------------------------------
FORM INITIALIZE_VARIANT.
*--------------------------------------------
G_SAVE = 'A'.
CLEAR G_VARIANT.
G_VARIANT-REPORT = REPNAME.
GX_VARIANT = G_VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
I_SAVE = G_SAVE
CHANGING
CS_VARIANT = GX_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 0.
P_VARI = GX_VARIANT-VARIANT.
ENDIF.
ENDFORM. " INITIALIZE_VARIANT



*--------------------------------------------
FORM COMMENT_BUILD CHANGING GT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
*--------------------------------------------
DATA: GS_LINE TYPE SLIS_LISTHEADER.

CLEAR GS_LINE.
GS_LINE-TYP = 'H'.
GS_LINE-INFO = 'Rodenstock (Thailand) Co.,Ltd.'.
APPEND GS_LINE TO GT_TOP_OF_PAGE.

CLEAR GS_LINE.
GS_LINE-TYP = 'S'.
GS_LINE-INFO = 'Purchase Order Performance Report'.
APPEND GS_LINE TO GT_TOP_OF_PAGE.
ENDFORM. "COMMENT_BUILD


*--------------------------------------------
FORM EVENTTAB_BUILD CHANGING LT_EVENTS TYPE SLIS_T_EVENT.
*--------------------------------------------
CONSTANTS:
GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = LT_EVENTS.

READ TABLE LT_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 LT_EVENTS.
ENDIF.
ENDFORM. "EVENTTAB_BUILD



*--------------------------------------------
FORM TOP_OF_PAGE.
*--------------------------------------------
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
ENDFORM. "TOP_OF_PAGE



*--------------------------------------------
FORM BUILD.
*--------------------------------------------

FIELDCAT_LN-TABNAME = 'ITAB'.

FIELDCAT_LN-FIELDNAME = 'PS_PSP_PNR'.
FIELDCAT_LN-SELTEXT_L = 'WBS element'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'POST1'.
FIELDCAT_LN-SELTEXT_L = 'Description'.
FIELDCAT_LN-FIX_COLUMN = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'EBELN'.
FIELDCAT_LN-SELTEXT_L = 'PO No.'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'H_NOTE'.
FIELDCAT_LN-SELTEXT_L = 'Detail.'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.


FIELDCAT_LN-FIELDNAME = 'SUM_BRTWR'.
FIELDCAT_LN-SELTEXT_L = 'PO Amount'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'BRTWR1'.
FIELDCAT_LN-SELTEXT_L = 'Outstanding / Jan'.
* FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'DMBTR1'.
FIELDCAT_LN-SELTEXT_L = 'Actual / Jan'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'BRTWR2'.
FIELDCAT_LN-SELTEXT_L = 'Outstanding / Feb'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'DMBTR2'.
FIELDCAT_LN-SELTEXT_L = 'Actual / Feb'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'BRTWR3'.
FIELDCAT_LN-SELTEXT_L = 'Outstanding / Mar'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'DMBTR3'.
FIELDCAT_LN-SELTEXT_L = 'Actual / Mar'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'BRTWR4'.
FIELDCAT_LN-SELTEXT_L = 'Outstanding / Apr'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'DMBTR4'.
FIELDCAT_LN-SELTEXT_L = 'Actual / Apr'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'BRTWR5'.
FIELDCAT_LN-SELTEXT_L = 'Outstanding / May'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'DMBTR5'.
FIELDCAT_LN-SELTEXT_L = 'Actual / May'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'BRTWR6'.
FIELDCAT_LN-SELTEXT_L = 'Outstanding / Jun'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'DMBTR6'.
FIELDCAT_LN-SELTEXT_L = 'Actual / Jun'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'BRTWR7'.
FIELDCAT_LN-SELTEXT_L = 'Outstanding / July'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'DMBTR7'.
FIELDCAT_LN-SELTEXT_L = 'Actual / July'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'BRTWR8'.
FIELDCAT_LN-SELTEXT_L = 'Outstanding / Aug'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'DMBTR8'.
FIELDCAT_LN-SELTEXT_L = 'Actual / Aug'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'BRTWR9'.
FIELDCAT_LN-SELTEXT_L = 'Outstanding / Sep'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'DMBTR9'.
FIELDCAT_LN-SELTEXT_L = 'Actual / Sep'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'BRTWR10'.
FIELDCAT_LN-SELTEXT_L = 'Qutstanding / Oct'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'DMBTR10'.
FIELDCAT_LN-SELTEXT_L = 'Actual / Oct'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'BRTWR11'.
FIELDCAT_LN-SELTEXT_L = 'Outstanding / Nov'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'DMBTR11'.
FIELDCAT_LN-SELTEXT_L = 'Actual / Nov'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'BRTWR12'.
FIELDCAT_LN-SELTEXT_L = 'Outstanding / Dec'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'DMBTR12'.
FIELDCAT_LN-SELTEXT_L = 'Actual / Dec'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'SUM_OUT'.
FIELDCAT_LN-SELTEXT_L = 'TOTAL Outstanding'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'SUM_ACT'.
FIELDCAT_LN-SELTEXT_L = 'TOTAL Actual'.
FIELDCAT_LN-NO_ZERO = 'X'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.




DATA: GS_SORT TYPE SLIS_SORTINFO_ALV.
CLEAR GS_SORT.
GS_SORT-FIELDNAME = 'PS_PSP_PNR'.
GS_SORT-SPOS = 1.
* GS_SORT-UP = 'X'.
GS_SORT-SUBTOT = 'X'.
APPEND GS_SORT TO GT_SORT.

GS_LAYOUT-TOTALS_BEFORE_ITEMS = 'X'.
GS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
GS_LAYOUT-F2CODE = '&ETA'.
GS_LAYOUT-ZEBRA = 'X'.

ENDFORM. "BUILD
*&---------------------------------------------------------------------*
*& Form move_ekpotab_to_itab1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM move_ekpotab_to_itab1.
MOVE EKPOTAB-LIFNR TO ITAB1-LIFNR.
MOVE EKPOTAB-BEDAT TO ITAB1-BEDAT.
MOVE EKPOTAB-WAERS TO ITAB1-WAERS.
MOVE EKPOTAB-EBELN TO ITAB1-EBELN.
MOVE EKPOTAB-EBELP TO ITAB1-EBELP.
MOVE EKPOTAB-MATNR TO ITAB1-MATNR.
MOVE EKPOTAB-TXZ01 TO ITAB1-TXZ01.
MOVE EKPOTAB-MENGE TO ITAB1-MENGE.
MOVE EKPOTAB-MEINS TO ITAB1-MEINS.
MOVE EKPOTAB-NETPR TO ITAB1-NETPR.
MOVE EKPOTAB-ELIKZ TO ITAB1-ELIKZ.
MOVE EKPOTAB-EINDT TO ITAB1-EINDT.
MOVE EKBE-BUDAT TO ITAB1-BUDAT.
MOVE EKBE-MENGE TO ITAB1-MENGE2.
* MOVE DVPLAN TO ITAB1-DELP.
* MOVE COMMT TO ITAB1-CMT.
* APPEND ITAB1. CLEAR ITAB1.
ENDFORM. " move_ekpotab_to_itab1
*&---------------------------------------------------------------------*
*& Form GET_INV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_P1 text
*----------------------------------------------------------------------
*&---------------------------------------------------------------------*
*& Form CHK_DATE_INV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM CHK_DATE_INV.
CASE TEMP1-BUDAT+4(2).
WHEN 1.
ITAB1-DMBTR1 = ITAB1-DMBTR1 + TEMP1-DMBTR.
concatenate ITAB1-BRTWR1 '*' into ITAB1-BRTWR1 .
WHEN 2.
ITAB1-DMBTR2 = ITAB1-DMBTR2 + TEMP1-DMBTR.
concatenate ITAB1-BRTWR2 '*' into ITAB1-BRTWR2.
WHEN 3.
ITAB1-DMBTR3 = ITAB1-DMBTR3 + TEMP1-DMBTR.
concatenate ITAB1-BRTWR3 '*' into ITAB1-BRTWR3 .
WHEN 4.
ITAB1-DMBTR4 = ITAB1-DMBTR4 + TEMP1-DMBTR.
concatenate ITAB1-BRTWR4 '*' into ITAB1-BRTWR4.
WHEN 5.
ITAB1-DMBTR5 = ITAB1-DMBTR5 + TEMP1-DMBTR.
concatenate ITAB1-BRTWR5 '*' into ITAB1-BRTWR5.
WHEN 6.
ITAB1-DMBTR6 = ITAB1-DMBTR6 + TEMP1-DMBTR.
concatenate ITAB1-BRTWR6 '*' into ITAB1-BRTWR6.
WHEN 7.
ITAB1-DMBTR7 = ITAB1-DMBTR7 + TEMP1-DMBTR.
concatenate ITAB1-BRTWR7 '*' into ITAB1-BRTWR7 .
WHEN 8.
ITAB1-DMBTR8 = ITAB1-DMBTR8 + TEMP1-DMBTR.
concatenate ITAB1-BRTWR8 '*' into ITAB1-BRTWR8 .
WHEN 9.
ITAB1-DMBTR9 = ITAB1-DMBTR9 + TEMP1-DMBTR.
concatenate ITAB1-BRTWR9 '*' into ITAB1-BRTWR9.
WHEN 10.
ITAB1-DMBTR10 = ITAB1-DMBTR10 + TEMP1-DMBTR.
concatenate ITAB1-BRTWR10 '*' into ITAB1-BRTWR10.
WHEN 11.
ITAB1-DMBTR11 = ITAB1-DMBTR11 + TEMP1-DMBTR.
concatenate ITAB1-BRTWR11 '*' into ITAB1-BRTWR11 .
WHEN 12.
ITAB1-DMBTR12 = ITAB1-DMBTR12 + TEMP1-DMBTR.
concatenate ITAB1-BRTWR12 '*' into ITAB1-BRTWR12 .
ENDCASE.



Create Date : 05 พฤศจิกายน 2552
Last Update : 5 พฤศจิกายน 2552 8:57:43 น. 0 comments
Counter : 487 Pageviews.

ชื่อ : * blog นี้ comment ได้เฉพาะสมาชิก
Comment :
  *ส่วน comment ไม่สามารถใช้ javascript และ style sheet
 
 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.