Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

QUESTION on MAINTENANCE VIEW

Former Member
0 Likes
1,636

Hi gurus,

I am not familiar with MAINTENANCE VIEW TABLE, can someone please tell me on how to create it and how can I use it for query or select.

I hope someone can help me.

Thanks in advance.

4 REPLIES 4
Read only

Former Member
0 Likes
1,141

Maintenance View ( SE54 )

Maintenance views enable a business-oriented approach to looking at data, while at the same time, making it possible to maintain the data involved. Data from several tables can be summarized in a maintenance view and maintained collectively via this view. That is, the data is entered via the view and then distributed to the underlying tables by the system.

Maintenance View creation

Enter the name of the view in the initial screen of the ABAP Dictionary, select object class Views and choose Create. A dialog box appears, in which you must choose the type of the view. Select the type Maintenance view.

The maintenance screen for maintenance views appears. You will see three input areas for tables, join conditions and view fields. Carry out the following actions in this screen:

1. Enter a short explanatory text in the field Short text.

2. In Tables, enter the primary tables of the view.

3. If required, include more tables in the view. In a help view you can only include tables which are linked to one another with foreign keys.

Position the cursor on the primary table and choose Relationships. All existing foreign key relationships of the primary table are displayed. Check the foreign keys you require and choose Copy. The secondary tables involved in such a foreign key are included in the view. The join conditions derived from the foreign keys are displayed.

You can also include tables which are linked to one of the previously included secondary tables with a foreign key. To do this, position the cursor on the secondary table and choose Relationships. Then proceed as described above.

You can only select foreign keys in which the secondary table for the primary table or for the secondary table which transitively preceded it is in an n:1 relationship. This is the case if the secondary table is the check table of the base table and the foreign key was not defined generically. If the base table is the check table, the foreign key fields must be key fields of a text table or the foreign key must have cardinality of n:1 or n:C.

The foreign keys violating these conditions are displayed at the end of the list under the header Relationships with unsuitable cardinality.

4.Select the fields which you want to include in the view.

You can enter the field names directly. If you do not know the field names, you can copy them from the tables. To do this, position the cursor on a table and choose TabFields. The fields of the table are now displayed in a dialog box. You can copy fields from here by marking the first column and choosing on Copy.

5.Formulate the selection conditions. To do this choose Goto ---> Selection condition. The input area for the selection conditions appears in place of the input areas for the fields. Maintain the selection condition as described in Maintaining the Selection Condition for a View. You can then switch back to the fields display with Goto ---> View fields.

6.Activate the view with View ---> Activate. A log is written during activation. You can display it with Utilities ---> Activation log. If errors or warnings occurred during the activation of the view, you branch directly to the activation log.

7.Create the documentation for the view with Goto ---> Documentation. This documentation is output for example when you print the view with View ---> Print.

8.Branch to transaction SE54 with Environment ---> Tab.maint.generator. From the view definition you can generate maintenance modules and maintenance interfaces there which distribute the data entered with the view to the base tables. You can find more information about using this transaction in the documentation Generating the Table Maintenance Dialog.

Check this link for more dtails.

http://help.sap.com/saphelp_nw04/helpdata/en/cf/21ed2d446011d189700000e8322d00/content.htm

Regards,

Maha

Read only

Former Member
0 Likes
1,141

Enter the name of the view in the initial screen of the ABAP Dictionary, select object class Views and choose Create. A dialog box appears, in which you must choose the type of the view. Select the type Maintenance view.

The maintenance screen for maintenance views appears. You will see three input areas for tables, join conditions and view fields. Carry out the following actions in this screen:

Enter a short explanatory text in the field Short text.

In Tables, enter the primary tables of the view.

If required, include more tables in the view. In a help view you can only include tables which are linked to one another with foreign keys.

Position the cursor on the primary table and choose Relationships. All existing foreign key relationships of the primary table are displayed. Check the foreign keys you require and choose Copy. The secondary tables involved in such a foreign key are included in the view. The join conditions derived from the foreign keys ( Foreign Key Relationship and Join Condition) are displayed.

You can also include tables which are linked to one of the previously included secondary tables with a foreign key. To do this, position the cursor on the secondary table and choose Relationships. Then proceed as described above.

You can only select foreign keys in which the secondary table for the primary table or for the secondary table which transitively preceded it is in an n:1 relationship. This is the case if the secondary table is the check table of the base table and the foreign key was not defined generically. If the base table is the check table, the foreign key fields must be key fields of a text table or the foreign key must have cardinality of n:1 or n:C.

The foreign keys violating these conditions are displayed at the end of the list under the header Relationships with unsuitable cardinality.

Select the fields which you want to include in the view.

You can enter the field names directly. If you do not know the field names, you can copy them from the tables. To do this, position the cursor on a table and choose TabFields. The fields of the table are now displayed in a dialog box. You can copy fields from here by marking the first column and choosing on Copy.

Formulate the selection conditions. To do this choose Goto ® Selection condition. The input area for the selection conditions appears in place of the input areas for the fields. Maintain the selection condition as described in Maintaining the Selection Condition for a View. You can then switch back to the fields display with Goto ® View fields.

Activate the view with View ® Activate. A log is written during activation. You can display it with Utilities ® Activation log. If errors or warnings occurred during the activation of the view, you branch directly to the activation log.

Create the documentation for the view with Goto ® Documentation. This documentation is output for example when you print the view with View ® Print.

Branch to transaction SE54 with Environment ® Tab.maint.generator. From the view definition you can generate maintenance modules and maintenance interfaces there which distribute the data entered with the view to the base tables. You can find more information about using this transaction in the documentation Generating the Table Maintenance Dialog.

Read only

Former Member
0 Likes
1,141

hello gurus,

im new to this community please help me out from this please explain what are different conditions are there for install and replace in this code pzzzzzzzzz its really urgent evening is my delivery

----


  • THIS IS MIS SHOWS A LEAD TIME FOR DEVICES PERTAINING TO A SELECTION*

  • CRITERIA FROM THE TIME OF ISSUE OF METER FROM THE DEPOT FOR NEW *

  • INSTALLATION / REPLACEMENT CONNECTION TO THE FIRST BILL *

*----


* *

  • Designer : K SRIKANTH *

  • Programmer : K SRIKANTH *

  • Programming Date : 29/12/2004

* *

  • Change Tracking No : D90K *

  • Program Title : LEAD TIME REPORT FROM DEVICE * *

  • INSTALLATION/REPLACEMENT TO FIRST BILL *

----


  • MODIFICATIONS *

  • -----------------------------------------------------------------

* *

  • DATE | BY | DESCRIPTION | Chg Trck No *

  • -------------------------------------------------------------------*

  • dd.mm.yy | xxxxx | | *

  • | | | *

  • | | | *

*----


* *

  • ASSUMPTIONS:

*----


* *

  • THE VALUES FROM THE TABLE V_EABL ARE SELECTED ONLY FOR METER *

  • READING REASON '01','02','03' & '22' FOR THE FIELD ABLESGR.

  • THE VALUES FROM THE TABLE ETDZ ARE SELECTED ONLY FOR REGISTER

  • CODE '01' FOR THE FIELD ZWKENN .

  • THE NUMBER OF RECORDS FETCHED FROM TABLE EGERH, WHILE RUNNING IN *

  • FOREGROUND, DEPENDS UPON THE SELECTION CRITERIA. WHILE RUNNING IN *

  • BACKGROUND THIS CONDITION IS NOT APPLICABLE. *

  • ******************************************

REPORT ZRDMD01A MESSAGE-ID ZS LINE-SIZE 150 .

TYPE-POOLS : SLIS .

******************************************************

                    • TABLE DECLARATION*********************

*********************************************

TABLES :

IFLOT ,

TE401 , " Transactions reasons

EGERH , " Historical Data of ISU Device Master Record

EQUI , " Equipment master data

EASTL, " Billing data: Installation Structure at Device Level

EANL , " Installation

EVBS , " Premise

EADRREGAREAA, " Role-Spec. Allocation: Reg. Str. Area to Reg. StrGroup

EHAUISU , " Connect. Obj.

ILOA , " PM Object Location and Account Assignment

EABLG , " MR Reasons in MR Document

EABL , " MR Document

EVER , " IS-U Cont.

ERCH , " Billing Doc. Data

ERCHC , " Invoicing/Reversal History: ERCH

ETYP ,

ETDZ,

EASTS ,

V_EABL ,

EADRREGAREAT .

***************************************

***INTERNAL TABLE DECLARATION*****

*************************************

DATA : BEGIN OF ITCOM OCCURS 100,

STATUS(50) TYPE C ,

REGIOAREA LIKE EADRREGAREAA-REGIOAREA,

  • DESCRIPT LIKE EADRREGAREAT-DESCRIPT ,

V0_15 TYPE I,

V16_30 TYPE I,

V31_45 TYPE I,

V46_60 TYPE I,

V61_75 TYPE I,

V76_90 TYPE I,

V90 TYPE I,

VNTAV TYPE I,

TOTAL TYPE I ,

REGIOGROUP LIKE EADRREGAREAA-REGIOGROUP ,

END OF ITCOM .

DATA : ITFLD TYPE SLIS_T_FIELDCAT_ALV ,

SFLD TYPE SLIS_FIELDCAT_ALV ,

ITH TYPE SLIS_T_FIELDCAT_ALV ,

STH TYPE SLIS_FIELDCAT_ALV ,

SIT TYPE SLIS_FIELDCAT_ALV,

ITA TYPE SLIS_T_FIELDCAT_ALV ,

IEVENTS TYPE SLIS_T_EVENT ,

ALV_T_EVENT TYPE SLIS_T_EVENT WITH HEADER LINE,

ITEVENTS TYPE SLIS_ALV_EVENT ,

EVENTS TYPE SLIS_T_EVENT ,

EVNTS TYPE SLIS_ALV_EVENT ,

EVNTS1 TYPE SLIS_ALV_EVENT ,

EVNTS2 TYPE SLIS_ALV_EVENT ,

EVNTS3 TYPE SLIS_ALV_EVENT ,

EVENTS_SUMM TYPE SLIS_T_EVENT ,

EVENTS_DETAIL TYPE SLIS_T_EVENT ,

EVENTS_SPL TYPE SLIS_T_EVENT .

DATA : ITHD TYPE SLIS_T_LISTHEADER ,

HD TYPE SLIS_LISTHEADER ,

ITD TYPE SLIS_T_LISTHEADER ,

TD TYPE SLIS_LISTHEADER .

DATA : BEGIN OF ITFIN OCCURS 0,

EQUNR LIKE EGERH-EQUNR , " EQUIPMENT NUMBER

ANLAGE LIKE EASTL-ANLAGE , "INSTLLATION NUMBER

VSTELLE LIKE EANL-VSTELLE, "PREMISE

LOGIKNR LIKE EGERH-LOGIKNR, "LOGICAL DEVICE NUMBER

SERNR LIKE EQUI-SERNR, "DEVICE NUMBER

VKONTO LIKE EVER-VKONTO, "CONTRACT NUMBER

REGIOAREA LIKE EADRREGAREAA-REGIOAREA,

REGIOGROUP LIKE EADRREGAREAA-REGIOGROUP,

LTPU(8) TYPE C , "LEAD FROM PREMISE T UI

LTUB(8) TYPE C, "LEAD FROM UTILITY INS TO BILLING INS

LTBM(8) TYPE C, "LEAD FROM BI TO MR ORDER

LTMA(8) TYPE C, "LEAD MR ORDER TO ACTUAL MR

LTAB(8) TYPE C, "LEAD FROM ACTUAL MR TO SCHEDULE BILL ORDER

LTBA(8) TYPE C, "LEAD TIME FROM SCHED BILL ORDER TO ACTUAL BILL

SUM(8) TYPE C , "TOTAL LEAD FROM UI TO ACTUAL BILL

SERIAL TYPE I ,

BIS LIKE EGERH-BIS ,

AB LIKE EGERH-AB,

ZWGRUPPE LIKE EGERH-ZWGRUPPE ,

EINBDAT LIKE EGERH-EINBDAT,

AUSBDAT LIKE EGERH-AUSBDAT,

GERWECHS LIKE EGERH-GERWECHS,

DEVLOC LIKE EGERH-DEVLOC,

SPARTE LIKE EQUI-SPARTE,

ANLART LIKE EANL-ANLART,

HAUS LIKE EVBS-HAUS,

VBSART LIKE EVBS-VBSART,

ABLBELNR LIKE EABLG-ABLBELNR,

ABLESGR LIKE EABLG-ABLESGR ,

ADAT LIKE V_EABL-ADAT ,

VERTRAG LIKE EVER-VERTRAG,

DESCRIPT(20) TYPE C, " LIKE EADRREGAREAT-DESCRIPT ,

STATUS(40) TYPE C ,

END OF ITFIN .

DATA : ITAAA LIKE ITFIN OCCURS 100 WITH HEADER LINE ,

ITBBB LIKE ITFIN OCCURS 100 WITH HEADER LINE .

DATA : BEGIN OF ITTE4 OCCURS 100,

GERWECHS LIKE TE401-GERWECHS,

EAWKENNZE LIKE TE401-EAWKENNZE,

EAWKENNZA LIKE TE401-EAWKENNZA,

EAWKENNZW LIKE TE401-EAWKENNZW,

GERWETXT LIKE TE401T-GERWETXT ,

END OF ITTE4 .

DATA : BEGIN OF ITEAS OCCURS 100,

ANLAGE LIKE EASTL-ANLAGE,

LOGIKNR LIKE EASTL-LOGIKNR,

  • BIS LIKE EASTL-BIS,

  • AB LIKE EASTL-AB,

ERDAT LIKE EASTL-ERDAT,

END OF ITEAS .

*

DATA : BEGIN OF ITDES OCCURS 0 ,

LANGU LIKE EADRREGAREAT-LANGU,

ROLE LIKE EADRREGAREAT-ROLE ,

REGIOAREA LIKE EADRREGAREAA-REGIOAREA ,

DESCRIPT(20) type c ," LIKE EADRREGAREAT-DESCRIPT ,

END OF ITDES .

DATA : BEGIN OF ITMX1 OCCURS 0 ,

EQUNR LIKE EGERH-EQUNR,

BIS LIKE EGERH-BIS ,

AB LIKE EGERH-AB,

LOGIKNR LIKE EGERH-LOGIKNR,

ZWGRUPPE LIKE EGERH-ZWGRUPPE ,

EINBDAT LIKE EGERH-EINBDAT,

AUSBDAT LIKE EGERH-AUSBDAT,

GERWECHS LIKE EGERH-GERWECHS,

DEVLOC LIKE EGERH-DEVLOC,

MATNR LIKE EQUI-MATNR,

SERNR LIKE EQUI-SERNR,

SPARTE LIKE EQUI-SPARTE,

ANLAGE LIKE EASTL-ANLAGE,

ERDAT_EAS LIKE EASTL-ERDAT, "ERDAT_EAS

VSTELLE LIKE EANL-VSTELLE,

ANLART LIKE EANL-ANLART,

ERDAT_EAN LIKE EANL-ERDAT, "ERDAT_EAN

HAUS LIKE EVBS-HAUS,

VBSART LIKE EVBS-VBSART,

ERDAT_EVB LIKE EVBS-ERDAT, "ERDAT_EVB

REGIOGROUP LIKE EADRREGAREAA-REGIOGROUP,

REGIOAREA LIKE EADRREGAREAA-REGIOAREA ,

DESCRIPT(20) type c ,

ABLBELNR LIKE V_EABL-ABLBELNR ,

ABLESGR LIKE V_EABL-ABLESGR ,

ADAT LIKE V_EABL-ADAT ,

ADATSOLL LIKE V_EABL-ADATSOLL ,

VERTRAG LIKE EVER-VERTRAG,

VKONTO LIKE EVER-VKONTO,

BELNR LIKE ERCH-BELNR,

VKONT LIKE ERCH-VKONT,

BEGABRPE LIKE ERCH-BEGABRPE,

ENDABRPE LIKE ERCH-ENDABRPE,

ABRDATS LIKE ERCH-ABRDATS,

BUDAT LIKE ERCHC-BUDAT,

LFDNR LIKE ERCHC-LFDNR,

END OF ITMX1 .

DATA : BEGIN OF ITMX2 OCCURS 0,

EQUNR LIKE EGERH-EQUNR,

BIS LIKE EGERH-BIS ,

AB LIKE EGERH-AB,

  • LOGIKNR LIKE EGERH-LOGIKNR,

ZWGRUPPE LIKE EGERH-ZWGRUPPE ,

EINBDAT LIKE EGERH-EINBDAT,

AUSBDAT LIKE EGERH-AUSBDAT,

GERWECHS LIKE EGERH-GERWECHS,

DEVLOC LIKE EGERH-DEVLOC,

MATNR LIKE EQUI-MATNR,

SERNR LIKE EQUI-SERNR,

SPARTE LIKE EQUI-SPARTE,

ANLAGE LIKE EASTL-ANLAGE,

LOGIKNR LIKE EGERH-LOGIKNR,

ERDAT LIKE EASTL-ERDAT, "ERDAT_EAS

END OF ITMX2 .

DATA : BEGIN OF ITMX4 OCCURS 0 ,

ANLAGE LIKE EANL-ANLAGE ,

VSTELLE LIKE EANL-VSTELLE,

  • ***-------------

HAUS LIKE EVBS-HAUS,

VBSART LIKE EVBS-VBSART,

ERDAT LIKE EVBS-ERDAT, "ERDAT_EVB

*----


REGIOGROUP LIKE EADRREGAREAA-REGIOGROUP,

REGIOAREA LIKE EADRREGAREAA-REGIOAREA ,

*----


DESCRIPT(20) type c ,

  • ANLART LIKE EANL-ANLART,

END OF ITMX4 .

DATA : BEGIN OF ITEVE OCCURS 0 ,

ANLAGE LIKE EVER-ANLAGE ,

VKONTO LIKE EVER-VKONTO,

VERTRAG LIKE EVER-VERTRAG,

SPARTE LIKE EVER-SPARTE ,

END OF ITEVE .

DATA : BEGIN OF ITMX3 OCCURS 0 ,

EQUNR LIKE V_EABL-EQUNR ,

ABLBELNR LIKE V_EABL-ABLBELNR ,

ABLESGR LIKE V_EABL-ABLESGR ,

ADAT LIKE V_EABL-ADAT ,

ADATSOLL LIKE V_EABL-ADATSOLL ,

  • ------------------------------------

ANLAGE LIKE EVER-ANLAGE ,

VKONTO LIKE EVER-VKONTO,

VERTRAG LIKE EVER-VERTRAG,

SPARTE LIKE EVER-SPARTE ,

  • *------------------

  • VKONT LIKE ERCH-VKONT,

BEGABRPE LIKE ERCH-BEGABRPE,

ENDABRPE LIKE ERCH-ENDABRPE,

ABRDATS LIKE ERCH-ABRDATS,

BELNR LIKE ERCH-BELNR,

  • -------------------

LFDNR LIKE ERCHC-LFDNR,

BUDAT LIKE ERCHC-BUDAT,

*----


  • SWERK LIKE ILOA-SWERK ,

END OF ITMX3.

data : BEGIN OF ITERC OCCURS 0 ,

BEGABRPE LIKE ERCH-BEGABRPE,

ENDABRPE LIKE ERCH-ENDABRPE,

ABRDATS LIKE ERCH-ABRDATS,

VERTRAG like ERCH-VERTRAG ,

BELNR LIKE ERCH-BELNR,

VKONT LIKE ERCH-VKONT ,

  • -------------------

LFDNR LIKE ERCHC-LFDNR,

BUDAT LIKE ERCHC-BUDAT,

END OF ITERC .

DATA : BEGIN OF ITMX7 OCCURS 0,

  • SRNO TYPE I ,

STATUS(40) TYPE C ,

REGIOAREA LIKE EADRREGAREAA-REGIOAREA ,

REGIOGROUP LIKE EADRREGAREAA-REGIOGROUP ,

DESCRIPT(20) TYPE C ," LIKE EADRREGAREAT-DESCRIPT ,

V0_15 LIKE ITCOM-V0_15 ,

V16_30 LIKE ITCOM-V16_30 ,

V31_45 LIKE ITCOM-V31_45 ,

V46_60 LIKE ITCOM-V46_60 ,

V61_75 LIKE ITCOM-V61_75 ,

V76_90 LIKE ITCOM-V76_90 ,

V90 LIKE ITCOM-V90 ,

VNTAV LIKE ITCOM-VNTAV ,

TOTAL TYPE I ,

END OF ITMX7 .

DATA : BEGIN OF ITETD OCCURS 0,

EQUNR LIKE ETDZ-EQUNR ,

ZWNUMMER LIKE ETDZ-ZWNUMMER,

ZWKENN LIKE ETDZ-ZWKENN ,

LOGIKZW LIKE ETDZ-LOGIKZW ,

ANLAGE LIKE EASTS-ANLAGE ,

  • BIS LIKE EASTS-BIS,

ZWNABR LIKE EASTS-ZWNABR ,

END OF ITETD .

DATA : BEGIN OF ITEAN OCCURS 100,

ANLAGE LIKE EASTL-ANLAGE,

  • SPARTE LIKE EQUI-SPARTE,

VSTELLE LIKE EANL-VSTELLE,

ANLART LIKE EANL-ANLART,

ERDAT LIKE EANL-ERDAT ,

  • *---------------------------

HAUS LIKE EVBS-HAUS,

VBSART LIKE EVBS-VBSART,

ERDAT_EVBS LIKE EVBS-ERDAT, "ERDAT_EVB

*----


REGIOGROUP LIKE EADRREGAREAA-REGIOGROUP,

REGIOAREA LIKE EADRREGAREAA-REGIOAREA ,

*----


DESCRIPT(20) type c ,

END OF ITEAN .

DATA : BEGIN OF ITSPL OCCURS 0 ,

TPLNR LIKE IFLOT-TPLNR ,

TPLMA LIKE IFLOT-TPLMA ,

HAUS LIKE EHAUISU-HAUS ,

REGIOGROUP LIKE EADRREGAREAA-REGIOGROUP ,

END OF ITSPL .

DATA : BEGIN OF ITEGE OCCURS 0,

EQUNR LIKE EGERH-EQUNR ,

LOGIKNR LIKE EGERH-LOGIKNR,

MATNR LIKE EQUI-MATNR ,

SERNR LIKE EQUI-SERNR,

SPARTE LIKE EQUI-SPARTE,

DEVLOC LIKE EGERH-DEVLOC,

END OF ITEGE .

DATA : ITMOD LIKE ITMX2 OCCURS 0 WITH HEADER LINE ,

WA_ITMX2 LIKE ITMX2 .

DATA : WA-EQUNR LIKE EQUI-EQUNR ,

WA-ANLAGE LIKE EASTL-ANLAGE .

DATA : w_variant like disvariant ,

W_VARIANT_SAVE TYPE C .

DATA : REP-ID LIKE SY-REPID,

W_REPID LIKE SY-REPID .

DATA PUSH TYPE SSCRFIELDS-UCOMM .

DATA COUNT TYPE I .

DATA : V13 TYPE I ,

V17 TYPE I.

DATA CNT TYPE I .

DATA VARIANT LIKE SY-TABIX .

DATA : SNT TYPE I ,

