From fa449742256d75ab2472b4f734f3f2dd9f11e5b9 Mon Sep 17 00:00:00 2001 From: samuele Date: Thu, 5 Feb 2009 09:19:07 +0000 Subject: [PATCH] Completata release print in pdf git-svn-id: https://keyhammer.ath.cx/svn/WebGIM/trunk@71 3e04ef4b-3b25-4b6c-be27-bb5389ca777b --- WebSites/WebGIM/App_Code/reportExporter.cs | 138 ++++++++++++++++++++- WebSites/WebGIM/App_Code/reportPrinter.cs | 28 +++-- WebSites/WebGIM/ExportPdf.aspx.cs | 30 ++++- WebSites/WebGIM/report_analisi.aspx | 29 ++--- WebSites/WebGIM/report_analisi.aspx.cs | 30 +++-- WebSites/WebGIM/report_impianti.aspx | 9 +- WebSites/WebGIM/report_impianti.aspx.cs | 22 +++- 7 files changed, 230 insertions(+), 56 deletions(-) diff --git a/WebSites/WebGIM/App_Code/reportExporter.cs b/WebSites/WebGIM/App_Code/reportExporter.cs index 62218b9..b535d5a 100644 --- a/WebSites/WebGIM/App_Code/reportExporter.cs +++ b/WebSites/WebGIM/App_Code/reportExporter.cs @@ -40,13 +40,17 @@ public class reportExporter /// /// carica i dati richiesti dal report dalla StoredProcedure (filtrando quindi...) /// - /// - /// + /// report ammessi: RichiestaIntervento + /// num int mtz + /// tabella dati private DataTable caricaDati(reportRichiesto tipoReport, string idxObj) { DataTable tab = new DataTable(); switch (tipoReport) { + case reportRichiesto.ElencoMacchine: + tab = (DataTable)TA_app.obj.taElencoImpMacch.GetData(); + break; case reportRichiesto.RichiestaIntervento: tab = (DataTable)TA_app.obj.taInterventiMtz.getByIdx(Convert.ToInt32(idxObj)); break; @@ -56,10 +60,79 @@ public class reportExporter return tab; } /// + /// carica i dati richiesti dal report dalla StoredProcedure (filtrando quindi...) + /// + /// report ammessi: ElencoMacchine + /// tabella dati + private DataTable caricaDati(reportRichiesto tipoReport) + { + DataTable tab = new DataTable(); + switch (tipoReport) + { + case reportRichiesto.ElencoMacchine: + tab = (DataTable)TA_app.obj.taElencoImpMacch.GetData(); + break; + default: + break; + } + return tab; + } + /// + /// carica i dati richiesti dal report dalla StoredProcedure (filtrando quindi...) + /// + /// report ammessi: ElencoInterventi / MTBF_MTTR + /// oggetto che contiene data inizio e data fine dell'analisi richiesta per il report + /// tabella dati + private DataTable caricaDati(reportRichiesto tipoReport, intervalloDate periodoAnalizzato) + { + DataTable tab = new DataTable(); + switch (tipoReport) + { + case reportRichiesto.ElencoInterventi: + tab = (DataTable)TA_app.obj.taElencoIntFilt.getByIntervDate(periodoAnalizzato.inizio, periodoAnalizzato.fine); + break; + case reportRichiesto.MTBF_MTTR: + tab = (DataTable)TA_app.obj.taElenco_MTBF_MTTR.GetData(periodoAnalizzato.inizio, periodoAnalizzato.fine); + break; + default: + break; + } + return tab; + } + /// /// renderizza il report in pdf /// - /// - /// + /// report ammessi: ElencoMacchine + /// + public void popolaPdfStream(reportRichiesto tipoReport) + { + LocalReport report = new LocalReport(); + string deviceInfo = ""; + switch (tipoReport) + { + case reportRichiesto.ElencoMacchine: + report.ReportPath = @".\MacchineReparti.rdlc"; + report.DataSources.Add(new ReportDataSource("WebGim", caricaDati(tipoReport))); + deviceInfo = "" + + " PDF" + + " 29.7cm" + + " 21cm" + + " 0.2cm" + + " 0.2cm" + + " 0.2cm" + + " 0.2cm" + + ""; + break; + default: + break; + } + createPdfStream(report, deviceInfo); + } + /// + /// renderizza il report in pdf + /// + /// report ammessi: RichiestaIntervento + /// idx della richiesta (numIntMtz) /// public void popolaPdfStream(reportRichiesto tipoReport, string parametro) { @@ -67,7 +140,7 @@ public class reportExporter string deviceInfo = ""; switch (tipoReport) { - case reportRichiesto.RichiestaIntervento: + case reportRichiesto.RichiestaIntervento: report.ReportPath = @".\RichiestaIntervento.rdlc"; report.DataSources.Add(new ReportDataSource("WebGim", caricaDati(tipoReport, parametro))); // OCCHIO!!! va messa sorgente dati CORRETTA deviceInfo = "" + @@ -83,6 +156,60 @@ public class reportExporter default: break; } + createPdfStream(report, deviceInfo); + } + /// + /// renderizza il report in pdf + /// + /// report ammessi: ElencoInterventi / MTBF_MTTR + /// oggetto che contiene data inizio e data fine dell'analisi richiesta per il report + public void popolaPdfStream(reportRichiesto tipoReport, intervalloDate periodoAnalizzato) + { + LocalReport report = new LocalReport(); + string deviceInfo = ""; + switch (tipoReport) + { + case reportRichiesto.ElencoInterventi: + report.ReportPath = @".\ReportInterventi.rdlc"; + report.DataSources.Add(new ReportDataSource("WebGim", caricaDati(tipoReport, periodoAnalizzato))); + deviceInfo = "" + + " PDF" + + " 21cm" + + " 29.7cm" + + " 0.2cm" + + " 0.2cm" + + " 0.2cm" + + " 0.2cm" + + ""; + break; + case reportRichiesto.MTBF_MTTR: + report.ReportPath = @".\Report_MTBF_MTTR.rdlc"; + report.DataSources.Add(new ReportDataSource("WebGim", caricaDati(tipoReport, periodoAnalizzato))); + deviceInfo = "" + + " PDF" + + " 21cm" + + " 29.7cm" + + " 0.2cm" + + " 0.2cm" + + " 0.2cm" + + " 0.2cm" + + ""; + // calcolo le ore totali equivalenti... + ReportParameter[] OreTotali = { new ReportParameter("OreTotali", WebGimUtils.obj.oreEquivalenti(periodoAnalizzato).ToString()) }; + report.SetParameters(OreTotali); + break; + default: + break; + } + createPdfStream(report, deviceInfo); + } + /// + /// crea il vero e proprio stream pdf + /// + /// + /// + private void createPdfStream(LocalReport report, string deviceInfo) + { // export in PDF string reportType = "PDF"; Warning[] warnings; @@ -96,4 +223,5 @@ public class reportExporter out streams, out warnings); } + } diff --git a/WebSites/WebGIM/App_Code/reportPrinter.cs b/WebSites/WebGIM/App_Code/reportPrinter.cs index 5e8d6a1..19ab1d3 100644 --- a/WebSites/WebGIM/App_Code/reportPrinter.cs +++ b/WebSites/WebGIM/App_Code/reportPrinter.cs @@ -99,7 +99,7 @@ public class reportPrinter /// /// report ammessi: ElencoMacchine / RichiestaIntervento /// oggetto che contiene data inizio e data fine dell'analisi richiesta per il report - /// + /// tabella dati private DataTable caricaDati(reportRichiesto tipoReport, string idxObj) { DataTable tab = new DataTable(); @@ -121,7 +121,7 @@ public class reportPrinter /// /// report ammessi: ElencoInterventi / MTBF_MTTR /// oggetto che contiene data inizio e data fine dell'analisi richiesta per il report - /// + /// tabella dati private DataTable caricaDati(reportRichiesto tipoReport, intervalloDate periodoAnalizzato) { DataTable tab = new DataTable(); @@ -142,8 +142,8 @@ public class reportPrinter /// Crea un report locale da file rdlc, carica i dati, esporta report come EMF file e quindi lo invia alla stampante /// /// report ammessi: ElencoMacchine / RichiestaIntervento - /// - /// + /// nome completo stampante (rispetto al server) + /// numIntMtz (codice numero richiesta) public void printReport(reportRichiesto tipoReport, string printerName, string parametro) { LocalReport report = new LocalReport(); @@ -179,19 +179,13 @@ public class reportPrinter default: break; } - // export in EMF - Export(report, deviceInfo); - m_currentPageIndex = 0; - // stampo - Print(printerName); - // do dispose? - Dispose(); + doEmfPrint(printerName, report, deviceInfo); } /// /// Crea un report locale da file rdlc, carica i dati, esporta report come EMF file e quindi lo invia alla stampante /// /// report ammessi: ElencoInterventi / MTBF_MTTR - /// + /// nome completo stampante (rispetto al server) /// oggetto che contiene data inizio e data fine dell'analisi richiesta per il report public void printReport(reportRichiesto tipoReport, string printerName, intervalloDate periodoAnalizzato) { @@ -231,6 +225,16 @@ public class reportPrinter default: break; } + doEmfPrint(printerName, report, deviceInfo); + } + /// + /// esegue print vero e proprio + /// + /// + /// + /// + private void doEmfPrint(string printerName, LocalReport report, string deviceInfo) + { // export in EMF Export(report, deviceInfo); m_currentPageIndex = 0; diff --git a/WebSites/WebGIM/ExportPdf.aspx.cs b/WebSites/WebGIM/ExportPdf.aspx.cs index fa88cc1..97a62f3 100644 --- a/WebSites/WebGIM/ExportPdf.aspx.cs +++ b/WebSites/WebGIM/ExportPdf.aspx.cs @@ -3,20 +3,46 @@ using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; +using SteamWare; public partial class ExportPdf : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { + string reportName = ""; // carico i parametri per chiamare export... string idx = Request.QueryString["idx"]; + intervalloDate periodo = new intervalloDate(); + periodo.inizio = Convert.ToDateTime(Request.QueryString["inizio"]); + periodo.fine = Convert.ToDateTime(Request.QueryString["fine"]); reportRichiesto tipo = (reportRichiesto)Convert.ToInt32(Request.QueryString["tipo"]); // eseguo export reportExporter re = new reportExporter(); - re.popolaPdfStream(tipo, idx); + // in base al tipo passo un metodo con idx o con parametro Intervallo analisi... + switch (tipo) + { + case reportRichiesto.ElencoInterventi: + reportName="elenco_interventi"; + re.popolaPdfStream(tipo, periodo); + break; + case reportRichiesto.ElencoMacchine: + reportName="elenco_macchine"; + re.popolaPdfStream(tipo); + break; + case reportRichiesto.MTBF_MTTR: + reportName = "MTBF_MTTR"; + re.popolaPdfStream(tipo, periodo); + break; + case reportRichiesto.RichiestaIntervento: + reportName="richiesta"; + re.popolaPdfStream(tipo, idx); + break; + default: + break; + } Response.Clear(); Response.ContentType = re.mimeType; - Response.AddHeader("content-disposition", "attachment; filename=WebGIM." + re.fileNameExtension); + Response.AddHeader("content-disposition", string.Format("attachment; filename=WebGIM_{0}.{1}",reportName, re.fileNameExtension)); Response.BinaryWrite(re.renderedBytes); Response.End(); } diff --git a/WebSites/WebGIM/report_analisi.aspx b/WebSites/WebGIM/report_analisi.aspx index 292ab0c..a310a56 100644 --- a/WebSites/WebGIM/report_analisi.aspx +++ b/WebSites/WebGIM/report_analisi.aspx @@ -12,30 +12,27 @@ - report interventi + report interventi: spiegare cosa è (elenco degli interveti raggruppato x reparto e macchine + ore di fermo officina (dal guasto a fine intervento mtz), fermo manutenzione (da inizio a fine intervento) e ore erogate (ovvero somma del tempo di tutti i manutentori coinvolti) - report MTBF MTTR + report MTBF MTTR:
+ calcola il livello di affidabilità come MTBF= mean time before failure, ovvero divide le ore totali di apertura (al netto di ferie, feste, fermo macchina programmato) per il numero degli interventi effettuati
+ calcola inoltre i tempi medi di riparazione (MTTR, mean time to repair) visti dall'officina (guasto --> fine intervento) e dalla manutenzione ( inizio-> fine intervento) + - + + - - - - - - - - - + + diff --git a/WebSites/WebGIM/report_analisi.aspx.cs b/WebSites/WebGIM/report_analisi.aspx.cs index e5dec60..0fc4128 100644 --- a/WebSites/WebGIM/report_analisi.aspx.cs +++ b/WebSites/WebGIM/report_analisi.aspx.cs @@ -9,26 +9,30 @@ public partial class report_analisi : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { + // traduzioni + traduciObj(); + // popolo valori default + setDefaultValues(); + } + private void traduciObj() + { + // + } + private void setDefaultValues() + { + hlElencoInterventi_Pdf.NavigateUrl = formattaUrl( reportRichiesto.ElencoInterventi, mod_periodoAnalisi1.intervalloAnalisi); + hlMTBF_MTTR_Pdf.NavigateUrl = formattaUrl(reportRichiesto.MTBF_MTTR, mod_periodoAnalisi1.intervalloAnalisi); + } + private string formattaUrl(reportRichiesto tipo, intervalloDate periodo) + { + return String.Format("~/ExportPdf.aspx?tipo={0}&inizio={1}&fine={2}", Convert.ToInt32(tipo), periodo.inizio, periodo.fine); } protected void btnInterventi_print_Click(object sender, EventArgs e) { reportPrinter.obj.printReport(reportRichiesto.ElencoInterventi, memLayer.ML.confReadstring("stampanteRichiesteMtz"), mod_periodoAnalisi1.intervalloAnalisi); } - protected void btnInterventi_pdf_Click(object sender, EventArgs e) - { -#if false - reportPrinter.obj.printReport(reportRichiesto.ElencoInterventi, memLayer.ML.confReadstring("stampanteRichiesteMtz"), mod_periodoAnalisi1.intervalloAnalisi); -#endif - - } protected void btnMtbfMttr_print_Click(object sender, EventArgs e) { reportPrinter.obj.printReport(reportRichiesto.MTBF_MTTR, memLayer.ML.confReadstring("stampanteRichiesteMtz"), mod_periodoAnalisi1.intervalloAnalisi); } - protected void btnMtbfMttr_pdf_Click(object sender, EventArgs e) - { -#if false - reportPrinter.obj.printReport(reportRichiesto.MTBF_MTTR, memLayer.ML.confReadstring("stampanteRichiesteMtz"), mod_periodoAnalisi1.intervalloAnalisi); -#endif - } } diff --git a/WebSites/WebGIM/report_impianti.aspx b/WebSites/WebGIM/report_impianti.aspx index 71e0771..88f454b 100644 --- a/WebSites/WebGIM/report_impianti.aspx +++ b/WebSites/WebGIM/report_impianti.aspx @@ -6,10 +6,15 @@ + +
- + tradurre con label: elenco dei reparti e delle macchine che li compongono, click + x export in pdf
- + +
diff --git a/WebSites/WebGIM/report_impianti.aspx.cs b/WebSites/WebGIM/report_impianti.aspx.cs index 98e47fd..d9aafd3 100644 --- a/WebSites/WebGIM/report_impianti.aspx.cs +++ b/WebSites/WebGIM/report_impianti.aspx.cs @@ -9,15 +9,25 @@ public partial class report_impianti : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { - + // traduzioni + traduciObj(); + // popolo valori default + setDefaultValues(); } - protected void btnPdf_Click(object sender, EventArgs e) + private void traduciObj() { -#if false - // !!!FARE!!! - reportPrinter.obj.printReport(reportRichiesto.ElencoMacchine, memLayer.ML.confReadstring("stampanteRichiesteMtz"), ""); -#endif + // } + private void setDefaultValues() + { + hlExportPdf.NavigateUrl = formattaUrl(); + } + + private string formattaUrl() + { + return String.Format("~/ExportPdf.aspx?tipo={0}", Convert.ToInt32(reportRichiesto.ElencoMacchine)); + } + protected void btnPrint_Click(object sender, EventArgs e) { reportPrinter.obj.printReport(reportRichiesto.ElencoMacchine, memLayer.ML.confReadstring("stampanteRichiesteMtz"), "");