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 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 Editar() { try { //CHAMA A CLASSE Q DEFINE O MODELO DO RELATORIO string modeloRelatorio = DefineDesigner(); //GRAVA O REPORT if ((modeloRelatorio != "") && (!Homologacao)) { bool gravarRelatorio = false; bool verificar = false; if (Cad_Report.Code_Report == null) { verificar = true; } else if (System.Text.ASCIIEncoding.UTF8.GetString(Utils.Compact_Data.Descompactar(Cad_Report.Code_Report, string.Empty)) != modeloRelatorio) { verificar = true; } //VERIFICA SE FOR MASTER if (verificar) { //GRAVA O REPORT JÁ if (CamadaNegocio.Diversos.TCN_Usuario_RegraEspecial.ValidaRegra(Utils.Parametros.pubLogin, "PERMITIR ALTERAR RELATÓRIO", null)) { gravarRelatorio = true; } else { if (MessageBox.Show("Deseja realmente salvar a alteração neste relatório?\nAtenção, ao salvar a alteração PERDERÁ o suporte de versão deste relatório!", "Mensagem", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == System.Windows.Forms.DialogResult.Yes) { Cad_Report.ID_RDC = ""; gravarRelatorio = true; } else { gravarRelatorio = false; } } //GRAVA O REPORT if (gravarRelatorio) { if (Cad_Report.DS_Report != "") { if (Cad_Report.Versao == 0) { Cad_Report.Versao = 1; } Cad_Report.Code_Report = Utils.Compact_Data.Compactar(System.Text.ASCIIEncoding.UTF8.GetBytes(modeloRelatorio)); string ret_report = TCN_Cad_Report.GravarReport(Cad_Report, null); Cad_Report.ID_Report = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(ret_report, "@P_ID_REPORT")); } } if ((Utils.Parametros.pubLogin == "MASTER") || (Utils.Parametros.pubLogin == "DESENV")) { if (MessageBox.Show("Deseja publicar esta versão?\nAtenção, ao publicar a versão já será homologada automaticamente!", "Mensagem", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { Cad_Report.Versao++; Cad_Report.lConsulta = TCN_Cad_Consulta.Busca(decimal.Zero, string.Empty, string.Empty, Cad_Report.ID_Report); AtualizarRDC.GravarRDC(Cad_Report, null, "P"); } } } } else { Cad_Report.Code_Report = Compact_Data.Compactar(System.Text.ASCIIEncoding.UTF8.GetBytes(modeloRelatorio)); } } catch (Exception erro) { MessageBox.Show(erro.Message, "Mensagem"); } }