PNT TYPE I ,

V_COUNT TYPE I VALUE 1 .

DATA: ylayout TYPE slis_layout_alv ,

XLAYOUT TYPE SLIS_LAYOUT_ALV .

DATA KNT TYPE I VALUE 0 .

DATA I_SORT TYPE slis_t_sortinfo_alv WITH HEADER LINE .

DATA : V_DATE LIKE SY-DATUM ,

V_DATUM(10) TYPE C ,

GX_VARIANT LIKE DISVARIANT,

G_VARIANT LIKE DISVARIANT,

G_SAVE(1) TYPE C VALUE 'A',

G_EXIT(1) TYPE C,

N TYPE I ,

M TYPE I ,

C TYPE I VALUE 0 .

DATA G_REPID LIKE SY-REPID .

DATA: GT_PRINT TYPE SLIS_PRINT_ALV.

DATA YREPID LIKE SY-REPID .

DATA: X_LAYOUT TYPE SLIS_LAYOUT_ALV ,

Y_LAYOUT TYPE SLIS_LAYOUT_ALV ,

Z_LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA : TITLE LIKE SY-TITLE .

DATA : V_ENTER TYPE I ,

V_MODIFY TYPE I .

***************************************************************

******************SELECTION SCREEN ************************

********************************************************

SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME TITLE TEXT-001 .

PARAMETERS P_SPART LIKE EQUI-SPARTE DEFAULT '01' .

SELECTION-SCREEN COMMENT 40(15) TEXT-005 .

SELECT-OPTIONS : S_SWERK FOR ILOA-SWERK DEFAULT 'M011',

S_RAREA FOR EADRREGAREAA-REGIOAREA ,

S_RGROUP FOR EADRREGAREAA-REGIOGROUP,

S_AB FOR EGERH-AB OBLIGATORY .

SELECTION-SCREEN END OF BLOCK BL1 .

SELECTION-SCREEN BEGIN OF BLOCK BL2 WITH FRAME TITLE TEXT-002 .

SELECT-OPTIONS: S_SERNR FOR EQUI-SERNR ,

S_MATNR FOR EQUI-MATNR OBLIGATORY ,

S_VSTELL FOR EANL-VSTELLE ,

S_HAUS FOR EHAUISU-HAUS .

SELECTION-SCREEN END OF BLOCK BL2.

SELECTION-SCREEN BEGIN OF BLOCK BL3 WITH FRAME TITLE TEXT-003 .

SELECT-OPTIONS: S_VKONTO FOR EVER-VKONTO .

SELECTION-SCREEN END OF BLOCK BL3 .

SELECTION-SCREEN BEGIN OF BLOCK BL4 WITH FRAME TITLE TEXT-004 .

PARAMETERS: P_INSTA RADIOBUTTON GROUP RAD1 DEFAULT 'X' ,

P_REPLC RADIOBUTTON GROUP RAD1 ,

P_IP RADIOBUTTON GROUP RAD1 .

SELECT-OPTIONS : S_GERWE FOR EGERH-GERWECHS .

SELECTION-SCREEN END OF BLOCK BL4 .

SELECTION-SCREEN BEGIN OF BLOCK BL5 WITH FRAME TITLE TEXT-006.

PARAMETERS : P_VARI LIKE DISVARIANT-VARIANT ."DEFAULT '/ALL'.

SELECTION-SCREEN COMMENT 47(40) varname FOR FIELD P_VARI .

SELECTION-SCREEN SKIP 1.

SELECTION-SCREEN PUSHBUTTON /5(25) BUT1 USER-COMMAND UCSS .

PARAMETERS: P_FIXVAR LIKE KAEP_SETT-FIXVAR NO-DISPLAY,

P_MAXSEL LIKE KAEP_SETT-MAXSEL NO-DISPLAY DEFAULT 1000.

SELECTION-SCREEN END OF BLOCK BL5.

************************************************

*******INITIALIZATION************************

***********************************************

INITIALIZATION .

SET PF-STATUS 'INST' .

G_REPID = SY-REPID.

PERFORM VARIANT_INIT.

  • Default variant

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.

MOVE 'Further Settings' TO BUT1 .

******************************************

                  • AT SELECTION SCREEN EVENT******

******************************************

AT SELECTION-SCREEN .

CASE SY-UCOMM .

WHEN 'UCSS' .

CALL FUNCTION 'K_LINE_ITEM_TECH_SETTINGS_SET'

CHANGING

C_FIXVAR = P_FIXVAR

C_MAXSEL = P_MAXSEL.

ENDCASE .

IF NOT S_RAREA IS INITIAL .

SELECT SINGLE * FROM EADRREGAREAA

WHERE REGIOAREA IN S_RAREA .

IF SY-SUBRC <> 0 .

MESSAGE E058(00) WITH S_RAREA-LOW S_RAREA-HIGH.

LEAVE TO LIST-PROCESSING .

ENDIF .

ENDIF.

IF NOT S_MATNR IS INITIAL .

SELECT SINGLE * FROM ETYP

WHERE MATNR IN S_MATNR

AND KOMBINAT = 'Z'.

IF SY-SUBRC <> 0 .

MESSAGE E411(EG) .

LEAVE TO LIST-PROCESSING .

ENDIF.

ENDIF.

IF NOT S_SWERK IS INITIAL .

SELECT SINGLE * FROM ILOA

WHERE SWERK IN S_SWERK .

IF SY-SUBRC <> 0 .

MESSAGE E412(I0) .

LEAVE TO LIST-PROCESSING .

ENDIF.

ENDIF.

IF NOT S_RGROUP IS INITIAL .

SELECT SINGLE * FROM EADRREGAREAA

WHERE REGIOGROUP IN S_RGROUP .

IF SY-SUBRC <> 0 .

MESSAGE E025(E7) .

LEAVE TO LIST-PROCESSING .

ENDIF.

ENDIF.

IF NOT S_HAUS IS INITIAL .

SELECT SINGLE * FROM EHAUISU

WHERE HAUS IN S_HAUS .

IF SY-SUBRC <> 0 .

MESSAGE E011(E9) WITH 'Connection Object' S_HAUS-LOW S_HAUS-HIGH .

LEAVE TO LIST-PROCESSING .

ENDIF.

ENDIF.

IF NOT S_VSTELL IS INITIAL .

SELECT SINGLE * FROM EANL

WHERE VSTELLE IN S_VSTELL .

IF SY-SUBRC <> 0 .

MESSAGE E011(E9) WITH 'Premise' S_VSTELL-LOW S_VSTELL-HIGH .

LEAVE TO LIST-PROCESSING .

ENDIF.

ENDIF.

IF NOT S_VKONTO IS INITIAL .

SELECT SINGLE * FROM EVER

WHERE VKONTO IN S_VKONTO .

IF SY-SUBRC <> 0 .

MESSAGE E001(>3) .

LEAVE TO LIST-PROCESSING .

ENDIF.

ENDIF.

IF NOT S_GERWE IS INITIAL .

SELECT SINGLE * FROM TE401

WHERE GERWECHS IN S_GERWE .

IF SY-SUBRC <> 0 .

MESSAGE E058(00) WITH S_GERWE-LOW S_GERWE-HIGH .

LEAVE TO LIST-PROCESSING .

ENDIF.

ENDIF.

IF NOT P_SPART IS INITIAL .

SELECT SINGLE * FROM EQUI

WHERE SPARTE = P_SPART .

IF SY-SUBRC <> 0 .

MESSAGE E058(00).

LEAVE TO LIST-PROCESSING .

ENDIF.

ENDIF.

CASE SY-UCOMM .

WHEN '&LFO'.

WRITE:/ ' DOCUMENTATION' .

ENDCASE .

PERFORM VARIANT_EXISTENCE .

AT SELECTION-SCREEN OUTPUT .

LOOP AT SCREEN .

IF SCREEN-NAME = 'P_SPART' .

SCREEN-INPUT = 0 .

MODIFY SCREEN .

ENDIF .

ENDLOOP .

*****************************************************

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI .

PERFORM F4_FOR_VARIANT.

**********************************************************

***************START OF SELECTION EVENT****************

**********************************************************

START-OF-SELECTION .

IF P_INSTA = 'X' .

PERFORM INSTALL .

ELSEIF P_REPLC = 'X' .

PERFORM REPLACE .

ELSEIF P_IP = 'X' .

PERFORM INS_REPL .

ENDIF.

***********************

IF SY-BATCH = ' ' .

SELECT A~EQUNR

A~BIS

A~AB

  • A~LOGIKNR

A~ZWGRUPPE

A~EINBDAT

A~AUSBDAT

A~GERWECHS

A~DEVLOC

B~MATNR

B~SERNR

B~SPARTE

D~ANLAGE

D~LOGIKNR

D~ERDAT FROM ( ( EGERH AS A INNER JOIN EQUI AS B

ON AEQUNR = BEQUNR )

INNER JOIN EASTL AS D ON ALOGIKNR = DLOGIKNR )

  • AND ABIS = DBIS

  • AND AAB = DAB )

INTO TABLE ITMX2 UP TO P_MAXSEL ROWS

FOR ALL ENTRIES IN ITTE4

WHERE A~GERWECHS = ITTE4-GERWECHS

AND A~BIS GE S_AB-LOW

AND A~AB IN S_AB

AND A~KOMBINAT = 'Z'

AND A~EINBDAT NE '00000000'

AND A~AUSBDAT EQ '00000000'

AND B~MATNR IN S_MATNR

AND B~SERNR IN S_SERNR

AND B~SPARTE = P_SPART

AND D~BIS GE S_AB-LOW .

  • AND D~AB IN S_AB .

ELSE.

SELECT A~EQUNR

A~BIS

A~AB

  • A~LOGIKNR

A~ZWGRUPPE

A~EINBDAT

A~AUSBDAT

A~GERWECHS

A~DEVLOC

B~MATNR

B~SERNR

B~SPARTE

D~ANLAGE

D~LOGIKNR

D~ERDAT

FROM ( ( EGERH AS A INNER JOIN EQUI AS B

ON AEQUNR = BEQUNR )

INNER JOIN EASTL AS D ON ALOGIKNR = DLOGIKNR )

  • AND ABIS = DBIS

  • AND AAB = DAB )

INTO TABLE ITMX2

FOR ALL ENTRIES IN ITTE4

WHERE A~GERWECHS = ITTE4-GERWECHS

AND A~BIS GE S_AB-LOW

AND A~AB IN S_AB

AND A~KOMBINAT = 'Z'

AND A~EINBDAT NE '00000000'

AND A~AUSBDAT EQ '00000000'

AND B~MATNR IN S_MATNR

AND B~SERNR IN S_SERNR

AND B~SPARTE = P_SPART

AND D~BIS GE S_AB-LOW .

  • AND D~AB IN S_AB .

ENDIF.

SORT ITMX2 BY ANLAGE EQUNR .

LOOP AT ITMX2 .

IF ITMX2-ANLAGE = WA_ITMX2-ANLAGE .

MOVE-CORRESPONDING WA_ITMX2 TO ITMOD .

APPEND ITMOD.

CLEAR ITMOD .

MOVE-CORRESPONDING ITMX2 TO ITMOD .

APPEND ITMOD.

CLEAR ITMOD .

ENDIF.

MOVE-CORRESPONDING ITMX2 TO WA_ITMX2 .

ENDLOOP .

SORT ITMOD BY ANLAGE EQUNR .

DELETE ADJACENT DUPLICATES FROM ITMOD .

IF NOT ITMOD[] IS INITIAL .

SELECT A~EQUNR

A~ZWNUMMER

A~ZWKENN

A~LOGIKZW

B~ANLAGE

B~ZWNABR

FROM ( ETDZ AS A INNER JOIN EASTS AS B

ON ALOGIKZW = BLOGIKZW )

