예제 #1
0
        /// <summary>
        /// Valida as informações preenchidas na entidade CFG_ServidorRelatorio
        /// </summary>
        /// <param name="srr">Servidor de relatórios</param>
        /// <returns>Entidade CFG_ServidorRelatorio</returns>
        private static CFG_ServidorRelatorio ValidarEntidade(CFG_ServidorRelatorio srr)
        {
            CFG_ServidorRelatorio rlt = new CFG_ServidorRelatorio()
            {
                ent_id = srr.ent_id
                ,
                srr_id = srr.srr_id
            };

            rlt = CFG_ServidorRelatorioBO.GetEntity(rlt);

            rlt.srr_nome                = srr.srr_nome;
            rlt.srr_descricao           = srr.srr_descricao;
            rlt.srr_remoteServer        = srr.srr_remoteServer;
            rlt.srr_usuario             = srr.srr_usuario;
            rlt.srr_dominio             = srr.srr_dominio;
            rlt.srr_diretorioRelatorios = srr.srr_diretorioRelatorios;
            rlt.srr_pastaRelatorios     = srr.srr_pastaRelatorios;
            rlt.srr_situacao            = srr.srr_situacao;

            if (!(String.IsNullOrEmpty(srr.srr_senha)) && rlt.srr_remoteServer)
            {
                rlt.srr_senha = srr.srr_senha;
            }

            if (!rlt.srr_remoteServer)
            {
                rlt.srr_usuario             = String.Empty;
                rlt.srr_senha               = String.Empty;
                rlt.srr_dominio             = String.Empty;
                rlt.srr_diretorioRelatorios = String.Empty;
            }

            if (rlt.IsNew)
            {
                rlt.srr_dataCriacao   = DateTime.Now;
                rlt.srr_dataAlteracao = DateTime.Now;
            }

            return(rlt);
        }
예제 #2
0
        /// <summary>
        /// Salva todas as informações relacionadas ao servidor de relatórios
        /// </summary>
        /// <param name="srr">Servidor de relatórios</param>
        /// <param name="relatorios">Lista de relatórios relacionados ao servidor</param>
        /// <returns>Verdadeiro ou Falso</returns>
        public static bool SalvarServidorRelatorio(CFG_ServidorRelatorio srr, List <CFG_RelatorioServidorRelatorio> listRlt)
        {
            bool salvou = false;

            // Única transação para salvar todos os dados
            CFG_RelatorioDAO rltDao = new CFG_RelatorioDAO();

            rltDao._Banco.Open(IsolationLevel.ReadCommitted);

            try
            {
                // Salva os dados do servidor de relatórios
                CFG_ServidorRelatorioBO.Save(ValidarEntidade(srr), rltDao._Banco);

                // Deleta todos os relatórios relacionados ao Servidor para posterior atualização
                CFG_RelatorioServidorRelatorioBO.DeletarRelatoriosPorEntidadeServidor(srr, rltDao._Banco);

                // Inserção dos relatórios
                listRlt.ForEach(p => CFG_RelatorioServidorRelatorioBO.Save(p, rltDao._Banco));

                salvou = true;
            }
            catch (Exception ex)
            {
                rltDao._Banco.Close(ex);
                throw;
            }
            finally
            {
                if (rltDao._Banco.ConnectionIsOpen)
                {
                    rltDao._Banco.Close();
                }
            }

            return(salvou);
        }
