Пример #1
0
 protected void btnSave_Click(object sender, EventArgs e)
 {
     //校验
     if (!DbHelperOra.Exists("SELECT 1 FROM DAT_STOCK_IMP WHERE LRY = '" + UserAction.UserID + "' AND FLAG = 'Y'"))
     {
         Alert.Show("不存在可生成单据的数据,请检查!", "提示信息", MessageBoxIcon.Warning);
         return;
     }
     if (!DbHelperOra.Exists("SELECT 1 FROM DOC_SUPPLIER WHERE SUPID = '00001'"))
     {
         Alert.Show("未定义医院供应商【00001】,请检查!", "提示信息", MessageBoxIcon.Warning);
         return;
     }
     OracleParameter[] param =
     {
         new OracleParameter("V_USER", OracleDbType.Varchar2, 20),
         new OracleParameter("V_TYPE", OracleDbType.Varchar2, 20),
     };
     param[0].Value = UserAction.UserID;
     param[1].Value = ddlTYPE.SelectedValue;
     try
     {
         DbHelperOra.RunProcedure("P_STOCK_IMP", param);
         Alert.Show("提交成功,已生成对应单据信息!", "提示信息", MessageBoxIcon.Information);
         GridStock.DataSource = null;
         GridStock.DataBind();
         btnSave.Enabled = false;
     }
     catch (Exception ex)
     {
         Alert.Show(ex.Message, "错误", MessageBoxIcon.Error);
     }
 }
Пример #2
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            //校验
            if (!DbHelperOra.Exists("SELECT 1 FROM dat_sl_imp WHERE LRY = '" + UserAction.UserID + "' AND FLAG = 'N'"))
            {
                Alert.Show("不存在可生成单据的数据,请检查!", "提示信息", MessageBoxIcon.Warning);
                return;
            }

            OracleParameter[] parameters = new OracleParameter[]
            {
                new OracleParameter("V_USER", OracleDbType.Varchar2),
                new OracleParameter("V_OPER", OracleDbType.Varchar2),
                new OracleParameter("V_SEQNO", OracleDbType.Varchar2),
            };

            parameters[0].Value = UserAction.UserID;
            parameters[1].Value = @"SL_SUMBIT";
            parameters[2].Value = hfdseqno.Text;
            try
            {
                DbHelperOra.RunProcedure("P_SL_IMPORT", parameters);
                Alert.Show("提交成功,已生成对应单据信息!", "提示信息", MessageBoxIcon.Information);
                GridStock.DataSource = null;
                GridStock.DataBind();
                btnSave.Enabled = false;
            }
            catch (Exception ex)
            {
                Alert.Show(ex.Message, "错误", MessageBoxIcon.Error);
            }
        }
Пример #3
0
 protected void btnData_Click(object sender, EventArgs e)
 {
     try
     {
         Total = 0;
         string cond = "", grpBy = "";
         cond = getCond();
         getGrpByAndSelCols();
         BusinessLogic objBL = new BusinessLogic(sDataSource);
         DataSet       ds    = new DataSet();
         ds = objBL.getStock(selCols, cond, grpBy);
         GridStock.DataSource = ds;
         GridStock.DataBind();
         //var lblTotalQty = GridStock.FooterRow.FindControl("lblTotalQty") as Label;
         //if (lblTotalQty != null)
         //{
         //    lblTotalQty.Text = Total.ToString();
         //}
         var lblTotalRate = GridStock.FooterRow.FindControl("lblTotalRate") as Label;
         if (lblTotalRate != null)
         {
             lblTotalRate.Text = Total.ToString();
         }
         var lblVaule = GridStock.FooterRow.FindControl("lblVaule") as Label;
         if (lblVaule != null)
         {
             lblVaule.Text = Total.ToString();
         }
     }
     catch (Exception ex)
     {
         TroyLiteExceptionManager.HandleException(ex);
     }
 }
