public void LlenarDatos(List <ReportParameter> parametrosReporte, SqlParameter[] listaParametros) { try { string sp = Session["sp1"].ToString(); string nombreReporte = Session["nombreReporte1"].ToString(); DataTable dtParametros = (DataTable)Session["dtParametros1"]; for (int i = 0; i < dtParametros.Rows.Count; i++) { //Obtiene el nombre del parametro string nombreParametro = dtParametros.Rows[i]["Parametro"].ToString(); } //se llena el dataset o datos a mostrar desde un procedimiento almacenado que recibe 2 parametros en este caso DataSet dsDatos = oRetornarDatos.llenarDataSet(sp, listaParametros); List <DataTable> listaTablas = new List <DataTable>(); List <ReportDataSource> lista = new List <ReportDataSource>(); for (int i = 0; i < dsDatos.Tables.Count; i++) { listaTablas.Add(dsDatos.Tables[i]); ReportDataSource rs = new ReportDataSource(); rs.Name = "DataSet" + (i + 1).ToString(); rs.Value = dsDatos.Tables[i]; lista.Add(rs); } oReport.FillReport(lista, parametrosReporte, ReportViewer1, nombreReporte); } catch (Exception ex) { throw ex; } }
public void LlenarDatos() { try { string sp = Session["sp"].ToString(); string nombreReporte = Session["nombreReporte"].ToString(); //Lista de parametros para el reporte rdlc List <ReportParameter> parametrosReporte = new List <ReportParameter>(); DataTable dtParametros = (DataTable)Session["dtParametros"]; SqlParameter[] listaParametros = new SqlParameter[dtParametros.Rows.Count]; //Recuperar la lista de controles List <Object> listaControles = Session["listaControles"] as List <object>; for (int i = 0; i < dtParametros.Rows.Count; i++) { //Obtiene el nombre del parametro string nombreParametro = dtParametros.Rows[i]["Parametro"].ToString(); string tipo = listaControles.ElementAt(i).GetType().ToString(); if (tipo.Equals("System.Web.UI.WebControls.DropDownList")) { DropDownList ddl = listaControles.ElementAt(i) as DropDownList; SqlParameter p = new SqlParameter(nombreParametro, ddl.SelectedValue); listaParametros[i] = p; ReportParameter rp = new ReportParameter(nombreParametro.Replace("@", ""), ddl.SelectedValue); parametrosReporte.Add(rp); } else if (tipo.Equals("System.Web.UI.WebControls.TextBox")) { if (Session["ProveedorAsignado"] != null) { string prov = Session["ProveedorAsignado"].ToString(); //System.Diagnostics.Debug.WriteLine("proveedorparametor: " + prov); if (nombreParametro == "@Proveedor") { SqlParameter p = new SqlParameter(nombreParametro, prov); listaParametros[i] = p; ReportParameter rp = new ReportParameter(nombreParametro.Replace("@", ""), prov); parametrosReporte.Add(rp); } else { TextBox txt = listaControles.ElementAt(i) as TextBox; SqlParameter p = new SqlParameter(nombreParametro, txt.Text); listaParametros[i] = p; ReportParameter rp = new ReportParameter(nombreParametro.Replace("@", ""), txt.Text); parametrosReporte.Add(rp); } } else { TextBox txt = listaControles.ElementAt(i) as TextBox; SqlParameter p = new SqlParameter(nombreParametro, txt.Text); listaParametros[i] = p; ReportParameter rp = new ReportParameter(nombreParametro.Replace("@", ""), txt.Text); parametrosReporte.Add(rp); } } } List <ReportDataSource> lista = new List <ReportDataSource>(); //se llena el dataset o datos a mostrar desde un procedimiento almacenado que recibe 2 parametros en este caso DataSet dsDatos = oRetornarDatos.llenarDataSet(sp, listaParametros); List <DataTable> listaTablas = new List <DataTable>(); for (int i = 0; i < dsDatos.Tables.Count; i++) { listaTablas.Add(dsDatos.Tables[i]); ReportDataSource rs = new ReportDataSource(); rs.Name = "DataSet" + (i + 1).ToString(); rs.Value = dsDatos.Tables[i]; lista.Add(rs); } /* * DataTable dt = dsDatos.Tables[0]; * * ReportDataSource rdsData1 = new ReportDataSource(); * rdsData1.Name = "DataSet1"; * rdsData1.Value = dt;*/ ReportViewer1.LocalReport.EnableExternalImages = true; oReport.FillReport(lista, parametrosReporte, ReportViewer1, nombreReporte); } catch (Exception oException) { } }