Example #1
0
        /// <summary>
        /// Salva a configuração de servidor de relatórios
        /// </summary>
        private void Salvar()
        {
            try
            {
                CFG_ServidorRelatorio srr = new CFG_ServidorRelatorio()
                {
                    ent_id = _VS_ent_id
                    ,
                    srr_id = _VS_srr_id
                    ,
                    srr_nome = txtNomeServidor.Text
                    ,
                    srr_descricao = txtDescricaoServidor.Text
                    ,
                    srr_remoteServer = (ddlLocalProcessamento.SelectedIndex == 1)
                    ,
                    srr_usuario = txtUsuario.Text
                    ,
                    srr_dominio = txtDominio.Text
                    ,
                    srr_senha = chkAlterarSenha.Checked ? UtilBO.CriptografarSenha(txtSenha.Text, eCriptografa.TripleDES) : String.Empty
                    ,
                    srr_diretorioRelatorios = txtUrlRelatorios.Text
                    ,
                    srr_pastaRelatorios = txtPastaRelatorios.Text
                    ,
                    srr_situacao = Convert.ToInt16(ddlSituacao.SelectedIndex + 1)
                };

                List <CFG_RelatorioServidorRelatorio> relatorios =
                    (from ListItem row in chkRelatorios.Items
                     let rlt = row.Value.ToString().Split(';')
                               where row.Selected
                               select new CFG_RelatorioServidorRelatorio
                {
                    ent_id = srr.ent_id
                    ,
                    srr_id = srr.srr_id
                    ,
                    rlt_id = Convert.ToInt32(rlt[0])
                    ,
                    IsNew = true
                }
                    ).ToList();

                if (CFG_ServidorRelatorioBO.SalvarServidorRelatorio(srr, relatorios))
                {
                    lblMensagemErro.Text = UtilBO.GetErroMessage("Servidor de relatórios salvo com sucesso.", UtilBO.TipoMensagem.Sucesso);
                    AlterarCheckSenha(false);
                    ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Update, "ent_id: " + _VS_ent_id.ToString() + " , srr_id: " + _VS_srr_id);
                }
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
                lblMensagemErro.Text = UtilBO.GetErroMessage("Erro ao tentar salvar o servidor de relatórios.",
                                                             UtilBO.TipoMensagem.Erro);
            }
        }
Example #2
0
        /// <summary>
        /// Carrega os dados do servidor de relatórios
        /// </summary>
        private void CarregarEntidade()
        {
            _VS_ent_id = __SessionWEB.__UsuarioWEB.Usuario.ent_id;

            CFG_ServidorRelatorio srr = CFG_ServidorRelatorioBO.CarregarServidorRelatorioPorEntidade(_VS_ent_id);

            if (srr != null)
            {
                _VS_srr_id                          = srr.srr_id;
                txtNomeServidor.Text                = srr.srr_nome;
                txtDescricaoServidor.Text           = srr.srr_descricao;
                ddlLocalProcessamento.SelectedIndex = srr.srr_remoteServer ? 1 : 0;
                txtUsuario.Text                     = srr.srr_usuario;
                txtDominio.Text                     = srr.srr_dominio;
                txtUrlRelatorios.Text               = srr.srr_diretorioRelatorios;
                txtPastaRelatorios.Text             = srr.srr_pastaRelatorios;
                ddlSituacao.SelectedIndex           = (srr.srr_situacao - 1);
                AlterarSelecaoComboLocalProcessamento(srr.srr_remoteServer);
            }
            else
            {
                AlterarCheckSenha(true);
            }
        }
Example #3
0
        public void ProcessRequest(HttpContext context)
        {
            if (context.Request.IsAuthenticated)
            {
                try
                {
                    var tipRel        = HttpUtility.UrlDecode(HttpContext.Current.Request["tipRel"]);
                    var parametrosRel = HttpUtility.UrlDecode(HttpContext.Current.Request["params"]);
                    int rlt_id;

                    if (int.TryParse(tipRel, out rlt_id))
                    {
                        string    mimeType;
                        string    encoding;
                        string    fileNameExtension;
                        Warning[] warnings;
                        string[]  streamids;
                        byte[]    exportBytes;

                        //Recebe os dados do relatório
                        CFG_Relatorio rpt = new CFG_Relatorio()
                        {
                            rlt_id = rlt_id
                        };
                        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.");
                        }

                        //Carrega os parâmetros do relatório
                        MSReportServerParameters param = new MSReportServerParameters(parametrosRel);
                        //Checa o modo de processamento do servidor
                        if (rptServer.srr_remoteServer)
                        {
                            Microsoft.Reporting.WebForms.ReportViewer ReportViewerRel = new Microsoft.Reporting.WebForms.ReportViewer();

                            //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());

                            //Carrega o relatório
                            exportBytes = ReportViewerRel.ServerReport.Render("PDF", null, out mimeType, out encoding, out fileNameExtension, out streamids, out warnings);


                            #region PDF Sharp
                            //MemoryStream fs = new MemoryStream(exportBytes);
                            //PdfDocument document = PdfReader.Open(fs, PdfDocumentOpenMode.Modify);
                            //PdfDictionary dictJS = new PdfDictionary(document);
                            //dictJS.Elements["/S"] = new PdfName("/JavaScript");
                            //dictJS.Elements["/JS"] = new PdfString("this.print(true);\r");

                            //document.Internals.AddObject(dictJS);
                            //document.Internals.Catalog.Elements["/OpenAction"] = PdfInternals.GetReference(dictJS);


                            //MemoryStream ms = new MemoryStream();
                            //document.Save(ms, false);

                            #endregion

                            #region ITextSharp

                            MemoryStream ms = new MemoryStream();

                            PdfReader reader   = new PdfReader(exportBytes);
                            Document  document = null;
                            PdfCopy   writer   = null;
                            int       n        = reader.NumberOfPages;

                            document = new Document(reader.GetPageSizeWithRotation(1));
                            writer   = new PdfCopy(document, ms);
                            document.Open();
                            PdfImportedPage page;
                            for (int i = 0; i < n;)
                            {
                                ++i;
                                page = writer.GetImportedPage(reader, i);
                                writer.AddPage(page);
                            }
                            PdfAction jAction = PdfAction.JavaScript("this.print(true);\r", writer);
                            writer.AddJavaScript(jAction);

                            document.Close();
                            writer.Close();

                            #endregion

                            HttpResponse response = HttpContext.Current.Response;
                            response.ClearContent();
                            response.ClearHeaders();
                            response.Buffer = true;
                            response.Cache.SetCacheability(HttpCacheability.Private);
                            response.ContentType = "application/pdf";

                            response.AddHeader("Content-Disposition", "inline;");
                            response.BinaryWrite(ms.ToArray());
                            ms.Close();
                            HttpContext.Current.ApplicationInstance.CompleteRequest();

                            response.End();
                        }
                    }
                }
                catch (ThreadAbortException)
                {
                }
                catch (Exception ex)
                {
                    MSTech.GestaoEscolar.Web.WebProject.ApplicationWEB._GravaErro(ex);
                }
            }
        }