Пример #4
0
 protected void btnSave_Click(object sender, EventArgs e)
 {
     //校验
     if (!DbHelperOra.Exists("SELECT 1 FROM IMP_DOC_GOODS WHERE IMPOPER = '" + UserAction.UserID + "' AND STR3 = 'Y'"))
     {
         Alert.Show("不存在可导入的数据,请检查!", "提示信息", MessageBoxIcon.Warning);
         return;
     }
     if (!DbHelperOra.Exists("SELECT 1 FROM DOC_SUPPLIER WHERE SUPID = '00001'"))
     {
         Alert.Show("未定义医院供应商【00001】,请检查!", "提示信息", MessageBoxIcon.Warning);
         return;
     }
     OracleParameter[] param = { new OracleParameter("V_USER",   OracleDbType.Varchar2, 20),
                                 new OracleParameter("V_TYPE",   OracleDbType.Varchar2, 20),
                                 new OracleParameter("V_CATID0", OracleDbType.Varchar2, 1) };
     param[0].Value = UserAction.UserID;
     param[1].Value = "INS";
     param[2].Value = string.IsNullOrWhiteSpace(ddlCATID0.SelectedValue) ? "2" : ddlCATID0.SelectedValue;
     try
     {
         DbHelperOra.RunProcedure("P_GOODS_IMP", param);
         Alert.Show("提交成功,商品资料信息已导入!", "提示信息", MessageBoxIcon.Information);
         GridStock.DataSource = null;
         GridStock.DataBind();
         btnSave.Enabled = false;
     }
     catch (Exception ex)
     {
         Alert.Show(ex.Message, "错误", MessageBoxIcon.Error);
     }
 }
Пример #5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["Login"] == null)
            {
                Response.Redirect("Login.aspx");
            }
            ControlConfig = (C_Configuracion)Session["ControlConfig"];

            ControlArticulo = (C_Articulo)Session["ControlArticulo"];
            List <Articulo> Lista = ControlArticulo.ListarStockBajo();

            if (Lista.Count != 0)
            {
                dt = new DataTable();
                dt.Columns.Add(new DataColumn("articuloid", System.Type.GetType("System.Int32")));
                dt.Columns.Add(new DataColumn("nombre", System.Type.GetType("System.String")));
                dt.Columns.Add(new DataColumn("descripcion", System.Type.GetType("System.String")));
                dt.Columns.Add(new DataColumn("marca", System.Type.GetType("System.String")));
                dt.Columns.Add(new DataColumn("cantidad", System.Type.GetType("System.Int32")));


                foreach (var Auxi in Lista)
                {
                    dt.Rows.Add(Auxi.Articuloid, Auxi.Nombre, Auxi.Descripcion, Auxi.Marca, Auxi.Cantidad);
                }
                GridStock.DataSource = dt;
                GridStock.DataBind();
                if (Session["StockMin"] == null)
                {
                    ModalPopupExtenderUno.Show();
                    Session["StockMin"] = "1";
                }
            }
            BtnSalir.Attributes.Add("onmouseover", "this.style.color = 'white'");
            BtnSalir.Attributes.Add("onmouseout", "this.style.color = 'red'");
            LBtnClientes.Attributes.Add("onmouseover", "this.style.color = 'black'");
            LBtnClientes.Attributes.Add("onmouseout", "this.style.color = 'white'");
            LBtnUsuario.Attributes.Add("onmouseover", "this.style.color = 'black'");
            LBtnUsuario.Attributes.Add("onmouseout", "this.style.color = 'white'");
            LBtnManual.Attributes.Add("onmouseover", "this.style.color = 'black'");
            LBtnManual.Attributes.Add("onmouseout", "this.style.color = 'white'");
            LBtnArticulos.Attributes.Add("onmouseover", "this.style.color = 'black'");
            LBtnArticulos.Attributes.Add("onmouseout", "this.style.color = 'white'");
            LBtnEmpleados.Attributes.Add("onmouseover", "this.style.color = 'black'");
            LBtnEmpleados.Attributes.Add("onmouseout", "this.style.color = 'white'");
            LBtnFacturacion.Attributes.Add("onmouseover", "this.style.color = 'black'");
            LBtnFacturacion.Attributes.Add("onmouseout", "this.style.color = 'white'");
            LBtnPedidos.Attributes.Add("onmouseover", "this.style.color = 'black'");
            LBtnPedidos.Attributes.Add("onmouseout", "this.style.color = 'white'");
            LBtnProveedores.Attributes.Add("onmouseover", "this.style.color = 'black'");
            LBtnProveedores.Attributes.Add("onmouseout", "this.style.color = 'white'");

            if (!IsPostBack)
            {
                GridStock.PageSize   = ControlConfig.DevolverNroMaxPaginacion();
                GridStock.DataSource = ControlArticulo.ListarStockBajo();
                GridStock.DataBind();
            }
        }
