Java tutorial
/** ======================================================================== */ /** */ /** @copyright Copyright (c) 2010-2015, S2S s.r.l. */ /** @license http://www.gnu.org/licenses/gpl-2.0.html GNU Public License v.2 */ /** @version 6.0 */ /** This file is part of SdS - Sistema della Sicurezza . */ /** SdS - Sistema della Sicurezza is free software: you can redistribute it and/or modify */ /** it under the terms of the GNU General Public License as published by */ /** the Free Software Foundation, either version 3 of the License, or */ /** (at your option) any later version. */ /** SdS - Sistema della Sicurezza is distributed in the hope that it will be useful, */ /** but WITHOUT ANY WARRANTY; without even the implied warranty of */ /** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /** GNU General Public License for more details. */ /** You should have received a copy of the GNU General Public License */ /** along with SdS - Sistema della Sicurezza . If not, see <http://www.gnu.org/licenses/gpl-2.0.html> GNU Public License v.2 */ /** */ /** ======================================================================== */ /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package s2s.luna.reports; import com.apconsulting.luna.ejb.AnagrDocumento.IAnagrDocumento; import com.apconsulting.luna.ejb.AnagrDocumento.IAnagrDocumentoHome; import com.apconsulting.luna.ejb.AnagrLuoghiFisici.IAnagrLuoghiFisici; import com.apconsulting.luna.ejb.AnagrLuoghiFisici.IAnagrLuoghiFisiciHome; import com.apconsulting.luna.ejb.AttivitaLavorative.AttivitaLavorativePK; import com.apconsulting.luna.ejb.AttivitaLavorative.IAttivitaLavorative; import com.apconsulting.luna.ejb.AttivitaLavorative.IAttivitaLavorativeHome; import com.apconsulting.luna.ejb.Azienda.IAzienda; import com.apconsulting.luna.ejb.Azienda.IAziendaHome; import com.apconsulting.luna.ejb.GestioneTabellare.CLN_View; import com.apconsulting.luna.ejb.GestioneTabellare.GestioneTabellare_View; import com.apconsulting.luna.ejb.GestioneTabellare.IGestioneTabellare; import com.apconsulting.luna.ejb.GestioneTabellare.IGestioneTabellareHome; import com.apconsulting.luna.ejb.GestioniSezioni.IGestioniSezioniHome; import com.apconsulting.luna.ejb.GestioniSezioni.ReportGestioniSezioni_CplAre_View; import com.apconsulting.luna.ejb.Immobili3lv.IImmobili3lv; import com.apconsulting.luna.ejb.Immobili3lv.IImmobili3lvHome; import com.apconsulting.luna.ejb.Macchina.IMacchina; import com.apconsulting.luna.ejb.Macchina.IMacchinaHome; import com.apconsulting.luna.ejb.Macchina.MacchinaPK; import com.apconsulting.luna.ejb.MisuraPreventiva.IMisuraPreventiva; import com.apconsulting.luna.ejb.MisuraPreventiva.IMisuraPreventivaHome; import com.apconsulting.luna.ejb.MisuraPreventiva.MisuraPreventivaPK; import com.apconsulting.luna.ejb.Paragrafo.IParagrafoHome; import com.apconsulting.luna.ejb.Paragrafo.ParagrafoDocumentiByID_View; import com.apconsulting.luna.ejb.Paragrafo.ReportParagrafi_byAreCpl_View; import com.apconsulting.luna.ejb.Piano.IPiano; import com.apconsulting.luna.ejb.Piano.IPianoHome; import com.apconsulting.luna.ejb.Rischio.IRischio; import com.apconsulting.luna.ejb.Rischio.IRischioHome; import com.apconsulting.luna.ejb.Rischio.RischioPK; import com.apconsulting.luna.ejb.RischioFattore.IRischioFattore; import com.apconsulting.luna.ejb.RischioFattore.IRischioFattoreHome; import com.apconsulting.luna.ejb.SchedeParagrafo.ISchedeParagrafoHome; import com.apconsulting.luna.ejb.SchedeParagrafo.SchedeParagrafo_GetType_View; import com.apconsulting.luna.ejb.SchedeParagrafo.TipoParagrafo; import com.apconsulting.luna.ejb.UnitaOrganizzativa.IUnitaOrganizzativa; import com.apconsulting.luna.ejb.UnitaOrganizzativa.IUnitaOrganizzativaHome; import com.apconsulting.luna.ejb.UnitaSicurezza.IUnitaSicurezza; import com.apconsulting.luna.ejb.UnitaSicurezza.IUnitaSicurezzaHome; import com.apconsulting.luna.ejb.ValutazioneRischi.IValutazioneRischi; import com.apconsulting.luna.ejb.ValutazioneRischi.IValutazioneRischiHome; import com.apconsulting.luna.ejb.ValutazioneRischi.ValutazioneRischiAllegati; import com.apconsulting.luna.ejb.ValutazioneRischi.ValutazioneRischiSezioniByID_View; import com.lowagie.text.*; import com.lowagie.text.pdf.PdfWriter; import java.io.IOException; import java.util.Collection; import java.util.Iterator; import s2s.ejb.pseudoejb.PseudoContext; import s2s.luna.conf.ApplicationConfigurator; import s2s.luna.conf.ModuleManager.MODULES; import s2s.luna.util.SecurityWrapper; import s2s.report.CenterMiddleTable; import s2s.report.MiddleTable; import s2s.report.Report; import s2s.report.ZREPORT_SETTINGS; import s2s.utils.plain.Formatter; import s2s.utils.text.StringManager; /** * * @author Dario Massaroni */ public class Report_DOC_VAL_RSO extends Report { public long lCOD_AZL = 0; public long lCOD_DOC_VLU = 0; long lCOD_UNI_ORG = 0; private int iIndexPageCount; ZREPORT_SETTINGS REPORT_SETTINGS = new ZREPORT_SETTINGS(); public Report_DOC_VAL_RSO() { } Pair ROOT = new Pair(); Pair addPair(String strName, Pair parent) { Pair p = new Pair(); p.strName = strName; p.iPage = m_writer.getPageNumber(); if (parent != null) { parent.Children.add(p); } return p; } public void writeIndex(Report report) throws Exception { ROOT.strName = "ROOT"; CenterMiddleTable tbl = new CenterMiddleTable(4); int width[] = { 5, 5, 80, 10 }; tbl.setWidths(width); tbl.toLeft(); tbl.addHeaderCellB(ApplicationConfigurator.LanguageManager.getString("Indice"), 4); tbl.setDefaultCellBorder(0); tbl.addCell("", 10, 4); tbl.setDefaultCellBorder(Rectangle.BOTTOM); writePair(tbl, ROOT, 0); report.m_document.add(tbl); } public void writePair(CenterMiddleTable tbl, Pair pair, int iLevel) throws Exception { if (iLevel != 0) { if (iLevel > 1) { Cell cell = new Cell(); cell.setColspan(iLevel - 1); cell.setBorder(0); tbl.addCell(cell); } tbl.toLeft(); tbl.addCell(pair.strName, 14 - ((iLevel - 1) * 2), 4 - iLevel); tbl.toRight(); tbl.addCell((pair.iPage + iIndexPageCount) + "", 14 - ((iLevel - 1) * 2)); } Iterator it = pair.Children.iterator(); while (it.hasNext()) { Pair pp = (Pair) it.next(); writePair(tbl, pp, iLevel + 1); } } public void reorderPages() throws DocumentException { int max = m_writer.reorderPages(null); int order[] = new int[max]; int i; order[0] = 1; for (i = 1; i <= iIndexPageCount; i++) { order[i] = max - iIndexPageCount + i; } for (int l = i; l < max; l++) { order[l] = l - iIndexPageCount + 1; } m_writer.reorderPages(order); } public void calculateIndexPage(IValutazioneRischiHome home_vr, IValutazioneRischi bean_vr, IGestioniSezioniHome home_sez, IParagrafoHome home_prg) { Collection col_sez = home_vr.getValutazioneRischiSezioniByID_View(bean_vr.getCOD_DOC_VLU()); Iterator it_sez = col_sez.iterator(); // SCORRO LE SEZIONI - Inizio while (it_sez.hasNext()) { ValutazioneRischiSezioniByID_View sezione = (ValutazioneRischiSezioniByID_View) it_sez.next(); Pair SECTION = addPair(sezione.NOM_RSP_DOC, ROOT); { // SCORRO I CAPITOLI - Inizio Collection col_cap = home_sez.getReportGestioniSezioni_CplAre_View(sezione.COD_ARE, lCOD_AZL); Iterator it_cap = col_cap.iterator(); while (it_cap.hasNext()) { ReportGestioniSezioni_CplAre_View capitolo = (ReportGestioniSezioni_CplAre_View) it_cap.next(); Pair CAPITOLO = addPair(capitolo.NOM_CPL, SECTION); { // SCORRO I PARAGRAFI - Inizio Iterator it_prg = home_prg .getReportParagrafi_byAreCpl_View(sezione.COD_ARE, lCOD_AZL, capitolo.COD_CPL) .iterator(); while (it_prg.hasNext()) { ReportParagrafi_byAreCpl_View paragrafo = (ReportParagrafi_byAreCpl_View) it_prg.next(); addPair(paragrafo.NOM_PRG, CAPITOLO); } // SCORRO I PARAGRAFI - Fine } } // SCORRO I CAPITOLI - Fine } } // SCORRO LE SEZIONI - Fine // Se abilitato da modulo aggiungo la parte degli allegati DVR. if (ApplicationConfigurator.isModuleEnabled(MODULES.DVR_ALLEGATI) == true && home_vr.getAllegatiCount(lCOD_DOC_VLU) > 0) { addPair("ALLEGATI", ROOT); } } @Override public void doReport() throws DocumentException, IOException, BadElementException, Exception { SecurityWrapper Security = SecurityWrapper.getInstance(); lCOD_AZL = Security.getAziendaR(); IAziendaHome home_az = (IAziendaHome) PseudoContext.lookup("AziendaBean"); IAzienda bean_az = home_az.findByPrimaryKey(new Long(lCOD_AZL)); IValutazioneRischiHome home_vr = (IValutazioneRischiHome) PseudoContext.lookup("ValutazioneRischiBean"); IValutazioneRischi bean_vr = home_vr.findByPrimaryKey(new Long(lCOD_DOC_VLU)); IGestioniSezioniHome home_sez = (IGestioniSezioniHome) PseudoContext.lookup("GestioniSezioniBean"); IParagrafoHome home_prg = (IParagrafoHome) PseudoContext.lookup("ParagrafoBean"); IGestioneTabellareHome home_tab = (IGestioneTabellareHome) PseudoContext.lookup("GestioneTabellareBean"); ISchedeParagrafoHome home_sch = (ISchedeParagrafoHome) PseudoContext.lookup("SchedeParagrafoBean"); lCOD_UNI_ORG = bean_vr.getCOD_UNI_ORG(); String strAzienda = bean_az.getRAG_SCL_AZL(); boolean isUniOrg = false; String strUniOrgName = ""; if (lCOD_UNI_ORG != 0) { isUniOrg = true; IUnitaOrganizzativaHome home_uni = (IUnitaOrganizzativaHome) PseudoContext .lookup("UnitaOrganizzativaBean"); IUnitaOrganizzativa bean_uni = home_uni.findByPrimaryKey(new Long(lCOD_UNI_ORG)); strUniOrgName = bean_uni.getNOM_UNI_ORG(); } initDocumentEx("the doc"); setHeaders(); m_writer.setLinearPageMode(); m_handler.bShowHeader = false; m_handler.bShowDate = false; m_handler.strTopLeft = isUniOrg ? strUniOrgName : strAzienda; m_handler.strTopCenter = ApplicationConfigurator.LanguageManager .getString("Documento.di.valutazione.dei.rischi"); String documentName = getDocumentName(); if (StringManager.isNotEmpty(documentName)) { m_handler.strBottomLeft = ApplicationConfigurator.LanguageManager.getString("Nome.documento") + ": " + documentName + "\n" + ApplicationConfigurator.LanguageManager.getString("Datore.di.lavoro") + ": " + bean_az.getNOM_RSP_AZL(); } else { m_handler.strBottomLeft = ApplicationConfigurator.LanguageManager.getString("Datore.di.lavoro") + ":\n" + bean_az.getNOM_RSP_AZL(); } m_handler.strBottomRight = ApplicationConfigurator.LanguageManager.getString("Data.redazione") + ": " + Formatter.format(bean_vr.getDAT_DOC_VLU()) + "\n" + ApplicationConfigurator.LanguageManager.getString("Versione") + ": " + Formatter.format(bean_vr.getVER_DOC()); // Costruisce l'indice e lo scrive su un documento separato. calculateIndexPage(home_vr, bean_vr, home_sez, home_prg); Report reportIndex = new Report(); reportIndex.initDocumentEx("the doc"); reportIndex.m_handler = m_handler.copy(); reportIndex.m_document.open(); writeIndex(reportIndex); // Determina il numero di pagine occupate dall'indice. iIndexPageCount = reportIndex.m_writer.getPageNumber(); // Nella numerazione delle pagine, // tiene conto di quelle occupate dall'indice. m_handler.setIndexPageCount(iIndexPageCount); // Verifica se l'ultima pagina dell'indice e' pari o e' dispari ROOT.Children.clear(); m_document.open(); AddImage(); writeTitle("\n" + (ApplicationConfigurator.isModuleEnabled(MODULES.MOD_DVR_GSE) ? ApplicationConfigurator.LanguageManager.getString("MSG_REP_0014") : ApplicationConfigurator.LanguageManager.getString("MSG_REP_0007")) + "\n"); writeBig(ApplicationConfigurator.LanguageManager.getString("(D.Lgs.626/94.art.4.comma.2)")); writeTitle("\n"); if (isUniOrg) { Paragraph pr = new Paragraph(strUniOrgName, REPORT_SETTINGS.ftText16); pr.setAlignment(Element.ALIGN_CENTER); m_document.add(pr); } Paragraph pr = new Paragraph(bean_az.getRAG_SCL_AZL(), REPORT_SETTINGS.ftText18); pr.setAlignment(Element.ALIGN_CENTER); m_document.add(pr); pr = new Paragraph(bean_az.getCIT_AZL() + ", " + bean_az.getIDZ_AZL(), REPORT_SETTINGS.ftText3); pr.setAlignment(Element.ALIGN_CENTER); m_document.add(pr); m_handler.bShowHeader = true; // STAMPA SEZIONI - Inizio. Collection col_sez = home_vr.getValutazioneRischiSezioniByID_View(bean_vr.getCOD_DOC_VLU()); Iterator it_sez = col_sez.iterator(); { while (it_sez.hasNext()) { // Se la pagina precedente alla nuova sezione dispari (fronte del foglio), // viene aggiunta una pagina bianca pari (retro del foglio) // prima di proseguire con la stampa della sezione. // Questo, nella stampa fronte-retro, garantisce che la nuova sezione sia // sempre su pagina dispari (parte frontale del foglio). if ((m_writer.getPageNumber() + iIndexPageCount) % 2 == 1) { // Questa regola non applicata per GSE. if (ApplicationConfigurator.isModuleEnabled(MODULES.MOD_DVR_GSE) == false) { writePage(); } } // Scrive ogni sezione su una nuova pagina writePage(); boolean primoCapitoloDellaSezione = true; ValutazioneRischiSezioniByID_View sezione = (ValutazioneRischiSezioniByID_View) it_sez.next(); Pair SECTION = addPair(sezione.NOM_RSP_DOC, ROOT); writeSezione(sezione.NOM_RSP_DOC); { // STAMPA CAPITOLI - Inizio. Collection col_cap = home_sez.getReportGestioniSezioni_CplAre_View(sezione.COD_ARE, lCOD_AZL); Iterator it_cap = col_cap.iterator(); while (it_cap.hasNext()) { if (primoCapitoloDellaSezione) { writeLine(); } else { writePage(); } boolean primoParagrafoDelCapitolo = true; ReportGestioniSezioni_CplAre_View capitolo = (ReportGestioniSezioni_CplAre_View) it_cap .next(); Pair CAPITOLO = addPair(capitolo.NOM_CPL, SECTION); writeCapitolo(capitolo.NOM_CPL); CenterMiddleTable tbl = new CenterMiddleTable(1); tbl.BorderColor(); tbl.setDefaultHorizontalAlignment(Element.ALIGN_JUSTIFIED); tbl.addCell2(Formatter.format(capitolo.DES_CPL_ARE)); m_document.add(tbl); { // STAMPA PARAGRAFI - Inizio. Iterator it_prg = home_prg .getReportParagrafi_byAreCpl_View(sezione.COD_ARE, lCOD_AZL, capitolo.COD_CPL) .iterator(); boolean endWithNewPage = false; while (it_prg.hasNext()) { if (primoParagrafoDelCapitolo && StringManager.isEmpty(capitolo.DES_CPL_ARE)) { writeLine(); } else { writePage(); } ReportParagrafi_byAreCpl_View paragrafo = (ReportParagrafi_byAreCpl_View) it_prg .next(); addPair(paragrafo.NOM_PRG, CAPITOLO); writeParagrafo(Formatter.format(paragrafo.NOM_PRG)); if (StampaDescrizioneParagrafo(paragrafo) && checkContenutoParagrafo(home_tab, home_prg, home_sch, paragrafo.COD_PRG)) { writePage(); } // Stampa del tab "DOCUMENTI" - Inizio { /* NB, il metodo stampa documenti torna true * se la eventuale stampa dei documenti finisce * con una pagina nuova. */ endWithNewPage = StampaDocumenti(home_prg, paragrafo.COD_PRG, m_document, m_writer); } // Stampa del tab "DOCUMENTI" - Fine // Stampa del tab "TABELLE" - Inizio { /* NB, il metodo stampa tabelle torna true * se ho stampato una o piu tabelle. */ if (StampaTabelle(home_tab, paragrafo.COD_PRG, m_document) == true) { endWithNewPage = true; } } // Stampa schede - Inizio { /* NB, il metodo stampa schede torna true * se ho stampato una o piu schede di paragrafo. */ if (StampaSchede(bean_az, home_sch, paragrafo.COD_PRG, lCOD_AZL, endWithNewPage) == true) { endWithNewPage = false; } } // Stampa schede - Fine primoParagrafoDelCapitolo = false; } // STAMPA PARAGRAFI - Fine. if (it_cap.hasNext() && endWithNewPage == false) { // Non eliminare, valutare se aggiungere uno writePage(); } } primoCapitoloDellaSezione = false; } // STAMPA CAPITOLI - Fine. } } // STAMPA SEZIONI - Fine. if (ApplicationConfigurator.isModuleEnabled(MODULES.DVR_ALLEGATI) == true) { // STAMPA TABELLA "DOCUMENTI ALLEGATI" - Inizio Collection<ValutazioneRischiAllegati> allegati_dvr_list; allegati_dvr_list = home_vr.getValutazioneRischiAllegati(lCOD_DOC_VLU); if (allegati_dvr_list != null && allegati_dvr_list.isEmpty() == false) { writePage(); addPair("ALLEGATI", ROOT); writeParagraph1(ApplicationConfigurator.LanguageManager.getString("Documenti.allegati")); { CenterMiddleTable tbl = new CenterMiddleTable(1); tbl.setDeafaultOffset(); tbl.addHeaderCellB( ApplicationConfigurator.LanguageManager.getString("Titolo.del.documento")); tbl.endHeaders(); tbl.setDefaultHorizontalAlignment(Element.ALIGN_LEFT); for (ValutazioneRischiAllegati allegato : allegati_dvr_list) { tbl.addCell(allegato.TIT_DOC); } m_document.add(tbl); } } // STAMPA TABELLA "DOCUMENTI ALLEGATI" - Fine } // Scrive l'indice alla fine del documento. m_handler.startIndex(); writePage();// 3 PAGE writeIndex(this); m_handler.endIndex(); // Porta l'indice dopo la prima pagina. writePage(); reorderPages(); closeDocument(); } } //verifico l'esistenza di informazioni(documenti,tabelle,schede) legate al paragrafo senza stamparle //il metodo torna true se ho informazioni altrimenti torna false private boolean checkContenutoParagrafo(IGestioneTabellareHome home_tab, IParagrafoHome home_prg, ISchedeParagrafoHome home, long lCOD_PRG) { if ( // Verifico che ci siano tabelle da stampare. home_tab.getGestioneTabellare_View(lCOD_PRG).iterator().hasNext() || // Verifico che ci siano dei documenti da stampare. home_prg.getParagrafoDocumentiByID_View(lCOD_PRG).iterator().hasNext() || // Verifico che ci siano delle schede paragrafo da stampare. home.getSchedeParagrafo_GetType_View_BASE(lCOD_PRG, lCOD_UNI_ORG).iterator().hasNext()) { return true; } return false; } private boolean StampaDescrizioneParagrafo(ReportParagrafi_byAreCpl_View paragrafo) throws Exception { ISchedeParagrafoHome home_sch = (ISchedeParagrafoHome) PseudoContext.lookup("SchedeParagrafoBean"); writeLine(); if (StringManager.isNotEmpty(paragrafo.DES_PRG)) { writeText2Justified(Formatter.format(paragrafo.DES_PRG)); writeLine(); } Collection<SchedeParagrafo_GetType_View> listaSchedeDescr = home_sch .getSchedeParagrafo_GetType_View_DESC(paragrafo.COD_PRG, lCOD_UNI_ORG); for (SchedeParagrafo_GetType_View schedaParagrafo : listaSchedeDescr) { if (schedaParagrafo.TPL_SCH.equals(TipoParagrafo.DESCRIZIONI_ATTIVITA_LAVORATIVA.getType())) { IAttivitaLavorativeHome home_man = (IAttivitaLavorativeHome) PseudoContext .lookup("AttivitaLavorativeBean"); IAttivitaLavorative bean_man = home_man .findByPrimaryKey(new AttivitaLavorativePK(lCOD_AZL, schedaParagrafo.COD_MAN)); writeText2BoldAndIndent(Formatter.format(bean_man.getNOM_MAN()), schedaParagrafo.STL_IND); writeText2JustifiedAndIndent(Formatter.format(bean_man.getDES_MAN()), schedaParagrafo.STL_IND); writeLine(); } else if (schedaParagrafo.TPL_SCH.equals(TipoParagrafo.DESCRIZIONI_IMMOBILI.getType())) { IImmobili3lvHome home_imm_3lv = (IImmobili3lvHome) PseudoContext.lookup("Immobili3lvBean"); IImmobili3lv bean_imm_3lv = home_imm_3lv.findByPrimaryKey(schedaParagrafo.COD_IMM_3LV); writeText2BoldAndIndent(Formatter.format(bean_imm_3lv.getNOM_IMM()), schedaParagrafo.STL_IND); writeText2JustifiedAndIndent(Formatter.format(bean_imm_3lv.getDES_IMM()), schedaParagrafo.STL_IND); writeLine(); } else if (schedaParagrafo.TPL_SCH.equals(TipoParagrafo.DESCRIZIONI_PIANI.getType())) { IPianoHome home_pno = (IPianoHome) PseudoContext.lookup("PianoBean"); IPiano bean_pno = home_pno.findByPrimaryKey(schedaParagrafo.COD_PNO); writeText2BoldAndIndent(Formatter.format(bean_pno.getNOM_PNO()), schedaParagrafo.STL_IND); writeText2JustifiedAndIndent(Formatter.format(bean_pno.getDES_PNO()), schedaParagrafo.STL_IND); writeLine(); } else if (schedaParagrafo.TPL_SCH.equals(TipoParagrafo.DESCRIZIONI_LUOGO_FISICO.getType())) { IAnagrLuoghiFisiciHome home_luo_fsc = (IAnagrLuoghiFisiciHome) PseudoContext .lookup("AnagrLuoghiFisiciBean"); IAnagrLuoghiFisici bean_luo_fsc = home_luo_fsc.findByPrimaryKey(schedaParagrafo.COD_LUO_FSC); writeText2BoldAndIndent(Formatter.format(bean_luo_fsc.getNOM_LUO_FSC()), schedaParagrafo.STL_IND); writeText2JustifiedAndIndent(Formatter.format(bean_luo_fsc.getDES_LUO_FSC()), schedaParagrafo.STL_IND); writeLine(); } else if (schedaParagrafo.TPL_SCH.equals(TipoParagrafo.DESCRIZIONI_MACCHINA_ATTREZZATURA.getType())) { IMacchinaHome home_mac = (IMacchinaHome) PseudoContext.lookup("MacchinaBean"); IMacchina bean_mac = home_mac.findByPrimaryKey(new MacchinaPK(lCOD_AZL, schedaParagrafo.COD_MAC)); writeText2BoldAndIndent(Formatter.format(bean_mac.getMDL_MAC()), schedaParagrafo.STL_IND); writeText2JustifiedAndIndent(Formatter.format(bean_mac.getDES_MAC()), schedaParagrafo.STL_IND); writeLine(); } else if (schedaParagrafo.TPL_SCH.equals(TipoParagrafo.DESCRIZIONI_RISCHI.getType())) { IRischioHome home_rso = (IRischioHome) PseudoContext.lookup("RischioBean"); IRischioFattoreHome home_fat_rso = (IRischioFattoreHome) PseudoContext.lookup("RischioFattoreBean"); IRischio bean_rso = home_rso.findByPrimaryKey(new RischioPK(lCOD_AZL, schedaParagrafo.COD_RSO)); IRischioFattore bean_fat_rso = home_fat_rso.findByPrimaryKey(bean_rso.getCOD_FAT_RSO()); writeText2BoldAndIndent( Formatter.format(bean_fat_rso.getNOM_FAT_RSO() + " - " + bean_rso.getNOM_RSO()), schedaParagrafo.STL_IND); writeText2JustifiedAndIndent(Formatter.format(bean_rso.getDES_RSO()), schedaParagrafo.STL_IND); writeLine(); } else if (schedaParagrafo.TPL_SCH.equals(TipoParagrafo.DESCRIZIONI_MISURA_PP.getType())) { IMisuraPreventivaHome home_mis_pet = (IMisuraPreventivaHome) PseudoContext .lookup("MisuraPreventivaBean"); IMisuraPreventiva bean_mis_pet = home_mis_pet .findByPrimaryKey(new MisuraPreventivaPK(lCOD_AZL, schedaParagrafo.COD_MIS_PET)); writeText2BoldAndIndent(Formatter.format(bean_mis_pet.getNOM_MIS_PET()), schedaParagrafo.STL_IND); writeText2JustifiedAndIndent(Formatter.format(bean_mis_pet.getDES_MIS_PET()), schedaParagrafo.STL_IND); writeLine(); } else if (schedaParagrafo.TPL_SCH.equals(TipoParagrafo.DESCRIZIONI_UNITA_ORGANIZZATIVA.getType())) { IUnitaOrganizzativaHome home_uni_org = (IUnitaOrganizzativaHome) PseudoContext .lookup("UnitaOrganizzativaBean"); IUnitaOrganizzativa bean_uni_org = home_uni_org.findByPrimaryKey(schedaParagrafo.COD_UNI_ORG); writeText2BoldAndIndent(Formatter.format(bean_uni_org.getNOM_UNI_ORG()), schedaParagrafo.STL_IND); writeText2JustifiedAndIndent(Formatter.format(bean_uni_org.getDES_UNI_ORG()), schedaParagrafo.STL_IND); writeLine(); } else if (schedaParagrafo.TPL_SCH.equals(TipoParagrafo.DESCRIZIONI_UNITA_SICUREZZA.getType())) { IUnitaSicurezzaHome home_uni_sic = (IUnitaSicurezzaHome) PseudoContext.lookup("UnitaSicurezzaBean"); IUnitaSicurezza bean_uni_sic = home_uni_sic.findByPrimaryKey(schedaParagrafo.COD_UNI_SIC); writeText2BoldAndIndent(Formatter.format(bean_uni_sic.getNOM_UNI_SIC()), schedaParagrafo.STL_IND); writeText2JustifiedAndIndent(Formatter.format(bean_uni_sic.getDES_UNI_SIC()), schedaParagrafo.STL_IND); writeLine(); } } return StringManager.isNotEmpty(paragrafo.DES_PRG) || listaSchedeDescr.size() > 0; } private boolean StampaSchede(IAzienda bean_az, ISchedeParagrafoHome home_sch, long lCOD_PRG, long lCOD_AZL, boolean startWithNewPage) throws Exception { boolean buildSchede = false; if (BuildSchede(bean_az, home_sch, lCOD_PRG, lCOD_AZL, TipoParagrafo.ANAGRAFICA_AZIENDA.getType(), startWithNewPage)) { buildSchede = true; } if (BuildSchede(bean_az, home_sch, lCOD_PRG, lCOD_AZL, TipoParagrafo.VALUTAZIONE_RISCHIO.getType(), startWithNewPage)) { buildSchede = true; } if (BuildSchede(bean_az, home_sch, lCOD_PRG, lCOD_AZL, TipoParagrafo.SCHEDA_RISCHI.getType(), startWithNewPage)) { buildSchede = true; } if (BuildSchede(bean_az, home_sch, lCOD_PRG, lCOD_AZL, TipoParagrafo.MACCHINA_ATTREZZATURA.getType(), startWithNewPage)) { buildSchede = true; } if (BuildSchede(bean_az, home_sch, lCOD_PRG, lCOD_AZL, TipoParagrafo.UNITA_ORGANIZZATIVA.getType(), startWithNewPage)) { buildSchede = true; } if (BuildSchede(bean_az, home_sch, lCOD_PRG, lCOD_AZL, TipoParagrafo.UNITA_SICUREZZA.getType(), startWithNewPage)) { buildSchede = true; } if (BuildSchede(bean_az, home_sch, lCOD_PRG, lCOD_AZL, TipoParagrafo.SOSTANZA_CHIMICA.getType(), startWithNewPage)) { buildSchede = true; } if (BuildSchede(bean_az, home_sch, lCOD_PRG, lCOD_AZL, TipoParagrafo.ATTIVITA_LAVORATIVA.getType(), startWithNewPage)) { buildSchede = true; } if (BuildSchede(bean_az, home_sch, lCOD_PRG, lCOD_AZL, TipoParagrafo.LUOGO_FISICO.getType(), startWithNewPage)) { buildSchede = true; } if (BuildSchede(bean_az, home_sch, lCOD_PRG, lCOD_AZL, TipoParagrafo.FATTORE_DI_RISCHIO.getType(), startWithNewPage)) { buildSchede = true; } return buildSchede; } public boolean StampaDocumenti(IParagrafoHome home_prg, long lCOD_PRG, Document document, PdfWriter writer) throws Exception { /* NB, il metodo stampa documenti torna true non se ho stampato i documenti * ma se la evantuale stampa dei documenti finisce con una pagina nuova o meno. */ boolean endWithNewPage = false; // Estraggo i documenti legati al paragrafo Collection prg_doc_list = home_prg.getParagrafoDocumentiByID_View(lCOD_PRG); // ... se ne trovo... if (prg_doc_list != null && !prg_doc_list.isEmpty()) { writeLine(); writeBig(ApplicationConfigurator.LanguageManager.getString("Documenti.allegati")); writeLine(); Iterator it_prg_doc = prg_doc_list.iterator(); int i = 0; while (it_prg_doc.hasNext()) { ParagrafoDocumentiByID_View prg_doc = (ParagrafoDocumentiByID_View) it_prg_doc.next(); if (i > 0) { writePage(); } // Stampo i file allegati al documento /* NB, il metodo stampa documento torna true non se ho stampato un * documento ma se ho stampato gli allegati di tale documento. * Solo in questo caso infatti, necessario andare a pagina nuova. */ if (StampaDocumento(prg_doc.COD_DOC, document, writer)) { endWithNewPage = true; } else { writeLine(); endWithNewPage = false; } i = i + 1; } } return endWithNewPage; } private boolean StampaTabelle(IGestioneTabellareHome home_tab, long lCOD_PRG, Document document) throws Exception { boolean stampateTabelle = false; Iterator it_tab = home_tab.getGestioneTabellare_View(lCOD_PRG).iterator(); while (it_tab.hasNext()) { IParagrafoHome home_prg = (IParagrafoHome) PseudoContext.lookup("ParagrafoBean"); if (home_prg.getParagrafoDocumentiByID_View(lCOD_PRG).iterator().hasNext()) { writePage(); } GestioneTabellare_View tabella = (GestioneTabellare_View) it_tab.next(); { IGestioneTabellare bean_tab = home_tab.findByPrimaryKey(new Long(tabella.COD_TAB_UTN)); int lColumns = (int) bean_tab.getNUM_CLN(); MiddleTable tb = new MiddleTable(lColumns, true); tb.toCenter(); tb.addHeaderCellB(bean_tab.getTIT_TAB(), lColumns); tb.toLeft(); { if (lColumns > 0) { tb.addHeaderCell(bean_tab.getNOM_TIT_1()); } if (lColumns > 1) { tb.addHeaderCell(bean_tab.getNOM_TIT_2()); } if (lColumns > 2) { tb.addHeaderCell(bean_tab.getNOM_TIT_3()); } if (lColumns > 3) { tb.addHeaderCell(bean_tab.getNOM_TIT_4()); } if (lColumns > 4) { tb.addHeaderCell(bean_tab.getNOM_TIT_5()); } } tb.endHeaders(); Iterator it_cols = home_tab.getCLN_View(tabella.COD_TAB_UTN).iterator(); while (it_cols.hasNext()) { CLN_View wcol = (CLN_View) it_cols.next(); if (lColumns > 0) { tb.addCell(wcol.NOM_CLN_1); } if (lColumns > 1) { tb.addCell(wcol.NOM_CLN_2); } if (lColumns > 2) { tb.addCell(wcol.NOM_CLN_3); } if (lColumns > 3) { tb.addCell(wcol.NOM_CLN_4); } if (lColumns > 4) { tb.addCell(wcol.NOM_CLN_5); } } tb.setOffset(32); document.add(tb); stampateTabelle = true; } } return stampateTabelle; } public boolean StampaDocumento(Long lCOD_DOC, Document document, PdfWriter writer) throws Exception { IAnagrDocumentoHome doc_home = (IAnagrDocumentoHome) PseudoContext.lookup("AnagrDocumentoBean"); IAnagrDocumento doc_bean = null; // NB, il metodo stampa documento torna true non se ho stampato un // documento ma se ho stampato gli allegati di tale documento. // Se st trattando un documento valido... if (lCOD_DOC != null && lCOD_DOC.compareTo(new Long(0)) > 0) { // Estraggo il documento al quale sono allegati i file. doc_bean = doc_home.findByPrimaryKey(lCOD_DOC); // Se trovo il documento... if (doc_bean != null) { // Scrivo le informazioni di base del documento (Titolo e data) CenterMiddleTable tbl = new CenterMiddleTable(2); int width[] = { 70, 30 }; tbl.setWidths(width); tbl.toLeft(); tbl.addHeaderCell(ApplicationConfigurator.LanguageManager.getString("Informazioni.sul.documento"), 2); tbl.addCell(Formatter.format(doc_bean.getTIT_DOC())); tbl.addCell(Formatter.format(doc_bean.getDAT_REV_DOC())); m_document.add(tbl); boolean printedFiles = false; Stampa_documento stampa_documento = new Stampa_documento(); // Stampo l'allegato 1 (File) if (stampa_documento.StampaAllegato(lCOD_DOC, Stampa_documento.TIPO_ALLEGATO.FILE, document, writer)) { printedFiles = true; } // Stampo l'allegato 2 (File Link) if (stampa_documento.StampaAllegato(lCOD_DOC, Stampa_documento.TIPO_ALLEGATO.FILE_LINK, document, writer)) { printedFiles = true; } // Se ho stampato degli allegati, vado a pagina nuova. return printedFiles; } } return false; } private boolean BuildSchede(IAzienda bean_az, ISchedeParagrafoHome home, long lCOD_PRG, long lCOD_AZL, String strType, boolean startWithNewPage) throws Exception { String TYPE = ""; long lCOD_MAC = 0; long lCOD_UNI_ORG = 0; long lCOD_UNI_SIC = 0; long lCOD_SOS_CHI = 0; long lCOD_MAN = 0; long lCOD_LUO_FSC = 0; long lCOD_FAT_RSO = 0; java.util.Collection col = home.getReportSchedeParagrafo_GetType_View(lCOD_PRG, strType, this.lCOD_UNI_ORG); java.util.Iterator it = col.iterator(); SchedeParagrafo_GetType_View obj = null; Report report; boolean BuildSchede = false; int i = 0; while (it.hasNext()) { if (i > 0 || (i == 0 && startWithNewPage)) { writePage(); } report = null; obj = (SchedeParagrafo_GetType_View) it.next(); TYPE = obj.TPL_SCH; lCOD_MAC = obj.COD_MAC; lCOD_UNI_ORG = obj.COD_UNI_ORG; lCOD_UNI_SIC = obj.COD_UNI_SIC; lCOD_SOS_CHI = obj.COD_SOS_CHI; lCOD_MAN = obj.COD_MAN; lCOD_LUO_FSC = obj.COD_LUO_FSC; lCOD_FAT_RSO = obj.COD_FAT_RSO; if (TYPE.equals(TipoParagrafo.MACCHINA_ATTREZZATURA.getType())) { Report_REP_MAC_ATT rpt = new Report_REP_MAC_ATT(lCOD_MAC, false); report = rpt; } if (TYPE.equals(TipoParagrafo.UNITA_ORGANIZZATIVA.getType())) { Report_UNI_ORG rpt = new Report_UNI_ORG(false); rpt.lCOD_UNI_ORG = lCOD_UNI_ORG; report = rpt; } if (TYPE.equals(TipoParagrafo.UNITA_SICUREZZA.getType())) { Report_REP_ANA_UNI_SIC rpt = new Report_REP_ANA_UNI_SIC(false); rpt.lCOD_UNI_SIC = lCOD_UNI_SIC; report = rpt; } if (TYPE.equals(TipoParagrafo.SOSTANZA_CHIMICA.getType())) { Report_REP_SOS_CHI rpt = new Report_REP_SOS_CHI(lCOD_SOS_CHI, false); report = rpt; } if (TYPE.equals(TipoParagrafo.ATTIVITA_LAVORATIVA.getType())) { Report_REP_MAN rpt = new Report_REP_MAN(lCOD_MAN, lCOD_AZL, false); report = rpt; } if (TYPE.equals(TipoParagrafo.LUOGO_FISICO.getType())) { Report_REP_LUO_FSC rpt = new Report_REP_LUO_FSC(lCOD_LUO_FSC, false); report = rpt; } if (TYPE.equals(TipoParagrafo.FATTORE_DI_RISCHIO.getType())) { Report_REP_FAT_RSO rpt = new Report_REP_FAT_RSO(lCOD_FAT_RSO, false); report = rpt; } if (TYPE.equals(TipoParagrafo.ANAGRAFICA_AZIENDA.getType())) { Report rpt = ApplicationConfigurator.isModuleEnabled(MODULES.MOD_DVR_GSE) ? new Report_REP_AZL_GSE(lCOD_AZL, false) : new Report_REP_AZL(lCOD_AZL, false); report = rpt; } if (TYPE.equals(TipoParagrafo.VALUTAZIONE_RISCHIO.getType())) { Report_REP_VAL_RSO_DVR rpt = new Report_REP_VAL_RSO_DVR(lCOD_AZL); report = rpt; } if (TYPE.equals(TipoParagrafo.SCHEDA_RISCHI.getType())) { /* Questo report non pi utilizzato, valutare se eliminarlo * Report_REP_SCH_RSO_DVR rpt = new Report_REP_SCH_RSO_DVR(lCOD_AZL); */ Report_REP_SCH_RSO_NEW_DVR rpt = new Report_REP_SCH_RSO_NEW_DVR(lCOD_AZL); report = rpt; } if (report != null) { writeLine(); report.doReport(m_out, m_document); BuildSchede = true; } i = i + 1; } return BuildSchede; } }