Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- IDENTIFICATION DIVISION.
- PROGRAM-ID STAVE01B.
- AUTHOR. BORDIN ALEX.
- DATE-WRITTEN. 2011-01-10.
- *-----------------------------------------------
- ENVIRONMENT DIVISION.
- INPUT-OUTPUT SECTION.
- FILE-CONTROL.
- SELECT FILERIC ASSIGN TO FILERIC.
- SELECT FILEIMM ASSIGN TO FILEIMM.
- *
- DATA DIVISION.
- *
- FILE SECTION.
- *
- FD FILERIC
- LABEL RECORD IS STANDARD.
- 01 REC-FILE-RIC PIC X(100).
- *
- FD FILEIMM
- LABEL RECORD IS STANDARD.
- 01 REC-FILE-IMM PIC X(300).
- *
- WORKING-STORAGE SECTION.
- *
- 01 NOME-PGM PIC X(08) VALUE 'STAVE01B'.
- *EOF
- 01 EOF-FILE-RIC PIC 9 VALUE ZERO.
- *TRACCIATO FILE-RIC
- 01 W-REC-FILE-RIC.
- 03 W-FISCALE-RIC PIC X(16).
- 03 W-COD-CONS-RIC PIC 9(05).
- *TRACCIATO FILE-IMM
- COPY STAIMM1C.
- *TRACCIATO AREA-DATI-BENI
- COPY VC00VIDF.
- *DATI SCHEDA PARAMETRO
- 01 SKEDA PARAMETRO.
- 03 SK-DATA-OPE PIC X(08).
- 03 FILLER PIC X.
- 03 SK-MATR-OPE PIC X(08).
- *COMODI
- 01 COMODI.
- 03 Z-SQL PIC -(04) VALUE ZERO.
- *PER ABBEND
- 01 DAMP PIC X VALUE SPACE.
- 01 DUMP REDEFINES DAMP PIC S9.
- *ALTRE VARIABILI
- 01 W-DATA-OPE PIC X(08).
- 01 FILLER REDEFINES W-DATA-OPE.
- 03 W-GIORNO-OPE PIC X(02).
- 03 W-MESE-OPE PIC X(02).
- 03 W-ANNO-OPE PIC X(04).
- *CONTATORI
- 01 CONT-RIGHE-RIC PIC 9(06) VALUE ZERO.
- 01 CONT-IMM-SCRITTI PIC 9(06) VALUE ZERO.
- 01 CONT-IMM-NO-SCRITTI PIC 9(06) VALUE ZERO.
- 01 CONT-IMM-TOT PIC 9(06) VALUE ZERO.
- *INCLUDE TABELLE DB2
- EXEC SQL INCLUDE SQLCA END-EXEC.
- EXEC SQL INCLUDE VC00TA17 END-EXEC.
- EXEC SQL INCLUDE VC00TA16 END-EXEC.
- EXEC SQL INCLUDE VC00TA60 END-EXEC.
- *CURSORI
- EXEC SQL DECLARE CURS-VISUREBENI CURSOR FOR
- SELECT *
- FROM VC0VISUREBENI
- WHERE FISCALE_BENI = :FISCALE-BENI
- AND COD_CONSERV_BENI = :COD-CONSERV-BENI
- AND TIPO_REC_BENI = :TIPO-REC-BENI
- FOR FETCH ONLY
- END-EXEC.
- *ROUTINE
- 01 STAVE01R PIC X(08) VALUE 'STAVE01R'.
- COPY STAVE01C.
- *
- PROCEDURE DIVISION.
- *
- MAIN.
- PERFORM INIZIO-PGM
- PERFORM PREPARA-DATA
- PERFORM LEGGI-FILE-RIC
- PERFORM ELABORA-RICHIESTE UNTIL EOF-FILE-RIC = 1
- PERFORM DISPLAY-REPORT
- PERFORM FINE-PGM
- .
- *----------------*
- INIZIO-PGM.
- *----------------*
- DISPLAY 'INIZIO PGM: 'NOME-PGM
- OPEN INPUT FILERIC
- OUTPUT FILEIMM
- ACCEPT SKEDA-PARAMETRO
- .
- *----------------*
- ELABORA-RICHIESTE.
- *----------------*
- PERFORM OPEN-CURS-VISUREBENI
- PERFORM FETCH-CURS-VISUREBENI
- PERFORM SCORRI-BENI UNTIL SQLCODE = 100
- PERFORM CLOSE-CURS-VISUREBENI
- PERFORM LEGGI-FILE-RIC
- .
- *----------------*
- SCORRI-BENI.
- *----------------*
- PERFORM SELECT-IMMOBILI
- IF SQLCODE = 0
- PERFORM SELECT-VISUREANAG
- IF SQLCODE = 0
- PERFORM CHIAMA-STAVE01R
- IF RETURNCODE-RC-STAVE01R = 0
- PERFORM SCRIVI-FILE-IMM
- END-IF
- ELSE
- ADD 1 TO CONT-IMM-NO-SCRITTI
- END-IF
- ELSE
- ADD 1 TO CONT-IMM-NO-SCRITTI
- END-IF
- ADD 1 TO CONT-IMM-TOT
- PERFORM FETCH-CURS-VISUREBENI
- .
- *----------------*
- SCRIVI-FILE-IMM.
- *----------------*
- PERFORM VALORIZZA-REC-FILE-IMM
- WRITE REC-FILE-IMM FROM W-REC-FILE-IMM
- ADD 1 TO CONT-IMM-SCRITTI
- .
- *----------------*
- VALORIZZA-REC-FILE-IMM.
- *----------------*
- MOVE AREA-DATI-BENE TO VC00VIDF
- MOVE W-FISCALE-RIC TO W-FISCALE-IMM
- MOVE NOME-ANAG TO W-NOME-ANAG-IMM
- MOVE W-COD-CONS-RIC TO W-COD-CONS-IMM
- MOVE DES-CONS-OUTPUT-STAVE01R TO W-DES-CONS-IMM
- MOVE SEZIONE-IMM TO W-SEZIONE-IMM
- MOVE FOGLIO-IMM TO W-FOGLIO-IMM
- MOVE MAPPALE-IMM TO W-MAPPALE-IMM
- MOVE COMUNE-IMM TO W-COMUNE-IMM
- MOVE PROVINCIA-IMM TO W-PROV-IMM
- * W-DATA-OPE VALORIZZATA NELLA PERFROM PREPARA-DATA
- MOVE SK-MATR-OPE TO W-MATR-OPE-IMM
- MOVE VD02-TIPO-DEL-BENE TO W-TIPO-BENE-IMM
- MOVE VD02-VAL-RENDITA-CAT TO W-VAL-RENDITA-CAT-IMM
- .
- *----------------*
- SELECT-IMMOBILI.
- *----------------*
- INITIALIZE VC00TAB60
- MOVE W-FISCALE-RIC TO COD-FISC-IMM
- MOVE W-COD-CONS-RIC TO COD-CONS-IMM
- MOVE COD-BENE-BENI TO FORN-COD-BENE-IMM
- EXEC SQL
- SELCET *
- INTO :VC00TAB60
- FROM VC0IMMOBILI
- WHERE COD_FISC_IMM = :COD-FISC-IMM
- AND COD_CONS_IMM = :COD-CONS-IMM
- AND FORN_COD_BENE_IMM = :FORN-COD-BENE-IMM
- END-EXEC
- IF SQLCODE NOT = 100 AND NOT = 0
- MOVE SQLCODE TO Z-SQL
- DISPLAY 'ERRORE IN SELECT TABELLA VC0IMMOBILI'
- DISPLAY 'SQLCDOE:' Z-SQL
- DISPLAY 'COD_FISC_IMM: ' COD-FISC-IMM
- DISPLAY 'COD_CONS_IMM: ' COD-CONS-IMM
- DISPLAY 'FORN_COD_BENE_IMM: ' FORN-COD-BENE-IMM
- ADD 1 TO DUMP
- END-IF
- .
- *----------------*
- SELECT-VISUREANAG.
- *----------------*
- INITIALIZE VC00TAB16
- MOVE W-FISCALE-RIC TO FISCALE-ANAG
- MOVE W-COD-CONS-RIC TO COD-CONSERV-ANAG
- EXEC SQL
- SELECT NOME_ANAG
- INTO :NOME-ANAG
- FROM VC0VISUREANAG
- WHERE FISCALE_ANAG = :FISCALE-ANAG
- AND COD_CONSERV_ANAG = :COD-CONSERV-ANAG
- END-EXEC
- IF SQLCODE NOT = 100 AND NOT = 0
- MOVE SQLCODE TO Z-SQL
- DISPLAY 'ERRORE IN SELECT TABELLA VC0VISUREANAG'
- DISPLAY 'SQLCDOE:' Z-SQL
- DISPLAY 'FISCALE_ANAG: ' FISCALE-ANAG
- DISPLAY 'COD_CONSERV_ANAG: ' COD-CONSERV-ANAG
- ADD 1 TO DUMP
- END-IF
- .
- *----------------*
- PREPARA-DATA.
- *----------------*
- MOVE SK-DATA-OPE TO W-DATA-OPE
- STRING W-ANNO-OPE '-' W-MESE-OPE '-' W-GIORNO-OPE
- INTO W-DATA-OPE-IMM
- .
- *----------------*
- CHIAMA-STAVE01R.
- *----------------*
- INITIALIZE AREA-STAVE01R
- MOVE 'CON' TO AZIONE-INPUT-STAVE01R
- MOVE W-COD-CONS-RIC TO COD-CONS-INPUT-STAVE01R
- CALL STAVE01R USING AREA-STAVE01R
- EVALUATE RETURNCODE-RC-STAVE01R
- WHEN 4
- DISPLAY MESSAGE-RC-STAVE01R
- ADD 1 TO CONT-IMM-NO-SCRITTI
- WHEN 8
- WHEN 12
- DISPLAY MESSAGE-RC-STAVE01R
- ADD 1 TO DUMP
- END-EVALUATE
- .
- *----------------*
- OPEN-CURS-VISUREBENI.
- *----------------*
- INITIALIZE VC00TAB17
- MOVE W-FISCALE-RIC TO FISCALE-BENI
- MOVE W-COD-CONS-RIC TO COD-CONSERV-BENI
- MOVE 2 TO TIPO-REC-BENI
- EXEC SQL
- OPEN CURS-VISUREBENI
- END-EXEC
- IF SQLCODE NOT = 0
- MOVE SQLCODE TO Z-SQL
- DISPLAY 'ERRORE IN OPEN CURSORE'
- DISPLAY 'SQLCODE: ' Z-SQL
- DISPLAY 'CURSORE: CURS-VISUREBENI'
- ADD 1 TO DUMP
- END-IF
- .
- *----------------*
- FETCH-CURS-VISUREBENI.
- *----------------*
- EXEC SQL
- FETCH CURS-VISUREBENI
- INTO :VC00TAB17
- END-EXEC
- IF SQLCODE NOT = 100 AND NOT = 0
- MOVE SQLCODE TO Z-SQL
- DISPLAY 'ERRORE IN FETCH CURSORE'
- DISPLAY 'CURSORE: CURS-VISUREBENI'
- DISPLAY 'SQLCODE: ' Z-SQL
- ADD 1 TO DUMP
- END-IF
- .
- *----------------*
- CLOSE-CURS-VISUREBENI.
- *----------------*
- EXEC SQL
- CLOSE CURS-VISUREBENI
- END-EXEC
- IF SQLCODE NOT = 0
- MOVE SQLCODE TO Z-SQL
- DISPLAY 'ERRORE IN CLOSE CURSORE'
- DISPLAY 'SQLCODE: ' Z-SQL
- DISPLAY 'CURSORE: CURS-VISUREBENI'
- ADD 1 TO DUMP
- END-IF
- .
- *----------------*
- DISPLAY-REPORT.
- *----------------*
- DISPLAY '*------------------------REPORT-------------------------*'
- DISPLAY 'RIGHE LETTE NEL FILE-RIC : ' CONT-RIGHE-RIC
- DISPLAY 'IMMOBILI TROVATI : ' CONT-IMM-TOT
- DISPLAY 'IMMOBILI SCRITTI NEL FILE-IMM : ' CONT-IMM-SCRITTI
- DISPLAY 'IMMOBILI NON SCRITTI NEL FILE-IMM : ' CONT-IMM-NO-SCRITTI
- DISPLAY '*-------------------------------------------------------*'
- .
- *----------------*
- LEGGI-FILE-RIC.
- *----------------*
- READ FILERIC INTO W-REC-FILE-RIC
- AT END MOVE 1 TO EOF-FILE-RIC
- NOT AT END ADD 1 TO CONT-RIGHE-RIC
- .
- *----------------*
- FINE-PGM.
- *----------------*
- CLOSE FILERIC
- FILEIMM
- DISPLAY 'FINE PGM: 'NOME-PGM
- GOBACK
- .
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement