/// <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); }
/// <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); }
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) + "¶ms=" + 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 + "."); } }