Пример #1
0
        /// <summary>
        /// Cria um XtraReport a partir do nome do relatório salvo no banco.
        /// </summary>
        /// <param name="reportName"></param>
        /// <param name="showParams"></param>
        /// <returns></returns>
        public static XtraReport CreateReportByName(string reportName, bool showParams = true)
        {
            using (var ctx = new ReportContext())
            {
                try
                {
                    var    current = ctx.ReportImageDao.First(r => r.ReportName == reportName);
                    string dir     = Path.GetTempPath().Replace("Temp", "Reports");

                    FileManagerIts.CreateDirectory(dir);

                    string path = Path.Combine(dir, current.ReportName + ".repx");

                    //salva o report no disco
                    FileManagerIts.WriteBytesToFile(path, current.ReportImageData);

                    //carregue a estrutura do relatório
                    XtraReport report = XtraReport.FromFile(path, true);


                    if (showParams == false)
                    {
                        //nao exibe
                        foreach (var p in report.Parameters)
                        {
                            p.Visible = false;
                        }
                    }

                    //objeto para chamar a tela de parametros
                    ReportPrintTool reportPrintTool = new ReportPrintTool(report);

                    ReportUtil.SetParamDataSource(report.DataSource as SqlDataSource, AppConfigManager.Configuration.AppConfig);
                    //criar o documento
                    report.CreateDocument();

                    //libera memoria da ferramenta
                    reportPrintTool.Dispose();

                    //retorna o relatorio
                    return(report);
                }
                catch (Exception ex)
                {
                    XMessageIts.ExceptionMessageDetails(ex, "Impossível gerar relatório !", "Falha ao gerar relatório");
                    LoggerUtilIts.GenerateLogs(ex);
                    return(null);
                }
            }
        }
Пример #2
0
        public static bool IsEditReport(AbstractReportImage report, TypeGroupUser group)
        {
            var idGrpReport = (TypeReport)report.IdGrpReport;

            //outros grupos
            if (idGrpReport != TypeReport.Sistema ||
                //grupo Sistema somente adminstrador
                idGrpReport == TypeReport.Sistema && ReportUtil.IsAdmin(group))
            {
                return(true);
            }
            else
            {
                //senão, exibe mensagem informando da falta de permissao
                XMessageIts.Erro("Você não possue permissão para editar relatórios do sistema!");
                return(false);
            }
        }
Пример #3
0
        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.");
            }
        }
Пример #4
0
 public void PrintReport(int idreport)
 {
     ReportUtil.PrintReportAndGenerateSpool(idreport);
 }