예제 #3
0
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (!IsPostBack)
            {
                //recebe valores da sessão e grava em variáveis
                string tipoRel       = CFG_RelatorioBO.CurrentReportID;
                string parametrosRel = CFG_RelatorioBO.CurrentReportParameters;

                if (!String.IsNullOrEmpty(tipoRel))
                {
                    this.QueryStringUrlReports = "tipRel=" + HttpUtility.UrlEncode(tipoRel) + "&params=" + HttpUtility.UrlEncode(parametrosRel);

                    //remove os valores da sessão
                    CFG_RelatorioBO.ClearSessionReportParameters();
                    //Recebe os dados do relatório
                    CFG_Relatorio rpt = new CFG_Relatorio()
                    {
                        rlt_id = int.Parse(tipoRel)
                    };
                    CFG_RelatorioBO.GetEntity(rpt);
                    if (rpt.IsNew)
                    {
                        throw new ValidationException("Relatório não encontrado.");
                    }
                    //Configurações do Relatório
                    CFG_ServidorRelatorio rptServer = CFG_ServidorRelatorioBO.CarregarServidorRelatorioPorEntidade(
                        this.__SessionWEB.__UsuarioWEB.Usuario.ent_id
                        , ApplicationWEB.AppMinutosCacheLongo
                        );

                    if (rptServer.IsNew)
                    {
                        throw new ValidationException("O servidor de relatório não está configurado.");
                    }

                    VerificaAtributosReport(rpt.rlt_id);

                    //Carrega os parâmetros do relatório
                    MSReportServerParameters param = new MSReportServerParameters(parametrosRel);

                    //Verifica se está Habilitada a impressão sem activeX
                    bool bHabilitarImpressaoRel = ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.HABILITA_IMPRESSAO_RELATORIO
                                                                                                             , __SessionWEB.__UsuarioWEB.Usuario.ent_id);

                    this.HabilitarImpressaoRel      = bHabilitarImpressaoRel;
                    divPdf.Visible                  = bHabilitarImpressaoRel;
                    ReportViewerRel.ShowPrintButton = !bHabilitarImpressaoRel;

                    //Verifica se usuário vizualizará algum relatório da aba 'DOCUMENTOS'
                    if (_VS_TipoRelatorio == tipoRelatorio.Documento)
                    {
                        // Habilita ou desabilita, conforme configuração do parâmetro HABILITA_EXPORTACAO_IMPRESSAO_DOCUMENTOS, se vai ter botão de exportar documento no ReportView.
                        ReportViewerRel.ShowExportControls = ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.HABILITA_EXPORTACAO_IMPRESSAO_DOCUMENTOS
                                                                                                                        , __SessionWEB.__UsuarioWEB.Usuario.ent_id);
                    }

                    //Checa o modo de processamento do servidor
                    if (rptServer.srr_remoteServer)
                    {
                        //Configura o reportviewer
                        ReportViewerRel.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote;
                        Uri urlReport = new Uri(rptServer.srr_diretorioRelatorios);
                        ReportViewerRel.ServerReport.ReportServerUrl         = urlReport;
                        ReportViewerRel.ServerReport.ReportServerCredentials = new MSReportServerCredentials(rptServer.srr_usuario, rptServer.srr_senha, rptServer.srr_dominio);
                        ReportViewerRel.ServerReport.ReportPath = String.Concat(rptServer.srr_pastaRelatorios, rpt.rlt_nome);
                        ReportViewerRel.ServerReport.SetParameters(param.getReportParameters());
                        //Recebe as configurações do delegate
                        ConfigRemoteRerpotViewerEvent configRemoteRerpotViewer = Events[ConfigRemoteRerpotViewerKey] as ConfigRemoteRerpotViewerEvent;
                        if (configRemoteRerpotViewer != null)
                        {
                            configRemoteRerpotViewer(ReportViewerRel);
                        }
                        //Carrega o relatório
                        ReportViewerRel.ServerReport.Refresh();
                    }
                    else
                    {
                        //Configura o reportviewer
                        ReportViewerRel.ProcessingMode         = Microsoft.Reporting.WebForms.ProcessingMode.Local;
                        ReportViewerRel.LocalReport.ReportPath = String.Concat(rptServer.srr_pastaRelatorios, rpt.rlt_nome);
                        ReportViewerRel.LocalReport.SetParameters(param.getReportParameters());
                        //Recebe as configurações do delegate
                        ConfigLocalRerpotViewerEvent configLocalRerpotViewer = Events[ConfigLocalRerpotViewerKey] as ConfigLocalRerpotViewerEvent;
                        if (configLocalRerpotViewer != null)
                        {
                            configLocalRerpotViewer(ReportViewerRel);
                        }
                        //Carrega o relatório
                        ReportViewerRel.LocalReport.Refresh();
                    }
                }
                else
                {
                    string nome = _VS_TipoRelatorio == tipoRelatorio.Relatorio ? "relatório" : "documento";
                    _lblMensagem.Text = UtilBO.GetErroMessage("Não foi possível carregar o " + nome + ". Tipo de relatório indisponível.", UtilBO.TipoMensagem.Informacao);
                }
            }

            this.Page.ClientScript.RegisterClientScriptBlock(this.Page.GetType(), "reports", " var query= '" + this.QueryStringUrlReports + "';", true);
        }
        catch (ValidationException ex)
        {
            this._TrataErro(ex, ex.Message);
        }
        catch (Exception ex)
        {
            string nome = _VS_TipoRelatorio == tipoRelatorio.Relatorio ? "relatório" : "documento";
            this._TrataErro(ex, "Recurso indisponível ao exibir o " + nome + ".");
        }
    }