Array
(
)

ERRO REPORT VIEWER

Thiago Albuquerque.
|
MVP
Pontos: 100
    14 fev 2014

Olá pessoal,estou tentando gerar um relatório usando reportviewer mas está dando o seguinte erro:
A DataSourceID da ReportDataSource 'dsRelatorio' do ReportViewer '' deve ser a identificação de um controle do tipo IDataSource. Não foi possível localizar um controle com identificação 'System.Collections.Generic.List`1['.
O código é esse aqui:
A classe que gera o relatório:
#Códigopublic partial class FrmRelatoriosReportViewer : System.Web.UI.Page
{
SqlConnection Con = null;
protected void Page_Load(object sender, EventArgs e)
{
try
{
//Título da página
if (!IsPostBack)
{
Page.Title = "Relatório";
/***************************************************/
ClsRel lRel = new ClsRel();
List<object[]> lListaDataSource = new List<object[]>();
object[] lDsResolucoesHTML = { "dsRelatorio", lRel.GerarListaResolucoesHTML(Session["$SELECT$"].ToString()) };
lListaDataSource.Add(lDsResolucoesHTML);
rpvRelatorio.Visible = true;
this.rpvRelatorio.LocalReport.DataSources.Clear();
rpvRelatorio.LocalReport.ReportPath = Server.MapPath("~\\Relatórios\\" + Session["$Relatorio_rdlc$"].ToString());
foreach (object[] lItem in lListaDataSource)
{
ReportDataSource lDataSource = new ReportDataSource(lItem[0].ToString(), lItem[1].ToString());
rpvRelatorio.LocalReport.DataSources.Add(lDataSource);
}
this.rpvRelatorio.LocalReport.Refresh();
}
}
catch (Exception ex)
{
Con.Close();
ScriptManager.RegisterStartupScript(this, this.GetType(), "alerta", "window.alert('Não foi possível gerar o relatório:\n" + ex.Message + "');", true);
}
}
}


E o código da Classe lRel
#Códigopublic class ClsRel
{
SqlConnection Con = null;
public List<ListaResolucoesHTML> GerarListaResolucoesHTML(string pSelect)
{
try
{
string gSql = string.Empty;
SqlConnection con = new SqlConnection();
con.ConnectionString = "Password=1q2w3e!Q@W#E;Persist Security Info=True;User ID=sa;Initial Catalog=protocolo;Data Source=cdcsql";
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = pSelect;// Session["$SELECT$"].ToString();
DataTable dt = new DataTable();
dt.Load(cmd.ExecuteReader());
con.Close();
List<ListaResolucoesHTML> lLista = new List<ListaResolucoesHTML>();
foreach (DataRow lDr in dt.Rows)
{
ListaResolucoesHTML lAtributos = new ListaResolucoesHTML();
lAtributos.Numero_Resolucao = lDr["Numero_Resolucao"].ToString();
lAtributos.Data_resolucao = (DateTime)lDr["Data_resolucao"];
lAtributos.Sequencial_processo = lDr["Sequencial_processo"].ToString();
lAtributos.Volume_processo = Convert.ToInt32(lDr["Volume_processo"]);
lAtributos.Assunto = lDr["Assunto"].ToString();
lAtributos.Numero_Ord_Resolução = (int)lDr["Numero_Ord_Resolução"];
lAtributos.Descricao = lDr["Descricao"].ToString();
lAtributos.Seq_Documento_Sem_Volume = (int)lDr["Seq_Documento_Sem_Volume"];
lAtributos.Seq_Fonte_Recursos = lDr["Seq_Fonte_Recursos"].ToString();
lAtributos.seq_parte = Convert.ToInt32(lDr["seq_parte"]);
lAtributos.Desc_Interessado = lDr["Desc_Interessado"].ToString();
lAtributos.Valor = (decimal)lDr["Valor"];

lLista.Add(lAtributos);
}
//Session["ListaDataSource"] = lLista;
return lLista;
}
catch (Exception ex)
{
throw ex;
}
}
}
[Serializable]
public class ListaResolucoesHTML
{
public String Numero_Resolucao { get; set; }
public DateTime Data_resolucao { get; set; }
public String Sequencial_processo { get; set; }
public int Volume_processo { get; set; }
public String Fonte_Recursos { get; set; }
public String Assunto { get; set; }
public int Numero_Ord_Resolução { get; set; }
public String Descricao { get; set; }
public int Seq_Documento_Sem_Volume { get; set; }
public String Seq_Fonte_Recursos { get; set; }
public int seq_parte { get; set; }
public String Desc_Interessado { get; set; }
public Decimal Valor { get; set; }
public bool Validado { get; set; }
}


Se alguém puder ajudar ficarei muito grato.