コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        /// <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);
        }
コード例 #5
0
        /// <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);
        }
コード例 #6
0
        /// <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);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        /// <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);
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        /// <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);
        }
コード例 #12
0
        /// <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);
        }
コード例 #13
0
        /// <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);
        }
コード例 #14
0
        /// <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);
        }
コード例 #15
0
        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);
        }
コード例 #16
0
        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);
        }
コード例 #17
0
        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);
        }
コード例 #18
0
        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);
        }
コード例 #19
0
        /// <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);
        }
コード例 #20
0
        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);
        }
コード例 #21
0
        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);
        }
コード例 #22
0
        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);
        }