Ejemplo n.º 1
0
        /// <summary>Il metodo restituisce un file PDF che rappresenta il report delle trasmissioni relative alla UO specificata</summary>
        /// <param name="filtriTrasm">filtri della trasmissione</param>
        /// <param name="UO">UO che ha ricevuto o trasmesso</param>
        /// <returns>FileDocumento</returns>
        public static int reportTrasmUO(DocsPaVO.filtri.FiltroRicerca[] filtriTrasm, out DocsPaVO.documento.FileDocumento fileDoc, string UO)
        {
            int result = 0;

            fileDoc = null;
            FileStream fs          = null;
            bool       newPage     = false;
            string     tipoOggetto = "D";

            StampaPDF.Report report = null;
            string           templateXML;
            string           paramDate;

            try
            {
                string pathReport = getPath();
                //costruisce il dataTable con le informazioni per il report
                DataTable dt_Eff;
                DataTable dt_Ric;
                //effettuate
                BusinessLogic.Trasmissioni.QueryTrasmManager.getTrasmissioniUO(out dt_Eff, filtriTrasm, "E");
                //ricevute
                BusinessLogic.Trasmissioni.QueryTrasmManager.getTrasmissioniUO(out dt_Ric, filtriTrasm, "R");

                if ((dt_Eff == null || dt_Eff.Rows.Count < 1) && (dt_Ric == null || dt_Ric.Rows.Count < 1))
                {
                    return(0);
                }
                //crea il report, inserendo i valori parametrici e riempiendo la tabella
                paramDate = setParam(filtriTrasm, ref tipoOggetto);

                templateXML = pathReport;
                if (tipoOggetto.Equals("D"))
                {
                    templateXML += "XMLRepTrasmUO_DOC.xml";
                }
                else
                {
                    templateXML += "XMLRepTrasmUO_FASC.xml";
                }
                fs     = new FileStream(templateXML, System.IO.FileMode.Open, System.IO.FileAccess.Read);
                report = new StampaPDF.Report(fs, pathReport);

                #region  Sostituzione valori parametrici in base al tipo di oggetto
                Hashtable ht = new Hashtable();
                ht["@param1"] = UO;
                ht["@param2"] = paramDate;

                report.replace(null, ht);
                #endregion

                report.printData(null);
                if (dt_Eff != null && dt_Eff.Rows.Count > 0)
                {
                    report.appendParagraph("E_P", "", false);                   //intestazione trasm Effettuate
                    report.appendTable("E_T", dt_Eff, false);                   //tabella trasm Effettuate
                    newPage = true;
                }
                if (dt_Ric != null && dt_Ric.Rows.Count > 0)
                {
                    report.appendParagraph("R_P", "", newPage);                 //intestazione trasm Ricevute
                    report.appendTable("R_T", dt_Ric, false);                   //tabella trasm Ricevute
                }
                fs.Close();
                MemoryStream ms = report.close();
                ms.Flush();

                fileDoc             = new DocsPaVO.documento.FileDocumento();
                fileDoc.content     = ms.GetBuffer();
                fileDoc.length      = fileDoc.content.Length;
                fileDoc.contentType = "application/pdf";
                fileDoc.name        = "";
            }
            catch (StampaPDF.ReportException re)
            {
                logger.Debug("Errore nella creazione del Report (stampaPDF)", re);
                if (fs != null)
                {
                    fs.Close();
                }
                if (report != null)
                {
                    report.close();
                }
                result = (int)re.code;
            }
            catch (Exception e)
            {
                logger.Debug("Errore nella gestione di Report (stampa)", e);
                if (fs != null)
                {
                    fs.Close();
                }
                if (report != null)
                {
                    report.close();
                }
                result = -1;
            }
            return(result);
        }
