private InlineReportSlot CreateReportSlot(ReportManager reportManager) { var reportSlot = new InlineReportSlot { DocumentStream = LoadReportTemplate() }; reportManager.Reports.Add(reportSlot); return(reportSlot); }
private string DefineDesigner(TRegistro_CadContaGer RegModelo) { InlineReportSlot InlineCheque = new InlineReportSlot(); XmlDocument docXML = new XmlDocument(); if (string.IsNullOrEmpty(RegModelo.LayoutCheque)) { docXML.LoadXml(Utils.ResourcesUtils.ModeloCheque); } else { docXML.LoadXml(RegModelo.LayoutCheque); } InlineCheque.DocumentStream = docXML.InnerXml; //this.reportManager.Reports.Add(InlineCheque); InlineCheque.DesignTemplate(); docXML.LoadXml(InlineCheque.DocumentStream); return(docXML.InnerXml); }
public string DefineDesigner() { InlineReportSlot InlineNF = new InlineReportSlot(); XmlDocument docXML = new XmlDocument(); this.reportManager.Reports.Add(InlineNF); if (Cad_Report.Code_Report == null) { docXML.LoadXml(RDCPadrao.Code_Report); } else { docXML.LoadXml(System.Text.ASCIIEncoding.UTF8.GetString(Utils.Compact_Data.Descompactar(Cad_Report.Code_Report, string.Empty))); } InlineNF.DocumentStream = docXML.InnerXml; InlineNF.DesignTemplate(); docXML.LoadXml(InlineNF.DocumentStream); return(docXML.InnerXml); }
private void Imprime(TRegistro_CadContaGer LayoutCh, bool St_imprimir, bool St_visualizar, bool St_enviaremail, List <string> Destinatarios, string Titulo, string Mensagem) { InlineReportSlot InlineNF = new InlineReportSlot(); if (!string.IsNullOrEmpty(LayoutCh.LayoutCheque)) { InlineNF.DocumentStream = LayoutCh.LayoutCheque; } else { InlineNF.DocumentStream = Utils.ResourcesUtils.ModeloCheque; } this.reportManager.Reports.Add(InlineNF); this.reportManager.Reports[0].LoadReport(); this.reportManager.Reports[0].Prepare(); this.reportManager.Reports[0].GetReportParameter += new PerpetuumSoft.Reporting.Components.GetReportParameterEventHandler(this.Parametros); if (St_imprimir) { 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 = InlineNF; rpd.Print(); } } } } else if (St_visualizar) { using (PerpetuumSoft.Reporting.View.PreviewForm view = new PerpetuumSoft.Reporting.View.PreviewForm(this.reportManager.Reports[0])) { view.WindowState = FormWindowState.Maximized; view.ShowDialog(); } } if (St_enviaremail) { using (PerpetuumSoft.Reporting.Export.Pdf.PdfExportFilter pdf = new PerpetuumSoft.Reporting.Export.Pdf.PdfExportFilter()) { string path_anexo = System.IO.Path.GetTempPath(); if (!path_anexo.EndsWith("\\")) { path_anexo += System.IO.Path.DirectorySeparatorChar.ToString(); } path_anexo += "CHEQUE" + DateTime.Now.Date.Year.ToString() + DateTime.Now.Date.Month.ToString() + DateTime.Now.Date.Day.ToString() + DateTime.Now.Date.Hour.ToString() + DateTime.Now.Date.Minute.ToString() + DateTime.Now.Date.Second.ToString() + ".pdf"; if (pdf.ShowDialog() == DialogResult.OK) { pdf.Export(InlineNF.Document, path_anexo, false); if (new Email(Destinatarios, Titulo, Mensagem, new List <string>() { path_anexo }).EnviarEmail()) { MessageBox.Show("Email enviado com sucesso."); } if (System.IO.File.Exists(path_anexo)) { try { System.IO.File.Delete(path_anexo); } catch { } } } } } }
private string DefineDesigner(TRegistro_CFGImpNF RegCfgImpNf) { InlineReportSlot InlineNF = new InlineReportSlot(); XmlDocument docXML = new XmlDocument(); XmlNode no; this.reportManager.Reports.Add(InlineNF); if (RegCfgImpNf.Modelorst.Trim().Equals(string.Empty)) { Document doc = new Document(); doc.Name = "NotaFiscal"; doc.IsTemplate = true; doc.ScriptLanguage = ScriptLanguage.CSharp; Page page = new Page(); page.Name = "pageNotaFiscal"; page.Size = new PerpetuumSoft.Framework.Drawing.Vector(Convert.ToDouble(RegCfgImpNf.Larguranf), Convert.ToDouble(RegCfgImpNf.Alturanf)).ConvertUnits(Unit.Centimeter, Unit.InternalUnit); page.TemplateSize = new PerpetuumSoft.Framework.Drawing.Vector(Convert.ToDouble(RegCfgImpNf.Larguranf), Convert.ToDouble(RegCfgImpNf.Alturanf)).ConvertUnits(Unit.Centimeter, Unit.InternalUnit); page.PaperKind = PaperKind.Custom; page.CustomSize = new PerpetuumSoft.Framework.Drawing.Vector(Convert.ToDouble(RegCfgImpNf.Larguranf), Convert.ToDouble(RegCfgImpNf.Alturanf)).ConvertUnits(Unit.Centimeter, Unit.InternalUnit); doc.Pages.Add(page); Picture imagemFundo = new Picture(); imagemFundo.Name = "ImagemNF"; imagemFundo.Location = new PerpetuumSoft.Framework.Drawing.Vector(0f, 0f).ConvertUnits(Unit.Centimeter, Unit.InternalUnit); imagemFundo.Size = new PerpetuumSoft.Framework.Drawing.Vector(Convert.ToDouble(RegCfgImpNf.Larguranf), Convert.ToDouble(RegCfgImpNf.Alturanf)).ConvertUnits(Unit.Centimeter, Unit.InternalUnit); if (RegCfgImpNf.Img != null) { imagemFundo.Image = RegCfgImpNf.Imagem; } else { System.IO.MemoryStream ms = new System.IO.MemoryStream(); ms.Write(Convert.FromBase64String(imagemBranco), 0, Convert.FromBase64String(imagemBranco).Length); imagemFundo.Image = Image.FromStream(ms); } page.Controls.Add(imagemFundo); DataBand dataBand = new DataBand(); dataBand.Name = "BandaDadosGeral"; page.Controls.Add(dataBand); dataBand.Location = new PerpetuumSoft.Framework.Drawing.Vector(0f, 0.3f).ConvertUnits(Unit.Centimeter, Unit.InternalUnit); dataBand.Size = new PerpetuumSoft.Framework.Drawing.Vector(Convert.ToDouble(RegCfgImpNf.Larguranf), Convert.ToDouble(RegCfgImpNf.Alturanf)).ConvertUnits(Unit.Centimeter, Unit.InternalUnit); dataBand.DataSource = "DTS"; dataBand.ColumnsCount = 1; dataBand.ColumnsGap = Unit.Convert(0.5f, Unit.Centimeter, Unit.InternalUnit); DataBand dataBandProduto = new DataBand(); dataBandProduto.Name = "BandaDadosProdutos"; dataBand.Controls.Add(dataBandProduto); dataBandProduto.Location = new PerpetuumSoft.Framework.Drawing.Vector(0f, 0.5f).ConvertUnits(Unit.Centimeter, Unit.InternalUnit); dataBandProduto.Size = new PerpetuumSoft.Framework.Drawing.Vector(21.5f, 0.5f).ConvertUnits(Unit.Centimeter, Unit.InternalUnit); dataBandProduto.DataSource = "DTS.ItensNota"; dataBandProduto.ColumnsCount = 1; dataBandProduto.ColumnsGap = Unit.Convert(0.5f, Unit.Centimeter, Unit.InternalUnit); InlineNF.SaveReport(doc); } else { docXML.LoadXml(RegCfgImpNf.Modelorst); if (RegCfgImpNf.Img != null) { no = docXML.SelectSingleNode(String.Format("/root/Pages/Item/Controls/Item")); XmlNode noImg = no.SelectSingleNode("./Image"); if (noImg != null) { if (RegCfgImpNf.Img == null) { no.SelectSingleNode("./Image").InnerText = imagemBranco; } else { no.SelectSingleNode("./Image").InnerText = Convert.ToBase64String(RegCfgImpNf.Img); } } } InlineNF.DocumentStream = docXML.InnerXml; } InlineNF.DesignTemplate(); docXML.LoadXml(InlineNF.DocumentStream); no = docXML.SelectSingleNode(String.Format("/root/Pages/Item/Controls/Item")); XmlNode noImage = no.SelectSingleNode("./Image"); if (noImage != null) { no.SelectSingleNode("./Image").InnerText = imagemBranco; } return(docXML.InnerXml); }
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); }
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); }