public bool Gera_Relatorio(string Documento, bool St_imprimir, bool St_visualizar, bool St_enviaremail, bool St_exportPdf, string Path_exportPdf, List <string> Destinatarios, List <string> Anexos, string Titulo, string Mensagem, bool St_enviarcomoanexo) { bool retorno = false; try { //VERIFICA SE JÁ TEM O ITEM LANÇADO if (string.IsNullOrEmpty(Cad_Report.DS_Report)) { Cad_Report.Modulo = Modulo; Cad_Report.NM_Classe = NM_Classe; Cad_Report.DS_Report = NM_Classe; Cad_Report.Ident = Ident; } //Se nao existir relatorio no banco, baixar da net if (!BuscaRelatorio()) { if (AtualizarRDC.VerificarVersaoRDC(Cad_Report, false)) { BuscaRelatorio(); } } XmlDocument docXMLRelatorio = new XmlDocument(); if (Cad_Report.Code_Report != null) { docXMLRelatorio.LoadXml(System.Text.ASCIIEncoding.UTF8.GetString(Compact_Data.Descompactar(Cad_Report.Code_Report, string.Empty))); } //CRIA O ARQUIVO PARA O RELATORIO InlineReportSlot ArquivoRelatorio = new InlineReportSlot(); //ADICIONAR O NOME E OS PARAMETROS ArquivoRelatorio.GetReportParameter += new GetReportParameterEventHandler(Parametros); Nome_Relatorio = Nome_Relatorio.Replace(' ', '_'); ArquivoRelatorio.ReportName = Nome_Relatorio; reportManager.DataSources.Add("DTS", DTS_Relatorio); if (Cad_Report.Code_Report != null) { //ADICIONA O STREAM DO RELATORIO (XML) ArquivoRelatorio.DocumentStream = docXMLRelatorio.InnerXml; reportManager.Reports.Add(ArquivoRelatorio); if (!Altera_Relatorio) { reportManager.Reports[0].LoadReport(); reportManager.Reports[0].Prepare(); reportManager.Reports[0].RenderDocument(); using (PerpetuumSoft.Reporting.View.PreviewForm view = new PerpetuumSoft.Reporting.View.PreviewForm(reportManager.Reports[0])) { if (St_imprimir) { object obj = new CamadaDados.Diversos.TCD_CadTerminal().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_terminal", vOperador = "=", vVL_Busca = "'" + Utils.Parametros.pubTerminal.Trim() + "'" } }, "a.impressorapadrao"); string print = obj == null ? string.Empty : obj.ToString(); if (!string.IsNullOrEmpty(print)) { bool existe = false; for (int i = 0; i < System.Drawing.Printing.PrinterSettings.InstalledPrinters.Count; i++) { string teste = System.Drawing.Printing.PrinterSettings.InstalledPrinters[i]; if (System.Drawing.Printing.PrinterSettings.InstalledPrinters[i].Trim().ToUpper().Equals(print.Trim().ToUpper())) { existe = true; break; } } if (!existe) { print = string.Empty; } } if (!string.IsNullOrEmpty(print)) { using (ReportPrintDocument rpd = new ReportPrintDocument()) { decimal copias = CamadaNegocio.ConfigGer.TCN_CadParamGer.BuscaVlNumerico("QTD_VIA_DANFE", null); rpd.PrinterSettings.Copies = copias == decimal.Zero ? (short)1 : (short)copias; rpd.PrinterSettings.PrinterName = print; rpd.Source = ArquivoRelatorio; rpd.Print(); } } else { using (System.Windows.Forms.PrintDialog pd = new PrintDialog()) { pd.UseEXDialog = true; if (pd.ShowDialog() == DialogResult.OK) { using (ReportPrintDocument rpd = new ReportPrintDocument()) { rpd.PrinterSettings = pd.PrinterSettings; rpd.Source = ArquivoRelatorio; rpd.Print(); } } } } } else if (St_visualizar) { view.WindowState = FormWindowState.Maximized; view.ShowDialog(); retorno = true; } else if (St_exportPdf && !string.IsNullOrEmpty(Path_exportPdf)) { using (PdfExportFilter pdf = new PdfExportFilter()) { pdf.Export(this.reportManager.Reports[0].Document, Path_exportPdf, false); retorno = true; } } } if (St_enviaremail) { using (PdfExportFilter pdf = new PdfExportFilter()) { string path_anexo = TCN_CadParamGer.BuscaVlString("PATH_ANEXO_EMAIL", null); if (string.IsNullOrEmpty(path_anexo)) { throw new Exception("Não existe path anexo cadastrado nas configurações gerais do sistema!"); } if (!System.IO.Directory.Exists(path_anexo)) { System.IO.Directory.CreateDirectory(path_anexo); } if (!path_anexo.EndsWith("\\")) { path_anexo += System.IO.Path.DirectorySeparatorChar.ToString(); } path_anexo += "NFCE" + DateTime.Now.Date.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + ".pdf"; pdf.Export(this.reportManager.Reports[0].Document, path_anexo, false); if (Anexos == null) { Anexos = new List <string>(); } Anexos.Add(path_anexo); new Email(Destinatarios, Titulo, Mensagem, Anexos).EnviarEmail(); retorno = true; } } } else { Editar(); } } else { Editar(); } } catch (Exception erro) { MessageBox.Show(erro.Message, "Mensagem"); } return(retorno); }
public void getPDF(string name, string jsonObject, string preNameFile) { try { using (ReportManager reportManager1 = new PerpetuumSoft.Reporting.Components.ReportManager()) { reportManager1.DataSources = new PerpetuumSoft.Reporting.Components.ObjectPointerCollection(new string[0], new object[0]); using (FileReportSlot fileReportSlot2 = new PerpetuumSoft.Reporting.Components.FileReportSlot()) { reportManager1.Reports.AddRange(new PerpetuumSoft.Reporting.Components.ReportSlot[] { fileReportSlot2 }); fileReportSlot2.FilePath = ""; fileReportSlot2.ReportName = ""; fileReportSlot2.ReportScriptType = typeof(PerpetuumSoft.Reporting.Rendering.ReportScriptBase); Object obj = null; string nameFile = ""; if (name.Equals(DANG_KY_DU_TUYEN)) { nameFile = "DangKyDuTuyen"; obj = Newtonsoft.Json.JsonConvert.DeserializeObject <DangKyThongTin>(jsonObject); } else if (name.Equals("PHIEU_HEN")) { nameFile = "PhieuHen"; obj = Newtonsoft.Json.JsonConvert.DeserializeObject <PhieuHen>(jsonObject); } string path = System.IO.Path.GetDirectoryName( System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase).Replace("file:\\", ""); if (File.Exists(string.Format("{0}\\report\\" + nameFile + "Clone.rst", path))) { File.Delete(string.Format("{0}\\report\\" + nameFile + "Clone.rst", path)); } File.Copy(string.Format("{0}\\report\\" + nameFile + ".rst", path), string.Format("{0}\\report\\" + nameFile + "Clone.rst", path)); File.WriteAllText("checkPath.txt", path); fileReportSlot2.FilePath = string.Format("{0}\\report\\" + nameFile + "Clone.rst", path); fileReportSlot2.Manager.DataSources.Remove("Data"); fileReportSlot2.Manager.DataSources.Clear(); fileReportSlot2.Manager.DataSources.Add("Data", obj); //File.WriteAllText("exascsa.txt", JsonConvert.SerializeObject(obj, Newtonsoft.Json.Formatting.None, // new JsonSerializerSettings // { // NullValueHandling = NullValueHandling.Ignore // })); fileReportSlot2.LoadReport(); Document document = fileReportSlot2.RenderDocument(); fileReportSlot2.SaveReport(document); ExportFilter filter = new PdfExportFilter { AllowChangingDocument = true }; filter.Export(document, path + "\\" + preNameFile + "value.pdf", false); fileReportSlot2.Dispose(); filter.Dispose(); if (File.Exists(string.Format("{0}\\report\\" + preNameFile + nameFile + "Clone.rst", path))) { File.Delete(string.Format("{0}\\report\\" + preNameFile + nameFile + "Clone.rst", path)); } } } } catch (Exception ex) { File.WriteAllText("err.txt", ex.Message); } }
public bool ImprimiGraficoReduzida(string Print, bool St_imprimir, bool St_visualizar, List <string> Destinatarios, string Titulo, string Mensagem, short copia) { bool retorno = false; try { //VERIFICA SE JÁ TEM O ITEM LANÇADO if (string.IsNullOrEmpty(Cad_Report.DS_Report)) { Cad_Report.Modulo = Modulo; Cad_Report.NM_Classe = NM_Classe; Cad_Report.DS_Report = NM_Classe; Cad_Report.Ident = Ident; } //Se nao existir relatorio no banco, baixar da net if (!BuscaRelatorio()) { if (AtualizarRDC.VerificarVersaoRDC(Cad_Report, false)) { BuscaRelatorio(); } } XmlDocument docXMLRelatorio = new XmlDocument(); if (Cad_Report.Code_Report != null) { docXMLRelatorio.LoadXml(System.Text.ASCIIEncoding.UTF8.GetString(Compact_Data.Descompactar(Cad_Report.Code_Report, string.Empty))); } //CRIA O ARQUIVO PARA O RELATORIO InlineReportSlot ArquivoRelatorio = new InlineReportSlot(); //ADICIONAR O NOME E OS PARAMETROS ArquivoRelatorio.GetReportParameter += new GetReportParameterEventHandler(Parametros); Nome_Relatorio = Nome_Relatorio.Replace(' ', '_'); ArquivoRelatorio.ReportName = Nome_Relatorio; reportManager.DataSources.Add("DTS", DTS_Relatorio); if (Cad_Report.Code_Report != null) { //ADICIONA O STREAM DO RELATORIO (XML) ArquivoRelatorio.DocumentStream = docXMLRelatorio.InnerXml; reportManager.Reports.Add(ArquivoRelatorio); if (!Altera_Relatorio) { reportManager.Reports[0].LoadReport(); reportManager.Reports[0].Prepare(); reportManager.Reports[0].RenderDocument(); using (PerpetuumSoft.Reporting.View.PreviewForm view = new PerpetuumSoft.Reporting.View.PreviewForm(reportManager.Reports[0])) { if (St_imprimir) { using (ReportPrintDocument rpd = new ReportPrintDocument()) { rpd.PrinterSettings.PrinterName = Print; rpd.Source = ArquivoRelatorio; for (int i = 0; i < copia; i++) { rpd.Print(); } } } else if (St_visualizar) { view.WindowState = FormWindowState.Maximized; view.ShowDialog(); retorno = true; } } if (Destinatarios == null ? false : Destinatarios.Count > 0) { using (PdfExportFilter pdf = new PdfExportFilter()) { string path_anexo = TCN_CadParamGer.BuscaVlString("PATH_ANEXO_EMAIL", null); if (string.IsNullOrEmpty(path_anexo)) { throw new Exception("Não existe path anexo cadastrado nas configurações gerais do sistema!"); } if (!System.IO.Directory.Exists(path_anexo)) { System.IO.Directory.CreateDirectory(path_anexo); } if (!path_anexo.EndsWith("\\")) { path_anexo += System.IO.Path.DirectorySeparatorChar.ToString(); } path_anexo += "NFCE" + DateTime.Now.Date.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + ".pdf"; pdf.Export(this.reportManager.Reports[0].Document, path_anexo, false); List <string> Anexos = new List <string>(); Anexos.Add(path_anexo); new Email(Destinatarios, Titulo, Mensagem, Anexos).EnviarEmail(); retorno = true; } } } else { Editar(); } } else { Editar(); } } catch (Exception erro) { MessageBox.Show(erro.Message, "Mensagem"); } return(retorno); }
public string GenerateReportIntoFile(RunFileReportRequest request) { Thread.CurrentThread.CurrentCulture.NumberFormat = CultureInfo.InvariantCulture.NumberFormat; DataSet set = GenerateDataSet(request); Log.Debug("GenerateReport - after generate dataset"); string dllFolder = (string)set.Tables["RunReportRequest"].Rows[0]["DllFolder"]; string dllName = (string)set.Tables["RunReportRequest"].Rows[0]["DllName"]; string templateFileName = Path.Combine(dllFolder, dllName + ".rst"); Log.DebugFormat("GenerateReport rst template file name is {0}", templateFileName); string xmlTemplate = File.ReadAllText(templateFileName); Log.Debug("GenerateReport after read rst template file"); ReportManager reportManager = new ReportManager(); reportManager.DataSources.Add(set.DataSetName, set); reportManager.OwnerForm = null; Log.Debug("GenerateReport after init ReportManager"); InlineReportSlot inlineReportSlot = new InlineReportSlot(); inlineReportSlot.DocumentStream = xmlTemplate; inlineReportSlot.RenderingError += InlineReportSlot_RenderingError; Log.Debug("GenerateReport after init InlineReportSlot"); reportManager.Reports.Add(inlineReportSlot); Document document = inlineReportSlot.RenderDocument(); Log.Debug("GenerateReport after RenderDocument"); string outputFormat = request.OutputFormat; Log.DebugFormat("GenerateReport after RenderDocument, document name is {0}, page count is {1}, outputFormat is {2}", document.Name, document.Pages.Count, outputFormat); string tempFileName = Path.GetTempFileName(); string outputFileName = Path.ChangeExtension(tempFileName, outputFormat); try { File.Delete(tempFileName); } catch { } try { File.Delete(outputFileName); } catch { } Log.DebugFormat("GenerateReport - the name of file for export report to write to is set to {0}", outputFileName); try { switch (outputFormat.ToUpper()) { case "PDF": { PdfExportFilter exportFilter = new PdfExportFilter(); exportFilter.Compress = true; exportFilter.Export(document, outputFileName, false); Log.DebugFormat("GenerateReport after export document to PDF into tempFileName = {0}", outputFileName); break; } case "CSV": { CsvExportFilter exportFilter = new CsvExportFilter(); exportFilter.Separator = ","; exportFilter.Export(document, outputFileName, false); Log.DebugFormat("GenerateReport after export document to CSV into tempFileName = {0}", outputFileName); break; } case "XLSX": { ExcelExportFilter exportFilter = new ExcelExportFilter(); exportFilter.ExportAsData = true; exportFilter.Export(document, outputFileName, false); Log.DebugFormat("GenerateReport after export document to XLSX into tempFileName = {0}", outputFileName); break; } case "PNG": { PngExportFilter exportFilter = new PngExportFilter(); exportFilter.PagesRange = "1"; exportFilter.Export(document, outputFileName, false); Log.DebugFormat("GenerateReport after export document to PNG into tempFileName = {0}", outputFileName); break; } default: { Log.DebugFormat("Unable to export report - unknown export format '{0}'", outputFormat); break; } } } catch (System.Exception exp) { Log.Debug("Exception during export report", exp); throw exp; } return(outputFileName); }