INTO TABLE ITETD

FOR ALL ENTRIES IN ITMOD

WHERE A~EQUNR = ITMOD-EQUNR

AND A~BIS GE S_AB-LOW

  • AND A~AB IN S_AB

AND A~ZWNUMMER = 1

AND B~ZWNABR NE 'X' .

SORT ITETD BY ANLAGE EQUNR .

LOOP AT ITMX2 .

LOOP AT ITETD WHERE ANLAGE EQ ITMX2-ANLAGE .

V_ENTER = 1 .

IF ITETD-EQUNR EQ ITMX2-EQUNR .

V_MODIFY = 1 .

EXIT .

ENDIF.

ENDLOOP .

IF V_ENTER = 1 AND V_MODIFY = 0 .

DELETE ITMX2 .

ENDIF.

CLEAR : ITMX2 ,V_ENTER ,V_MODIFY .

ENDLOOP .

ENDIF.

MESSAGE S015(ZS).

IF NOT ITMX2[] IS INITIAL .

SELECT ANLAGE

VSTELLE

ANLART

ERDAT

FROM EANL INTO CORRESPONDING FIELDS OF TABLE ITEAN

FOR ALL ENTRIES IN ITMX2

WHERE ANLAGE = ITMX2-ANLAGE

AND SPARTE = P_SPART

AND VSTELLE IN S_VSTELL .

ENDIF.

SORT ITEAN BY ANLAGE .

IF NOT ITEAN[] IS INITIAL .

SELECT E~ANLAGE

E~VSTELLE

F~haus

F~VBSART

F~ERDAT

H~REGIOGROUP

H~REGIOAREA

L~DESCRIPT

FROM ( ( ( ( EANL AS E INNER JOIN EVBS AS F

ON EVSTELLE = FVSTELLE )

INNER JOIN EHAUISU AS G ON FHAUS = GHAUS )

INNER JOIN EADRREGAREAA AS H ON G~REGIOGROUP =

H~REGIOGROUP )

INNER JOIN EADRREGAREAT AS L ON H~REGIOAREA =

L~REGIOAREA )

INTO TABLE ITMX4

FOR ALL ENTRIES IN ITEAN

WHERE E~ANLAGE = ITEAN-ANLAGE

AND E~VSTELLE = ITEAN-VSTELLE

AND L~LANGU = SY-LANGU

AND H~REGIOGROUP IN S_RGROUP

AND H~REGIOAREA IN S_RAREA .

ENDIF.

*----


*LOOP AT ITEAN .

  • READ TABLE ITMX4 WITH KEY VSTELLE = ITEAN-VSTELLE .

  • IF SY-SUBRC EQ 0 .

  • MOVE-CORRESPONDING ITMX4 TO ITEAN .

  • ITEAN-ERDAT_EVBS = ITMX4-ERDAT .

  • MODIFY ITEAN .

  • ENDIF.

*ENDLOOP .

*

LOOP AT ITMX2 .

ITMX1-ERDAT_EAS = ITMX2-ERDAT .

MOVE-CORRESPONDING ITMX2 TO ITMX1 .

READ TABLE ITEAN WITH KEY ANLAGE = ITMX2-ANLAGE .

IF SY-SUBRC EQ 0 .

ITMX1-ERDAT_EAN = ITEAN-ERDAT .

MOVE-CORRESPONDING ITEAN TO ITMX1 .

READ TABLE ITMX4 WITH KEY ANLAGE = ITMX2-ANLAGE .

IF SY-SUBRC EQ 0 .

ITMX1-ERDAT_EVB = ITMX4-ERDAT .

MOVE-CORRESPONDING ITMX4 TO ITMX1 .

ENDIF.

  • WE WILL GET ONLY THOSE RECORDS THAT IS HAVING REGIO GROUP,DIVISON

APPEND ITMX1.

CLEAR ITMX1 .

ENDIF.

ENDLOOP .

*-------

IF NOT ITMX4[] IS INITIAL .

  • SELECT EQUNR

  • ABLBELNR

  • ABLESGR

  • ADAT

  • ADATSOLL

  • ANLAGE FROM V_EABL

  • INTO TABLE ITMX3

  • FOR ALL ENTRIES IN ITMX1

  • WHERE ANLAGE = ITMX1-ANLAGE

  • AND EQUNR = ITMX1-EQUNR

  • AND ADATSOLL GE S_AB-LOW

  • ANd ( ABLESGR EQ '01'

  • OR ABLESGR EQ '02'

  • OR ABLESGR EQ '03'

  • OR ABLESGR EQ '22' ) .

SELECT B~EQUNR

A~ABLBELNR

A~ABLESGR

B~ADAT

B~ADATSOLL

A~ANLAGE

FROM ( EABLG AS A INNER JOIN EABL AS B ON AABLBELNR = BABLBELNR

)

INTO CORRESPONDING FIELDS OF TABLE ITMX3

FOR ALL ENTRIES IN ITMX1

WHERE A~ANLAGE = ITMX1-ANLAGE

AND B~EQUNR = ITMX1-EQUNR

AND B~ADATSOLL GE S_AB-LOW

AND A~ABRDATS GE S_AB-LOW

AND ( A~ABLESGR EQ '01'

OR A~ABLESGR EQ '02'

OR A~ABLESGR EQ '03'

OR A~ABLESGR EQ '22' ) .

ENDIF.

SELECT ANLAGE

VKONTO

VERTRAG

SPARTE

FROM EVER INTO TABLE ITEVE

FOR ALL ENTRIES IN ITMX1

WHERE ANLAGE = ITMX1-ANLAGE

AND SPARTE = P_SPART .

LOOP AT ITMX1 .

READ TABLE ITMX3 WITH KEY ANLAGE = ITMX1-ANLAGE

EQUNR = ITMX1-EQUNR .

IF SY-SUBRC EQ 0 .

MOVE-CORRESPONDING ITMX3 TO ITMX1 .

ENDIF.

READ TABLE ITEVE WITH KEY ANLAGE = ITMX1-ANLAGE .

IF SY-SUBRC EQ 0 .

MOVE-CORRESPONDING ITEVE TO ITMX1 .

ENDIF.

MODIFY ITMX1 .

ENDLOOP .

SELECT J~BEGABRPE

J~ENDABRPE

J~ABRDATS

J~VKONT

j~vertrag

K~BELNR

K~LFDNR

K~BUDAT

FROM ( ERCH AS J INNER JOIN ERCHC AS K ON JBELNR = KBELNR )

INTO CORRESPONDING FIELDS OF TABLE ITERC

FOR ALL ENTRIES IN ITMX1

WHERE J~VERTRAG = ITMX1-VERTRAG

AND J~ADATSOLL GE S_AB-LOW .

*SELECT BEGABRPE

  • ENDABRPE

  • ABRDATS

  • VKONT

  • vertrag

    • K~BELNR

    • K~LFDNR

    • K~BUDAT

  • FROM ERCH INTO CORRESPONDING FIELDS OF TABLE ITERC

  • FOR ALL ENTRIES in ITMX1

  • WHERE VERTRAG = ITMX1-VERTRAG

  • and ADATSOLL GE S_AB-LOW .

LOOP AT ITMX1 .

READ TABLE ITERC WITH KEY VERTRAG = ITMX1-VERTRAG .

*

IF SY-SUBRC EQ 0 .

ITMX1-BEGABRPE = ITERC-BEGABRPE .

ITMX1-ENDABRPE = ITERC-ENDABRPE .

ITMX1-ABRDATS = ITERC-ABRDATS .

ITMX1-BELNR = ITERC-BELNR .

ITMX1-LFDNR = ITERC-LFDNR .

ITMX1-BUDAT = ITERC-BUDAT .

MODIFY ITMX1 TRANSPORTING BEGABRPE ENDABRPE ABRDATS BELNR

LFDNR BUDAT .

ENDIF.

ENDLOOP .

MESSAGE S014(ZS) .

LOOP AT ITMX1 .

MOVE-CORRESPONDING ITMX1 TO ITFIN .

ITFIN-LTPU = ITMX1-ERDAT_EAN - ITMX1-ERDAT_EVB .

ITFIN-LTUB = ITMX1-ERDAT_EAS - ITMX1-ERDAT_EAN .

IF NOT ITMX1-ADATSOLL IS INITIAL AND ( NOT ITMX1-EINBDAT IS INITIAL )

.

ITFIN-LTBM = ITMX1-ADATSOLL - ITMX1-EINBDAT .

ELSE .

ITFIN-LTBM = 'NTAV'.

ENDIF.

IF NOT ITMX1-ADAT IS INITIAL AND ( NOT ITMX1-ADATSOLL IS INITIAL ) .

ITFIN-LTMA = ITMX1-ADAT - ITMX1-ADATSOLL .

ELSE .

ITFIN-LTMA = 'NTAV' .

ENDIF.

IF NOT ITMX1-ABRDATS IS INITIAL AND ( NOT ITMX1-ADAT IS INITIAL ) .

ITFIN-LTAB = ITMX1-ABRDATS - ITMX1-ADAT .

ELSE .

ITFIN-LTAB = 'NTAV' .

ENDIF.

IF NOT ITMX1-BUDAT IS INITIAL AND ( NOT ITMX1-ABRDATS IS INITIAL ) .

ITFIN-LTBA = ITMX1-BUDAT - ITMX1-ABRDATS .

ELSE.

ITFIN-LTBA = 'NTAV'.

ENDIF.

ITFIN-SUM = 0.

IF ITFIN-LTPU NE 'NTAV' AND ITFIN-LTPU NE 'N/A'.

ITFIN-SUM = ITFIN-SUM + ITFIN-LTPU.

ENDIF.

IF ITFIN-LTUB NE 'NTAV' AND ITFIN-LTUB NE 'N/A'.

ITFIN-SUM = ITFIN-SUM + ITFIN-LTUB.

ENDIF.

IF ITFIN-LTBM NE 'NTAV' AND ITFIN-LTBM NE 'N/A'.

ITFIN-SUM = ITFIN-SUM + ITFIN-LTBM.

ENDIF.

IF ITFIN-LTMA NE 'NTAV' AND ITFIN-LTMA NE 'N/A'.

ITFIN-SUM = ITFIN-SUM + ITFIN-LTMA.

ENDIF.

IF ITFIN-LTAB NE 'NTAV' AND ITFIN-LTAB NE 'N/A'.

ITFIN-SUM = ITFIN-SUM + ITFIN-LTAB.

ENDIF.

IF ITFIN-LTBA NE 'NTAV' AND ITFIN-LTBA NE 'N/A'.

ITFIN-SUM = ITFIN-SUM + ITFIN-LTBA.

ENDIF.

APPEND ITFIN .

CLEAR ITFIN .

ENDLOOP .

DELETE ADJACENT DUPLICATES FROM ITFIN .

PERFORM SUMMARY .

Message S013(ZS).

PERFORM BACKGROUND .

CLEAR: ITMX2[] ,ITSPL[],ITEGE[] ,ITTE4[],ITMX7[] .

MESSAGE S017(ZS) .

                                            • SUBROUTINES********************************

                                • FOR INSTALLATION********************************

******************************************************************

FORM INSTALL .

SELECT GERWECHS

EAWKENNZE

EAWKENNZW

FROM TE401 INTO CORRESPONDING FIELDS OF TABLE ITTE4

WHERE GERWECHS IN S_GERWE

AND EAWKENNZE = 'X' .

  • IF SY-SUBRC NE 0 .

  • MESSAGE S002(ZS).

  • LEAVE TO LIST-PROCESSING .

  • ENDIF.

ENDFORM .

*************************************************************

************************REPLACE****************************

*************************************************************

FORM REPLACE .

SELECT GERWECHS

EAWKENNZE

