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); }
public void GeneraFileReportTest() { // Generazione filtri per la stampa FiltroRicerca[] filters = new FiltroRicerca[] { new FiltroRicerca() { argomento = "idCounter", valore = "898" }, new FiltroRicerca() { argomento = "idRegistry", valore = String.Empty }, new FiltroRicerca() { argomento = "idRf", valore = "1186694" } }; PrintReportResponse response = this._docsPaWS.GenerateReport( new PrintReportRequest() { UserInfo = new InfoUtente() { userId = this._user.userId, idAmministrazione = this._user.idAmministrazione, idPeople = this._user.idPeople, idGruppo = this._role.systemId, idCorrGlobali = this._user.systemId }, SearchFilters = filters, ReportType = ReportTypeEnum.PDF, ReportKey = "StampaRegistriRepertori", ContextName = "StampaRegistriRepertori" }); File.WriteAllBytes(@"c:\Test\stampa.pdf", response.Document.content); }
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); }
/// <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> /// 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); }
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> /// Funzione per la generazione dell'anagrafica dei report /// </summary> /// <param name="contextName">Nome del contesto</param> /// <returns>Anagrafica dei report</returns> public static ReportMetadata[] GetReportRegistry(String contextName) { PrintReportResponse response = null; try { response = docsPaWS.GetReportRegistry(contextName); } catch (Exception e) { NttDataWA.Utils.SoapExceptionParser.ThrowOriginalException(e); } return(response.ReportMetadata); }
/// <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> /// 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); }
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(); // Costruzione della prima parte del titolo String title = GetTitle(request); request.Title = title; // Repertori creati dopo l'ultima stampa reports.AddRange(this.GetReport(dataExtractor, request, "StampaRepertoriNuovi", "Nuovi documenti")); request.Title = title; // Repertori creati dopo l'ultima stampa reports.AddRange(this.GetReport(dataExtractor, request, "StampaRepertoriAggiornati", "Documenti modificati")); //String.Format("{0}\n{1}", "Documenti repertoriati nuovi", "Ruoli disabilitati"), "Foglio 1 di 7")); // Generazione file report response.Document = reportGeneration.GenerateReport(request, reports); } catch (Exception ex) { throw new ReportGenerationFailedException(ex.Message); } // Restituzione del report return(response); }
public void GenerateExcelFile() { DocsPaWS.DocsPaWebService ws = new DocsPaWS.DocsPaWebService(); ws.Timeout = System.Threading.Timeout.Infinite; PrintReportRequest request = new PrintReportRequest() { ContextName = "RicercaModelliTrasmissione", ReportType = ReportTypeEnum.Excel, SearchFilters = new FiltroRicerca[] { new FiltroRicerca() { argomento = FiltriModelliTrasmissione.ID_REGISTRO.ToString(), valore = "86107" }, new FiltroRicerca() { argomento = FiltriModelliTrasmissione.CODICE_MODELLO.ToString(), valore = "384" } }, SubTitle = "Sotto titolo", Title = "Titolo", UserInfo = new InfoUtente() { idAmministrazione = "361" } }; //PrintReportResponse response = ws.GenerateReportModelliTrasmissione(request); PrintReportResponse response = new PrintReportResponse(); File.WriteAllBytes(@"C:\Report.xml", response.Document.content); Assert.IsNotNull(response); }
/// <summary> /// Metodo per il reperimento dei report registrati nel sistema. /// Per eregistrare una classe come report, decorare la classe con l'attributo /// ReportGeneratorAttribute /// </summary> /// <param name="contextName">Nome del contesto da cui viene invocata la ricerca di report registrati</param> /// <returns>Response con l'anagrafica dei report registrata</returns> public static PrintReportResponse GetRegisteredReport(String contextName) { // Oggetto da restituire PrintReportResponse response = new PrintReportResponse(); response.ReportMetadata = new List <ReportMetadata>(); // Recupero del tipo di questa classe Type myType = typeof(ReportGeneratorCommand); // Reperimento dei tipi decorati con l'attributo ReportGeneratorAttribute Type[] types = Assembly.GetExecutingAssembly().GetTypes().Where(t => String.Equals(t.Namespace, myType.Namespace, StringComparison.Ordinal) && t.GetCustomAttributes(typeof(ReportGeneratorAttribute), true).Length > 0).ToArray(); foreach (Type t in types) { // Generazione della lista di metadati per gli attributi inerenti // il contesto passato per parametro IEnumerable <ReportMetadata> tmp = new List <ReportMetadata>( from a in t.GetCustomAttributes(typeof(ReportGeneratorAttribute), true) as ReportGeneratorAttribute[] where a.ContextName == contextName select new ReportMetadata() { ReportName = a.Name, ReportKey = a.Key, ExportableFields = ((ReportGeneratorCommand)Activator.CreateInstance(t)).GetExportableFieldsCollection() }); if (tmp != null) { response.ReportMetadata.AddRange(tmp); } } return(response); }
protected override PrintReportResponse GenerateReport(PrintReportRequest request, IReportDataExtractionBehavior dataExtractor, IReportGeneratorBehavior reportGeneration) { PrintReportResponse response = null; try { response = new PrintReportResponse(); DataSet dataSet = dataExtractor.ExtractData(request); List <DocsPaVO.Report.Report> report = this.CreateReport(dataSet, request); response.Document = reportGeneration.GenerateReport(request, report); // Devo selezionare il tipo di report (policy documenti/policy stampe) string tipo = request.SearchFilters.Where(f => f.argomento.Equals("type")).FirstOrDefault().valore; } catch (Exception ex) { throw new ReportGenerationFailedException(ex.Message); } return(response); }
protected override PrintReportResponse GenerateReport(PrintReportRequest request, IReportDataExtractionBehavior dataExtractor, IReportGeneratorBehavior reportGeneration) { // Il DataSet da utilizzare nel report è contenuto all'interno della request // per non replicare tutti i metodi necessari alla ricerca in rubrica PrintReportResponse response = null; try { // eseguo il cast della request PrintReportRequestDataset casted = request as PrintReportRequestDataset; if (casted == null) { throw new RequestNotValidException(); } response = new PrintReportResponse(); List <DocsPaVO.Report.Report> report = new List <DocsPaVO.Report.Report>(); if (casted.InputDataset != null) { report.AddRange(this.CreateReport(casted.InputDataset, 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, Behaviors.DataExtraction.IReportDataExtractionBehavior dataExtractor, Behaviors.ReportGenerator.IReportGeneratorBehavior reportGeneration) { PrintReportResponse response = null; try { logger.Debug("Inizio GenerateReport."); //istanzio la response da restituire response = new PrintReportResponse(); //creo la lista di report da esportare List <DocsPaVO.Report.Report> reports = new List <DocsPaVO.Report.Report>(); //creo il titolo this.SetTitle(request); //ricavo la lista delle istanze RegistroConservazionePrintManager manager = new RegistroConservazionePrintManager(); List <string> listIdIstanze = manager.GetListaIstanze(request); logger.Debug(string.Format("{0} istanze trovate.", listIdIstanze.Count)); //creo due nuovi filtri su istanze e documenti request.SearchFilters.Add(new FiltroRicerca() { argomento = "id_istanza", valore = string.Empty }); request.SearchFilters.Add(new FiltroRicerca() { argomento = "id_oggetto", valore = string.Empty }); foreach (var ist in listIdIstanze) { logger.Debug(string.Format("Istanza {0}: ", ist)); //creo il summary per l'istanza string summary = GetSummary(request, "istanza", ist, String.Empty); //inserisco il summary nel campo additional information della request request.AdditionalInformation = summary; //imposto il filtro sull'istanza al valore attuale e inizializzo il filtro sul documento foreach (FiltroRicerca f in request.SearchFilters) { if (f.argomento == "id_istanza") { f.valore = ist; } if (f.argomento == "id_oggetto") { f.valore = string.Empty; } } //genero il report per l'istanza reports.AddRange(this.GetReport(dataExtractor, request, "rcIstanze")); //dopo la prima stampa devo cancellare titolo e sottotitolo! request.Title = string.Empty; request.SubTitle = string.Empty; //ricavo la lista dei documenti che appartengono all'istanza List <string> listIdDoc = manager.GetListaDocumentiIstanze(request); logger.Debug(string.Format("{0} documenti trovati nell'istanza.", listIdDoc.Count)); //loop sui documenti, eventualmente realizzare un metodo ad hoc foreach (var doc in listIdDoc) { //creo il summary per il documento summary = GetSummary(request, "documento", ist, doc); //inserisco il summary nel campo additional information della request request.AdditionalInformation = summary; //imposto il filtro sul documento al valore attuale foreach (FiltroRicerca f in request.SearchFilters) { if (f.argomento == "id_oggetto") { f.valore = doc; } } //genero il report per il documento reports.AddRange(this.GetReport(dataExtractor, request, "rcDocumenti")); } } request.ReportKey = "StampaConservazione"; logger.Debug("Chiamata servizio di stampa."); response.Document = reportGeneration.GenerateReport(request, reports); } catch (Exception ex) { logger.Debug("Errore in StampeRegistroConservazioneReportGeneratorCommand: ", ex); throw new ReportGenerationFailedException(ex.Message); } return(response); }