Пример #6
0
 protected void GridStock_PageIndexChanging(object sender, GridViewPageEventArgs e)
 {
     ModalPopupExtenderUno.Show();
     GridStock.PageIndex  = e.NewPageIndex;
     GridStock.PageSize   = ControlConfig.DevolverNroMaxPaginacion();
     GridStock.DataSource = ControlArticulo.ListarStockBajo();
     GridStock.DataBind();
 }
Пример #7
0
 protected void btnClear_Click(object sender, EventArgs e)
 {
     try
     {
         fuDocument.Reset();
         GridStock.DataSource = null;
         GridStock.DataBind();
     }
     catch
     {
         Alert.Show("没有数据哦!");
     }
 }
Пример #8
0
 protected void btnClear_Click(object sender, EventArgs e)
 {
     try
     {
         DbHelperOra.ExecuteSql("DELETE FROM IMP_DOC_GOODS");
         GridStock.DataBind();
         fuDocument.Reset();
     }
     catch
     {
         Alert.Show("没有数据哦!");
     }
 }
Пример #9
0
 //public InitialStock()
 //{
 //    if (chkRK.Checked)
 //    {
 //        BillType = "RKD";
 //    }
 //    else
 //    {
 //        BillType = "SYD";
 //    }
 //}
 protected void btnClear_Click(object sender, EventArgs e)
 {
     try
     {
         DbHelperOra.ExecuteSql("DELETE FROM DAT_STOCK_IMP");
         ViewTable.Clear();
         GridStock.DataBind();
         fuDocument.Reset();
     }
     catch
     {
         Alert.Show("没有数据哦!");
     }
 }
Пример #10
0
        protected void bind()
        {
            String Sql   = @"SELECT * FROM IMP_DOC_GOODS A  WHERE  A.IMPOPER = '{0}' ORDER BY MEMO";
            int    total = 0;

            GridStock.DataSource = DbHelperOra.Query(String.Format(Sql, UserAction.UserID)).Tables[0];
            DataTable dtData = PubFunc.DbGetPage(GridStock.PageIndex, GridStock.PageSize, String.Format(Sql, UserAction.UserID), ref total);

            GridStock.RecordCount = total;
            GridStock.DataSource  = dtData;
            GridStock.DataBind();
            if (dtData.Rows.Count > 0)
            {
                btnSave.Enabled = true;
            }
            else
            {
                btnSave.Enabled = false;
            }
        }
Пример #11
0
        protected void bind()
        {
            String Sql   = @" SELECT f_getdeptname(A.deptout) deptout,
                            f_getdeptname(A.deptoutname) deptoutname,
                            A.deptid,
                            A.deptname,
                            A.catid,
                            A.xsrq,
                            A.gdseq,
                            A.barcode,
                            NVL(B.HISNAME, B.GDNAME) GDNAME,
                            f_getunitname(B.UNIT) UNIT,
                            A.gdspec,
                            A.gdmode,
                            A.hwid,
                            A.dhsl,
                            A.ph,
                            A.pzwh,
                            A.rq_sc,
                            A.yxqz
                        FROM DAT_SL_IMP A, DOC_GOODS B
                        WHERE A.GDSEQ = B.GDSEQ(+)
                        AND A.LRY = '{0}' and a.flag='N'";
            int    total = 0;

            GridStock.DataSource = DbHelperOra.Query(String.Format(Sql, UserAction.UserID)).Tables[0];
            DataTable dtData = PubFunc.DbGetPage(GridStock.PageIndex, GridStock.PageSize, String.Format(Sql, UserAction.UserID), ref total);

            GridStock.RecordCount = total;
            GridStock.DataSource  = dtData;
            GridStock.DataBind();
            if (dtData.Rows.Count > 0)
            {
                btnSave.Enabled = true;
            }
            else
            {
                btnSave.Enabled = false;
            }
        }