EAWKENNZW FROM TE401 INTO CORRESPONDING FIELDS OF TABLE ITTE4

WHERE GERWECHS IN S_GERWE

AND EAWKENNZW = 'X' .

  • IF SY-SUBRC NE 0.

  • MESSAGE S003(ZS) .

  • LEAVE TO LIST-PROCESSING .

  • ENDIF.

ENDFORM .

******************************************************************

************************INSTALL/REPLACEMENT*********************

******************************************************************

FORM INS_REPL .

SELECT GERWECHS

EAWKENNZE

EAWKENNZA

EAWKENNZW FROM TE401 INTO CORRESPONDING FIELDS OF TABLE ITTE4

WHERE GERWECHS IN S_GERWE

AND ( EAWKENNZE = 'X'

OR EAWKENNZW = 'X' ) .

  • IF SY-SUBRC NE 0.

  • MESSAGE S004(ZS) .

  • LEAVE TO LIST-PROCESSING .

  • ENDIF.

ENDFORM .

**********************************************************************

                                    • FIELD CATALOG FOR DETAILED REPORT ******************

********************************************************************

FORM FIELDCATALOG USING F_FIELDCAT .

CLEAR SFLD .

SFLD-FIELDNAME = 'STATUS' .

SFLD-SELTEXT_S = 'Details'.

SFLD-SELTEXT_M = 'Details'.

SFLD-JUST = 'L' .

SFLD-KEY = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

SFLD-FIELDNAME = 'EQUNR' .

SFLD-SELTEXT_S = 'Equipment'.

SFLD-SELTEXT_M = 'Equipment'.

SFLD-JUST = 'L' .

SFLD-KEY = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

SFLD-FIELDNAME = 'ANLAGE' .

SFLD-SELTEXT_S = 'Installat.'.

SFLD-SELTEXT_M = 'Installation'.

SFLD-JUST = 'L' .

SFLD-KEY = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

SFLD-FIELDNAME = 'SERNR' .

SFLD-SELTEXT_S = 'Serial no.'.

SFLD-SELTEXT_M = 'Serial number'.

SFLD-JUST = 'L' .

  • SFLD-KEY = 'X' .

  • SFLD-HOTSPOT = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

SFLD-FIELDNAME = 'VKONTO' .

SFLD-SELTEXT_S = 'Cont.Acct'.

SFLD-SELTEXT_M = 'Contract Acct'.

SFLD-JUST = 'L' .

  • SFLD-KEY = 'X' .

  • SFLD-HOTSPOT = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

SFLD-FIELDNAME = 'REGIOAREA' .

SFLD-SELTEXT_S = 'Reg. area'.

SFLD-SELTEXT_M = 'Reg. struc.area'.

SFLD-JUST = 'L' .

SFLD-KEY = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

SFLD-FIELDNAME = 'REGIOGROUP' .

SFLD-SELTEXT_S = 'RegStrGrp.'.

SFLD-SELTEXT_M = 'Reg. Str. Grp.'.

SFLD-JUST = 'L' .

SFLD-KEY = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

SFLD-FIELDNAME = 'LTPU' .

SFLD-SELTEXT_S = 'Prm-Util'.

SFLD-SELTEXT_L = 'Premise to Utility installation in days'.

SFLD-JUST = 'R' .

  • SFLD-KEY = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

SFLD-FIELDNAME = 'LTUB' .

SFLD-SELTEXT_S = 'Util-BInst'.

SFLD-SELTEXT_L = 'Utility to Billing installation in days'.

SFLD-JUST = 'R' .

  • SFLD-KEY = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

SFLD-FIELDNAME = 'LTBM' .

SFLD-SELTEXT_M = 'BInst-MRO'.

SFLD-SELTEXT_L = 'Billing to Meter reading order in days'.

SFLD-JUST = 'R' .

  • SFLD-KEY = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

SFLD-FIELDNAME = 'LTMA' .

SFLD-SELTEXT_M = 'MRO-AcRead'.

SFLD-SELTEXT_L = 'Meter reading order to actual reading in days'.

SFLD-JUST = 'R' .

  • SFLD-KEY = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

SFLD-FIELDNAME = 'LTAB' .

SFLD-SELTEXT_M = 'AcRead-BiOr'.

SFLD-SELTEXT_L = 'Actual reading to Billing order in days'.

SFLD-JUST = 'R' .

  • SFLD-KEY = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

SFLD-FIELDNAME = 'LTBA' .

SFLD-SELTEXT_M = 'BiOr-AcBill'.

SFLD-SELTEXT_L = 'Billing order to Actual billing in days'.

SFLD-JUST = 'R' .

  • SFLD-KEY = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

SFLD-FIELDNAME = 'SUM' .

SFLD-SELTEXT_M = 'TOTAL'.

SFLD-SELTEXT_L = 'Total lead time in days'.

SFLD-JUST = 'R' .

  • SFLD-KEY = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

SFLD-FIELDNAME = 'VSTELLE' .

SFLD-SELTEXT_S = 'Premise'.

SFLD-SELTEXT_M = 'Premise'.

SFLD-JUST = 'L' .

  • SFLD-KEY = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

SFLD-FIELDNAME = 'LOGIKNR' .

SFLD-SELTEXT_S = 'LogDev.no.'.

SFLD-SELTEXT_M = 'Log. dev. no.'.

SFLD-JUST = 'L' .

  • SFLD-KEY = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

SFLD-FIELDNAME = 'BIS' .

SFLD-SELTEXT_M = 'Valid to'.

SFLD-SELTEXT_L = 'Date at Which a Time Slice Expires'.

SFLD-JUST = 'C' .

SFLD-NO_OUT = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

SFLD-FIELDNAME = 'AB' .

SFLD-SELTEXT_M = 'Valid from'.

SFLD-SELTEXT_L = 'Date from which time slice is valid'.

SFLD-JUST = 'C' .

SFLD-NO_OUT = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

SFLD-FIELDNAME = 'ZWGRUPPE' .

SFLD-SELTEXT_S = 'Reg. group'.

SFLD-SELTEXT_M = 'Register group'.

SFLD-JUST = 'C' .

SFLD-NO_OUT = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

SFLD-FIELDNAME = 'EINBDAT' .

SFLD-SELTEXT_S = 'Inst. date'.

SFLD-SELTEXT_M = 'Install. date'.

SFLD-JUST = 'C' .

SFLD-NO_OUT = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD.

SFLD-FIELDNAME = 'AUSBDAT' .

SFLD-SELTEXT_S = 'Remov.date'.

SFLD-SELTEXT_M = 'Removal date'.

SFLD-JUST = 'C' .

SFLD-NO_OUT = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

SFLD-FIELDNAME = 'GERWECHS' .

SFLD-SELTEXT_S = 'Reason'.

SFLD-SELTEXT_M = 'Activity reason'.

SFLD-JUST = 'C' .

SFLD-NO_OUT = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

SFLD-FIELDNAME = 'DEVLOC' .

SFLD-SELTEXT_S = 'Dev. loc.'.

SFLD-SELTEXT_M = 'Device location'.

SFLD-JUST = 'C' .

SFLD-NO_OUT = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

SFLD-FIELDNAME = 'SPARTE' .

SFLD-SELTEXT_S = 'Division'.

SFLD-SELTEXT_M = 'Division'.

SFLD-JUST = 'C' .

SFLD-NO_OUT = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

SFLD-FIELDNAME = 'ANLART' .

SFLD-SELTEXT_S = 'Inst. type'.

SFLD-SELTEXT_M = 'Inst. type'.

SFLD-JUST = 'C' .

SFLD-NO_OUT = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

SFLD-FIELDNAME = 'HAUS' .

SFLD-SELTEXT_S = 'Conn.obj.'.

SFLD-SELTEXT_M = 'Connection obj.'.

SFLD-JUST = 'C' .

SFLD-NO_OUT = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

SFLD-FIELDNAME = 'VBSART' .

SFLD-SELTEXT_S = 'Prem. type'.

SFLD-SELTEXT_M = 'Premise type'.

SFLD-JUST = 'C' .

SFLD-NO_OUT = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD.

SFLD-FIELDNAME = 'ABBELNR' .

SFLD-SELTEXT_S = 'Int.MRD ID'.

SFLD-SELTEXT_M = 'Int. MR doc. ID'.

SFLD-JUST = 'C' .

SFLD-NO_OUT = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD.

SFLD-FIELDNAME = 'ABLESGR' .

SFLD-SELTEXT_S = 'MR reason'.

SFLD-SELTEXT_M = 'MR reason'.

SFLD-JUST = 'C' .

SFLD-NO_OUT = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD.

SFLD-FIELDNAME = 'ADAT' .

SFLD-SELTEXT_S = 'MR date'.

SFLD-SELTEXT_M = 'MR date'.

SFLD-JUST = 'C' .

SFLD-NO_OUT = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD.

SFLD-FIELDNAME = 'VERTRAG' .

SFLD-SELTEXT_S = 'Contract'.

SFLD-SELTEXT_M = 'Contract'.

SFLD-JUST = 'C' .

SFLD-NO_OUT = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD.

SFLD-FIELDNAME = 'VKONT' .

SFLD-SELTEXT_S = 'Cont.Acct'.

SFLD-SELTEXT_M = 'Contract Acct'.

SFLD-JUST = 'C' .

SFLD-NO_OUT = 'X' .

APPEND SFLD TO ITFLD .

CLEAR SFLD .

ENDFORM .

----


  • FORM EVENTS_INIT FOR DEATILED REPORT

----


FORM EVENTS_INIT.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = ALV_T_EVENT[].

READ TABLE ALV_T_EVENT WITH KEY name = SLIS_EV_TOP_OF_PAGE.

IF SY-SUBRC = 0 .

MOVE 'TOP-OF-PAGE' TO ALV_T_EVENT-FORM.

APPEND ALV_T_EVENT.

CLEAR ALV_T_EVENT .

ENDIF.

READ TABLE ALV_T_EVENT WITH KEY NAME = SLIS_EV_USER_COMMAND .

IF SY-SUBRC EQ 0 .

MOVE 'USER_COMMEND' TO ALV_T_EVENT-FORM .

APPEND ALV_T_EVENT .

CLEAR ALV_T_EVENT .

ENDIF.

ENDFORM .

----


*FORM DISPLAY FOR DETAILED REPORT

----


FORM DISPLAY .

PERFORM INIT_VARIANT .

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = G_REPID

*I_CALLBACK_USER_COMMAND = 'USER_COMMEND'

IS_LAYOUT = YLAYOUT

IT_FIELDCAT = ITFLD[]

I_DEFAULT = 'X'

I_SAVE = G_SAVE

IS_VARIANT = G_VARIANT

IT_EVENTS = ALV_T_EVENT[]

TABLES

T_OUTTAB = ITFIN[] .

ENDFORM.

----


  • FORM TOP-OF-PAGE FOR DETAILED REPORT

----


FORM TOP-OF-PAGE .

FORMAT COLOR COL_HEADING INVERSE ON.

SKIP 3.

WRITE:/5 'Installation Date :' ,S_AB-LOW ,'TO' ,S_AB-HIGH .

WRITE:/5 'Division :',

P_SPART,40 'Regional Structure-Division:',S_RAREA-LOW

.

FORMAT COLOR COL_GROUP INTENSIFIED ON.

WRITE:/5 'Maintenace Plant:',S_SWERK-LOW,40 'Regional Structure-Unit:'

, S_RGROUP-LOW .

WRITE:/5 'Device Number :',S_SERNR-LOW ,40 'Device category :' ,

S_SERNR-HIGH.

WRITE:/5 'Premise :' ,S_VSTELL-LOW , 40 'connection object :',

S_HAUS-LOW .

FORMAT COLOR COL_NORMAL.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = ITHD.

