/// <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); }
private static void DO_AddTableToReport(StampaPDF.Report objReport, ReportDisponibili tipoReport, DataTable dt, string TableName, ArrayList parametriPDF) { switch (tipoReport) { #region ReportDisponibili.Annuale_By_Amministrazione case ReportDisponibili.Annuale_By_Amministrazione: //TODO: Aggiungere Codice di gestione break; #endregion #region ReportDisponibili.Annuale_By_Registro case ReportDisponibili.Annuale_By_Registro: /* Creiamo 2 diversi DT a partire dall'unico che abbiamo * Ne recuperiamo la struttura, e ripuliamo il contenuto */ int anno = 0; foreach (Parametro p in parametriPDF) { if (p.Descrizione == "@param2") { anno = Convert.ToInt32(p.Valore); } } switch (TableName) { case "TABLE_ANNO": DataTable dtAnni = new DataTable(); foreach (DataColumn dc in dt.Columns) { DataColumn _dc = new DataColumn(dc.ColumnName, dc.DataType); DataColumn _dc1 = new DataColumn(dc.ColumnName, dc.DataType); dtAnni.Columns.Add(_dc1); } foreach (DataRow dr in dt.Rows) { if (dr["THING"].ToString() == anno.ToString()) { dtAnni.ImportRow(dr); } } objReport.appendTable("TABLE_ANNO", dtAnni, false); break; case "TABLE_MESI": DataTable dtMesi = new DataTable(); foreach (DataColumn dc in dt.Columns) { DataColumn _dc = new DataColumn(dc.ColumnName, dc.DataType); DataColumn _dc1 = new DataColumn(dc.ColumnName, dc.DataType); dtMesi.Columns.Add(_dc1); } foreach (DataRow dr in dt.Rows) { if (dr["THING"].ToString() != anno.ToString() && dr["THING"].ToString() != "Classificati*" && dr["THING"].ToString() != "Senza Img.") { dtMesi.ImportRow(dr); } } objReport.appendTable("TABLE_MESI", dtMesi, false); break; case "TABLE_CLASS": DataTable dtAnniClass = new DataTable(); foreach (DataColumn dc in dt.Columns) { DataColumn _dc = new DataColumn(dc.ColumnName, dc.DataType); DataColumn _dc1 = new DataColumn(dc.ColumnName, dc.DataType); dtAnniClass.Columns.Add(_dc1); } foreach (DataRow dr in dt.Rows) { if (dr["THING"].ToString() == "Classificati*" || dr["THING"].ToString() == "Senza Img.") { dtAnniClass.ImportRow(dr); } } objReport.appendTable("TABLE_CLASS", dtAnniClass, false); objReport.appendParagraph("PAR_NOTE", "", false); break; } break; #endregion #region ReportDisponibili.Documenti_Classificati case ReportDisponibili.Documenti_Classificati: objReport.appendTable("TABLE_ANNO", dt, false); break; #endregion #region ReportDisponibili.Documenti_Trasmessi_Altre_AOO case ReportDisponibili.Documenti_Trasmessi_Altre_AOO: #region eliminiamo le righe relative all'anno // for(int i = dt.Rows.Count-1;i>=0;i--) // { // DataRow dr = dt.Rows[i]; // if(dr["mese"].ToString().Length > 2) // { // dt.Rows.RemoveAt(i); // } // } #endregion objReport.appendTable("TABLE_ANNO", dt, false); break; #endregion #region ReportDisponibili.Fascicoli_Per_VT case ReportDisponibili.Fascicoli_Per_VT: objReport.appendTable("TABLE_ANNO", dt, false); break; #endregion #region ReportDisponibili.Annuale_By_Fascicolo case ReportDisponibili.Annuale_By_Fascicolo: objReport.appendTable("TABLE_MESE", dt, false); break; #endregion #region ReportDisponibili.TempiMediLavFascicoli case ReportDisponibili.TempiMediLavFascicoli: objReport.appendTable("TABLE_MESE", dt, false); break; #endregion #region ReportDisponibili.ReportDocXSede case ReportDisponibili.ReportDocXSede: objReport.appendTable("TABLE_ANNO", dt, false); break; #endregion #region ReportDisponibili.ReportDocXUo case ReportDisponibili.ReportDocXUo: objReport.appendTable("TABLE_ANNO", dt, false); objReport.appendParagraph("PAR_NOTE", "", false); break; #endregion } }
/// <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); }
/// <summary> /// DO_AddTableToReport: appende a ciascun report /// le tabelle di interesse /// </summary> /// <param name="objReport">oggetto Report</param> /// <param name="tipoReport">tipo Report</param> /// <param name="dt">DataTable contenente i dati della tabella</param> /// <param name="TableName">Nome della tabella nel template</param> private static void DO_AddTableToReport(StampaPDF.Report objReport, ReportDisponibili tipoReport, DataTable dt, string TableName) { switch (tipoReport) { #region ReportDisponibili.Annuale_By_Amministrazione case ReportDisponibili.Annuale_By_Amministrazione: //TODO: Aggiungere Codice di gestione break; #endregion #region ReportDisponibili.Annuale_By_Registro case ReportDisponibili.Annuale_By_Registro: /* Creiamo 2 diversi DT a partire dall'unico che abbiamo * Ne recuperiamo la struttura, e ripuliamo il contenuto */ switch (TableName) { case "TABLE_ANNO": DataTable dtAnni = new DataTable(); foreach (DataColumn dc in dt.Columns) { DataColumn _dc = new DataColumn(dc.ColumnName, dc.DataType); DataColumn _dc1 = new DataColumn(dc.ColumnName, dc.DataType); dtAnni.Columns.Add(_dc1); } foreach (DataRow dr in dt.Rows) { if (dr["ANNO"].ToString() == dr["MESE"].ToString()) { dtAnni.ImportRow(dr); } } objReport.appendTable("TABLE_ANNO", dtAnni, false); break; case "TABLE_MESI": DataTable dtMesi = new DataTable(); foreach (DataColumn dc in dt.Columns) { DataColumn _dc = new DataColumn(dc.ColumnName, dc.DataType); DataColumn _dc1 = new DataColumn(dc.ColumnName, dc.DataType); dtMesi.Columns.Add(_dc1); } foreach (DataRow dr in dt.Rows) { if (dr["ANNO"].ToString() != dr["MESE"].ToString()) { dtMesi.ImportRow(dr); } } objReport.appendTable("TABLE_MESI", dtMesi, false); break; case "TABLE_CLASS": DataTable dtAnniClass = new DataTable(); foreach (DataColumn dc in dt.Columns) { DataColumn _dc = new DataColumn(dc.ColumnName, dc.DataType); DataColumn _dc1 = new DataColumn(dc.ColumnName, dc.DataType); dtAnniClass.Columns.Add(_dc1); } foreach (DataRow dr in dt.Rows) { if (dr["ANNO"].ToString() == dr["MESE"].ToString()) { dtAnniClass.ImportRow(dr); } } objReport.appendTable("TABLE_CLASS", dtAnniClass, false); objReport.appendParagraph("PAR_NOTE", "", false); break; } break; #endregion #region ReportDisponibili.Documenti_Classificati case ReportDisponibili.Documenti_Classificati: objReport.appendTable("TABLE_ANNO", dt, false); objReport.appendParagraph("PAR_NOTE", "", false); break; #endregion #region ReportDisponibili.Documenti_Trasmessi_Altre_AOO case ReportDisponibili.Documenti_Trasmessi_Altre_AOO: #region eliminiamo le righe relative all'anno // for(int i = dt.Rows.Count-1;i>=0;i--) // { // DataRow dr = dt.Rows[i]; // if(dr["mese"].ToString().Length > 2) // { // dt.Rows.RemoveAt(i); // } // } #endregion objReport.appendTable("TABLE_ANNO", dt, false); break; #endregion #region ReportDisponibili.Fascicoli_Per_VT case ReportDisponibili.Fascicoli_Per_VT: objReport.appendTable("TABLE_ANNO", dt, false); objReport.appendParagraph("PAR_NOTE", "", false); break; #endregion #region ReportDisponibili.Annuale_By_Fascicolo case ReportDisponibili.Annuale_By_Fascicolo: objReport.appendTable("TABLE_MESE", dt, false); break; #endregion #region ReportDisponibili.TempiMediLavFascicoli case ReportDisponibili.TempiMediLavFascicoli: objReport.appendTable("TABLE_MESE", dt, false); break; #endregion #region ReportDisponibili.ReportDocXSede case ReportDisponibili.ReportDocXSede: objReport.appendTable("TABLE_ANNO", dt, false); break; #endregion #region ReportDisponibili.ReportDocXUo case ReportDisponibili.ReportDocXUo: objReport.appendTable("TABLE_ANNO", dt, false); objReport.appendParagraph("PAR_NOTE", "", false); break; #endregion #region ReportDisponibili.ReportLogMassiveImport: case ReportDisponibili.ReportLogMassiveImport: objReport.appendTable("TABLE_DATA", dt, false); break; #endregion #region ReportDisponibili.ReportContatoriDocumento case ReportDisponibili.ReportContatoriDocumento: objReport.appendTable("TABLE_ANNO", dt, false); break; #endregion #region ReportDisponibili.ReportContatoriFascicolo case ReportDisponibili.ReportContatoriFascicolo: objReport.appendTable("TABLE_ANNO", dt, false); break; #endregion #region ReportDisponibili.ReportProtocolloArma case ReportDisponibili.ReportProtocolloArma: objReport.appendTable("TABLE_ANNO", dt, false); break; #endregion #region ReportDisponibili.ReportDettaglioPratica case ReportDisponibili.ReportDettaglioPratica: objReport.appendTable("TABLE_ANNO", dt, false); break; #endregion #region ReportDisponibili.ReportGiornaleRiscontri case ReportDisponibili.ReportGiornaleRiscontri: objReport.appendTable("TABLE_ANNO", dt, false); break; #endregion #region ReportDisponibili.ReportDocSpeditiInterop case ReportDisponibili.ReportDocSpeditiInterop: objReport.appendTable("TABLE_ANNO", dt, false); break; #endregion #region ReportDisponibili.CDC_reportControlloPreventivo case ReportDisponibili.CDC_reportControlloPreventivo: objReport.appendTable("TABLE_DOCUMENTI", dt, false); break; #endregion #region ReportDisponibili.CDC_reportControlloSuccessivoSCCLA //*************************************************************** // //Modifica CDC GIORDANO IACOZZILLI 18/06/2012 // //Aggiungo il report nuovo CDC_reportControlloSuccessivoSCCLA case ReportDisponibili.CDC_reportSuccessivoSCCLA: objReport.appendTable("TABLE_DOCUMENTI", dt, false); break; //*************************************************************** //FINE //*************************************************************** #endregion #region ReportDisponibili.CDC_reportPensioniCivili case ReportDisponibili.CDC_reportPensioniCivili: objReport.appendTable("TABLE_DOCUMENTI", dt, false); break; #endregion #region ReportDisponibili.CDC_reportPensioniMilitari case ReportDisponibili.CDC_reportPensioniMilitari: objReport.appendTable("TABLE_DOCUMENTI", dt, false); break; #endregion } }