/// <summary> /// Gera o relatorio e gera o spool se o parametro foi setado. /// </summary> /// <param name="rptImage"></param> public static void PrintReportAndGenerateSpool(ReportImage rptImage) { try { /* * Forma de geração do relatório. * * 1 = Gera e visualiza sem gravar no spool, * 2 = Gera e visualiza gravando no spool, * 3 = Gera somente em spool. */ var param = ParametroManager.FindParamByTypeParametro(Framework.Enumeradores.TypeParametro.report_engine); if (param.ValorParametro == "2") { new ReportSpoolDaoManager().PrintReportSpool(rptImage.IdReport); } else if (param.ValorParametro == "3") { new ReportSpoolDaoManager().PrintReportSpool(rptImage.IdReport, false); } else { //usar esse pq no azure nao tenho espaco pro spool por enquanto PrintReport(rptImage, false); } //nao podemos impedir a rotina de funcionar } catch (Exception ex) { XMessageIts.ExceptionJustMessage(ex, "Falha ao gerar o relatório."); } }
/// <summary> /// Criar/Alterar relatorio carregado para o cache /// </summary> /// <param name="reportImageAnt"></param> public RbbFrmReportEditorNew(ReportImage reportImageAnt) : this() { this.reportImageAnt = reportImageAnt; try { if (reportImageAnt.IdReport == 0) { reportDesigner1.CreateNewReport(); reportDesigner1.ActiveDesignPanel.Report.DisplayName = reportImageAnt.ReportDescription; } else { //abri o relatório selecionado var path = new ReportDaoManager().LoadToCache(this.reportImageAnt); reportDesigner1.OpenReport(path); reportDesigner1.ActiveDesignPanel.Name = this.reportImageAnt.ReportName; reportDesigner1.ActiveDesignPanel.Report.Name = this.reportImageAnt.ReportName; } this.sqlDataSource = new SqlDataSource(ReportUtil.GetParamDataSource()); reportDesigner1.ActiveDesignPanel.Report.DataSource = sqlDataSource; } catch (Exception ex) { LoggerUtilIts.GenerateLogs(ex); } }
private void workerRemoveBlack_ProgressChanged(object sender, System.ComponentModel.ProgressChangedEventArgs e) { ReportImage _temp = (ReportImage)e.UserState; this.Text = e.ProgressPercentage.ToString() + "%"; switch (libraryType) { case Common.LibraryType.None: break; case Common.LibraryType.CSharpLibraryV1: break; case Common.LibraryType.CSharpLibraryV2: CSharpV2ImageLibrary.Images[_temp.Index].Image = _temp.Image; break; case Common.LibraryType.WeMadeLibrary: WemadeLibrary.Images[_temp.Index].Image = _temp.Image; break; case Common.LibraryType.WTLLibrary: WTLLibrary.Images[_temp.Index].Image = _temp.Image; break; default: break; } }
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 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!"); } } }
/// <summary> /// Visualiza um relatório. /// <br> /// O relatório sempre será escrito no disco. /// </br> /// O designer é montando manualmente. /// </summary> /// <param name="report"></param> public static void PrintReportOverwrite(ReportImage report) { try { using (var ctx = new ReportContext()) { var current = ctx.ReportImageDao.Find(report.IdReport); string path = Path.Combine(Application.StartupPath, "Reports", current.ReportName + ".repx"); FileManagerIts.WriteBytesToFile(path, current.ReportImageData); //carregue a estrutura do relatório XtraReport xreport = XtraReport.FromFile(path, true); //objeto para gerar a tela de parametros ReportPrintTool reportPrintTool = new ReportPrintTool(xreport); //chama a tela de parametros xreport.CreateDocument(); //gera o relatorio PrintPreviewFormEx preview = new PrintPreviewFormEx(); preview.PrintingSystem = xreport.PrintingSystem; //exibe o relatorio preview.ShowDialog(); } } catch (Exception ex) { XMessageIts.Erro("Falha gerar relatório\n\n" + ex.Message, "Atenção!!!"); LoggerUtilIts.GenerateLogs(ex); } }
private void btnSalvar_ItemClick(object sender, ItemClickEventArgs e) { if (reportImageAnt == null || reportImageAnt.IdReport == 0) { //persiste o objeto no banco this.reportImageAnt = new ReportDaoManager().SaveReport(reportDesigner1, reportImageAnt); //se o objeto passar a ser diferente de null então foi salvo //e agora passarei a editar if (reportImageAnt != null) { XMessageIts.Mensagem("Relatório salvo com sucesso!"); } } else { //seta o nome do relatorio no design reportDesigner1.ActiveDesignPanel.Report.Name = reportImageAnt.ReportName; //prevent "Report has been changed" reportDesigner1.ActiveDesignPanel.ReportState = ReportState.Saved; //atualiza o relatorio no banco if (new ReportDaoManager().UpdateReport(reportDesigner1, reportImageAnt)) { XMessageIts.Mensagem("Relatório atualizado com sucesso!"); } } }
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!"); } } } }
public RepositoryActionResult <ReportImage> Update(ReportImage t) { try { var existingData = _ctx.ReportImages.FirstOrDefault(exp => exp.Id == t.Id); if (existingData == null) { return(new RepositoryActionResult <ReportImage>(t, RepositoryActionStatus.NotFound)); } _ctx.Entry(existingData).State = EntityState.Detached; _ctx.ReportImages.Attach(t); _ctx.Entry(t).State = EntityState.Modified; var result = _ctx.SaveChanges(); if (result > 0) { return(new RepositoryActionResult <ReportImage>(t, RepositoryActionStatus.Updated)); } else { return(new RepositoryActionResult <ReportImage>(t, RepositoryActionStatus.NothingModified, null)); } } catch (Exception ex) { return(new RepositoryActionResult <ReportImage>(null, RepositoryActionStatus.Error, ex)); } }
public void Client_TestImageReport() { var dataSources = new Dictionary <string, DataSource>() { { "MANF_DATA_2009", new XmlDataSource(File.OpenRead(SampleTemplatesFolder + @"\Manufacturing.xml")) } }; var templateFilePath = SampleTemplatesFolder + @"\Manufacturing.docx"; List <byte[]> pages = new List <byte[]>(); using (var templateFile = File.OpenRead(templateFilePath)) { var imageFormat = "bmp"; var report = new ReportImage(uri, imageFormat, templateFile, pages); report.Dpi = 96; report.Process(dataSources); var pageNo = 0; foreach (var page in pages) { var path = string.Format(@"{0}\image_{1}.{2}", SampleTemplatesFolder, ++pageNo, imageFormat); File.WriteAllBytes(path, page); } } }
/// <summary> /// Localiza um relatorio no banco e carrega para um arquivo temporario /// Este cache irá ser salvo no banco /// </summary> /// <param name="reportID"></param> public string LoadToCache(ReportImage report) { try { using (var ctx = new ReportContext()) { //recupera o objeto do banco para alteração dos campos report = ctx.ReportImageDao.Find(report.IdReport); //caminho do relatorio string reportPath = string.Format("{0}\\{1}", _reportDir, report.ReportName + ".repx"); //gera o arquivos atraves dos bytes salvo no banco if (!File.Exists(reportPath)) { FileManagerIts.WriteBytesToFile(reportPath, report.ReportImageData); } return(reportPath); } } catch (Exception) { return(null); } }
private void btnSalvar_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (_reportImageAnt == null) { var newReport = new ReportImage(_descricaoRelatorio, _idGrupoRelatorio); //persiste o objeto no banco this._reportImageAnt = new ReportDaoManager().SaveReport(itsReportDesign, newReport); //se o objeto passar a ser diferente de null então foi salvo //e agora passarei a editar if (_reportImageAnt != null) { XMessageIts.Mensagem("Relatório salvo com sucesso!"); } } else { //esse comando nao funciona itsReportDesign.ActiveDesignPanel.Report.Name = _reportImageAnt.ReportName; //prevent "Report has been changed" itsReportDesign.ActiveDesignPanel.ReportState = ReportState.Saved; //atualiza o relatorio no banco if (new ReportDaoManager().UpdateReport(itsReportDesign, _reportImageAnt)) { XMessageIts.Mensagem("Relatório atualizado com sucesso!"); } } }
public static void ImportReportFromFiles(params string[] filesReports) { using (var ctx = new ReportContext()) { try { Dictionary <string, bool> importados = new Dictionary <string, bool>(); foreach (var file in filesReports) { var bytesFile = FileManagerIts.GetBytesFromFile(file); var rptDeserializado = SerializeIts.DeserializeObject <ReportImage>(bytesFile); var rptCreateUpdate = ctx.ReportImageDao.Where(r => r.ReportName == rptDeserializado.ReportName) .FirstOrDefault(); //relatorio ja existe if (rptCreateUpdate != null) { var msg = "O relatório selecionado já existe, deseja atualiza-lo?"; var confirm = XMessageIts.Confirmacao(msg); if (confirm == DialogResult.Yes) { rptCreateUpdate.Update(rptDeserializado); var traUpd = ctx.ReportImageDao.Update(rptCreateUpdate); if (traUpd) { XMessageIts.Mensagem("Relatório atualizado com sucesso!"); } } } //relatorio nao existe, entao vai criar else { var newReport = new ReportImage(); newReport.IdGrpReport = rptDeserializado.IdGrpReport; newReport.ReportDescription = rptDeserializado.ReportDescription; newReport.ReportImageData = rptDeserializado.ReportImageData; newReport.ReportName = rptDeserializado.ReportName; importados.Add(newReport.ReportName, ctx.ReportImageDao.Save(newReport)); } } if (importados.Where(i => i.Value == false).Count() == 0) { XMessageIts.Mensagem("Relatórios importado com sucesso!"); } else { XMessageIts.Advertencia("Ocorreram erros ao importar o(s) dashboard(s) !"); } } catch (Exception ex) { XMessageIts.ExceptionMessageDetails(ex, "Falha ao importar o relatório"); } } }
/// <summary> /// Criar/Alterar um ReportImage /// </summary> /// <param name="reportImage"></param> public XFrmAddReport(ReportImage reportImage) : this() { this.DashboardImage = null; this.ReportImage = reportImage; this.cbGrupoRelatorio.Properties.Items.Add(reportImage.Grupo); this.cbGrupoRelatorio.SelectedIndex = 0; this.txtDescricaoRelatorio.Text = reportImage.ReportDescription; }
public async Task <ActionResult> UploadImage(FormCollection fc, IEnumerable <HttpPostedFileBase> files) { ReportImage reportImage = null; HtmlToText convert = new HtmlToText(); ManageMessageId?message; try { int reportId = Convert.ToInt32(fc["ReportId"]); var user = await UserManager.FindByIdAsync(User.Identity.GetUserId()); var userReport = _applicationDbContext.Reports.Where(m => m.ReportId == reportId).SingleOrDefault(); string loggedUserId = user.Id; string userrptId = userReport.UserId; string sm_titleC = userReport.CompanyorIndividual + " : " + convert.Convert(userReport.ReportText).Substring(0, 90); titleC = Regex.Replace(sm_titleC, "[^A-Za-z0-9]", "-"); iD = Guid.NewGuid().ToString(); var allowedExtensions = new[] { ".Jpg", ".png", ".jpg", ".jpeg", ".JPG", ".GIF", ".Gif", ".gif" }; var isReportExist = _applicationDbContext.Reports.Where(m => m.ReportId == reportId).SingleOrDefault(); foreach (var file in files) { var ext = Path.GetExtension(file.FileName); if (file != null && file.ContentLength > 0 && isReportExist != null && loggedUserId.Equals(userrptId) && allowedExtensions.Contains(ext)) { string filename = Guid.NewGuid() + Path.GetExtension(file.FileName); file.SaveAs(Path.Combine(Server.MapPath("~/ImageUpload"), filename)); reportImage = new ReportImage(); reportImage.ImageName = filename; reportImage.ReportId = Convert.ToInt32(fc["ReportId"]); reportImage.ImageCaption = fc["imgCaption"].ToString(); reportImage.DateCreated = DateTime.UtcNow; _applicationDbContext.ReportImages.Add(reportImage); await _applicationDbContext.SaveChangesAsync(); } else { message = ManageMessageId.Error; return(RedirectToAction("FileUpload", new { Controller = "Report", action = "FileUpload", title = titleC, page = Convert.ToInt32(fc["ReportId"]), id = iD, Message = message })); } } return(RedirectToAction("ReportDetails", new { Controller = "Report", action = "ReportDetails", title = titleC, page = Convert.ToInt32(fc["ReportId"]), id = iD })); } catch (Exception ex) { message = ManageMessageId.Error; return(RedirectToAction("FileUpload", new { Controller = "Report", action = "FileUpload", title = titleC, page = Convert.ToInt32(fc["ReportId"]), id = iD, Message = message })); } //return View(); }
/// <summary> /// Editar relatorio carregado para o cache /// <param name="reportImage"></param>Objeto de relatório public XtraForm1(ReportImage reportImage) : this() { this.reportImageAnt = reportImage; //abri o relatório selecionado //Abre o relatorio que foi armazenado no cache var path = new ReportDaoManager().LoadToCache(reportImageAnt); reportDesigner1.OpenReport(path); }
/// <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); } }
public ReportImageDto ReportImageToReportImageDto(ReportImage image) { return(new ReportImageDto { Id = image.Id, ReportId = image.ReportId, FileName = image.FileName, FileType = image.FileType, Description = image.Description, Size = image.Size, ImageDataUrl = image.ImageDataUrl }); }
/// <summary> /// Salva o relatorio que está aberto no banco /// </summary> /// <param name="reportDesigner"></param> /// <param name="report"></param> public ReportImage SaveReport(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 dashboard string reportPath = generatePath(report, ctx); using (MemoryStream ms = new MemoryStream()) { //salva o relatorio reportDesigner.ActiveDesignPanel.SaveReport(reportPath); //salva o layout em memoria xtraReport.SaveLayout(ms); xtraReport.SaveLayoutToXml(reportPath + ".xml"); //salva o relatorio no disco em formato repx xtraReport.SaveLayout(reportPath); //obtem os bytes do relatorio var bytes = ms.GetBuffer(); //gerar os bytes do arquivo report.ReportImageData = bytes; if (ctx.ReportImageDao.Save(report)) { return(report); } } } } catch (Exception ex) { XMessageIts.Advertencia("Houve um erro ao salvar relatório.\n\n" + ex.Message); LoggerUtilIts.GenerateLogs(ex); } return(null); }
public XFrmConfigSourceRpt(XtraReport report, ReportImage reportImageAnt) : this() { this.reportImageAnt = reportImageAnt; this.report = report; //se for um relatório novo que está sendo criado... if (reportImageAnt.Datasources.Count == 0) { this.sourceReport = new List <ReportDataSource>(); } else //edicao { this.sourceReport = reportImageAnt.Datasources.ToList(); } gridControl1.DataSource = this.sourceReport; }
private string generatePath(ReportImage report, ReportContext ctx) { //O nome do relatorio so pode ser setado pelo design var result = ctx.ReportImageDao.Last(); result = result == null ? new ReportImage() : result; int num = result.IdReport + 1; //se nao tem um nome gere if (string.IsNullOrEmpty(report.ReportName)) { report.ReportName = string.Format("{0}{1}", "Report", num); } var path = string.Format("{0}\\{1}{2}", _reportDir, report.ReportName, ".repx"); return(path); }
public static void PrintReportWithParams(ReportImage rptImage) { try { /* * Forma de geração do relatório. * * 1 = Gera e visualiza sem gravar no spool, * 2 = Gera e visualiza gravando no spool, * 3 = Gera somente em spool. */ var param = ParametroManager.GetValorParamByCodigo("report_eng"); if (param == "1") { //new ReportSpoolDaoManager().PrintReportSpool(rptSelected.IdReport); //usar esse aqui no azure pq nao tenho espaco pro spool por enquanto //acho q faz mais sentido salvar a ref do relatorio gerado //do q os bytes do relatorio uma vez que o relatorio ja existe //entao so a pk dele ja seria o suficiente ReportUtil.PrintReport(rptImage); } else if (param == "2") { new ReportSpoolDaoManager().PrintReportSpool(rptImage.IdReport); } else if (param == "3") { new ReportSpoolDaoManager().PrintReportSpool(rptImage.IdReport, false); } else { LoggerUtilIts.GenerateLogs(new Exception("Paramentro report_eng não existe.")); } //nao acontece nada //nao podemos impedir a rotina de funcionar } catch (Exception ex) { XMessageIts.ExceptionJustMessage(ex, "Falha ao gerar o relatório."); } }
public RepositoryActionResult <ReportImage> Insert(ReportImage t) { try { _ctx.ReportImages.Add(t); var result = _ctx.SaveChanges(); if (result > 0) { return(new RepositoryActionResult <ReportImage>(t, RepositoryActionStatus.Created)); } else { return(new RepositoryActionResult <ReportImage>(t, RepositoryActionStatus.NothingModified, null)); } } catch (Exception ex) { return(new RepositoryActionResult <ReportImage>(null, RepositoryActionStatus.Error, ex)); } }
//Editar relatorio selecionado private void btnEditReport_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (gridView1.IsSelectOneRowWarning()) { ReportImage reportSelect = gridView1.GetFocusedRow <ReportImage>(); if (ReportUtil.IsEditReport(reportSelect, _group)) { XFrmAddReport xFrmAddReport = new XFrmAddReport(reportSelect); if (barChEditarReport.Checked == false) { xFrmAddReport.ShowDialog(); //atualiza o nome do relatorio reportSelect = xFrmAddReport.ReportImage; } else { //chame o relatorio diretamente reportSelect = xFrmAddReport.CreateReport(); } if (!xFrmAddReport.IsCancelado && reportSelect != null) { new RbbFrmReportEditorNew(reportSelect).Show(); //atualiza na tabela reportSelect.ReportDescription = xFrmAddReport.ReportImage.ReportDescription; gridView1.RefreshData(); } } else { //senão, exibe mensagem informando da falta de permissao XMessageIts.Erro("Você não possue permissão para editar relatórios do sistema!"); } } }
public bool GenerateSpoolFromReport(ReportImage report) { try { using (var ctx = new ReportContext()) { //zipar a imagem var imageZipped = ZipUtil.ZipFromBytes(report.ReportImageData); //criaçao do relatorio var imgSave = new ReportSpool(DateTime.Now, report.ReportName, imageZipped); return(ctx.ReportSpoolDao.Save(imgSave)); } } catch (Exception ex) { Console.WriteLine("Falha na geração do spool"); LoggerUtilIts.GenerateLogs(ex, "Falha na geração do spool do relatório"); return(false); } }
/// <summary> /// Remove o relatório do banco /// </summary> /// <param name="report"></param>Relatório a ser removido /// <returns></returns> public bool RemoveReport(ReportImage report) { var ctx = new ReportContext(); report = ctx.ReportImageDao.Find(report.IdReport); //recuperar o objeto para o contexto. if (report != null) { if (ctx.ReportImageDao.Delete(report)) { return(true); } else { XMessageIts.Erro("Não foi possível remover o relatório!"); return(false); } } else { return(false); } }
public async Task <IHttpActionResult> Post() { // Check if the request contains multipart/form-data. if (!Request.Content.IsMimeMultipartContent("form-data")) { return(BadRequest("Unsupported media type")); } dynamic report = null; Report myrep = null; ReportImage reportImage = null; //string lastName = string.Empty; foreach (var i in Request.RequestUri.ParseQueryString().AllKeys) { if (i.Equals("report")) { JObject myObjet = new JObject(); Request.RequestUri.TryReadQueryAsJson(out myObjet); int k = 0; foreach (var m in myObjet) { if (k == 0) { dynamic json = JValue.Parse(m.Value.ToString()); report = json.report; } else { dynamic userid = m.Value.ToString(); report.userId = userid; report.DateCreated = DateTime.Now; report.Status = false; report.imageCaption = "This is a supporting document"; myrep = new Report(); myrep.Alias = report.alias; myrep.CategoryId = report.categoryId; myrep.CityId = report.cityId; myrep.Company = report.company; myrep.contactbyMedia = report.contactbyMedia; myrep.CreditCard = report.creditCard; myrep.DateCreated = report.DateCreated; myrep.Email = report.email; myrep.ReportText = report.reportText; myrep.fax = report.fax; myrep.LocationTypeId = report.locationTypeId; myrep.OnlineTransaction = report.onlineTransaction; myrep.PhoneNo = report.phoneNumber; myrep.ripTerms = true; myrep.StateId = report.stateId; myrep.Status = report.Status; myrep.Street = report.street; myrep.TopicId = report.topicId; myrep.UserId = report.userId; myrep.WebSite = report.website; } k = k + 1; } } } ReportController reportCtr = new ReportController(); int reportiD = 0; await reportCtr.Post(myrep); reportiD = myrep.Id; rId = reportiD; try { dynamic photos = await photoManager.Add(Request, rId); int imageCount = photos.Count; foreach (var p in photos) { for (int i = 0; i < imageCount; i++) { reportImage = new ReportImage(); reportImage.ImagePath = p.Name; reportImage.ReportId = reportiD; reportImage.ImageCaption = report.imageCaption; } var result = imageRepository.Insert(reportImage); if (result.Status == RepositoryActionStatus.Created) { } } return(Ok(new { Message = "Photos uploaded ok", Photos = photos })); } catch (Exception ex) { return(BadRequest(ex.GetBaseException().Message)); } }
/// <summary> /// Editar relatorio carregado para o cache /// <param name="reportImage"></param>Objeto de relatório public XFrmReportEditor(ReportImage reportImage) : this() { this._reportImageAnt = reportImage; }
/// <summary> /// Visualiza um relatório usando a inteface RibbonForm. /// </summary> /// <param name="report"></param> /// <param name="requestParameters"></param> /// <param name="visibleParameters"></param> public static void PrintReportRibbon(ReportImage report, bool requestParameters = true, bool visibleParameters = true) { printReport(report, requestParameters, visibleParameters, true); }
//Metodo refeito para melhoria na performace na geração do relatorio //Chamado internamanete private static void printReport(ReportImage report, bool requestParameters = true, bool visibleParameters = true, bool ribbon = false) { try { using (var ctx = new ReportContext()) { var current = ctx.ReportImageDao.Find(report.IdReport); string reportDir = Path.GetTempPath().Replace("Temp", "Reports"); string path = Path.Combine(reportDir, current.ReportName + ".repx"); //var pathPrnx = Path.Combine(Application.StartupPath, "Reports", current.ReportName + ".prnx"); //carregue a estrutura do relatório XtraReport xreport = new XtraReport(); if (!File.Exists(path)) { FileManagerIts.WriteBytesToFile(path, current.ReportImageData); } xreport.LoadLayout(path); var ds = xreport.DataSource as SqlDataSource; var appConf = AppConfigManager.Configuration.AppConfig; if (ds == null) { ds = new SqlDataSource(appConf.ServerName); } SetParamDataSource(ds, appConf); ds.Connection.CreateConnectionString(); ds.RebuildResultSchema(); //objeto para gerar a tela de parametros ReportPrintTool reportPrintTool = new ReportPrintTool(xreport); //permissao para solicitar os parametros xreport.RequestParameters = requestParameters; //permissao para exibir os parametros if (visibleParameters == false) { foreach (var p in xreport.Parameters) { p.Visible = false; } } //chama a tela de parametros xreport.CreateDocument(); //libera memoria da ferramenta reportPrintTool.Dispose(); if (ribbon) { //chama o ribbon para exibir o relatório xreport.ShowRibbonPreview(); } else { xreport.ShowPreview(); } ////carregando o relatório manualmente ////salva o documento gerado em prnx //xreport.PrintingSystem.SaveDocument(pathPrnx); //// Create a PrintingSystem instance. //PrintingSystem ps = new PrintingSystem(); //// Load the document from a file. //ps.LoadDocument(pathPrnx); ////ribbon form para visualizar o relatório //PrintPreviewRibbonFormEx preview = new PrintPreviewRibbonFormEx(); //preview.PrintingSystem = ps; ////xtraform para visualizar o relatório //PrintPreviewFormEx prev = new PrintPreviewFormEx(); //prev.PrintingSystem = ps; ////exibe o relatorio //preview.ShowDialog(); } } catch (Exception ex) { XMessageIts.Erro("Falha gerar relatório\n\n" + ex.Message, "Atenção!!!"); LoggerUtilIts.GenerateLogs(ex); } }