ENDFORM.

************************************************************************

          • USER-COMAND FOR DETAILED REPORT****************************

*****************************************************************

FORM USER_COMMEND USING r_ucomm LIKE sy-ucomm rs_selfield TYPE

slis_selfield.

***************EQUIPMENT NUMBER***********

IF RS_SELFIELD-fieldname = 'EQUNR'.

SET PARAMETER ID 'EQN' FIELD RS_SELFIELD-VALUE .

CALL TRANSACTION 'IE03' AND SKIP FIRST SCREEN .

ENDIF.

**********************INSTALLATION NO**********

IF RS_SELFIELD-fieldname = 'ANLAGE'.

SET PARAMETER ID 'ANL' FIELD RS_SELFIELD-VALUE .

CALL TRANSACTION 'ES32' AND SKIP FIRST SCREEN .

ENDIF.

**********************PREMISE****************

IF RS_SELFIELD-fieldname = 'VSTELLE'.

SET PARAMETER ID 'VBS' FIELD RS_SELFIELD-VALUE.

CALL TRANSACTION 'ES62' AND SKIP FIRST SCREEN.

ENDIF.

*************************DEVICE NUMBER*******

IF RS_SELFIELD-fieldname = 'SERNR'.

SET PARAMETER ID 'SER' FIELD RS_SELFIELD-VALUE .

CALL TRANSACTION 'IQ03' AND SKIP FIRST SCREEN .

ENDIF.

********************CONTRACT ACCOUNT FIELD***

IF RS_SELFIELD-fieldname = 'VKONTO'.

SET PARAMETER ID 'KTO' FIELD RS_SELFIELD-VALUE .

CALL TRANSACTION 'CAA3' AND SKIP FIRST SCREEN .

ENDIF.

******************CONNECTION OBJECT********

IF RS_SELFIELD-FIELDNAME = 'HAUS' .

SET PARAMETER ID 'HAU' FIELD RS_SELFIELD-VALUE .

CALL TRANSACTION 'ES57' AND SKIP FIRST SCREEN .

ENDIF.

***************DEVICE CTEGORY************

IF RS_SELFIELD-FIELDNAME = 'MATNR' .

SET PARAMETER ID 'EZG' FIELD RS_SELFIELD-VALUE .

CALL TRANSACTION 'EG06' AND SKIP FIRST SCREEN .

ENDIF.

*************BILLING DOCUMENT FIELD******

IF RS_SELFIELD-FIELDNAME = 'BELNR' .

SET PARAMETER ID 'BEL' FIELD RS_SELFIELD-VALUE .

CALL TRANSACTION 'EA22' AND SKIP FIRST SCREEN .

ENDIF.

ENDFORM.

----


  • FORM INIT_VARIANT *

----


  • ........ *

----


FORM INIT_VARIANT .

W_VARIANT_SAVE = 'A'. "All types

W_VARIANT-REPORT = W_REPID.

ENDFORM .

----


  • FORM PF_STATUS_SET *

----


  • ........ *

----


  • --> RT_EXTAB *

----


FORM PF_STATUS_SET USING RT_EXTAB TYPE SLIS_T_EXTAB.

DATA : SLIS_EXTAB TYPE SLIS_EXTAB.

SET PF-STATUS 'SUMMARY'.

ENDFORM. "pf_status_set

************************************************************

                          • SUMMARY REPORT*******************************

**********************************************************

FORM SUMMARY.

SELECT LANGU ROLE REGIOAREA DESCRIPT FROM EADRREGAREAT

INTO TABLE ITDES FOR ALL ENTRIES IN ITFIN

WHERE REGIOAREA = ITFIN-REGIOAREA

AND LANGU = 'EN' .

LOOP AT ITFIN .

READ TABLE ITDES WITH KEY REGIOAREA = ITFIN-REGIOAREA .

IF SY-SUBRC EQ 0 .

ITFIN-DESCRIPT(20) = ITDES-DESCRIPT(20) .

READ TABLE ITTE4 WITH KEY GERWECHS = ITFIN-GERWECHS .

IF SY-SUBRC EQ 0 AND ITTE4-EAWKENNZE = 'X' .

ITFIN-STATUS = 'NEW CONNECTION' .

ENDIF.

READ TABLE ITTE4 WITH KEY GERWECHS = ITFIN-GERWECHS .

IF SY-SUBRC EQ 0 AND ITTE4-EAWKENNZW = 'X' .

ITFIN-STATUS = 'CHANGE OF METER' .

ITFIN-LTPU = 0 .

ITFIN-LTUB = 0 .

ENDIF.

MODIFY ITFIN ." TRANSPORTING DESCRIPT .

CLEAR ITFIN .

ENDIF.

ENDLOOP .

IF P_IP = 'X' .

LOOP AT ITFIN .

READ TABLE ITTE4 WITH KEY GERWECHS = ITFIN-GERWECHS .

IF SY-SUBRC EQ 0 AND ITTE4-EAWKENNZE = 'X' .

MOVE-CORRESPONDING ITFIN TO ITAAA .

APPEND ITAAA .

CLEAR ITAAA .

ENDIF.

READ TABLE ITTE4 WITH KEY GERWECHS = ITFIN-GERWECHS .

IF SY-SUBRC EQ 0 AND ITTE4-EAWKENNZW = 'X' .

MOVE-CORRESPONDING ITFIN TO ITBBB .

APPEND ITBBB.

CLEAR ITBBB .

ENDIF.

ENDLOOP.

SORT ITAAA BY REGIOAREA REGIOGROUP .

SORT ITBBB BY REGIOAREA REGIOGROUP . "REGIOGROUP

LOOP AT ITAAA .

IF ITAAA-SUM BETWEEN 0 AND 15 .

ITCOM-V0_15 = ITCOM-V0_15 + 1 .

ITCOM-REGIOAREA = ITAAA-REGIOAREA .

ITCOM-REGIOGROUP = ITAAA-REGIOGROUP .

ENDIF.

IF ITAAA-SUM BETWEEN 16 AND 30 .

ITCOM-V16_30 = ITCOM-V16_30 + 1 .

ITCOM-REGIOAREA = ITAAA-REGIOAREA .

ITCOM-REGIOGROUP = ITAAA-REGIOGROUP .

ENDIF.

IF ITAAA-SUM BETWEEN 31 AND 45 .

ITCOM-V31_45 = ITCOM-V31_45 + 1 .

ITCOM-REGIOAREA = ITAAA-REGIOAREA .

ITCOM-REGIOGROUP = ITAAA-REGIOGROUP .

ENDIF.

IF ITAAA-SUM BETWEEN 46 AND 60 .

ITCOM-V46_60 = ITCOM-V46_60 + 1 .

ITCOM-REGIOAREA = ITAAA-REGIOAREA .

ITCOM-REGIOGROUP = ITAAA-REGIOGROUP .

ENDIF.

IF ITAAA-SUM BETWEEN 61 AND 75 .

ITCOM-V61_75 = ITCOM-V61_75 + 1 .

ITCOM-REGIOAREA = ITAAA-REGIOAREA .

ITCOM-REGIOGROUP = ITAAA-REGIOGROUP .

ENDIF.

IF ITAAA-SUM BETWEEN 76 AND 90 .

ITCOM-V76_90 = ITCOM-V76_90 + 1 .

ITCOM-REGIOAREA = ITAAA-REGIOAREA .

ITCOM-REGIOGROUP = ITAAA-REGIOGROUP .

ENDIF.

IF ITAAA-SUM > 90 .

ITCOM-V90 = ITCOM-V90 + 1 .

ITCOM-REGIOAREA = ITAAA-REGIOAREA .

ITCOM-REGIOGROUP = ITAAA-REGIOGROUP .

ENDIF.

  • IF ITAAA-SUM < 0 .

  • ITCOM-VNTAV = ITCOM-VNTAV + 1 .

  • ITCOM-REGIOAREA = ITAAA-REGIOAREA .

  • ITCOM-REGIOGROUP = ITAAA-REGIOGROUP .

  • ENDIF.

ITCOM-STATUS = 'NEW CONNECTION' .

AT END OF REGIOAREA.

COLLECT ITCOM .

  • APPEND ITCOM .

CLEAR ITCOM .

ENDAT .

ENDLOOP.

LOOP AT ITBBB.

IF ITBBB-SUM BETWEEN 0 AND 15 .

ITCOM-V0_15 = ITCOM-V0_15 + 1 .

ITCOM-REGIOAREA = ITBBB-REGIOAREA .

ITCOM-REGIOGROUP = ITBBB-REGIOGROUP .

ENDIF.

IF ITBBB-SUM BETWEEN 16 AND 30 .

ITCOM-V16_30 = ITCOM-V16_30 + 1 .

ITCOM-REGIOAREA = ITBBB-REGIOAREA .

ITCOM-REGIOGROUP = ITBBB-REGIOGROUP .

ENDIF.

IF ITBBB-SUM BETWEEN 31 AND 45 .

ITCOM-V31_45 = ITCOM-V31_45 + 1 .

ITCOM-REGIOAREA = ITBBB-REGIOAREA .

ITCOM-REGIOGROUP = ITBBB-REGIOGROUP .

ENDIF.

IF ITBBB-SUM BETWEEN 46 AND 60 .

ITCOM-V46_60 = ITCOM-V46_60 + 1 .

ITCOM-REGIOAREA = ITBBB-REGIOAREA .

ITCOM-REGIOGROUP = ITBBB-REGIOGROUP .

ENDIF.

IF ITBBB-SUM BETWEEN 61 AND 75 .

ITCOM-V61_75 = ITCOM-V61_75 + 1 .

ITCOM-REGIOAREA = ITBBB-REGIOAREA .

ITCOM-REGIOGROUP = ITBBB-REGIOGROUP .

ENDIF.

IF ITBBB-SUM BETWEEN 76 AND 90 .

ITCOM-V76_90 = ITCOM-V76_90 + 1 .

ITCOM-REGIOAREA = ITBBB-REGIOAREA .

ITCOM-REGIOGROUP = ITBBB-REGIOGROUP .

ENDIF.

IF ITBBB-SUM > 90 .

ITCOM-V90 = ITCOM-V90 + 1 .

ITCOM-REGIOAREA = ITBBB-REGIOAREA .

ITCOM-REGIOGROUP = ITBBB-REGIOGROUP .

ENDIF.

  • IF ITBBB-SUM < 0 .

  • ITCOM-VNTAV = ITCOM-VNTAV + 1 .

  • ITCOM-REGIOAREA = ITBBB-REGIOAREA .

  • ITCOM-REGIOGROUP = ITBBB-REGIOGROUP .

  • ENDIF.

ITCOM-STATUS = 'CHANGE OF METER' .

AT END OF REGIOAREA.

COLLECT ITCOM .

  • APPEND ITCOM .

CLEAR ITCOM .

ENDAT .

ENDLOOP.

ELSE .

SORT ITFIN BY REGIOAREA .

CLEAR ITCOM[] .

LOOP AT ITFIN .

IF ITFIN-SUM BETWEEN 0 AND 15 .

ITCOM-V0_15 = ITCOM-V0_15 + 1 .

ITCOM-REGIOAREA = ITFIN-REGIOAREA .

ENDIF.

IF ITFIN-SUM BETWEEN 16 AND 30 .

ITCOM-V16_30 = ITCOM-V16_30 + 1 .

ITCOM-REGIOAREA = ITFIN-REGIOAREA .

ENDIF.

IF ITFIN-SUM BETWEEN 31 AND 45 .

ITCOM-V31_45 = ITCOM-V31_45 + 1 .

ITCOM-REGIOAREA = ITFIN-REGIOAREA .

ENDIF.

IF ITFIN-SUM BETWEEN 46 AND 60 .

