protected override PrintReportResponse GenerateReport(PrintReportRequest request, IReportDataExtractionBehavior dataExtractor, IReportGeneratorBehavior reportGeneration) { PrintReportResponse response = null; try { response = new PrintReportResponse(); DataSet dataSet = new DataSet(); List <DocsPaVO.Report.Report> report = new List <DocsPaVO.Report.Report>(); dataSet = dataExtractor.ExtractData(request); report.AddRange(this.CreateReport(dataSet, request)); response.Document = reportGeneration.GenerateReport(request, report); } catch (Exception ex) { logger.Debug("Errore nella generazione del report - ", ex); throw new ReportGenerationFailedException(ex.Message); } return(response); }
protected override PrintReportResponse GenerateReport(PrintReportRequest request, IReportDataExtractionBehavior dataExtractor, IReportGeneratorBehavior reportGeneration) { PrintReportResponse response = null; try { //personalizzo il report request.Title = String.Format("{0} - Log Conservazione", Amministrazione.AmministraManager.AmmGetInfoAmmCorrente(request.UserInfo.idAmministrazione).Descrizione); request.SubTitle = string.Format("Data generazione report: {0}", DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss")); request.AdditionalInformation = this.ReportSummary(request.SearchFilters); //istanzio la response da restituire response = new PrintReportResponse(); // Recupero dati DataSet dataSet = dataExtractor.ExtractData(request); // Generazione dati per il report List <DocsPaVO.Report.Report> report = this.CreateReport(dataSet, request); // Generazione file report response.Document = reportGeneration.GenerateReport(request, report); } catch (Exception ex) { throw new ReportGenerationFailedException(ex.Message); } // Restituzione del report return(response); }
private void PrintReportOperator() { string generateReportApiUrl = Properties.Resources.GenerateReportAPIURL; PrintReportRequest printReportRequest = new PrintReportRequest(Properties.Settings.Default.Username); var sentParam = JsonConvert.SerializeObject(printReportRequest); DataResponseObject response = (DataResponseObject)restApi.post(ip_address_server, generateReportApiUrl, true, sentParam); if (response != null) { switch (response.Status) { case 206: notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Success", Constant.PRINT_REPORT_OPERATOR_SUCCESS, ToolTipIcon.Info); break; case 208: notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Success", response.Message, ToolTipIcon.Warning); break; default: notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Success", response.Message, ToolTipIcon.Error); break; } } else { notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Error", Constant.ERROR_MESSAGE_INVALID_RESPONSE_FROM_SERVER, ToolTipIcon.Error); } }
protected override PrintReportResponse GenerateReport(PrintReportRequest request) { IReportGeneratorBehavior formatGenerator = base.CreateReportGenerator(request); IReportDataExtractionBehavior reportDataExtractor = new DatasetReportDataExtractionBehavior(); return(base.GenerateReport(request, reportDataExtractor, formatGenerator)); }
/// <summary> /// Funzione per la generazione di un report /// </summary> /// <param name="dataExtractor">Estrattore dei dati</param> /// <param name="request">Informazioni sul report da generare</param> /// <param name="contextName">Nome del contesto di estrazione</param> /// <param name="reportSubtitle">Sotto titolo da assegnare al report</param> /// <returns>Report da esportare</returns> private List <DocsPaVO.Report.Report> GetReport( IReportDataExtractionBehavior dataExtractor, PrintReportRequest request, String contextName, String reportSubtitle) { // Impostazione di titolo e sottotitolo del report request.SubTitle = reportSubtitle; // Estrazione dati DataSet dataSet = this.GetReportData(dataExtractor, request, contextName); String title = request.Title; if (dataSet.Tables.Count > 0 && dataSet.Tables[0].Rows.Count > 0) { title += BusinessLogic.ProfilazioneDinamica.ProfilazioneDocumenti.GetTipologyDescriptionByDocNumber(dataSet.Tables[0].Rows[0]["DocNumber"].ToString()); title += String.Format(" - Stampa generata {0}", DateTime.Now.ToString("dddd dd MMMM yyyy")); } request.Title = title; // Generazione del report List <DocsPaVO.Report.Report> report = base.CreateReport(dataSet, request); // Restituzione del report creato return(report); }
/// <summary> /// Restituisce la lista degli id dei documenti appartenenti ad un'istanza. /// </summary> /// <param name="request"></param> /// <returns></returns> public List <string> GetListaDocumentiIstanze(PrintReportRequest request) { List <string> retList = new List <string>(); string idAmm = request.SearchFilters.Where(f => f.argomento == "id_amm").FirstOrDefault().valore; string nextSysId = request.SearchFilters.Where(f => f.argomento == "next_system_id").FirstOrDefault().valore; string lastSysId = request.SearchFilters.Where(f => f.argomento == "last_system_id").FirstOrDefault().valore; string idIst = request.SearchFilters.Where(f => f.argomento == "id_istanza").FirstOrDefault().valore; using (DBProvider dbProvider = new DBProvider()) { Query query = InitQuery.getInstance().getQuery("S_REG_CONS_GET_LIST_DOC_ISTANZE"); query.setParam("id_amm", idAmm); query.setParam("next_system_id", nextSysId); query.setParam("last_system_id", lastSysId); query.setParam("id_istanza", idIst); using (IDataReader dataReader = dbProvider.ExecuteReader(query.getSQL())) { while (dataReader.Read()) { retList.Add(dataReader["ID_OGGETTO"].ToString()); } } } return(retList); }
/// <summary> /// /// </summary> /// <param name="request"></param> /// <returns></returns> private String GetTitle(PrintReportRequest request) { String title = String.Empty; // Creazione del titolo del report String ammDescr = Amministrazione.AmministraManager.AmmGetInfoAmmCorrente(request.UserInfo.idAmministrazione).Descrizione; String rfDesc = String.Empty; // Recupero dell'id dell'RF String idRf = request.SearchFilters.Where(f => f.argomento == "idRf").FirstOrDefault().valore; if (!String.IsNullOrEmpty(idRf)) { Registro rf = Utenti.RegistriManager.getRegistro(idRf); rfDesc = String.Format("[{0}] {1}", rf.codRegistro, rf.descrizione); } title = String.Format("{0}\n{1}\n", ammDescr, String.IsNullOrEmpty(rfDesc) ? request.AdditionalInformation : rfDesc); if (!String.IsNullOrEmpty(rfDesc)) { title += request.AdditionalInformation + "\n"; } request.AdditionalInformation = String.Empty; return(title); }
/// <summary> /// Metodo per la generazione del report /// </summary> /// <param name="request">Informazioni utili alla creazione del report</param> /// <param name="dataExtractor">Oggetto responsabile dell'estrazione dati</param> /// <param name="reportGeneration">Oggetto responsabile della generazione del report fisico</param> /// <returns>Risultato del processo di creazione report</returns> /// <exception cref="ReportGenerationFailedException" /> protected virtual PrintReportResponse GenerateReport(PrintReportRequest request, IReportDataExtractionBehavior dataExtractor, IReportGeneratorBehavior reportGeneration) { PrintReportResponse response = null; try { // Response da restituire response = new PrintReportResponse(); // Recupero dati DataSet dataSet = dataExtractor.ExtractData(request); // Generazione dati per il report List <DocsPaVO.Report.Report> report = this.CreateReport(dataSet, request); // Generazione file report response.Document = reportGeneration.GenerateReport(request, report); } catch (Exception ex) { throw new ReportGenerationFailedException(ex.Message); } // Restituzione del report return(response); }
/// <summary> /// Metodo per il reperimento di un report a partire dalla request /// </summary> /// <param name="rquest">Request con le informazioni sul report da generare</param> /// <returns>Response generata dal command di reporting</returns> public static PrintReportResponse GetReport(PrintReportRequest request) { PrintReportResponse response = null; // Recupero di tutti i tipi che hanno almeno un attributo ReportGeneratorAttribute Type myType = typeof(ReportGeneratorCommand); Type[] types = Assembly.GetExecutingAssembly().GetTypes().Where(t => String.Equals(t.Namespace, myType.Namespace, StringComparison.Ordinal) && t.GetCustomAttributes(typeof(ReportGeneratorAttribute), true).Length > 0).ToArray(); // Individuazione di un tipo (se esiste), che abbia l'attributo ReportGeneratorAttribute con l'attributo Key uguale a quello // contenuto nella request foreach (Type t in types) { // Individuazione della prima classe che ha l'attributo ReportGeneratorAttribute valorizzato con key report // uguale a quello contenuto nella request e context name anch'esso pari a quello della request ReportGeneratorAttribute reportType = ((ReportGeneratorAttribute[])t.GetCustomAttributes(typeof(ReportGeneratorAttribute), true)).Where( e => e.Key == request.ReportKey && e.ContextName == request.ContextName).FirstOrDefault(); if (reportType != null) { // Se il tipo è stato individuato, viene istanziata la classe e si genera il report response = ((ReportGeneratorCommand)Activator.CreateInstance(t)).GenerateReport(request); break; } } // Restituzione della response return(response); }
/// <summary> /// Generazione del report con la lista dei ruoli disabilitati o inibiti. Il report prodotto sarà un worksheet Excel /// costituito da 2 fogli con i seguenti sotto report: /// <ol> /// <li>Ruoli Disabilitati (codice, descrizione, UO)</li> /// <li>Ruoli inibiti alla ricezione di trasmissioni (codice, descrizione , UO)</li> /// </ol> /// </summary> /// <param name="request">Informazioni sul report da generare</param> /// <param name="dataExtractor">Estrattore dei dati</param> /// <param name="reportGeneration">Behavior costruttore del report</param> /// <returns>Report prodotto</returns> protected override PrintReportResponse GenerateReport(PrintReportRequest request, IReportDataExtractionBehavior dataExtractor, IReportGeneratorBehavior reportGeneration) { PrintReportResponse response = null; try { // Lista dei report da esportare List <DocsPaVO.Report.Report> reports = new List <DocsPaVO.Report.Report>(); // Response da restituire response = new PrintReportResponse(); // Generazione del report relativo ai ruoli disabilitati reports.AddRange(this.GetReport(dataExtractor, request, "DisabledRoles", String.Format("{0}\n{1}", request.Title, "Ruoli disabilitati"), "Foglio 1 di 2")); // Generazione del report relativo ai ruoli inibiti alla ricezione di trasmissioni reports.AddRange(this.GetReport(dataExtractor, request, "InhibitedRoles", "Ruoli inibiti alla ricezione trasmissioni", "Foglio 2 di 2")); // Generazione file report response.Document = reportGeneration.GenerateReport(request, reports); } catch (Exception ex) { throw new ReportGenerationFailedException(ex.Message); } // Restituzione del report return(response); }
protected override PrintReportResponse GenerateReport(PrintReportRequest request, IReportDataExtractionBehavior dataExtractor, IReportGeneratorBehavior reportGeneration) { PrintReportResponse response = null; try { response = new PrintReportResponse(); DataSet dataSet = new DataSet(); List <DocsPaVO.Report.Report> report = new List <DocsPaVO.Report.Report>(); // i due fogli del report sono stati uniti in un singolo report dataSet = dataExtractor.ExtractData(request); report.AddRange(this.CreateReport(dataSet, request)); response.Document = reportGeneration.GenerateReport(request, report); if (response.Document != null) { response.Document.name = String.Format("Report_Funzioni_{0}.xls", DateTime.Now.ToString("dd-MM-yyyy")); response.Document.fullName = response.Document.name; } } catch (Exception ex) { throw new ReportGenerationFailedException(ex.Message); } return(response); }
/// <summary> /// Funzione per l'estrazione dei dati relativi ad un determinato contesto /// </summary> /// <param name="dataExtractor">Estrattore dei dati</param> /// <param name="request">Informazioni sul report da generare</param> /// <param name="contextName">Nome del contesto</param> /// <returns>DataSet con i dati da esportare</returns> private DataSet GetReportData(IReportDataExtractionBehavior dataExtractor, PrintReportRequest request, String contextName) { // Impostazione del contesto request.ReportKey = contextName; // Generazione del report return(dataExtractor.ExtractData(request)); }
/// <summary> /// Metodo da richiamare per la generazione di un report. Il comportamento strandard prevede /// l'utilizzo di un behavior per l'estrazione dati basato su query list. Sovrascrivere questo /// metodo per ottenere un comportamento differente. /// </summary> /// <param name="request">Informazioni utili alla generazione del report</param> /// <returns>Outup del processo di generazione</returns> protected virtual PrintReportResponse GenerateReport(PrintReportRequest request) { IReportDataExtractionBehavior reportDataExtractor = new QueryListReportDataExtractionBehavior(); IReportGeneratorBehavior formatGenerator = this.CreateReportGenerator(request); // Generazione del report return(this.GenerateReport(request, reportDataExtractor, formatGenerator)); }
/// <summary> /// Metodo per la generazione del report /// </summary> /// <param name="request"></param> /// <param name="dataExtractor"></param> /// <param name="reportGeneration"></param> /// <returns></returns> protected override PrintReportResponse GenerateReport(PrintReportRequest request, IReportDataExtractionBehavior dataExtractor, IReportGeneratorBehavior reportGeneration) { PrintReportResponse response = null; try { // Lista dei report da esportare List <DocsPaVO.Report.Report> reports = new List <DocsPaVO.Report.Report>(); // Response da restituire response = new PrintReportResponse(); // Dataset per l'estrazione DataSet dataSet = new DataSet(); // Foglio per Accesso documentale request.SearchFilters.Where(f => f.argomento == "tipologia").FirstOrDefault().valore = "Accesso Documentale"; dataSet = dataExtractor.ExtractData(request); reports.AddRange(this.CreateReport(dataSet, request)); // Foglio per Accesso generalizzato e civico request.SearchFilters.Where(f => f.argomento == "tipologia").FirstOrDefault().valore = "Accesso Generalizzato e Civico"; dataSet = dataExtractor.ExtractData(request); reports.AddRange(this.CreateReport(dataSet, request)); // Foglio per Accesso dei consiglieri provinciali request.SearchFilters.Where(f => f.argomento == "tipologia").FirstOrDefault().valore = "Accesso dei Consiglieri provinciali"; dataSet = dataExtractor.ExtractData(request); reports.AddRange(this.CreateReport(dataSet, request)); // Generazione file report response.Document = reportGeneration.GenerateReport(request, reports); // Formato file string ext = string.Empty; if (request.ReportType == ReportTypeEnum.ODS) { ext = "ods"; } else { ext = "xls"; } if (response.Document != null) { response.Document.name = String.Format("Estrazione_Registro_Accessi_{0}.{1}", DateTime.Now.ToString("dd-MM-yyyy"), ext); response.Document.fullName = response.Document.name; } } catch (Exception ex) { throw new ReportGenerationFailedException(ex.Message); } return(response); }
protected override PrintReportResponse GenerateReport(PrintReportRequest request, IReportDataExtractionBehavior dataExtractor, IReportGeneratorBehavior reportGeneration) { PrintReportResponse response = null; try { response = new PrintReportResponse(); DataSet dataSet = new DataSet(); List <DocsPaVO.Report.Report> report = new List <DocsPaVO.Report.Report>(); if (request.ContextName.Equals("ExportTrasmissioniPendenti")) { request.ReportKey = "ExportTrasmissioniPendentiDoc"; dataSet = dataExtractor.ExtractData(request); report.AddRange(this.CreateReport(dataSet, request)); request.ReportKey = "ExportTrasmissioniPendentiFasc"; dataSet = dataExtractor.ExtractData(request); report.AddRange(this.CreateReport(dataSet, request)); response.Document = reportGeneration.GenerateReport(request, report); if (response.Document != null) { string ext = string.Empty; switch (request.ReportType) { case ReportTypeEnum.PDF: ext = "pdf"; break; case ReportTypeEnum.Excel: ext = "xls"; break; case ReportTypeEnum.ODS: ext = "ods"; break; } response.Document.name = String.Format("Report_Trasmissioni_Pendenti{0}." + ext, DateTime.Now.ToString("dd-MM-yyyy")); response.Document.fullName = response.Document.name; } } } catch (Exception ex) { logger.Debug("Errore nella generazione del report - ", ex); throw new ReportGenerationFailedException(ex.Message); } return(response); }
/// <summary> /// Discrimina il comportamento del generatore di report in base alla tipologia /// in ingresso (istanze/documenti). /// </summary> /// <param name="dataExtractor"></param> /// <param name="request"></param> /// <param name="contextName">Identifica istanze/documenti</param> /// <returns>Report relativo alla singola istanza/documento</returns> private List <DocsPaVO.Report.Report> GetReport (IReportDataExtractionBehavior dataExtractor, PrintReportRequest request, string contextName) { //imposto il context al valore attuale ed estraggo i dati request.ReportKey = contextName; DataSet dataset = dataExtractor.ExtractData(request); //genero il report List <DocsPaVO.Report.Report> report = this.CreateReport(dataset, request); return(report); }
protected void btn_conferma_Click(object sender, EventArgs e) { DocsPaWR.CopyVisibility copyVisibility = getCopyVisibility(); if (string.IsNullOrEmpty(copyVisibility.codRuoloDestinazione)) { ClientScript.RegisterStartupScript(this.GetType(), "emptySearch_3", "alert('Selezionare un ruolo di destinazione !');", true); } else { AmmUtils.WebServiceLink wsLink = new AmmUtils.WebServiceLink(); DocsPAWA.AdminTool.Manager.SessionManager session = new DocsPAWA.AdminTool.Manager.SessionManager(); InfoUtenteAmministratore iuA = session.getUserAmmSession(); InfoUtente ut = new InfoUtente(); ut.idPeople = iuA.idPeople; ut.idGruppo = (iuA.idGruppo == null ? "0" : iuA.idGruppo); ut.idCorrGlobali = (iuA.idCorrGlobali == null ? "0" : iuA.idCorrGlobali); ut.idAmministrazione = iuA.idAmministrazione; ut.sede = iuA.sede; ut.userId = iuA.userId; DocsPaWR.EsitoOperazione esitoOperazione = wsLink.CopyVisibility(ut, copyVisibility); // ABBATANGELI GIANLUIGI if (esitoOperazione.Codice == 0) { //ABBATANGELI GIANLUIGI PrintReportRequest request = new PrintReportRequest { ContextName = "CopiaVisibilita", SearchFilters = null, UserInfo = ut, Title = "Report copia visibilità" }; ReportingUtils.PrintRequest = request; if (esitoOperazione.Descrizione.Contains('*')) { esitoOperazione.Descrizione = esitoOperazione.Descrizione.Split('*')[0]; } ClientScript.RegisterStartupScript(this.GetType(), "esitoOperazione", "if (confirm('" + esitoOperazione.Descrizione + "\\n\\rEsportare il risultato?')) {" + ReportScript + "}", true); } else { ClientScript.RegisterStartupScript(this.GetType(), "esitoOperazione", "alert('" + esitoOperazione.Descrizione + "');", true); } } }
/// <summary> /// Metodo per l'estrazione dati da query list /// </summary> /// <param name="request">Informazioni sull'operazione da compiere</param> /// <returns>DataSet con i dati estratti</returns> public DataSet ExtractData(PrintReportRequest request) { MethodInfo reportMethod = DocsPaDB.Query_DocsPAWS.Reporting.ReportMethodFinder.FindMethod(request.ReportKey); if (reportMethod == null) { throw new DataExtractorNotFoundException(); } object instance = Activator.CreateInstance(reportMethod.DeclaringType); // Invocazione nome per reflection e recupero del dataset con il risultato return(reportMethod.Invoke(instance, new object[] { request.UserInfo, request.SearchFilters }) as DataSet); }
protected override PrintReportResponse GenerateReport(PrintReportRequest request, IReportDataExtractionBehavior dataExtractor, IReportGeneratorBehavior reportGeneration) { PrintReportResponse response = null; try { //Personalizzazione report //le informazioni necessarie sono inserite nella request: string nomePolicy = request.SubTitle; string noteRifiuto = request.AdditionalInformation; string idIstanza = request.SearchFilters.Where(f => f.argomento == "idIstanza").FirstOrDefault().valore; request.Title = string.Format("{0} - Notifica di rifiuto istanza", Amministrazione.AmministraManager.AmmGetInfoAmmCorrente(request.UserInfo.idAmministrazione).Descrizione); request.SubTitle = string.Format("Stampa del {0}", DateTime.Now.ToShortDateString()); request.AdditionalInformation = "Numero istanza: " + idIstanza + "\n"; if (!(string.IsNullOrEmpty(noteRifiuto))) { request.AdditionalInformation += "Note rifiuto: " + noteRifiuto + "\n"; } if (!(string.IsNullOrEmpty(nomePolicy))) { request.AdditionalInformation += "Policy utilizzata: " + nomePolicy + "\n"; } //istanzio la response response = new PrintReportResponse(); //Recupero dataset //DataSet dataSet = dataExtractor.ExtractData(request); //Generazione dati per report List <DocsPaVO.Report.Report> report = new List <DocsPaVO.Report.Report>(); //1 - report principale con esito verifiche report.AddRange(this.GetReport(dataExtractor, request, "NotificheRifiutoVerifiche")); //2 - report aggiuntivo con dettaglio policy report.AddRange(this.GetReport(dataExtractor, request, "NotificheRifiutoPolicy")); //Creazione file report response.Document = reportGeneration.GenerateReport(request, report); } catch (Exception e) { throw new ReportGenerationFailedException(e.Message); } //restituzione del report return(response); }
/// <summary> /// Funzione per la generazione di un report /// </summary> /// <param name="request">Informazioni sul report da generare</param> /// <returns>Report prodotto</returns> public static FileDocumento GenerateReport(PrintReportRequest request) { PrintReportResponse response = null; try { response = docsPaWS.GenerateReport(request); } catch (Exception e) { NttDataWA.Utils.SoapExceptionParser.ThrowOriginalException(e); } return(response.Document); }
/// <summary> /// Metodo per la generazione di titolo e sottotitolo del report /// </summary> /// <param name="request"></param> /// <returns></returns> private void SetTitle(PrintReportRequest request) { string title = string.Empty; string subTitle = string.Empty; string ammDescr = Amministrazione.AmministraManager.AmmGetInfoAmmCorrente(request.UserInfo.idAmministrazione).Descrizione; title = string.Format("{0} - Registro della Conservazione", ammDescr); subTitle = request.AdditionalInformation; //imposto titolo e sottotitolo nella request e svuoto il campo additional information request.Title = title; request.SubTitle = subTitle; request.AdditionalInformation = string.Empty; }
/// <summary> /// Funzione per la generazione di un report /// </summary> /// <param name="request">Informazioni sul report da generare</param> /// <returns>Report prodotto</returns> public static FileDocumento GenerateReport(PrintReportRequest request) { PrintReportResponse response = null; try { response = docsPaWS.GenerateReport(request); } catch (System.Exception ex) { UIManager.AdministrationManager.DiagnosticError(ex); return(null); } return(response.Document); }
/// <summary> /// Costruisce il summary relativo all'istanza o documento in oggetto /// </summary> /// </summary> /// <param name="request"></param> /// <param name="context">distingue tra summary istanza/documento</param> /// <param name="idIstanza">id istanza attuale</param> /// <param name="idDoc">id documento (se richiesto)</param> /// <returns></returns> private string GetSummary(PrintReportRequest request, string context, string idIstanza, string idDoc) { string summary = string.Empty; RegistroConservazionePrintManager manager = new RegistroConservazionePrintManager(); //costruzione del summary nei due casi if (context == "istanza") { RegistroConservazioneSummary summaryData = manager.GetSummaryDataIst(idIstanza); string creationDate = summaryData.creationDate.Equals(DateTime.MinValue) ? string.Empty : summaryData.creationDate.ToString("dd/MM/yyyy"); string invioDate = summaryData.invioDate.Equals(DateTime.MinValue) ? string.Empty : summaryData.invioDate.ToString("dd/MM/yyyy"); summary = "ISTANZA - ID istanza: " + idIstanza + "\n\n"; summary += "Descrizione istanza: " + summaryData.descrizione + "\n"; summary += "Data di apertura: " + creationDate + "\n"; summary += "Data di invio al CS: " + invioDate + "\n"; summary += "Numero documenti: " + summaryData.numDoc + "\n"; summary += "Dimensioni complessive: " + manager.ConvertDocSize(summaryData.fileDim) + "\n"; logger.Debug(summary); } else if (context == "documento") { RegistroConservazioneSummary summaryData = manager.GetSummaryDataDoc(idDoc); string segnatura = new DocsPaDB.Query_DocsPAWS.Conservazione().getSegnatura_Id(idDoc); string creationDate = summaryData.creationDate.Equals(DateTime.MinValue) ? string.Empty : summaryData.creationDate.ToString("dd/MM/yyyy"); summary = "DOCUMENTO - ID/Segnatura documento: " + segnatura + "\n\n"; summary += "ID istanza: " + idIstanza + "\n"; summary += "Data creazione/protocollazione: " + creationDate + "\n"; summary += "Oggetto: " + summaryData.descrizione + "\n"; summary += "Codice fascicolo: " + summaryData.codiceFascicolo + "\n"; summary += "N. allegati: " + summaryData.numDoc + "\n"; summary += "Tipo file: " + summaryData.tipoFile + "\n"; summary += "Dimensioni file: " + manager.ConvertDocSize(summaryData.fileDim) + "\n"; logger.Debug(summary); } return(summary); }
/// <summary> /// Metodo per l'instanziazione del report generator relativo al formato di esportazione /// scelto. /// </summary> /// <param name="request">Informazioni utilili alla generazione del report</param> /// <returns>Instanza dell'oggetto responsabile della generazione fisica del report</returns> /// <exception cref="ReportGeneratorNotFoundException"></exception> protected virtual IReportGeneratorBehavior CreateReportGenerator(PrintReportRequest request) { switch (request.ReportType) { case ReportTypeEnum.PDF: return(new PdfReportGeneratorBehavior()); case ReportTypeEnum.Excel: return(new ExcelReportGeneratorBehavior()); case ReportTypeEnum.ODS: return(new OdsReportGeneratorBehavior()); default: throw new ReportGeneratorNotFoundException(); } }
public PrintReportResponse PrintReport(PrintReportRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.ReportRef, "ReportRef"); var report = PersistenceContext.Load <Report>(request.ReportRef); var printModel = request.RecipientContactPointRef != null ? new ReportPageModel(report, PersistenceContext.Load <ExternalPractitionerContactPoint>(request.RecipientContactPointRef)) : new ReportPageModel(report); using (var printResult = PrintJob.Run(printModel)) { var contents = File.ReadAllBytes(printResult.OutputFilePath); return(new PrintReportResponse(contents)); } }
/// <summary> /// Metodo per la generazione del report sulla consistenza dell'organigramma. Il report prodotto sarà un worksheet Excel /// costituito da 7 fogli con i seguenti sotto report: /// <ol> /// <li>Ruoli Disabilitati (codice, descrizione, UO)</li> /// <li>Ruoli inibiti alla ricezione di trasmissioni (codice, descrizione , UO)</li> /// <li>Ruoli senza utenti(codice, descrizione, UO)</li> /// <li>Ruoli senza registri o RF (codice, descrizione, UO)</li> /// <li>Ruoli senza funzioni (codice, descrizione, UO)</li> /// <li>UO senza ruoli (codice, descrizione, UO Padre)</li> /// <li>UO senza ruoli di riferimento (codice descrizione, UO Padre)</li> /// </ol> /// </summary> /// <param name="request">Informazioni sul report da generare</param> /// <param name="dataExtractor">Estrattore dei dati</param> /// <param name="reportGeneration">Behavior responsabile della generazione del report</param> /// <returns>Report</returns> protected override PrintReportResponse GenerateReport(PrintReportRequest request, IReportDataExtractionBehavior dataExtractor, IReportGeneratorBehavior reportGeneration) { PrintReportResponse response = null; try { // Lista dei report da esportare List <DocsPaVO.Report.Report> reports = new List <DocsPaVO.Report.Report>(); // Response da restituire response = new PrintReportResponse(); // Generazione del report relativo ai ruoli disabilitati (essengo il primo report, viene scritto anche // il titolo reports.AddRange(this.GetReport(dataExtractor, request, "DisabledRoles", String.Format("{0}\n{1}", request.Title, "Ruoli disabilitati"), "Foglio 1 di 7")); // Generazione del report relativo ai ruoli inibiti alla ricezione di trasmissioni reports.AddRange(this.GetReport(dataExtractor, request, "InhibitedRoles", "Ruoli inibiti alla ricezione trasmissioni", "Foglio 2 di 7")); // Generazione del report relativo ai ruoli senza utenti reports.AddRange(this.GetReport(dataExtractor, request, "RolesWOutUsers", "Ruoli senza utenti", "Foglio 3 di 7")); // Generazione del report relativo ai ruoli senza registri o rf reports.AddRange(this.GetReport(dataExtractor, request, "RolesWOutRegsOrRF", "Ruoli senza registri o rf", "Foglio 4 di 7")); // Generazione del report relativo ai ruoli senza funzioni reports.AddRange(this.GetReport(dataExtractor, request, "RolesWOutFunctions", "Ruoli senza funzioni", "Foglio 5 di 7")); // Generazione del report relativo alle UO senza ruoli reports.AddRange(this.GetReport(dataExtractor, request, "UOWOutRoles", "UO senza ruoli", "Foglio 6 di 7")); // Generazione del report relativo alle UO senza ruoli di riferimento reports.AddRange(this.GetReport(dataExtractor, request, "UOWOutRF", "UO senza ruoli di riferimento", "Foglio 7 di 7")); // Generazione file report response.Document = reportGeneration.GenerateReport(request, reports); } catch (Exception ex) { throw new ReportGenerationFailedException(ex.Message); } // Restituzione del report return(response); }
protected override PrintReportResponse GenerateReport(PrintReportRequest request, IReportDataExtractionBehavior dataExtractor, IReportGeneratorBehavior reportGeneration) { PrintReportResponse response = null; try { //Personalizzazione report //le informazioni necessarie sono inserite nella request: string nomePolicy = request.SubTitle; //string idIstanza = request.SearchFilters.Where(f => f.argomento == "idIstanza").FirstOrDefault().valore; string idSupporto = request.SearchFilters.Where(f => f.argomento == "idSupporto").FirstOrDefault().valore; request.Title = string.Format("{0} - Richiesta di Rigenerazione Istanza", Amministrazione.AmministraManager.AmmGetInfoAmmCorrente(request.UserInfo.idAmministrazione).Descrizione); //request.SubTitle = string.Format("Stampa del {0}", DateTime.Now.ToShortDateString()); //request.AdditionalInformation = "Numero istanza: " + idIstanza + "\n"; //request.SubTitle = string.Format("Si richiede la rigenerazione dell'istanza numero {0} perché risulta danneggiato il supporto numero {1}.", idIstanza, idSupporto); request.AdditionalInformation = string.Empty; //istanzio la response response = new PrintReportResponse(); //Recupero dataset //DataSet dataSet = dataExtractor.ExtractData(request); //Generazione dati per report List <DocsPaVO.Report.Report> report = new List <DocsPaVO.Report.Report>(); report.AddRange(this.GetReport(dataExtractor, request)); //2 - report aggiuntivo con dettaglio policy //report.AddRange(this.GetReport(dataExtractor, request, "NotificheRifiutoPolicy")); //Creazione file report response.Document = reportGeneration.GenerateReport(request, report); } catch (Exception e) { throw new ReportGenerationFailedException(e.Message); } //restituzione del report return(response); }
protected override PrintReportResponse GenerateReport(PrintReportRequest request, IReportDataExtractionBehavior dataExtractor, IReportGeneratorBehavior reportGeneration) { PrintReportResponse response = null; try { response = new PrintReportResponse(); // selezione tipo report (micro associate o ruoli/utenti) //string key = request.AdditionalInformation; //request.AdditionalInformation = string.Empty; //request.ReportKey = key; DataSet dataSet = new DataSet(); List <DocsPaVO.Report.Report> report = new List <DocsPaVO.Report.Report>(); // 1) report micro associate request.ReportKey = "AmmExportMacroFunzioni_Micro"; dataSet = dataExtractor.ExtractData(request); report.AddRange(this.CreateReport(dataSet, request)); // 2) report ruoli/utenti associati request.ReportKey = "AmmExportMacroFunzioni_Ruoli"; dataSet = dataExtractor.ExtractData(request); report.AddRange(this.CreateReport(dataSet, request)); response.Document = reportGeneration.GenerateReport(request, report); if (response.Document != null) { response.Document.name = String.Format("Report_Tipi_Funzione_{0}.xls", DateTime.Now.ToString("dd-MM-yyyy")); response.Document.fullName = response.Document.name; } } catch (Exception ex) { logger.Debug("Errore nella generazione del report - ", ex); throw new ReportGenerationFailedException(ex.Message); } return(response); }
/// <summary> /// Generazione del report Excel /// </summary> /// <param name="request">Informazioni sul report da generare</param> /// <param name="reports">Report da esportare</param> /// <returns>Documento Excel</returns> public FileDocumento GenerateReport(PrintReportRequest request, List <DocsPaVO.Report.Report> reports) { // Creazione del foglio Excel Workbook book = new Workbook(); // Attivazione del primo foglio book.ExcelWorkbook.ActiveSheetIndex = 0; // Impostazione proprietà del foglio book.Properties.Title = "Report"; book.Properties.Created = DateTime.Now; // Impostazione degli stili this.SetStyles(book); // Generazione di un foglio per ogni report foreach (var report in reports) { // Generazione di un foglio con i dati contenuti nel report this.AddWorksheet(book, report); } // Generazione del risultato dell'export FileDocumento document = new FileDocumento(); using (MemoryStream stream = new MemoryStream()) { book.Save(stream); stream.Position = 0; document.name = String.Format("Report_{0}.xls", DateTime.Now.ToString("dd-MM-yyyy")); document.path = String.Empty; document.fullName = document.name; document.contentType = "application/vnd.ms-excel"; document.content = new Byte[stream.Length]; stream.Read(document.content, 0, document.content.Length); } return(document); }
/// <summary> /// Metodo per la generazione di un report /// </summary> /// <param name="dataExtractor">Estrattore dei dati</param> /// <param name="request">Informazioni sul report da generare</param> /// <param name="contextName">Nome del contesto di estrazione</param> /// <param name="reportTitle">Titolo del report</param> /// <param name="reportSubtitle">Sotto titolo da assegnare al report</param> /// <returns>Report da esportare</returns> private List <DocsPaVO.Report.Report> GetReport( IReportDataExtractionBehavior dataExtractor, PrintReportRequest request, String contextName, String reportTitle, String reportSubtitle) { // Impostazione di titolo e sottotitolo del report request.Title = reportTitle; request.SubTitle = reportSubtitle; // Estrazione dati DataSet dataSet = this.GetReportData(dataExtractor, request, contextName); // Generazione del report List <DocsPaVO.Report.Report> report = base.CreateReport(dataSet, request); // Restituzione del report creato return(report); }