*&---------------------------------------------------------------------*
*& Report ZMTR_READ_RESULT_OOP
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZMTR_READ_RESULT_OOP .
TYPE-POOLS: SLIS.
TABLES : EANL,ERCH.
***********SELECTION SCREEN************************
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : S_INST FOR EANL-ANLAGE no-EXTENSION, "Installation number
S_CONT FOR ERCH-VERTRAG no-EXTENSION, "Contarct
S_PORT FOR ERCH-PORTION no-EXTENSION, "Portion
S_PART FOR ERCH-GPARTNER no-EXTENSION. "Business Partner
SELECTION-SCREEN END OF BLOCK B1.
***********END OF SELECTION SCREEN*****************
TYPES : BEGIN OF TY_ERCH ,
BELNR TYPE ERCH-BELNR, " Billing doc no
GPARTNER TYPE ERCH-GPARTNER, " Businee partner
VERTRAG TYPE ERCH-VERTRAG, " Contract
PORTION TYPE ERCH-PORTION, "Portinon
ABLEINH TYPE ERCH-ABLEINH, " Meter reading Unit
END OF TY_ERCH.
TYPES : BEGIN OF TY_EABL,
ABLBELNR TYPE EABL-ABLBELNR, " Internal MR doc num
GERNR TYPE EABL-GERNR, " Device
EQUNR TYPE EABL-EQUNR, " Euipment
ZWNUMMER TYPE EABL-ZWNUMMER, "Register
ADAT TYPE EABL-ADAT, " MR date
ADATSOLL TYPE EABL-ADATSOLL, " Scheduled MRD
V_ZWSTAND TYPE EABL-V_ZWSTAND, " Pd MR Reading
N_ZWSTAND TYPE EABL-N_ZWSTAND, "Pd MR Reading
END OF TY_EABL.
TYPES : BEGIN OF TY_EABLG,
ABLBELNR TYPE EABLG-ABLBELNR, " Internal MR doc num
ANLAGE TYPE EABLG-ANLAGE, " Installation
ABLESGR TYPE EABLG-ABLESGR, " MR Reason
ABLEINH TYPE EABLG-ABLEINH, " MR Unit
END OF TY_EABLG.
TYPES : BEGIN OF TY_EVER,
VERTRAG TYPE EVER-VERTRAG, "Contract
ANLAGE TYPE EVER-ANLAGE, " Installation
END OF TY_EVER.
TYPES : BEGIN OF TY_FINAL,
PORTION TYPE ERCH-PORTION, "Portion
MRUNIT TYPE ERCH-ABLEINH, "MR Unit
BP TYPE GPARTNER, "Business Partner
CONTRACT TYPE VERTRAG, "Contract
INSTALLATION TYPE ANLAGE, "Installation
DEVICE TYPE GERAET, "Device
EQUIPMENT TYPE EQUNR, "Equipment
REGISTER TYPE E_ZWNUMMER, "Register
MR_DATE TYPE ADAT, "Meter Reading date
SCHEDULED_MRD TYPE ADATSOLL, "Scheduled MR Date
METER_REASON TYPE ABLESGR, "MR REason
METER_READING TYPE READINGRESULT, "Metre Reading
END OF TY_FINAL.
*****************Internal Table Decleration********************
DATA : IT_EVER TYPE TABLE OF TY_EVER.
DATA : IT_ERCH TYPE TABLE OF TY_ERCH, "Billing Doc. Data Internal Table
WA_ERCH TYPE TY_ERCH. "Billing Doc. Data Work area
DATA : IT_EABL TYPE TABLE OF TY_EABL, " MR Document Internal Table
WA_EABL TYPE TY_EABL. " MR Document Work area
DATA : IT_EABLG TYPE TABLE OF TY_EABLG, " MR Reasons in MR Document Internal Table
WA_EABLG TYPE TY_EABLG. " MR Reasons in MR Document Work area
DATA : IT_FINAL TYPE TABLE OF TY_FINAL, " Final Internal Table
WA_FINAL TYPE TY_FINAL. " Final Work area
DATA : IT_FCAT TYPE TABLE OF LVC_S_FCAT,
WA_FCAT TYPE LVC_S_FCAT.
****************End Of Decleration******************************
DATA : ALV_GRID TYPE REF TO CL_GUI_ALV_GRID,
ALV_CONT TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
START-OF-SELECTION.
PERFORM GET_DATA.
PERFORM FCAT.
CALL SCREEN 9000.
*&---------------------------------------------------------------------*
*& Module STATUS_9000 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_9000 OUTPUT.
SET PF-STATUS 'ZMENU'.
SET TITLEBAR 'ZTITTLE'.
ENDMODULE. " STATUS_9000 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_9000 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9000 INPUT.
IF SY-UCOMM = 'BACK'.
LEAVE TO SCREEN 0.
ENDIF.
ENDMODULE. " USER_COMMAND_9000 INPUT
*&---------------------------------------------------------------------*
*& Form DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY .
CREATE OBJECT ALV_CONT
EXPORTING
* PARENT =
CONTAINER_NAME = 'ALV_CONTAINER'
* STYLE =
* LIFETIME = lifetime_default
* REPID =
* DYNNR =
* NO_AUTODEF_PROGID_DYNNR =
* EXCEPTIONS
* CNTL_ERROR = 1
* CNTL_SYSTEM_ERROR = 2
* CREATE_ERROR = 3
* LIFETIME_ERROR = 4
* LIFETIME_DYNPRO_DYNPRO_LINK = 5
* others = 6
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT ALV_GRID
EXPORTING
* I_SHELLSTYLE = 0
* I_LIFETIME =
I_PARENT = ALV_CONT
* I_APPL_EVENTS = space
* I_PARENTDBG =
* I_APPLOGPARENT =
* I_GRAPHICSPARENT =
* I_NAME =
* I_FCAT_COMPLETE = SPACE
* EXCEPTIONS
* ERROR_CNTL_CREATE = 1
* ERROR_CNTL_INIT = 2
* ERROR_CNTL_LINK = 3
* ERROR_DP_CREATE = 4
* others = 5
.
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 it_final is NOT INITIAL .
CALL METHOD ALV_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
* I_BUFFER_ACTIVE =
* I_BYPASSING_BUFFER =
* I_CONSISTENCY_CHECK =
* I_STRUCTURE_NAME =
* IS_VARIANT =
* I_SAVE =
I_DEFAULT = 'X'
** IS_LAYOUT = IT_FCAT
* IS_PRINT =
* IT_SPECIAL_GROUPS =
* IT_TOOLBAR_EXCLUDING =
* IT_HYPERLINK =
* IT_ALV_GRAPHICS =
* IT_EXCEPT_QINFO =
* IR_SALV_ADAPTER =
CHANGING
IT_OUTTAB = IT_FINAL
IT_FIELDCATALOG = IT_FCAT
* IT_SORT =
* IT_FILTER =
* EXCEPTIONS
* INVALID_PARAMETER_COMBINATION = 1
* PROGRAM_ERROR = 2
* TOO_MANY_LINES = 3
* others = 4
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
else.
MESSAGE text-002 TYPE 'I'.
ENDIF.
ENDFORM. " DISPLAY
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA .
IF S_INST IS NOT INITIAL .
SELECT VERTRAG
ANLAGE
FROM EVER
INTO TABLE IT_EVER
WHERE ANLAGE IN S_INST .
IF S_INST IS NOT INITIAL AND S_CONT IS NOT INITIAL.
CLEAR IT_EVER.
SELECT VERTRAG
ANLAGE
FROM EVER
INTO TABLE IT_EVER
WHERE ANLAGE IN S_INST AND VERTRAG IN S_CONT.
ENDIF.
IF IT_EVER IS NOT INITIAL .
SELECT ABLBELNR
ANLAGE " INSTALLATION
ABLESGR " MR REASON
ABLEINH
FROM EABLG
INTO TABLE IT_EABLG
FOR ALL ENTRIES IN IT_EVER
WHERE ANLAGE = IT_EVER-ANLAGE.
**** WHERE ANLAGE IN S_INST AND ABLESGR = '01'.
ENDIF.
IF IT_EABLG IS NOT INITIAL.
SELECT ABLBELNR
GERNR
EQUNR
ZWNUMMER
ADAT
ADATSOLL
V_ZWSTAND
N_ZWSTAND
FROM EABL
INTO TABLE IT_EABL
FOR ALL ENTRIES IN IT_EABLG
WHERE ABLBELNR = IT_EABLG-ABLBELNR.
ENDIF.
IF IT_EVER IS NOT INITIAL.
SELECT BELNR
GPARTNER
VERTRAG
PORTION
ABLEINH
FROM ERCH
INTO TABLE IT_ERCH FOR ALL ENTRIES IN IT_EVER
WHERE VERTRAG = IT_EVER-VERTRAG
AND SIMULATION = '' .
ENDIF.
ELSEIF S_CONT IS NOT INITIAL.
SELECT VERTRAG
ANLAGE
FROM EVER
INTO TABLE IT_EVER
WHERE VERTRAG IN S_CONT.
IF IT_EVER IS NOT INITIAL.
PERFORM MR_DATA.
ENDIF.
SELECT BELNR
GPARTNER
VERTRAG
PORTION
ABLEINH
FROM ERCH
INTO TABLE IT_ERCH FOR ALL ENTRIES IN IT_EVER
WHERE VERTRAG = IT_EVER-VERTRAG
AND SIMULATION = '' .
ENDIF.
*********** portion ***************************
IF S_PORT IS NOT INITIAL.
SELECT BELNR
GPARTNER
VERTRAG
PORTION
ABLEINH
FROM ERCH
INTO TABLE IT_ERCH "#EC CI_NOFIELD
WHERE PORTION IN S_PORT.
IF S_PORT IS NOT INITIAL AND S_PART IS NOT INITIAL .
CLEAR it_erch.
SELECT BELNR
GPARTNER
VERTRAG
PORTION
ABLEINH "#EC CI_NOFIELD
FROM ERCH
INTO TABLE IT_ERCH
WHERE PORTION IN S_PORT
AND GPARTNER IN S_PART.
ENDIF.
IF S_PORT IS NOT INITIAL AND S_INST IS NOT INITIAL.
SELECT BELNR
GPARTNER
VERTRAG
PORTION
ABLEINH
FROM ERCH
INTO TABLE IT_ERCH FOR ALL ENTRIES IN IT_EVER
WHERE VERTRAG = IT_EVER-VERTRAG
AND SIMULATION = ''
AND PORTION IN S_PORT
AND GPARTNER IN S_PART.
ENDIF.
CLEAR :IT_EVER,IT_EABLG,IT_EABL.
IF IT_ERCH IS NOT INITIAL .
SELECT VERTRAG
ANLAGE
FROM EVER
INTO TABLE IT_EVER
FOR ALL ENTRIES IN IT_ERCH WHERE VERTRAG = IT_ERCH-VERTRAG.
ENDIF.
IF IT_EVER IS NOT INITIAL.
PERFORM MR_DATA.
ENDIF.
ELSEIF S_PART IS NOT INITIAL. """""""""" partnter
CLEAR :it_ever,it_eablg,it_eabl.
SELECT BELNR
GPARTNER
VERTRAG
PORTION
ABLEINH
FROM ERCH
INTO TABLE IT_ERCH
WHERE GPARTNER IN S_PART.
""#EC CI_NOFIELD
IF IT_ERCH IS NOT INITIAL .
SELECT VERTRAG
ANLAGE FROM EVER
INTO TABLE IT_EVER
FOR ALL ENTRIES IN IT_ERCH
WHERE VERTRAG = IT_ERCH-VERTRAG.
ENDIF.
IF IT_EVER IS NOT INITIAL.
PERFORM MR_DATA.
ENDIF.
ENDIF.
LOOP AT IT_EABL INTO WA_EABL.
WA_FINAL-DEVICE = WA_EABL-GERNR.
WA_FINAL-EQUIPMENT = WA_EABL-EQUNR.
WA_FINAL-REGISTER = WA_EABL-ZWNUMMER.
WA_FINAL-MR_DATE = WA_EABL-ADAT.
WA_FINAL-SCHEDULED_MRD = WA_EABL-ADATSOLL.
WA_FINAL-METER_READING = WA_EABL-V_ZWSTAND + WA_EABL-N_ZWSTAND.
READ TABLE IT_EABLG INTO WA_EABLG WITH KEY ABLBELNR = WA_EABL-ABLBELNR.
WA_FINAL-INSTALLATION = WA_EABLG-ANLAGE.
WA_FINAL-METER_REASON = WA_EABLG-ABLESGR.
WA_FINAL-MRUNIT = WA_EABLG-ABLEINH.
READ TABLE IT_ERCH INTO WA_ERCH WITH KEY ABLEINH = WA_EABLG-ABLEINH.
WA_FINAL-PORTION = WA_ERCH-PORTION.
WA_FINAL-BP = WA_ERCH-GPARTNER.
WA_FINAL-CONTRACT = WA_ERCH-VERTRAG.
APPEND WA_FINAL TO IT_FINAL.
CLEAR WA_FINAL.
ENDLOOP.
ENDFORM. " GET_DATA
*&---------------------------------------------------------------------*
*& Form MR_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM MR_DATA .
CLEAR : it_eablg,it_eabl.
SELECT ABLBELNR
ANLAGE " INSTALLATION
ABLESGR " MR REASON
ABLEINH " MR UNIT
FROM EABLG
INTO TABLE IT_EABLG
FOR ALL ENTRIES IN IT_EVER
WHERE ANLAGE = IT_EVER-ANLAGE ."AND ABLESGR = '01'.
IF IT_EABLG IS NOT INITIAL.
SELECT ABLBELNR " INTERNAL MR ID
GERNR "DEVICE
EQUNR "EUIPMENT NUMBER
ZWNUMMER "REGISTER
ADAT " MR DATE
ADATSOLL " SCHEDULED MR DATE
V_ZWSTAND " PD METRE READING
N_ZWSTAND " DEC METER READING
FROM EABL INTO TABLE IT_EABL
FOR ALL ENTRIES IN IT_EABLG
WHERE ABLBELNR = IT_EABLG-ABLBELNR.
ENDIF.
ENDFORM. " MR_DATA
*&---------------------------------------------------------------------*
*& Form FCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FCAT .
WA_FCAT-COL_POS = '1'.
WA_FCAT-TABNAME = 'IT_FINAL'.
* WA_FCAT-REF_TABNAME = 'ERCH'.
WA_FCAT-FIELDNAME = 'PORTION'.
WA_FCAT-SCRTEXT_M = 'PORTION'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = '2'.
WA_FCAT-TABNAME = 'IT_FINAL'.
WA_FCAT-FIELDNAME = 'MRUNIT'.
WA_FCAT-SCRTEXT_M = 'MR UNIT'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = '3'.
WA_FCAT-TABNAME = 'IT_FINAL'.
WA_FCAT-REF_TABLE = 'ERCH'.
WA_FCAT-FIELDNAME = 'BP'.
WA_FCAT-SCRTEXT_M = 'BUSPAR'
.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = '4'.
WA_FCAT-TABNAME = 'IT_FINAL'.
WA_FCAT-REF_TABLE = 'ERCH'.
WA_FCAT-FIELDNAME = 'CONTRACT'.
WA_FCAT-SCRTEXT_M = 'CONTRACT'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = '5'.
WA_FCAT-TABNAME = 'IT_FINAL'.
WA_FCAT-REF_TABLE = 'DBERCHZ1'.
WA_FCAT-FIELDNAME = 'INSTALLATION'.
WA_FCAT-SCRTEXT_M = 'INSTALLATION NUM'.
WA_FCAT-OUTPUTLEN = 15.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = '6'.
WA_FCAT-TABNAME = 'IT_FINAL'.
WA_FCAT-REF_TABLE = 'DBERCHZ3'.
WA_FCAT-FIELDNAME = 'DEVICE'.
WA_FCAT-SCRTEXT_M = 'DEVICE'.
WA_FCAT-OUTPUTLEN = 18.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = '7'.
WA_FCAT-TABNAME = 'IT_FINAL'.
WA_FCAT-REF_TABLE = 'DBERCHZ3'.
WA_FCAT-FIELDNAME = 'EQUIPMENT'.
WA_FCAT-SCRTEXT_M = 'EQUIPMENT'.
WA_FCAT-OUTPUTLEN = 18.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = '8'.
WA_FCAT-TABNAME = 'IT_FINAL'.
WA_FCAT-REF_TABLE = 'DBERCHZ3'.
WA_FCAT-FIELDNAME = 'REGISTER'.
WA_FCAT-SCRTEXT_M = 'REGISTER'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = '9'.
WA_FCAT-TABNAME = 'IT_FINAL'.
WA_FCAT-REF_TABLE = 'EABL'.
WA_FCAT-FIELDNAME = 'MR_DATE'.
WA_FCAT-SCRTEXT_M = 'MR DATE'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = '10'.
WA_FCAT-TABNAME = 'IT_FINAL'.
WA_FCAT-REF_TABLE = 'EABL'.
WA_FCAT-FIELDNAME = 'SCHEDULED_MRD'.
WA_FCAT-SCRTEXT_M = 'SHEDULE MRDATE'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = '11'.
WA_FCAT-TABNAME = 'IT_FINAL'.
WA_FCAT-REF_TABLE = 'DBERCHZ3'.
WA_FCAT-FIELDNAME = 'METER_REASON'.
WA_FCAT-SCRTEXT_M = 'MR REASON'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = '12'.
WA_FCAT-TABNAME = 'IT_FINAL'.
WA_FCAT-REF_TABLE = 'DBERCHZ3'.
WA_FCAT-FIELDNAME = 'METER_READING'.
WA_FCAT-SCRTEXT_M = 'METER READ'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
ENDFORM. " FCAT
*&---------------------------------------------------------------------*
*& Module CREATE_OBJ OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE CREATE_OBJ OUTPUT.
PERFORM DISPLAY.
ENDMODULE. " CREATE_OBJ OUTPUT
*& Report ZMTR_READ_RESULT_OOP
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZMTR_READ_RESULT_OOP .
TYPE-POOLS: SLIS.
TABLES : EANL,ERCH.
***********SELECTION SCREEN************************
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : S_INST FOR EANL-ANLAGE no-EXTENSION, "Installation number
S_CONT FOR ERCH-VERTRAG no-EXTENSION, "Contarct
S_PORT FOR ERCH-PORTION no-EXTENSION, "Portion
S_PART FOR ERCH-GPARTNER no-EXTENSION. "Business Partner
SELECTION-SCREEN END OF BLOCK B1.
***********END OF SELECTION SCREEN*****************
TYPES : BEGIN OF TY_ERCH ,
BELNR TYPE ERCH-BELNR, " Billing doc no
GPARTNER TYPE ERCH-GPARTNER, " Businee partner
VERTRAG TYPE ERCH-VERTRAG, " Contract
PORTION TYPE ERCH-PORTION, "Portinon
ABLEINH TYPE ERCH-ABLEINH, " Meter reading Unit
END OF TY_ERCH.
TYPES : BEGIN OF TY_EABL,
ABLBELNR TYPE EABL-ABLBELNR, " Internal MR doc num
GERNR TYPE EABL-GERNR, " Device
EQUNR TYPE EABL-EQUNR, " Euipment
ZWNUMMER TYPE EABL-ZWNUMMER, "Register
ADAT TYPE EABL-ADAT, " MR date
ADATSOLL TYPE EABL-ADATSOLL, " Scheduled MRD
V_ZWSTAND TYPE EABL-V_ZWSTAND, " Pd MR Reading
N_ZWSTAND TYPE EABL-N_ZWSTAND, "Pd MR Reading
END OF TY_EABL.
TYPES : BEGIN OF TY_EABLG,
ABLBELNR TYPE EABLG-ABLBELNR, " Internal MR doc num
ANLAGE TYPE EABLG-ANLAGE, " Installation
ABLESGR TYPE EABLG-ABLESGR, " MR Reason
ABLEINH TYPE EABLG-ABLEINH, " MR Unit
END OF TY_EABLG.
TYPES : BEGIN OF TY_EVER,
VERTRAG TYPE EVER-VERTRAG, "Contract
ANLAGE TYPE EVER-ANLAGE, " Installation
END OF TY_EVER.
TYPES : BEGIN OF TY_FINAL,
PORTION TYPE ERCH-PORTION, "Portion
MRUNIT TYPE ERCH-ABLEINH, "MR Unit
BP TYPE GPARTNER, "Business Partner
CONTRACT TYPE VERTRAG, "Contract
INSTALLATION TYPE ANLAGE, "Installation
DEVICE TYPE GERAET, "Device
EQUIPMENT TYPE EQUNR, "Equipment
REGISTER TYPE E_ZWNUMMER, "Register
MR_DATE TYPE ADAT, "Meter Reading date
SCHEDULED_MRD TYPE ADATSOLL, "Scheduled MR Date
METER_REASON TYPE ABLESGR, "MR REason
METER_READING TYPE READINGRESULT, "Metre Reading
END OF TY_FINAL.
*****************Internal Table Decleration********************
DATA : IT_EVER TYPE TABLE OF TY_EVER.
DATA : IT_ERCH TYPE TABLE OF TY_ERCH, "Billing Doc. Data Internal Table
WA_ERCH TYPE TY_ERCH. "Billing Doc. Data Work area
DATA : IT_EABL TYPE TABLE OF TY_EABL, " MR Document Internal Table
WA_EABL TYPE TY_EABL. " MR Document Work area
DATA : IT_EABLG TYPE TABLE OF TY_EABLG, " MR Reasons in MR Document Internal Table
WA_EABLG TYPE TY_EABLG. " MR Reasons in MR Document Work area
DATA : IT_FINAL TYPE TABLE OF TY_FINAL, " Final Internal Table
WA_FINAL TYPE TY_FINAL. " Final Work area
DATA : IT_FCAT TYPE TABLE OF LVC_S_FCAT,
WA_FCAT TYPE LVC_S_FCAT.
****************End Of Decleration******************************
DATA : ALV_GRID TYPE REF TO CL_GUI_ALV_GRID,
ALV_CONT TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
START-OF-SELECTION.
PERFORM GET_DATA.
PERFORM FCAT.
CALL SCREEN 9000.
*&---------------------------------------------------------------------*
*& Module STATUS_9000 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_9000 OUTPUT.
SET PF-STATUS 'ZMENU'.
SET TITLEBAR 'ZTITTLE'.
ENDMODULE. " STATUS_9000 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_9000 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9000 INPUT.
IF SY-UCOMM = 'BACK'.
LEAVE TO SCREEN 0.
ENDIF.
ENDMODULE. " USER_COMMAND_9000 INPUT
*&---------------------------------------------------------------------*
*& Form DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY .
CREATE OBJECT ALV_CONT
EXPORTING
* PARENT =
CONTAINER_NAME = 'ALV_CONTAINER'
* STYLE =
* LIFETIME = lifetime_default
* REPID =
* DYNNR =
* NO_AUTODEF_PROGID_DYNNR =
* EXCEPTIONS
* CNTL_ERROR = 1
* CNTL_SYSTEM_ERROR = 2
* CREATE_ERROR = 3
* LIFETIME_ERROR = 4
* LIFETIME_DYNPRO_DYNPRO_LINK = 5
* others = 6
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT ALV_GRID
EXPORTING
* I_SHELLSTYLE = 0
* I_LIFETIME =
I_PARENT = ALV_CONT
* I_APPL_EVENTS = space
* I_PARENTDBG =
* I_APPLOGPARENT =
* I_GRAPHICSPARENT =
* I_NAME =
* I_FCAT_COMPLETE = SPACE
* EXCEPTIONS
* ERROR_CNTL_CREATE = 1
* ERROR_CNTL_INIT = 2
* ERROR_CNTL_LINK = 3
* ERROR_DP_CREATE = 4
* others = 5
.
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 it_final is NOT INITIAL .
CALL METHOD ALV_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
* I_BUFFER_ACTIVE =
* I_BYPASSING_BUFFER =
* I_CONSISTENCY_CHECK =
* I_STRUCTURE_NAME =
* IS_VARIANT =
* I_SAVE =
I_DEFAULT = 'X'
** IS_LAYOUT = IT_FCAT
* IS_PRINT =
* IT_SPECIAL_GROUPS =
* IT_TOOLBAR_EXCLUDING =
* IT_HYPERLINK =
* IT_ALV_GRAPHICS =
* IT_EXCEPT_QINFO =
* IR_SALV_ADAPTER =
CHANGING
IT_OUTTAB = IT_FINAL
IT_FIELDCATALOG = IT_FCAT
* IT_SORT =
* IT_FILTER =
* EXCEPTIONS
* INVALID_PARAMETER_COMBINATION = 1
* PROGRAM_ERROR = 2
* TOO_MANY_LINES = 3
* others = 4
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
else.
MESSAGE text-002 TYPE 'I'.
ENDIF.
ENDFORM. " DISPLAY
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA .
IF S_INST IS NOT INITIAL .
SELECT VERTRAG
ANLAGE
FROM EVER
INTO TABLE IT_EVER
WHERE ANLAGE IN S_INST .
IF S_INST IS NOT INITIAL AND S_CONT IS NOT INITIAL.
CLEAR IT_EVER.
SELECT VERTRAG
ANLAGE
FROM EVER
INTO TABLE IT_EVER
WHERE ANLAGE IN S_INST AND VERTRAG IN S_CONT.
ENDIF.
IF IT_EVER IS NOT INITIAL .
SELECT ABLBELNR
ANLAGE " INSTALLATION
ABLESGR " MR REASON
ABLEINH
FROM EABLG
INTO TABLE IT_EABLG
FOR ALL ENTRIES IN IT_EVER
WHERE ANLAGE = IT_EVER-ANLAGE.
**** WHERE ANLAGE IN S_INST AND ABLESGR = '01'.
ENDIF.
IF IT_EABLG IS NOT INITIAL.
SELECT ABLBELNR
GERNR
EQUNR
ZWNUMMER
ADAT
ADATSOLL
V_ZWSTAND
N_ZWSTAND
FROM EABL
INTO TABLE IT_EABL
FOR ALL ENTRIES IN IT_EABLG
WHERE ABLBELNR = IT_EABLG-ABLBELNR.
ENDIF.
IF IT_EVER IS NOT INITIAL.
SELECT BELNR
GPARTNER
VERTRAG
PORTION
ABLEINH
FROM ERCH
INTO TABLE IT_ERCH FOR ALL ENTRIES IN IT_EVER
WHERE VERTRAG = IT_EVER-VERTRAG
AND SIMULATION = '' .
ENDIF.
ELSEIF S_CONT IS NOT INITIAL.
SELECT VERTRAG
ANLAGE
FROM EVER
INTO TABLE IT_EVER
WHERE VERTRAG IN S_CONT.
IF IT_EVER IS NOT INITIAL.
PERFORM MR_DATA.
ENDIF.
SELECT BELNR
GPARTNER
VERTRAG
PORTION
ABLEINH
FROM ERCH
INTO TABLE IT_ERCH FOR ALL ENTRIES IN IT_EVER
WHERE VERTRAG = IT_EVER-VERTRAG
AND SIMULATION = '' .
ENDIF.
*********** portion ***************************
IF S_PORT IS NOT INITIAL.
SELECT BELNR
GPARTNER
VERTRAG
PORTION
ABLEINH
FROM ERCH
INTO TABLE IT_ERCH "#EC CI_NOFIELD
WHERE PORTION IN S_PORT.
IF S_PORT IS NOT INITIAL AND S_PART IS NOT INITIAL .
CLEAR it_erch.
SELECT BELNR
GPARTNER
VERTRAG
PORTION
ABLEINH "#EC CI_NOFIELD
FROM ERCH
INTO TABLE IT_ERCH
WHERE PORTION IN S_PORT
AND GPARTNER IN S_PART.
ENDIF.
IF S_PORT IS NOT INITIAL AND S_INST IS NOT INITIAL.
SELECT BELNR
GPARTNER
VERTRAG
PORTION
ABLEINH
FROM ERCH
INTO TABLE IT_ERCH FOR ALL ENTRIES IN IT_EVER
WHERE VERTRAG = IT_EVER-VERTRAG
AND SIMULATION = ''
AND PORTION IN S_PORT
AND GPARTNER IN S_PART.
ENDIF.
CLEAR :IT_EVER,IT_EABLG,IT_EABL.
IF IT_ERCH IS NOT INITIAL .
SELECT VERTRAG
ANLAGE
FROM EVER
INTO TABLE IT_EVER
FOR ALL ENTRIES IN IT_ERCH WHERE VERTRAG = IT_ERCH-VERTRAG.
ENDIF.
IF IT_EVER IS NOT INITIAL.
PERFORM MR_DATA.
ENDIF.
ELSEIF S_PART IS NOT INITIAL. """""""""" partnter
CLEAR :it_ever,it_eablg,it_eabl.
SELECT BELNR
GPARTNER
VERTRAG
PORTION
ABLEINH
FROM ERCH
INTO TABLE IT_ERCH
WHERE GPARTNER IN S_PART.
""#EC CI_NOFIELD
IF IT_ERCH IS NOT INITIAL .
SELECT VERTRAG
ANLAGE FROM EVER
INTO TABLE IT_EVER
FOR ALL ENTRIES IN IT_ERCH
WHERE VERTRAG = IT_ERCH-VERTRAG.
ENDIF.
IF IT_EVER IS NOT INITIAL.
PERFORM MR_DATA.
ENDIF.
ENDIF.
LOOP AT IT_EABL INTO WA_EABL.
WA_FINAL-DEVICE = WA_EABL-GERNR.
WA_FINAL-EQUIPMENT = WA_EABL-EQUNR.
WA_FINAL-REGISTER = WA_EABL-ZWNUMMER.
WA_FINAL-MR_DATE = WA_EABL-ADAT.
WA_FINAL-SCHEDULED_MRD = WA_EABL-ADATSOLL.
WA_FINAL-METER_READING = WA_EABL-V_ZWSTAND + WA_EABL-N_ZWSTAND.
READ TABLE IT_EABLG INTO WA_EABLG WITH KEY ABLBELNR = WA_EABL-ABLBELNR.
WA_FINAL-INSTALLATION = WA_EABLG-ANLAGE.
WA_FINAL-METER_REASON = WA_EABLG-ABLESGR.
WA_FINAL-MRUNIT = WA_EABLG-ABLEINH.
READ TABLE IT_ERCH INTO WA_ERCH WITH KEY ABLEINH = WA_EABLG-ABLEINH.
WA_FINAL-PORTION = WA_ERCH-PORTION.
WA_FINAL-BP = WA_ERCH-GPARTNER.
WA_FINAL-CONTRACT = WA_ERCH-VERTRAG.
APPEND WA_FINAL TO IT_FINAL.
CLEAR WA_FINAL.
ENDLOOP.
ENDFORM. " GET_DATA
*&---------------------------------------------------------------------*
*& Form MR_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM MR_DATA .
CLEAR : it_eablg,it_eabl.
SELECT ABLBELNR
ANLAGE " INSTALLATION
ABLESGR " MR REASON
ABLEINH " MR UNIT
FROM EABLG
INTO TABLE IT_EABLG
FOR ALL ENTRIES IN IT_EVER
WHERE ANLAGE = IT_EVER-ANLAGE ."AND ABLESGR = '01'.
IF IT_EABLG IS NOT INITIAL.
SELECT ABLBELNR " INTERNAL MR ID
GERNR "DEVICE
EQUNR "EUIPMENT NUMBER
ZWNUMMER "REGISTER
ADAT " MR DATE
ADATSOLL " SCHEDULED MR DATE
V_ZWSTAND " PD METRE READING
N_ZWSTAND " DEC METER READING
FROM EABL INTO TABLE IT_EABL
FOR ALL ENTRIES IN IT_EABLG
WHERE ABLBELNR = IT_EABLG-ABLBELNR.
ENDIF.
ENDFORM. " MR_DATA
*&---------------------------------------------------------------------*
*& Form FCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FCAT .
WA_FCAT-COL_POS = '1'.
WA_FCAT-TABNAME = 'IT_FINAL'.
* WA_FCAT-REF_TABNAME = 'ERCH'.
WA_FCAT-FIELDNAME = 'PORTION'.
WA_FCAT-SCRTEXT_M = 'PORTION'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = '2'.
WA_FCAT-TABNAME = 'IT_FINAL'.
WA_FCAT-FIELDNAME = 'MRUNIT'.
WA_FCAT-SCRTEXT_M = 'MR UNIT'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = '3'.
WA_FCAT-TABNAME = 'IT_FINAL'.
WA_FCAT-REF_TABLE = 'ERCH'.
WA_FCAT-FIELDNAME = 'BP'.
WA_FCAT-SCRTEXT_M = 'BUSPAR'
.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = '4'.
WA_FCAT-TABNAME = 'IT_FINAL'.
WA_FCAT-REF_TABLE = 'ERCH'.
WA_FCAT-FIELDNAME = 'CONTRACT'.
WA_FCAT-SCRTEXT_M = 'CONTRACT'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = '5'.
WA_FCAT-TABNAME = 'IT_FINAL'.
WA_FCAT-REF_TABLE = 'DBERCHZ1'.
WA_FCAT-FIELDNAME = 'INSTALLATION'.
WA_FCAT-SCRTEXT_M = 'INSTALLATION NUM'.
WA_FCAT-OUTPUTLEN = 15.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = '6'.
WA_FCAT-TABNAME = 'IT_FINAL'.
WA_FCAT-REF_TABLE = 'DBERCHZ3'.
WA_FCAT-FIELDNAME = 'DEVICE'.
WA_FCAT-SCRTEXT_M = 'DEVICE'.
WA_FCAT-OUTPUTLEN = 18.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = '7'.
WA_FCAT-TABNAME = 'IT_FINAL'.
WA_FCAT-REF_TABLE = 'DBERCHZ3'.
WA_FCAT-FIELDNAME = 'EQUIPMENT'.
WA_FCAT-SCRTEXT_M = 'EQUIPMENT'.
WA_FCAT-OUTPUTLEN = 18.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = '8'.
WA_FCAT-TABNAME = 'IT_FINAL'.
WA_FCAT-REF_TABLE = 'DBERCHZ3'.
WA_FCAT-FIELDNAME = 'REGISTER'.
WA_FCAT-SCRTEXT_M = 'REGISTER'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = '9'.
WA_FCAT-TABNAME = 'IT_FINAL'.
WA_FCAT-REF_TABLE = 'EABL'.
WA_FCAT-FIELDNAME = 'MR_DATE'.
WA_FCAT-SCRTEXT_M = 'MR DATE'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = '10'.
WA_FCAT-TABNAME = 'IT_FINAL'.
WA_FCAT-REF_TABLE = 'EABL'.
WA_FCAT-FIELDNAME = 'SCHEDULED_MRD'.
WA_FCAT-SCRTEXT_M = 'SHEDULE MRDATE'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = '11'.
WA_FCAT-TABNAME = 'IT_FINAL'.
WA_FCAT-REF_TABLE = 'DBERCHZ3'.
WA_FCAT-FIELDNAME = 'METER_REASON'.
WA_FCAT-SCRTEXT_M = 'MR REASON'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = '12'.
WA_FCAT-TABNAME = 'IT_FINAL'.
WA_FCAT-REF_TABLE = 'DBERCHZ3'.
WA_FCAT-FIELDNAME = 'METER_READING'.
WA_FCAT-SCRTEXT_M = 'METER READ'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
ENDFORM. " FCAT
*&---------------------------------------------------------------------*
*& Module CREATE_OBJ OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE CREATE_OBJ OUTPUT.
PERFORM DISPLAY.
ENDMODULE. " CREATE_OBJ OUTPUT
No comments:
Post a Comment