Exemple #1
0
        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);
        }
Exemple #2
0
        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);
            }
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }