terça-feira, 5 de janeiro de 2010

Criando Relatórios com Reporting Services e acessando direto do servidor via WebForm - Parte 1

Olá,

faz tempo que não faço uma postagem, é estou muito ocupado ultimamente mas vou continuar a postar novamente.
segue continuação dos posts de Reporting services com Aspx.


Classe de Controle para a geração do relatório.

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Reporting.WinForms;
using System.Net;
using System.Configuration;
using System.IO;
using System.Diagnostics;
using System.Windows.Forms;
using System.Drawing.Printing;


public class CtrlRelatorios
{
ReportViewer Report = null;
private string _urlServidor;

public string UrlServidor
{
get { return _urlServidor; }
set { _urlServidor = value; }
}

private string _caminho;

public string Caminho
{
get { return _caminho; }
set { _caminho = value; }
}

private ReportParameter[] _parametros;

public ReportParameter[] Parametros
{
get { return _parametros; }
set { _parametros = value; }
}

private ReportViewer _relatorio;

public ReportViewer Relatorio
{
get { return _relatorio; }
set { _relatorio = value; }
}

private string _usuario;

public string Usuario
{
get { return _usuario; }
set { _usuario = value; }
}

private string senha;

public string Senha
{
get { return senha; }
set { senha = value; }
}

private string dominio;

public string Dominio
{
get { return dominio; }
set { dominio = value; }
}

public void CriaReport()
{
Report.ShowToolBar = true;
Report.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Remote;

//Url do servidor de relatorios no seguinte formato (http://localhost/ReportServer)
Report.ServerReport.ReportServerUrl = new System.Uri(UrlServidor);

//Caminho do relatorio no seguinte formato (/Pasta/NomedoRelatorio)
Report.ServerReport.ReportPath = Caminho;

//credenciais de Autenticação.
System.Net.ICredentials Dcredentials = new NetworkCredential
(
Usuario,
Senha,
Dominio
);

//credenciais de Autenticação.
System.Net.ICredentials credentials = new NetworkCredential
(
Usuario,
Senha
);

ReportServerCredentials rsCredentials = Report.ServerReport.ReportServerCredentials;

if (!string.IsNullOrEmpty(Usuario) && !string.IsNullOrEmpty(Senha) && !string.IsNullOrEmpty(Dominio))
rsCredentials.NetworkCredentials = Dcredentials;
else if (!string.IsNullOrEmpty(Usuario) && !string.IsNullOrEmpty(Senha))
rsCredentials.NetworkCredentials = credentials;
else
Usuario = "Default";

//Parametros no seguinte formato.
//(
// ReportParameter[] param = new ReportParameter[2]
// param[0] = new ReportParameter("nomeParametro", "valorParametro");
// param[1] = new ReportParameter("nomeParametro", "valorParametro");
//)

if (Parametros != null)
{
Report.ServerReport.SetParameters(Parametros);
Report.ShowParameterPrompts = false;
}
}

public void BindServerReport()
{
Report = Relatorio;
CriaReport();
Report.RefreshReport();
}

}
}


Obrigado e até a próxima.

Nenhum comentário:

Postar um comentário