EAM Availability Reportcument
EAM Availability Reportcument
*&---------------------------------------------------------------------*
*& Report Z_OPER_LOG_REPORT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
INCLUDE Z_AVAILABILITY_REPORT_TOP.
INCLUDE Z_AVAILABILITY_REPORT_SS.
INCLUDE Z_AVAILABILITY_REPORT_F01.
*----------------------------------------------------------------------*
* Start of selection
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM DATA_PROCESS.
PERFORM EVENT.
PERFORM FIELDCAT.
PERFORM DISPLAY.
*---------------------------------------------------------------------*
* End of selection
*---------------------------------------------------------------------*
END-OF-SELECTION.
* TOP-OF-PAGE.
PERFORM TOP_OF_PAGE.
*&---------------------------------------------------------------------*
*& Include Z_AVAILABILITY_REPORT_TOP
*&---------------------------------------------------------------------*
TABLES: PROJ,EQUI,IMRG.
*&---------------------------------------------------------------------*
*& Include Z_AVAILABILITY_REPORT_SS
*&---------------------------------------------------------------------*
SELECT-OPTIONS :
* S_PSPNR FOR PROJ-PSPNR NO INTERVALS NO-EXTENSION OBLIGATORY,
S_WERKS FOR PROJ-WERKS NO INTERVALS NO-EXTENSION OBLIGATORY,
S_EQUNR FOR EQUI-EQUNR,
S_DATE FOR IMRG-IDATE OBLIGATORY.
SELECT ILOAN,
SWERK
FROM ILOA
INTO TABLE @DATA(LT_ILOA1)
WHERE SWERK IN @S_WERKS.
SELECT ILOAN,
SWERK
FROM ILOA
INTO TABLE @DATA(LT_ILOA1)
WHERE SWERK IN @S_WERKS.
IF SY-SUBRC IS INITIAL.
Gv_thrs = LS_SHIFT-THRS.
GS_FINAL-THRS = Gv_thrs.
ENDIF.
IF SY-SUBRC IS INITIAL .
READ TABLE LT_IMRG INTO DATA(LS_IMRG) WITH KEY POINT = LS_IMPTT-POINT
IDATE = LS_LOG-IDATE
BINARY SEARCH.
IF SY-SUBRC IS INITIAL.
CLEAR : LV_LRDR.
CALL FUNCTION 'QSS0_FLTP_TO_CHAR_CONVERSION'
EXPORTING
I_NUMBER_OF_DIGITS = 22
I_FLTP_VALUE = LS_IMRG-RECDV
* I_VALUE_NOT_INITIAL_FLAG = 'X'
* I_SCREEN_FIELDLENGTH = 16
IMPORTING
E_CHAR_FIELD = LV_LRDR.
CONDENSE LV_LRDR.
CLEAR : LV_MPOBJ.
LV_MPOBJ = LS_EQUI-OBJNR.
READ TABLE LT_IMPTT INTO LS_IMPTT WITH KEY MPOBJ = LV_MPOBJ
PSORT = 'BD_HR'.
IF SY-SUBRC IS INITIAL .
READ TABLE LT_IMRG INTO LS_IMRG WITH KEY POINT = LS_IMPTT-POINT
IDATE = LS_LOG-IDATE
BINARY SEARCH.
IF SY-SUBRC IS INITIAL.
CLEAR : LV_LRDR.
CALL FUNCTION 'QSS0_FLTP_TO_CHAR_CONVERSION'
EXPORTING
I_NUMBER_OF_DIGITS = 22
I_FLTP_VALUE = LS_IMRG-RECDV
* I_VALUE_NOT_INITIAL_FLAG = 'X'
* I_SCREEN_FIELDLENGTH = 16
IMPORTING
E_CHAR_FIELD = LV_LRDR.
CONDENSE LV_LRDR.
CLEAR : LV_MPOBJ.
LV_MPOBJ = LS_EQUI-OBJNR.
READ TABLE LT_IMPTT INTO LS_IMPTT WITH KEY MPOBJ = LV_MPOBJ
PSORT = 'RUN_HR'.
IF SY-SUBRC IS INITIAL .
READ TABLE LT_IMRG INTO LS_IMRG WITH KEY POINT = LS_IMPTT-POINT
IDATE = LS_LOG-IDATE
BINARY SEARCH.
IF SY-SUBRC IS INITIAL.
CLEAR : LV_LRDR.
CALL FUNCTION 'QSS0_FLTP_TO_CHAR_CONVERSION'
EXPORTING
I_NUMBER_OF_DIGITS = 22
I_FLTP_VALUE = LS_IMRG-CDIFF
* I_VALUE_NOT_INITIAL_FLAG = 'X'
* I_SCREEN_FIELDLENGTH = 16
IMPORTING
E_CHAR_FIELD = LV_LRDR.
CONDENSE LV_LRDR.
LV_LRDR = LV_LRDR / 3600.
GS_FINAL-RUNHR = LV_LRDR.
ENDIF.
ENDIF.
CLEAR : LV_MPOBJ.
LV_MPOBJ = LS_EQUI-OBJNR.
READ TABLE LT_IMPTT INTO LS_IMPTT WITH KEY MPOBJ = LV_MPOBJ
PSORT = 'MAINT_HR'.
IF SY-SUBRC IS INITIAL .
READ TABLE LT_IMRG INTO LS_IMRG WITH KEY POINT = LS_IMPTT-POINT
IDATE = LS_LOG-IDATE
BINARY SEARCH.
IF SY-SUBRC IS INITIAL.
CLEAR : LV_LRDR.
CALL FUNCTION 'QSS0_FLTP_TO_CHAR_CONVERSION'
EXPORTING
I_NUMBER_OF_DIGITS = 22
I_FLTP_VALUE = LS_IMRG-RECDV
* I_VALUE_NOT_INITIAL_FLAG = 'X'
* I_SCREEN_FIELDLENGTH = 16
IMPORTING
E_CHAR_FIELD = LV_LRDR.
CONDENSE LV_LRDR.
IF SY-SUBRC IS INITIAL .
READ TABLE LT_IMRG INTO LS_IMRG WITH KEY POINT = LS_IMPTT-POINT
IDATE = LS_LOG-IDATE
BINARY SEARCH.
IF SY-SUBRC IS INITIAL.
CLEAR : LV_LRDR.
CALL FUNCTION 'QSS0_FLTP_TO_CHAR_CONVERSION'
EXPORTING
I_NUMBER_OF_DIGITS = 22
I_FLTP_VALUE = LS_IMRG-RECDV
* I_VALUE_NOT_INITIAL_FLAG = 'X'
* I_SCREEN_FIELDLENGTH = 16
IMPORTING
E_CHAR_FIELD = LV_LRDR.
CONDENSE LV_LRDR.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form EVENT
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM EVENT .
GS_events-NAME = 'TOP_OF_PAGE'.
GS_events-FORM = 'TOP_OF_PAGE'.
APPEND GS_events TO Gt_events.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FIELDCAT
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM FIELDCAT .
CLEAR : GS_fcat.
GS_fcat-FIELDNAME = 'EQUNR'.
GS_fcat-TABNAME = 'GT_FINAL2'.
GS_fcat-SELTEXT_L = 'Equipment'.
GS_fcat-OUTPUTLEN = '22'.
INSERT GS_fcat INTO TABLE GT_fcat.
CLEAR : GS_fcat.
GS_fcat-FIELDNAME = 'EQKTX'.
GS_fcat-TABNAME = 'GT_FINAL2'.
GS_fcat-SELTEXT_L = 'Equipment Description'.
GS_fcat-OUTPUTLEN = '40'.
INSERT GS_fcat INTO TABLE GT_fcat.
CLEAR : GS_fcat.
GS_fcat-FIELDNAME = 'THRS'.
GS_fcat-TABNAME = 'GT_FINAL2'.
GS_fcat-SELTEXT_L = 'Total Hours'.
GS_fcat-OUTPUTLEN = '22'.
INSERT GS_fcat INTO TABLE GT_fcat.
CLEAR : GS_fcat.
GS_fcat-FIELDNAME = 'OVTHR'.
GS_fcat-TABNAME = 'GT_FINAL2'.
GS_fcat-SELTEXT_L = 'Overtime Hours'.
GS_fcat-OUTPUTLEN = '22'.
INSERT GS_fcat INTO TABLE GT_fcat.
CLEAR : GS_fcat.
GS_fcat-FIELDNAME = 'AVHRS'.
GS_fcat-TABNAME = 'GT_FINAL2'.
GS_fcat-SELTEXT_L = 'Available Hours'.
GS_fcat-OUTPUTLEN = '22'.
INSERT GS_fcat INTO TABLE GT_fcat.
CLEAR : GS_fcat.
GS_fcat-FIELDNAME = 'UTHRS'.
GS_fcat-TABNAME = 'GT_FINAL2'.
GS_fcat-SELTEXT_L = 'Utilization Hours'.
GS_fcat-OUTPUTLEN = '22'.
INSERT GS_fcat INTO TABLE GT_fcat.
CLEAR : GS_fcat.
GS_fcat-FIELDNAME = 'AVPER'.
GS_fcat-TABNAME = 'GT_FINAL2'.
GS_fcat-SELTEXT_L = '% Availability'.
GS_fcat-OUTPUTLEN = '22'.
INSERT GS_fcat INTO TABLE GT_fcat.
CLEAR : GS_fcat.
GS_fcat-FIELDNAME = 'UTPER'.
GS_fcat-TABNAME = 'GT_FINAL2'.
GS_fcat-SELTEXT_L = '% Utilization'.
GS_fcat-OUTPUTLEN = '22'.
INSERT GS_fcat INTO TABLE GT_fcat.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form DISPLAY
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM DISPLAY .
GS_LAYOUT-ZEBRA = 'X'.
GS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
GS_LAYOUT-F2CODE = 'ANZ'.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form TOP_OF_PAGE
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM TOP_OF_PAGE .
LS_HEADER-TYP = 'H'.
LS_HEADER-INFO = 'Availability and Utilization Report'.
APPEND LS_HEADER TO LT_HEADER.
CLEAR LS_HEADER.
LS_HEADER-TYP = 'S'.
LS_HEADER-KEY = 'Plant:'.
LS_HEADER-INFO = LV_PLANT.
APPEND LS_HEADER TO LT_HEADER.
CLEAR: LS_HEADER.
LS_HEADER-TYP = 'S'.
LS_HEADER-KEY = 'From Date:'.
CONCATENATE S_DATE-LOW+6(2)'.'
S_DATE-LOW+4(2)'.'
S_DATE-LOW(4) INTO LS_HEADER-INFO.
APPEND LS_HEADER TO LT_HEADER.
CLEAR LS_HEADER.
LS_HEADER-TYP = 'S'.
LS_HEADER-KEY = 'To Date:'.
CONCATENATE S_DATE-HIGH+6(2)'.'
S_DATE-HIGH+4(2)'.'
S_DATE-HIGH(4) INTO LS_HEADER-INFO.
APPEND LS_HEADER TO LT_HEADER.
CLEAR LS_HEADER.
LS_HEADER-TYP = 'A'.
LS_HEADER-INFO = T_LINE.
APPEND LS_HEADER TO LT_HEADER.
CLEAR LS_HEADER.