Ejemplo n.º 2
0
        /// <summary>Il metodo restituisce un file PDF che rappresenta il report delle trasmissioni relative all'oggetto specificato (documento o fascicolo)</summary>
        /// <param name="obj">oggetto della trasmissione</param>
        /// <returns>FileDocumento</returns>
        public static int reportTrasmDocFasc(DocsPaVO.trasmissione.OggettoTrasm obj, out DocsPaVO.documento.FileDocumento fileDoc)
        {
            int result = 0;

            fileDoc = null;
            FileStream fs = null;

            StampaPDF.Report report = null;
            try
            {
                string pathReport  = getPath();
                string templateXML = pathReport + "XMLRepTrasmDocFasc.xml";
                //costruisce il dataTable con le informazioni per il report
                DataTable dt_U;
                DataTable dt_R;
                bool      newPage = false;
                //trasmissioni a ruoli
                BusinessLogic.Trasmissioni.QueryTrasmManager.getTrasmissioniDocFasc(out dt_R, obj, "R");
                //trasmissioni a utenti
                BusinessLogic.Trasmissioni.QueryTrasmManager.getTrasmissioniDocFasc(out dt_U, obj, "U");

                if ((dt_R == null || dt_R.Rows.Count < 1) && (dt_U == null || dt_U.Rows.Count < 1))
                {
                    return(0);
                }

                //crea il report, inserendo i valori parametrici e riempiendo la tabella
                fs = new FileStream(templateXML, System.IO.FileMode.Open, System.IO.FileAccess.Read);

                report = new StampaPDF.Report(fs, pathReport);

                #region  Sostituzione valori parametrici in base al tipo di oggetto
                Hashtable ht = new Hashtable();
                string    idOggetto;
                string    descOggetto;
                if (obj.infoDocumento != null)
                {
                    if (obj.infoDocumento.segnatura != null && !obj.infoDocumento.segnatura.Equals(""))
                    {
                        idOggetto = "DOCUMENTO: " + obj.infoDocumento.segnatura;
                    }
                    else
                    {
                        idOggetto = "DOCUMENTO: " + obj.infoDocumento.docNumber;
                    }
                    descOggetto = "OGGETTO: " + obj.infoDocumento.oggetto;
                }
                else
                {
                    idOggetto   = "FASCICOLO: " + obj.infoFascicolo.codice;
                    descOggetto = "DESCRIZIONE: " + obj.infoFascicolo.descrizione;
                }
                ht["@param1"] = idOggetto;
                ht["@param2"] = descOggetto;
                report.replace(null, ht);
                #endregion

                report.printData(null);

                //
                //  dt_R.Rows[0][3].ToString()==obj.infoDocumento.
                //
                if (dt_R != null && dt_R.Rows.Count > 0)
                {
                    report.appendParagraph("R_P", "", false);                 //intestazione trasm a Ruoli
                    report.appendTable("R_T", dt_R, false);                   //tabella trasm a Ruoli
                    newPage = true;
                }
                if (dt_U != null && dt_U.Rows.Count > 0)
                {
                    report.appendParagraph("U_P", "", newPage);               //intestazione trasm a Utenti
                    report.appendTable("U_T", dt_U, false);                   //tabella trasm a Utenti
                }
                MemoryStream ms = report.close();
                ms.Flush();
                fs.Close();

                fileDoc             = new DocsPaVO.documento.FileDocumento();
                fileDoc.content     = ms.GetBuffer();
                fileDoc.length      = fileDoc.content.Length;
                fileDoc.contentType = "application/pdf";
                fileDoc.name        = "";
            }
            catch (StampaPDF.ReportException re)
            {
                logger.Debug("Errore nella creazione del Report (stampaPDF)", re);
                if (fs != null)
                {
                    fs.Close();
                }
                if (report != null)
                {
                    report.close();
                }
                result = (int)re.code;
            }
            catch (Exception e)
            {
                logger.Debug("Errore nella gestione di Report (stampa)", e);
                if (fs != null)
                {
                    fs.Close();
                }
                if (report != null)
                {
                    report.close();
                }
                result = -1;
            }

            return(result);
        }