Пример #12
0
        protected void bind()
        {
            String Sql   = @"SELECT f_getdeptname(A.DEPTID) DEPTIDNAME,A.GDSEQ,A.SL,A.PH,A.RQ_SC,A.YXQZ,A.MEMO,
                                       NVL(B.HISNAME,B.GDNAME) GDNAME,B.GDSPEC,f_getunitname(B.UNIT) UNITNAME,f_getproducername(A.STR1) PRODUCERNAME,f_getproducername(A.SUPPLIER) SUPPLIERNAME,
                                       B.PIZNO,B.HSJJ,A.FLAG
                                FROM DAT_STOCK_IMP A, DOC_GOODS B
                                WHERE A.GDSEQ = B.GDSEQ(+) AND A.LRY = '{0}' ORDER BY A.FLAG";
            int    total = 0;

            GridStock.DataSource = DbHelperOra.Query(String.Format(Sql, UserAction.UserID)).Tables[0];
            DataTable dtData = PubFunc.DbGetPage(GridStock.PageIndex, GridStock.PageSize, String.Format(Sql, UserAction.UserID), ref total);

            GridStock.RecordCount = total;
            GridStock.DataSource  = dtData;
            GridStock.DataBind();
            if (dtData.Rows.Count > 0)
            {
                btnSave.Enabled = true;
            }
            else
            {
                btnSave.Enabled = false;
            }
        }
Пример #13
0
 protected void btnclearall_Click(object sender, EventArgs e)
 {
     fuDocument.Reset();
     GridStock.DataSource = null;
     GridStock.DataBind();
 }
Пример #14
0
    protected void CargarNuevoGrid()
    {
        DataView dvORderTalla;
        String   StrCadena = String.Empty;


        //Tablas de resultados de BD
        DataTable dtTallas = ((DataView)SqlDataTallajes.Select(new DataSourceSelectArguments())).ToTable(true, new string[] { "Talla" });
        DataTable dtStock  = ((DataView)AVE_StockEnTiendaObtener.Select(new DataSourceSelectArguments())).Table.DataSet.Tables[0];



        //se ha metido en un dataview para poder ordenar las tallas y pasar al datatable Inicial
        dvORderTalla = dtTallas.DefaultView;

        dvORderTalla.Sort = "Talla";
        dtTallas          = dvORderTalla.ToTable();
        //----------------------------------

        //Añadimos las columnas dinámicas al grid. Es una por cada talla devuelta
        BoundField bf;

        foreach (DataRow dr in dtTallas.Rows)
        {
            bf                           = new BoundField();
            bf.DataField                 = dr["Talla"].ToString(); //El campo de la columna corresponde al nombre de la talla
            bf.HeaderText                = dr["Talla"].ToString();
            bf.HeaderStyle.Width         = Unit.Pixel(50);
            bf.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
            GridStock.Columns.Insert(GridStock.Columns.Count - 1, bf);
        }

        //Tabla de datos con el formato correcto
        DataTable dtResultado = new DataTable();

        //Columnas de resultados. Son dos fijas, una por talla y la de totales
        dtResultado.Columns.Add("IdTienda", typeof(string));
        dtResultado.Columns.Add("Tienda", typeof(string));
        foreach (DataRow dr in dtTallas.Rows)
        {
            dtResultado.Columns.Add(dr["Talla"].ToString(), typeof(string));           //Es un entero pues albergará la cantidad de stock
        }
        dtResultado.Columns.Add("Total", typeof(int));

        //Filas
        DataRow nuevaFila    = dtResultado.NewRow();
        string  prevIdTienda = string.Empty;            //Para controlar cual es la fila que se comprobó en la iteración anterior
        string  idTienda;                               //Para contener la fila que se está comprobando en esta iteración
        int     acumulado = 0;                          //Para ir sumando los totales por tienda
        int     auxCantidad;                            //Auxiliar para tratar con las cantidades pasadas a entero

        //Recorremos la tabla de stock devuelto. Como los resultados vienen ordenados por idtienda el procedimiento será:
        //Insertamos una fila con el primer registro y guardamos la tienda que es; en el siguiente registro comprobamos si
        //seguimos con la misma tienda, en cuyo caso no creamos fila nueva sino que solo incluimos el dato de stock para la
        //talla que sea; si el registro es de una tienda distinta, entonces sí creamos una fila nueva y además añadimos el
        //stock de la talla. Finalmente solo insertamos la fila si no está ya insertada.
        foreach (DataRow dr in dtStock.Rows)
        {
            idTienda = dr["IdTienda"].ToString();
            if (idTienda != prevIdTienda)                   //Si la fila anterior era de una tienda distinta entonces tenemos que crear una nueva fila para la tienda actual
            {
                nuevaFila             = dtResultado.NewRow();
                nuevaFila["IdTienda"] = dr["IdTienda"];
                nuevaFila["Tienda"]   = dr["Tienda"];

                acumulado          = 0;
                nuevaFila["Total"] = acumulado;                         //Metemos el valor a 0 para que no quede en blanco si no hay ninguna columna que sume
            }

            nuevaFila[dr["Talla"].ToString()] = dr["Cantidad"];         //Siempre insertamos el stock de la talla en la fila que se está manejando, que puede ser nueva o la de la iteración anterior

            //Acumulamos para el total solo si es una cantidad positiva
            if (int.TryParse(dr["Cantidad"].ToString(), out auxCantidad))
            {
                acumulado += auxCantidad;
                //Como no sé cual será la última cantidad a sumar en la fila para poner el valor en la columna, lo que hago es actualizar el valor de Total cada vez que varía el acumulado
                nuevaFila["Total"] = acumulado;
            }

            if (dtResultado.Rows.IndexOf(nuevaFila) == -1)              //Si la fila no está insertada ya, la insertamos
            {
                dtResultado.Rows.Add(nuevaFila);
            }

            prevIdTienda = idTienda;                        //Guardamos el idtienda para que en la próxima iteración sepamos si es una fila nueva o no
        }

        nuevaFila    = dtResultado.NewRow();
        nuevaFila[1] = "Total";
        int TotalTalla = 0;

        for (int i = 2; i <= dtResultado.Columns.Count - 2; i++)
        {
            for (int index = 0; index <= dtResultado.Rows.Count - 1; index++)
            {
                if (dtResultado.Rows[index][i].ToString() == String.Empty)
                {
                    dtResultado.Rows[index][i] = "-";
                }
                else
                {
                    TotalTalla += Int16.Parse(dtResultado.Rows[index][i].ToString());
                }
            }

            nuevaFila[i] = TotalTalla.ToString();
            TotalTalla   = 0;
        }

        dtResultado.Rows.Add(nuevaFila);
        dtResultado.AcceptChanges();

        //Cargamos el grid
        GridStock.DataSource = dtResultado;
        GridStock.DataBind();

        //controlar para ver las fotos de otras
        if (GridStock.Rows.Count > 0)
        {
            btnFoto.Enabled = true;
        }
    }