ITCOM-V46_60 = ITCOM-V46_60 + 1 .

ITCOM-REGIOAREA = ITFIN-REGIOAREA .

ENDIF.

IF ITFIN-SUM BETWEEN 61 AND 75 .

ITCOM-V61_75 = ITCOM-V61_75 + 1 .

ITCOM-REGIOAREA = ITFIN-REGIOAREA .

ENDIF.

IF ITFIN-SUM BETWEEN 76 AND 90 .

ITCOM-V76_90 = ITCOM-V76_90 + 1 .

ITCOM-REGIOAREA = ITFIN-REGIOAREA .

ENDIF.

IF ITFIN-SUM > 90 .

ITCOM-V90 = ITCOM-V90 + 1 .

ITCOM-REGIOAREA = ITFIN-REGIOAREA .

ENDIF.

  • IF ITFIN-SUM < 0 .

  • ITCOM-VNTAV = ITCOM-VNTAV + 1 .

  • ITCOM-REGIOAREA = ITFIN-REGIOAREA .

  • ENDIF.

ITCOM-STATUS = 'METER READING CHANGE'.

AT END OF REGIOAREA .

COLLECT ITCOM .

  • APPEND ITCOM .

CLEAR ITCOM .

ENDAT .

ENDLOOP .

ENDIF.

LOOP AT ITCOM .

READ TABLE ITDES WITH KEY REGIOAREA = ITCOM-REGIOAREA .

IF SY-SUBRC EQ 0 .

  • ITMX7-SRNO = ITMX7-SRNO + 1 .

IF P_INSTA = 'X' .

ITMX7-STATUS = ITCOM-STATUS .

ELSEIF P_REPLC = 'X' .

ITMX7-STATUS = ITCOM-STATUS .

ELSEIF P_IP = 'X' .

ITMX7-STATUS = ITCOM-STATUS .

ENDIF .

ITMX7-REGIOAREA = ITCOM-REGIOAREA .

ITMX7-REGIOGROUP = ITCOM-REGIOGROUP .

ITMX7-DESCRIPT(20) = ITDES-DESCRIPT(20) .

ITMX7-V0_15 = ITCOM-V0_15 .

ITMX7-V16_30 = ITCOM-V16_30 .

ITMX7-V31_45 = ITCOM-V31_45 .

ITMX7-V46_60 = ITCOM-V46_60 .

ITMX7-V61_75 = ITCOM-V61_75 .

ITMX7-V76_90 = ITCOM-V76_90 .

ITMX7-V90 = ITCOM-V90 .

ITMX7-VNTAV = ITCOM-VNTAV .

ITMX7-TOTAL = ITCOM-V0_15 + ITCOM-V16_30 + ITCOM-V31_45 +

ITCOM-V46_60 + ITCOM-V61_75 + ITCOM-V76_90 +

ITCOM-V90 + ITCOM-VNTAV .

APPEND ITMX7.

CLEAR ITMX7.

ENDIF.

ENDLOOP .

  • DELETE ADJACENT DUPLICATES FROM ITMX7 .

IF SY-BATCH = ' ' .

CLEAR: ITCOM[],ITAAA[],ITBBB[],ITMOD[],ITETD[],ITEAN[],ITMX4[]

,ITMX3,ITEVE[],ITERC[] .

PERFORM S_SORT.

PERFORM LAYOUT.

PERFORM FIELDCAT USING ITH .

PERFORM EVENTS .

PERFORM DISP .

CLEAR ITMX7[] .

ENDIF.

ENDFORM .

***********************************************************

FORM S_SORT.

DATA LS_SORT TYPE SLIS_SORTINFO_ALV.

REFRESH I_SORT.

LS_SORT-FIELDNAME = 'STATUS'.

LS_SORT-SPOS = 1.

LS_SORT-UP = 'X'.

LS_SORT-SUBTOT = 'X'.

APPEND LS_SORT TO I_SORT.

  • YLAYOUT-SUBTOTALS_TEXT = 'STOTAL'.

  • LS_SORT-FIELDNAME = 'REGIOGROUP'.

  • LS_SORT-SPOS = 1.

  • LS_SORT-UP = 'X'.

  • LS_SORT-SUBTOT = 'X'.

  • APPEND LS_SORT TO I_SORT.

ENDFORM. " SORT

**************************************************************

                                  • FIELD CATALOG FOR SUMMARY REPORT************

*************************************************************

FORM FIELDCAT USING P_ITH .

CLEAR STH .

CLEAR STH .

STH-FIELDNAME = 'STATUS' .

STH-SELTEXT_S = 'DETAILS'.

  • STH-SELTEXT_M = 'ZONE CODE'.

STH-JUST = 'L' .

STH-KEY = 'X' .

APPEND STH TO ITH .

CLEAR STH .

STH-FIELDNAME = 'REGIOAREA' .

STH-SELTEXT_S = 'R AREA'.

STH-SELTEXT_M = 'REGIONAL AREA'.

STH-JUST = 'L' .

STH-KEY = 'X' .

APPEND STH TO ITH .

CLEAR STH .

STH-FIELDNAME = 'REGIOGROUP' .

STH-SELTEXT_S = 'R GROUP'.

STH-SELTEXT_M = 'REGIONAL GROUP'.

STH-JUST = 'L' .

STH-KEY = 'X' .

APPEND STH TO ITH .

CLEAR STH .

STH-FIELDNAME = 'DESCRIPT' .

STH-SELTEXT_M = 'DESCRIPT'.

STH-SELTEXT_L = 'DESCRIPTION'.

STH-JUST = 'L' .

STH-KEY = 'X' .

STH-OUTPUTLEN = '20' .

APPEND STH TO ITH .

CLEAR STH .

STH-FIELDNAME = 'V0_15' .

STH-SELTEXT_S = '00-15D'.

STH-SELTEXT_L = '00 to 15 days'.

STH-JUST = 'L' .

STH-DO_SUM = 'X'.

STH-KEY = 'X' .

STH-OUTPUTLEN = 6 .

APPEND STH TO ITH .

CLEAR STH .

STH-FIELDNAME = 'V16_30' .

Sth-SELTEXT_S = '16-30D'.

STH-SELTEXT_L = '16 to 30 days'.

STH-DO_SUM = 'X'.

STH-JUST = 'L' .

STH-KEY = 'X' .

STH-OUTPUTLEN = 6 .

APPEND STH TO ITH .

CLEAR STH .

STH-FIELDNAME = 'V31_45' .

STH-SELTEXT_M = '31-45D'.

STH-SELTEXT_L = '31 to 45 days'.

STH-DO_SUM = 'X'.

STH-JUST = 'L' .

STH-KEY = 'X' .

STH-OUTPUTLEN = 6 .

APPEND STH TO ITH .

CLEAR STH .

STH-FIELDNAME = 'V46_60' .

STH-SELTEXT_M = '46-60D'.

STH-SELTEXT_L = '46 TO 60 days'.

STH-DO_SUM = 'X'.

STH-JUST = 'L' .

STH-KEY = 'X' .

STH-OUTPUTLEN = 6 .

APPEND STH TO ITH .

CLEAR STH .

STH-FIELDNAME = 'V61_75' .

STH-SELTEXT_M = '61-75D'.

STH-SELTEXT_L = '61 TO 75 days'.

STH-DO_SUM = 'X'.

STH-JUST = 'L' .

STH-KEY = 'X' .

STH-OUTPUTLEN = 6 .

APPEND STH TO ITH .

CLEAR STH .

STH-FIELDNAME = 'V76_90' .

STH-SELTEXT_M = '76-90D'.

STH-SELTEXT_L = '76 TO 90 days'.

STH-DO_SUM = 'X'.

STH-JUST = 'L' .

STH-KEY = 'X' .

STH-OUTPUTLEN = 6 .

APPEND STH TO ITH .

CLEAR STH .

STH-FIELDNAME = 'V90' .

STH-SELTEXT_M = 'ABV90D'.

STH-SELTEXT_L = 'ABOVE 90 DAYS'.

STH-DO_SUM = 'X'.

STH-JUST = 'L' .

STH-KEY = 'X' .

STH-OUTPUTLEN = 6 .

APPEND STH TO ITH .

CLEAR STH .

STH-FIELDNAME = 'VNTAV' .

STH-SELTEXT_M = 'NOT AV'.

STH-SELTEXT_L = 'NOT AVAILABLE'.

STH-DO_SUM = 'X'.

STH-JUST = 'L' .

STH-KEY = 'X' .

STH-OUTPUTLEN = 6 .

APPEND STH TO ITH .

CLEAR STH .

STH-FIELDNAME = 'TOTAL' .

STH-SELTEXT_L = ' TOTAL'.

STH-DO_SUM = 'X'.

STH-JUST = 'L' .

STH-KEY = 'X' .

STH-OUTPUTLEN = 6 .

APPEND STH TO ITH .

CLEAR STH .

ENDFORM .

*****************************************************************

**************FORM EVENTS FOR SUMMARY REPORT *******************

*****************************************************************

FORM EVENTS .

EVNTS-NAME = SLIS_EV_TOP_OF_PAGE .

EVNTS-FORM = 'TOPOFPAGE' .

APPEND EVNTS TO EVENTS .

CLEAR EVNTS .

ENDFORM .

*****************************************************************

**************FORM DISP FOR SUMMARY REPORT *******************

*****************************************************************

FORM DISP .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = G_REPID

I_CALLBACK_PF_STATUS_SET = 'PF_STATUS_SET'

I_CALLBACK_USER_COMMAND = 'USER_COMMEND1'

I_CALLBACK_TOP_OF_PAGE = 'TOPOFPAGE'

I_DEFAULT = 'X'

I_SAVE = G_SAVE

IS_VARIANT = G_VARIANT

  • IS_LAYOUT = XLAYOUT

  • I_GRID_TITLE = V_SUMMARY

IT_SORT = I_SORT[]

IT_FIELDCAT = ITH[]

IT_EVENTS = EVENTS

TABLES

T_OUTTAB = ITMX7[].

*CLEAR : ITMX1[],ITFIN[].

ENDFORM.

FORM LAYOUT.

XLAYOUT-colwidth_optimize = 'X'.

XLAYOUT-zebra = 'X'.

  • YLAYOUT-numc_sum = 'X'.

  • YLAYOUT-totals_text = 'TOTAL'.

  • YLAYOUT-subtotals_text = 'SUB TOTAL'.

ENDFORM.

*****************************************************************

**************FORM USER COMMAND FOR DETAIL REPORT *******************

*****************************************************************

FORM USER_COMMEND1 USING r_ucomm1 LIKE sy-ucomm rs_selfield TYPE

slis_selfield.

*SET TITLEBAR 'DETAILED REPORT' OF PROGRAM G_REPID.

CASE SY-UCOMM .

WHEN 'LEADTIME'.

PERFORM EVENTS_INIT .

IF CNT = 0 .

PERFORM FIELDCATALOG USING ITFLD .

CNT = 1.

ENDIF.

PERFORM SET_LAYOUT.

PERFORM DISPLAY.

WHEN 'SPOOL' .

PERFORM SPL .

ENDCASE .

ENDFORM.

*****************************************************************

**************FORM TOPOFPAGE FOR SUMMARY REPORT *******************

*****************************************************************

FORM TOPOFPAGE .

REFRESH ITD .

CLEAR TD .

TD-TYP = 'S' .

TD-INFO = 'Avg Lead Time OF First Billing cases(New Consumer& meter)'

.

APPEND TD TO ITD .

V_DATE = SY-DATUM .

CONCATENATE V_DATE+6(2) '.'

V_DATE+4(2) '.'

V_DATE+0(4) INTO V_DATUM .

CLEAR TD .

TD-TYP = 'S' .

TD-KEY = 'DATE OF REPORT :'.

TD-INFO = V_DATUM .

