/// <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); }
/// <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); }