Пример #15
0
    protected void Page_Load(object sender, EventArgs e)
    {
        DataView dvORderTalla;

        String[] Tallas;
        String   StrCadena = String.Empty;


        if (!Page.IsPostBack)
        {
            //Tablas de resultados de BD
            SDSStock.SelectParameters["IdTienda"].DefaultValue = Contexto.IdTienda;
            DataTable dtTallas = ((DataView)SDSStock.Select(new DataSourceSelectArguments())).ToTable(true, new string[] { "Talla" });
            DataTable dtStock  = ((DataView)SDSStock.Select(new DataSourceSelectArguments())).Table.DataSet.Tables[0];


            if (Request.QueryString["Talla"] != null)
            {
                Tallas = Request.QueryString["Talla"].ToString().Trim().Split(new Char[] { '|' });

                foreach (String strValor in Tallas)
                {
                    StrCadena = "'" + strValor + "',";
                }

                StrCadena = StrCadena.Substring(0, StrCadena.Length - 1);
            }


            //se ha metido en un dataview para poder ordenar las tallas y pasar al datatable Inicial
            dvORderTalla = dtTallas.DefaultView;
            if (StrCadena.Length > 0)
            {
                DataView dvStock = dtStock.DefaultView;
                dvStock.RowFilter      = "Talla in (" + StrCadena + ")  ";
                dtStock                = dvStock.ToTable().Copy();
                dvORderTalla.RowFilter = "Talla in (" + StrCadena + ")";
            }

            dvORderTalla.Sort = "Talla";
            dtTallas          = dvORderTalla.ToTable();
            //----------------------------------

            //Añadimos las columnas dinámicas al grid. Es una por cada talla devuelta
            BoundField bf;
            foreach (DataRow dr in dtTallas.Rows)
            {
                bf                           = new BoundField();
                bf.DataField                 = dr["Talla"].ToString(); //El campo de la columna corresponde al nombre de la talla
                bf.HeaderText                = dr["Talla"].ToString();
                bf.HeaderStyle.Width         = Unit.Pixel(50);
                bf.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
                GridStock.Columns.Insert(GridStock.Columns.Count - 1, bf);
            }

            //Tabla de datos con el formato correcto
            DataTable dtResultado = new DataTable();

            //Columnas de resultados. Son dos fijas, una por talla y la de totales
            dtResultado.Columns.Add("IdTienda", typeof(string));
            dtResultado.Columns.Add("Tienda", typeof(string));
            foreach (DataRow dr in dtTallas.Rows)
            {
                dtResultado.Columns.Add(dr["Talla"].ToString(), typeof(int));       //Es un entero pues albergará la cantidad de stock
            }
            dtResultado.Columns.Add("Total", typeof(int));

            //Filas
            DataRow nuevaFila    = dtResultado.NewRow();
            string  prevIdTienda = string.Empty;        //Para controlar cual es la fila que se comprobó en la iteración anterior
            string  idTienda;                           //Para contener la fila que se está comprobando en esta iteración
            int     acumulado = 0;                      //Para ir sumando los totales por tienda
            int     auxCantidad;                        //Auxiliar para tratar con las cantidades pasadas a entero

            //Recorremos la tabla de stock devuelto. Como los resultados vienen ordenados por idtienda el procedimiento será:
            //Insertamos una fila con el primer registro y guardamos la tienda que es; en el siguiente registro comprobamos si
            //seguimos con la misma tienda, en cuyo caso no creamos fila nueva sino que solo incluimos el dato de stock para la
            //talla que sea; si el registro es de una tienda distinta, entonces sí creamos una fila nueva y además añadimos el
            //stock de la talla. Finalmente solo insertamos la fila si no está ya insertada.
            foreach (DataRow dr in dtStock.Rows)
            {
                idTienda = dr["IdTienda"].ToString();
                if (idTienda != prevIdTienda)               //Si la fila anterior era de una tienda distinta entonces tenemos que crear una nueva fila para la tienda actual
                {
                    nuevaFila             = dtResultado.NewRow();
                    nuevaFila["IdTienda"] = dr["IdTienda"];
                    nuevaFila["Tienda"]   = dr["Tienda"];

                    acumulado          = 0;
                    nuevaFila["Total"] = acumulado;                     //Metemos el valor a 0 para que no quede en blanco si no hay ninguna columna que sume
                }

                nuevaFila[dr["Talla"].ToString()] = dr["Cantidad"];     //Siempre insertamos el stock de la talla en la fila que se está manejando, que puede ser nueva o la de la iteración anterior

                //Acumulamos para el total solo si es una cantidad positiva
                if (int.TryParse(dr["Cantidad"].ToString(), out auxCantidad))
                {
                    acumulado += auxCantidad;
                    //Como no sé cual será la última cantidad a sumar en la fila para poner el valor en la columna, lo que hago es actualizar el valor de Total cada vez que varía el acumulado
                    nuevaFila["Total"] = acumulado;
                }

                if (dtResultado.Rows.IndexOf(nuevaFila) == -1)          //Si la fila no está insertada ya, la insertamos
                {
                    dtResultado.Rows.Add(nuevaFila);
                }

                prevIdTienda = idTienda;                    //Guardamos el idtienda para que en la próxima iteración sepamos si es una fila nueva o no
            }

            //Establecemos las demás etiquetas. Debemos hacerlo antes del Bindd del grid para que tengan valor durante RowDataBound
            if (dtStock.Rows.Count > 0)
            {
                lblDescripcion.Text = dtStock.Rows[0]["Descripcion"].ToString() + " " + dtStock.Rows[0]["Color"].ToString();
                lblPrecioValor.Text = string.Format("{0:0.00}", dtStock.Rows[0]["Precio"]);
            }
            else
            {
                lblDescripcion.Text = Resource.ProductoNoEncontrado;
            }

            //Cargamos el grid
            GridStock.DataSource = dtResultado;
            GridStock.DataBind();

            //controlar para ver las fotos de otras
            if (GridStock.Rows.Count > 0)
            {
                btnFoto.Enabled = true;
            }
        }
    }