示例#1
0
        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;
            }
        }
示例#2
0
        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)
            {
            }
        }