APPEND TD TO ITD .

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = ITD .

ENDFORM .

----


  • FORM SET_LAYOUT *

----


  • ........ *

----


FORM SET_LAYOUT.

YLAYOUT-colwidth_optimize = 'X'.

YLAYOUT-zebra = 'X'.

YLAYOUT-numc_sum = 'X'.

YLAYOUT-totals_text = 'TOTAL'.

YLAYOUT-subtotals_text = 'SUB TOTAL'.

ENDFORM.

----


  • FORM SPL *

----


  • ........ *

----


      • CALCULATING THE ERROR RECORDS ***********************

FORM SPL .

IF SY-BATCH = ' ' .

SELECT A~EQUNR

A~LOGIKNR

B~MATNR

B~SERNR

B~SPARTE

A~DEVLOC

FROM ( EGERH AS A INNER JOIN EQUI AS B

ON AEQUNR = BEQUNR )

INTO TABLE ITEGE UP TO P_MAXSEL ROWS

FOR ALL ENTRIES IN ITTE4

WHERE A~GERWECHS = ITTE4-GERWECHS

AND A~BIS GE S_AB-LOW

AND A~AB IN S_AB

AND A~KOMBINAT = 'Z'

AND A~EINBDAT NE '00000000'

AND A~AUSBDAT EQ '00000000'

AND B~MATNR IN S_MATNR

AND B~SERNR IN S_SERNR

AND B~SPARTE = P_SPART .

ELSE .

SELECT A~EQUNR

A~LOGIKNR

B~MATNR

B~SERNR

B~SPARTE

A~DEVLOC

FROM ( EGERH AS A INNER JOIN EQUI AS B

ON AEQUNR = BEQUNR )

INTO TABLE ITEGE

FOR ALL ENTRIES IN ITTE4

WHERE A~GERWECHS = ITTE4-GERWECHS

AND A~BIS GE S_AB-LOW

AND A~AB IN S_AB

AND A~KOMBINAT = 'Z'

AND A~EINBDAT NE '00000000'

AND A~AUSBDAT EQ '00000000'

AND B~MATNR IN S_MATNR

AND B~SERNR IN S_SERNR

AND B~SPARTE = P_SPART .

ENDIF.

LOOP AT ITEGE .

READ TABLE ITMX2 WITH KEY LOGIKNR = ITEGE-LOGIKNR .

IF SY-SUBRC EQ 0.

DELETE ITEGE .

ENDIF.

ENDLOOP.

SELECT A~TPLNR

A~TPLMA

B~HAUS

B~REGIOGROUP

FROM ( IFLOT AS A INNER JOIN EHAUISU AS B

ON ATPLMA = BHAUS )

APPENDING CORRESPONDING FIELDS OF TABLE ITSPL

FOR ALL ENTRIES IN ITEGE

WHERE A~TPLNR = ITEGE-DEVLOC .

LOOP AT ITEGE .

READ TABLE ITSPL WITH KEY TPLNR = ITEGE-DEVLOC .

IF SY-SUBRC NE 0 .

DELETE ITEGE .

ENDIF.

ENDLOOP .

IF SY-BATCH = ' ' .

IF KNT = 0 .

PERFORM FTCAT USING ITA.

KNT = 1 .

ENDIF.

PERFORM ALV.

ENDIF.

ENDFORM .

----


  • FORM FTCAT *

----


  • ........ *

----


  • --> P_ITA *

----


FORM FTCAT USING P_ITA .

CLEAR SIT .

SIT-FIELDNAME = 'EQUNR' .

SIT-SELTEXT_M = 'EQUIPMENT NUMBER'.

SIT-SELTEXT_L = 'EQUIPEMNT NUMBER'.

SIT-JUST = 'L' .

SIT-KEY = 'X' .

SIT-OUTPUTLEN = 18 .

APPEND SIT TO ITA .

CLEAR SIT .

SIT-FIELDNAME = 'LOGIKNR' .

SIT-SELTEXT_M = 'LOG DEV NO'.

SIT-SELTEXT_L = 'LOGICAL DEVICE NUMBER'.

SIT-JUST = 'L' .

SIT-KEY = 'X' .

SIT-OUTPUTLEN = 18.

APPEND SIT TO ITA .

CLEAR SIT .

SIT-FIELDNAME = 'SERNR' .

SIT-SELTEXT_M = 'DEVICE NUMBER'.

SIT-SELTEXT_L = 'DEVICE NUMBER'.

SIT-JUST = 'L' .

SIT-KEY = 'X' .

SIT-OUTPUTLEN = 18.

APPEND SIT TO ITA .

CLEAR SIT .

SIT-FIELDNAME = 'MATNR' .

SIT-SELTEXT_S = 'MATERIAL NUMBER'.

SIT-SELTEXT_M = 'MATERIAL NUMBER'.

SIT-JUST = 'L' .

SIT-KEY = 'X' .

SIT-OUTPUTLEN = 18.

APPEND SIT TO ITA.

CLEAR SIT.

ENDFORM .

----


  • FORM ALV *

----


  • ........ *

----


FORM ALV .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = G_REPID

IT_FIELDCAT = ITA[]

I_DEFAULT = 'X'

I_SAVE = G_SAVE

  • IS_VARIANT = G_VARIANT

TABLES

T_OUTTAB = ITEGE[].

ENDFORM .

*************************

FORM VARIANT_EXISTENCE.

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 VARIANT_INIT.

ENDIF.

ENDFORM. " PAI_OF_SELECTION_SCREE

********************VARIANT INITIALIZATION

FORM VARIANT_INIT.

*

CLEAR G_VARIANT.

G_VARIANT-REPORT = G_REPID.

ENDFORM. " VARIANT_INIT

FORM F4_FOR_VARIANT.

CALL FUNCTION 'REUSE_ALV_VARIANT_F4'

EXPORTING

IS_VARIANT = G_VARIANT

I_SAVE = G_SAVE

I_TABNAME_HEADER = 'ITFIN'

I_TABNAME_ITEM = 'ITMX7'

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.

                                                                      • SUBROUTINE BACK GROUND ************

FORM BACKGROUND .

IF SY-BATCH = 'X' .

PERFORM S_SORT.

PERFORM LAYOUT.

PERFORM FIELDCAT USING ITH .

PERFORM EVENTS_SUMMARY .

PERFORM EVENTS_DETAILED .

PERFORM FIELDCATALOG USING ITFLD .

PERFORM SET_LAYOUT.

PERFORM SPL .

PERFORM FTCAT USING ITA.

PERFORM EVENTS_SPOOL .

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'

EXPORTING

I_CALLBACK_PROGRAM = G_REPID.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

IT_FIELDCAT = ITA[]

IS_LAYOUT = Z_LAYOUT

I_TABNAME = 'ITEGE'

IT_EVENTS = EVENTS_SPL

TABLES

T_OUTTAB = ITEGE .

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

IT_FIELDCAT = ITH[]

IS_LAYOUT = X_LAYOUT

I_TABNAME = 'ITMX7'

IT_EVENTS = EVENTS_SUMM

TABLES

T_OUTTAB = ITMX7.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

IT_FIELDCAT = ITFLD[]

IS_LAYOUT = Y_LAYOUT

I_TABNAME = 'ITFIN'

IT_EVENTS = EVENTS_DETAIL

TABLES

T_OUTTAB = ITFIN .

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'

EXPORTING

IS_PRINT = GT_PRINT .

CLEAR: ITMX2[] ,ITSPL[],ITEGE[] ,ITTE4[], ITCOM[],ITAAA[],ITBBB[],

ITMOD[],ITETD[],ITEAN[],ITMX4[],ITMX3,ITEVE[],ITERC[],ITMX7[] .

ENDIF.

ENDFORM .

                                                  • EVENTS FOR DEATILED REPORT IN BACKGROUND

FORM EVENTS_DETAILED .

EVNTS1-NAME = SLIS_EV_TOP_OF_LIST.

EVNTS1-FORM = 'YTOP-OF-LIST' .

APPEND EVNTS1 TO EVENTS_DETAIL .

CLEAR EVNTS1 .

EVNTS1-NAME = SLIS_EV_END_OF_LIST .

EVNTS1-FORM = 'YEND-OF-LIST' .

APPEND EVNTS1 TO EVENTS_DETAIL .

CLEAR EVNTS1.

ENDFORM .

FORM YTOP-OF-LIST .

FORMAT COLOR COL_HEADING INVERSE ON.

WRITE:/5 'Installation Date :' ,S_AB-LOW ,'TO' ,S_AB-HIGH .

WRITE:/5 'Division :',

P_SPART,40 'Regional Structure-Division:',S_RAREA-LOW

.

FORMAT COLOR COL_GROUP INTENSIFIED ON.

WRITE:/5 'Maintenace Plant:',S_SWERK-LOW,40 'Regional Structure-Unit:'

, S_RGROUP-LOW .

WRITE:/5 'Device Number :',S_SERNR-LOW ,40 'Device category :' ,

S_SERNR-HIGH.

WRITE:/5 'Premise :' ,S_VSTELL-LOW , 40 'connection object :',

S_HAUS-LOW .

FORMAT COLOR COL_NORMAL.

ENDFORM .

FORM YEND-OF-LIST .

WRITE:/ 'END OF DETAILED REPORT' .

ULINE.

ENDFORM .

                                                  • EVENTS FOR SPOOL REPORT IN BACKGROUND

FORM EVENTS_SPOOL .

EVNTS2-NAME = SLIS_EV_TOP_OF_LIST .

EVNTS2-FORM = 'ZTOP-OF-LIST' .

APPEND EVNTS2 TO EVENTS_SPL .

CLEAR EVNTS2 .

EVNTS2-NAME = SLIS_EV_END_OF_LIST .

EVNTS2-FORM = 'ZEND-OF-LIST' .

APPEND EVNTS2 TO EVENTS_SPL .

CLEAR EVNTS2 .

ENDFORM .

FORM ZTOP-OF-LIST .

WRITE:/ 'BEGIN OF SPOOL REPORT' .

*MESSAGE S017(ZS) .

ENDFORM .

FORM ZEND-OF-LIST .

WRITE:/ 'END OF SPOOL REPORT' .

ULINE .

ENDFORM .

                                                  • EVENTS FOR SUMMARY REPORT IN BACKGROUND

FORM EVENTS_SUMMARY .

EVNTS3-NAME = SLIS_EV_TOP_OF_LIST .

EVNTS3-FORM = 'XTOP-OF-LIST' .

APPEND EVNTS3 TO EVENTS_SUMM .

CLEAR EVNTS3 .

EVNTS3-NAME = SLIS_EV_END_OF_LIST .

EVNTS3-FORM = 'XEND-OF-LIST' .

APPEND EVNTS3 TO EVENTS_SUMM .

CLEAR EVNTS3 .

ENDFORM.

FORM XTOP-OF-LIST .

FORMAT COLOR COL_HEADING INVERSE ON.

WRITE:/5 'EDP (Mumabi Distribution)' .

WRITE:/5 'Weekly Report On' .

WRITE:/5 'Avg Lead Time OF First Billing cases(New Consumer& meter)'.

V_DATE = SY-DATUM .

CONCATENATE V_DATE+6(2) '.'

V_DATE+4(2) '.'

V_DATE+0(4) INTO V_DATUM .

FORMAT COLOR COL_GROUP INTENSIFIED ON.

WRITE:/5 'DATE OF REPORT :',V_DATUM .

WRITE:/5 'REPORTED BY : EDP' .

FORMAT COLOR COL_NORMAL.

ENDFORM .

FORM XEND-OF-LIST .

WRITE:/5 'END OF SUMMARY REPORT' .

ULINE .

ENDFORM .

Read only

Former Member
0 Likes
1,141

please go thru this thread :