Ejemplo n.º 3
0
        public static SAAdminTool.DocsPaWR.FileDocumento do_MakePdfReport(ReportDisponibili tipoReport, string templateFilePath, string titolo, DataSet ds, ArrayList parametriPDF)
        {
            //inizializzazione dei parametri di input
            //templateFilePath = templateFilePath + "XMLProspettoRiepilogativo.xml";
            StampaPDF.Report stampaReport;
            string           RootPathTemplate = AppDomain.CurrentDomain.BaseDirectory + "ProspettiRiepilogativi/Frontend/TemplateXML/";
            string           schemaFilePath   = RootPathTemplate + "XMLReport.xsd";
            string           outputFilename   = DateTime.Now.ToLongDateString() + ".pdf";


            DataTable dt = new DataTable();

            Byte[] dati;

            //variabili ausiliarie
            FileStream   fs        = null;
            MemoryStream memStream = null;

            //inizializzazione parametro di output (caso integrazione Docspa)
            SAAdminTool.DocsPaWR.FileDocumento doc = new SAAdminTool.DocsPaWR.FileDocumento();
            doc.name        = outputFilename;
            doc.path        = "";
            doc.fullName    = "StampaReport_" + DateTime.Now.ToString();
            doc.contentType = "application/pdf";
            try
            {
                try
                {
                    //lettura template XML
                    fs = new FileStream(templateFilePath, FileMode.Open, FileAccess.Read);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                try
                {
                    //inizializzazione oggetto StampaPDF
                    stampaReport = new StampaPDF.Report(fs, schemaFilePath, titolo);
                }
                catch (Exception ex)
                {
                    throw ex;
                }

                try
                {
                    //Agginta dei Paragrafi e della tabella
                    //DataTable da inserire nel Report
                    dt = ds.Tables[0];
                    //Non funziona se i template sono contenuti in IIS
                    //DO_AppendTextInHeader(templateFilePath,"aaa","PIPPO");
                    DO_AppendObject(stampaReport, tipoReport, parametriPDF, dt);
                }
                catch (Exception ex)
                {
                    throw ex;
                }

                try
                {
                    //Chiusura template xml
                    fs.Close();

                    //recupero dati per memory stream
                    memStream = stampaReport.getStream();

                    //chiusura stream stampa
                    stampaReport.close();
                }
                catch (Exception ex)
                {
                    throw ex;
                }

                try
                {
                    //vettore di byte
                    dati = memStream.GetBuffer();

                    #region Salviamo su FileSystem
                    //Salviamo su FileSystem
                    //I file si trovano al percorso: RootPathTemplate + nome file
                    #region Determinazione del FileName
                    //string fileName = "";
                    //					switch(tipoReport)
                    //					{
                    //						case ReportDisponibili.Annuale_By_Registro:
                    //							fileName = RootPathTemplate +"\\"+"PDF\\annualeByReg.pdf";
                    //							break;
                    //						case ReportDisponibili.Annuale_By_Fascicolo:
                    //							fileName = RootPathTemplate +"\\"+"PDF\\annualeByFasc.pdf";
                    //							break;
                    //						case ReportDisponibili.Documenti_Classificati:
                    //							fileName = RootPathTemplate +"\\"+"PDF\\docClass.pdf";
                    //							break;
                    //						case ReportDisponibili.Documenti_Trasmessi_Altre_AOO:
                    //							fileName = RootPathTemplate +"\\"+"PDF\\docTrasmToAOO.pdf";
                    //							break;
                    //						case ReportDisponibili.Fascicoli_Per_VT:
                    //							fileName = RootPathTemplate +"\\"+"PDF\\fascPerVT.pdf";
                    //							break;
                    //						case ReportDisponibili.TempiMediLavFascicoli:
                    //							fileName = RootPathTemplate +"\\"+"PDF\\TempiMediLavFasc.pdf";
                    //							break;
                    //					}
                    //					#endregion
                    //
                    //					if(fileName != "")
                    //					{
                    //						Stream outputStream = new FileStream(fileName,FileMode.Create,FileAccess.Write);
                    //						outputStream.Write(dati,0,dati.Length);
                    //
                    //						outputStream.Flush();
                    //						outputStream.Close();
                    //						outputStream = null;
                    //					}
                    #endregion
                    #endregion

                    //chiudo mem stream
                    memStream.Close();

                    //aggiorno informazioni del doc : utilizzo un tipo infodocumento come output
                    doc.length  = (int)dati.Length;
                    doc.content = dati;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                //rilascio oggetti utilizzati
                if (fs != null)
                {
                    fs.Close();
                }
                if (memStream != null)
                {
                    memStream.Close();
                }
                //ritorno oggetto doc (caso integrazione Docspa)
            }
            return(doc);
        }