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!"); } } }
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!"); } }
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!"); } } } }
/// <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); } }