Documente Academic
Documente Profesional
Documente Cultură
*&---------------------------------------------------------------------*
*& Report
ZCRIS_CLASSICAL_REPORT
*& Author
XXX
*& Start Date
27/08/2010
*& Purpose
REPORT TO DISPLAY THE PURCHASE DOCS
*&
USING EVENT
*& COPIED FROM NA
*&
*& *******************************************************************
*& MODIFICATION LOGS :
*& CHANGE REQUEST
CllEMAX4756
*& SUPPLIERS
xxxxxxxxxx
*&
*
*&---------------------------------------------------------------------*
REPORT ZCRIS_CLASSICAL_REPORT NO STANDARD PAGE HEADING LINE-COUNT
20(3)
.
TYPES : BEGIN OF TY_POS ,
EBELN TYPE EBELN ,
LIFNR TYPE LIFNR ,
BUKRS TYPE BUKRS ,
EKORG TYPE EKORG ,
EBELP TYPE EBELP ,
MATNR TYPE MATNR ,
MENGE TYPE BSTMG ,
NETPR TYPE BPREI,
END OF TY_POS.
************************************************
*
TOP-OF-PAGE
************************************************
TOP-OF-PAGE.
WRITE : 15 'Comp.Code' ,
17 'Vendor' ,
28 'Pur.Org' ,
40 'Doc.Nof' ,
52 'Item'
,
60 'Mat.Nol' ,
80 'Price' .
ULINE.
*************************************************
**
INTIALIZATION
*************************************************
INITIALIZATION.
S_BUKRS-LOW
= '1000'.
S_BUKRS-HIGH
= '5000'.
S_BUKRS-SIGN
= 'I'.
S_BUKRS-OPTION = 'BT'.
APPEND S_BUKRS.
*************************************************
*
AT SELECTION SCREEN
*************************************************
AT SELECTION-SCREEN ON S_BUKRS.
SELECT BUKRS INTO V_BUKRS FROM T001 WHERE BUKRS IN S_BUKRS.
ENDSELECT.
IF SY-SUBRC <> 0.
WRITE : / 'INVALID COMPANY CODE'.
ENDIF.
AT SELECTION-SCREEN ON S_EKORG.
SELECT EKORG INTO V_EKORG FROM EKKO WHERE EKORG IN S_EKORG.
ENDSELECT.
IF SY-SUBRC <> 0.
WRITE : / 'INVALID PURCHASING ORGANIZATION'.
ENDIF.
*****************************************************
*
START OF SELECTION
*****************************************************
START-OF-SELECTION.
SELECT EKKO~EBELN
EKKO~LIFNR
EKKO~BUKRS
EKKO~EKORG
EKPO~EBELP
EKPO~MATNR
EKPO~MENGE
EKPO~NETPR INTO TABLE IT_POS
FROM EKKO INNER JOIN EKPO
ON EKKO~EBELN = EKPO~EBELN
WHERE EKKO~BUKRS IN S_BUKRS
AND EKKO~EKORG IN S_EKORG.
*******************************************************
*
END OF SELECTION
*******************************************************
END-OF-SELECTION.
IF NOT IT_POS IS INITIAL.
LOOP AT IT_POS INTO WA_POS.
WRITE : 15 WA_POS-BUKRS ,
17 WA_POS-LIFNR ,
28 WA_POS-EKORG ,
40 WA_POS-EBELN ,
52 WA_POS-EBELP ,
60 WA_POS-MATNR ,
80 WA_POS-NETPR.
ENDLOOP.
ELSE.
WRITE : 1 ' NO RECORDS FOUND FOR THE GIVEN SELECTION' .
ENDIF.
******************************************************************
*
END OF PAGE
*******************************************************************
END-OF-PAGE.
uline.
WRITE : 'tech.sap29@gmail.com' .
uline.
TABLES: MARA,
T001W.
INITIALIZATION.
S_MATNR-LOW = '100-100'. S_MATNR-HIGH = '100-500'.
S_MATNR-SIGN = 'I'. S_MATNR-OPTION = 'BT'.
APPEND S_MATNR.
P_WERKS = '1000'.
AT SELECTION-SCREEN.
*
*
IF P_WERKS IS INITIAL.
MESSAGE E000(Z00) WITH 'Pls Enter Plant'.
ENDIF.
AT SELECTION-SCREEN ON S_MATNR.
IF NOT S_MATNR[] IS INITIAL.
PERFORM VALIDATE_S_MATNR.
ENDIF.
AT SELECTION-SCREEN ON P_WERKS.
IF NOT P_WERKS IS INITIAL.
PERFORM VALIDATE_WERKS.
ENDIF.
AT SELECTION-SCREEN OUTPUT.
PERFORM CHANGE_FIELDS.
*&---------------------------------------------------------------------*
*&
Form VALIDATE_S_MATNR
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM VALIDATE_S_MATNR .
SELECT MATNR
FROM MARA
INTO MARA-MATNR
UP TO 1 ROWS
WHERE MATNR IN S_MATNR.
ENDSELECT.
IF SY-SUBRC <> 0.
MESSAGE E000(Z00) WITH 'Invalid Range of Material From'
S_MATNR-LOW 'To' S_MATNR-HIGH.
ENDIF.
ENDFORM.
" VALIDATE_S_MATNR
*&---------------------------------------------------------------------*
*&
Form VALIDATE_WERKS
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM VALIDATE_WERKS .
SELECT SINGLE WERKS
FROM T001W
INTO T001W-WERKS
WHERE WERKS = P_WERKS.
IF SY-SUBRC <> 0.
MESSAGE E000(Z00) WITH 'Plant' P_WERKS 'Does not Exists'.
ENDIF.
ENDFORM.
" VALIDATE_WERKS
*&-------------------------------------------------------*&
Form CHANGE_FIELDS
*&-------------------------------------------------------*
text
*--------------------------------------------------------FORM CHANGE_FIELDS .
LOOP AT SCREEN.
IF SCREEN-NAME = 'P_WERKS'.
SCREEN-REQUIRED = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDFORM.
" CHANGE_FIELDS
REPORT ZSAPN_CLASSICAL_REPORT LINE-COUNT 34(2). "34 lines are for report space and 2
lines are for footer space
TABLES : MARA.
TYPES: BEGIN OF TY_MARA,
MATNR TYPE MARA-MATNR,
ERSDA TYPE MARA-ERSDA,
MTART TYPE MARA-MTART,
MBRSH TYPE MARA-MBRSH,
MATKL TYPE MARA-MATKL,
ENDIF.
AT SELECTION-SCREEN.
PERFORM VALIDATE_INPUTS.
START-OF-SELECTION.
PERFORM GET_MATERIALS .
END-OF-SELECTION.
LV_END_TIME = SY-UZEIT .
PERFORM DISPLAY_OUTPUT.
IF P_DLOAD = 'X'.
PERFORM DOWNLOAD_DATA.
ENDIF.
TOP-OF-PAGE.
WRITE : 'Material Details ' COLOR 2.
END-OF-PAGE.
WRITE : 'The above materials are active materials available in database' COLOR 3.
WRITE : 'Start time' .
WRITE : LV_START_TIME .
WRITE : 'End time' .
WRITE : LV_END_TIME .
FORM VALIDATE_INPUTS .
IF S_MATNR IS INITIAL OR P_MTART IS INITIAL.
ELSE.
" VALIDATE_INPUTS
FORM GET_MATERIALS .
SELECT MATNR ERSDA MTART MBRSH MATKL MEINS FROM MARA
INTO TABLE IT_MARA
UP TO P_LIMIT ROWS
WHERE MATNR IN S_MATNR AND MTART = P_MTART .
ENDFORM.
" GET_MATERIALS
FORM DISPLAY_OUTPUT .
ENDLOOP.
ELSE.
WRITE : 'No Data Found for your Query'.
ENDIF.
ENDFORM.
" DISPLAY_OUTPUT
FORM MTART_HELP .
MESSAGE 'Enter a Material Type ' TYPE 'I'.
ENDFORM.
" MTART_HELP
FORM MTART_VALUE_HELP .
MESSAGE 'Material type input ex: FERT' TYPE 'I'.
ENDFORM.
" MTART_VSLUE_HELP
FORM DOWNLOAD_DATA .
DATA : LV_FILE TYPE STRING .
LV_FILE = P_FILE .
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
* BIN_FILESIZE
FILENAME
FILETYPE
* APPEND
= LV_FILE
= 'ASC'
=''
WRITE_FIELD_SEPARATOR
* HEADER
= '00'
* TRUNC_TRAILING_BLANKS
* WRITE_LF
= 'X'
= 'X'
=''
* COL_SELECT
=''
* COL_SELECT_MASK
* DAT_MODE
=''
=''
* CONFIRM_OVERWRITE
=''
* NO_AUTH_CHECK
* CODEPAGE
=''
=''
* IGNORE_CERR
= ABAP_TRUE
* REPLACEMENT
= '#'
* WRITE_BOM
=''
* TRUNC_TRAILING_BLANKS_EOL
* WK1_N_FORMAT
=''
* WK1_N_SIZE
=''
* WK1_T_FORMAT
* WK1_T_SIZE
= 'X'
=''
=''
* WRITE_LF_AFTER_LAST_LINE
= ABAP_TRUE
* SHOW_TRANSFER_STATUS
= ABAP_TRUE
* IMPORTING
* FILELENGTH
TABLES
DATA_TAB
* FIELDNAMES
= IT_MARA
=
* EXCEPTIONS
* FILE_WRITE_ERROR
* NO_BATCH
=1
=2
* GUI_REFUSE_FILETRANSFER
* INVALID_TYPE
=4
* NO_AUTHORITY
* UNKNOWN_ERROR
* HEADER_NOT_ALLOWED
* SEPARATOR_NOT_ALLOWED
* FILESIZE_NOT_ALLOWED
* HEADER_TOO_LONG
* DP_ERROR_CREATE
=3
=5
=6
=7
=8
=9
= 10
= 11
* DP_ERROR_SEND
= 12
* DP_ERROR_WRITE
= 13
* UNKNOWN_DP_ERROR
= 14
* ACCESS_DENIED
= 15
* DP_OUT_OF_MEMORY
* DISK_FULL
= 16
= 17
* DP_TIMEOUT
= 18
* FILE_NOT_FOUND
= 19
* DATAPROVIDER_EXCEPTION
* CONTROL_FLUSH_ERROR
* OTHERS
= 20
= 21
= 22
.
IF SY-SUBRC = 0.
WRITE :/ 'Data downloaded to'.
WRITE : P_FILE.
ENDIF.
ENDFORM.
" DOWNLOAD_DATA
FORM FILE_VALUE_HELP .
" FILE_VALUE_HELP