示例#1
0
        public static void ExportReport(ReportImage rpt)
        {
            SaveFileDialog sfd = new SaveFileDialog();

            sfd.Filter   = ReportFilter;
            sfd.FileName = "Export_" + rpt.ReportName;
            var op = sfd.ShowDialog();

            //novo
            var novo = new ReportImage();

            //gera um novo
            novo.Update(rpt);

            //serializa p relatorio
            var bytes = SerializeIts.SerializeObject(novo);

            if (op == DialogResult.OK)
            {
                if (FileManagerIts.WriteBytesToFile(sfd.FileName, bytes))
                {
                    XMessageIts.Mensagem("Arquivo salvo com sucesso!");
                }
                else
                {
                    XMessageIts.Erro("Erro na exportação do relatório!");
                }
            }
        }
示例#2
0
        public static void ExportReportList(List <ReportImage> reports)
        {
            string outReports = Path.Combine(FileManagerIts.DeskTopPath, "Reports ITS");

            if (!Directory.Exists(outReports))
            {
                FileManagerIts.CreateDirectory(outReports);
            }

            bool flag = false;

            foreach (var rpt in reports)
            {
                var novo = new ReportImage();
                //gera um novo
                novo.Update(rpt);

                string file = outReports + "\\" + rpt.ReportName + ".itsrpt";

                //serializa p relatorio
                var bytes = SerializeIts.SerializeObject(novo);
                flag = FileManagerIts.WriteBytesToFile(file, bytes);
            }
            if (flag)
            {
                XMessageIts.Mensagem("Relatórios exportados com sucesso!");
            }
            else
            {
                XMessageIts.Erro("Relatórios exportados com erro!");
            }
        }
示例#3
0
        public static void DuplicateReport(ReportImage rpt)
        {
            var op = XMessageIts.Confirmacao("Certeza que deseja criar uma cópia do relatório selecionado?");

            if (op == DialogResult.Yes)
            {
                using (var ctx = new ReportContext())
                {
                    //novo
                    var novo = new ReportImage();
                    //gera um novo
                    novo.Update(rpt);

                    var count = ctx.ReportImageDao.Where(r => r.ReportName == novo.ReportName).Count();

                    novo.ReportName        = novo.ReportName + "Duplicado_" + count;
                    novo.ReportDescription = novo.ReportDescription + "(Duplicado)";

                    if (ctx.ReportImageDao.Save(novo))
                    {
                        XMessageIts.Mensagem("Relatório duplicado com sucesso!");
                    }
                    else
                    {
                        XMessageIts.Erro("Erro na cópia do relatório!");
                    }
                }
            }
        }
示例#4
0
        /// <summary>
        /// Atualiza o relatorio que está sendo editado
        /// </summary>
        /// <param name="reportDesigner"></param>
        /// <param name="report"></param>
        public bool UpdateReport(XRDesignMdiController reportDesigner, ReportImage report)
        {
            try
            {
                using (var ctx = new ReportContext())
                {
                    //objeto designer do relatório
                    var xtraReport = reportDesigner.ActiveDesignPanel.Report;

                    //nome setado no relatório
                    //report.DefaultName = xtraReport.Name;

                    //gera um nome aleatorio utilizando o nome setado no relatório
                    string reportPath = generatePath(report, ctx);

                    using (MemoryStream ms = new MemoryStream())
                    {
                        //salva o layout em memoria
                        xtraReport.SaveLayout(ms);

                        //salva o relatorio no disco em formato repx (Fica serializado)
                        xtraReport.SaveLayout(reportPath);

                        ////salva pro xml
                        //xtraReport.SaveLayoutToXml(reportPath + ".xml");

                        //obtem os bytes do relatório
                        var bytes = ms.GetBuffer();

                        //AppConfigDefaultManager.Configuration.ChangeConnectionStringRuntime
                        //    ("ITS", AppConfigManager.Configuration.AppConfig.ConnectionString);

                        //passa o objeto para o contexto
                        var current = ctx.ReportImageDao.Find(report.IdReport);

                        //atualiza o relatorio
                        report.ReportImageData = bytes;

                        //passa pro objeto do contexto
                        current.Update(report);

                        report.Update(current);

                        //persiste a atualização no banco
                        return(ctx.ReportImageDao.Update(current));
                    }
                }
            }
            catch (Exception)
            {
                return(false);
            }
        }