private void inlineReportSlot1_RenderCompleted(object sender, EventArgs e) { PerpetuumSoft.Reporting.Components.IReportSource rs = sender as PerpetuumSoft.Reporting.Components.IReportSource; using (PerpetuumSoft.Reporting.View.PreviewForm previewForm = new PerpetuumSoft.Reporting.View.PreviewForm(rs)) { previewForm.WindowState = FormWindowState.Maximized; previewForm.ShowDialog(this); } }
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 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); }