⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 check.aspx.cs

📁 asp销售管理系统
💻 CS
📖 第 1 页 / 共 3 页
字号:
        myGridView1.DataBind();

        //光标
        GridViewRow editRow = myGridView1.Rows[myGridView1.EditIndex];
        Page.SetFocus((TextBox)editRow.FindControl("txtCheckQuantity"));
    }

    /// <summary>
    /// 用户在没有保存小票之前,详细发料信息暂时不写入数据库,
    /// 先存在一DataTable中。
    /// 等编辑完成保存的时候,
    /// 用存储过程完成主从表记录的插入,以保证数据完整性和一致性
    /// </summary>
    /// <param name="ItemsID"></param>
    private void AddCheck(GridViewRow addItemsRow)
    {
        DataTable myTable = Session["CheckTable"] as DataTable;
        DataRow dr = myTable.NewRow();

        //DataRowView rowView = (DataRowView)addItemsRow.DataItem;
        //nnd,第一列是“发料”链接。从第2列起算
        dr[0] = addItemsRow.Cells[1].Text;
        dr[1] = addItemsRow.Cells[2].Text;
        dr[2] = addItemsRow.Cells[3].Text;
        dr[3] = addItemsRow.Cells[4].Text;
        dr[4] = Convert.ToDecimal(addItemsRow.Cells[5].Text);
        dr[5] = Convert.ToDecimal(addItemsRow.Cells[6].Text);
        /*string strScript = "";
        strScript = "<script>";
        strScript = strScript + "prompt('请输入实发数量:','0');";
        strScript = strScript + "</script>";
        Response.Write(strScript);*/
        //dr[6] = 0;
        dr[7] = 0;
        //剩余库存暂时等于初始库存
        dr[8] = dr[5];
        dr[9] = "0";
        myTable.Rows.InsertAt(dr, 0);
        Session["CheckTable"] = myTable;
    }

    private void GetCheckItems(GridView myGridView)
    {
        DataTable myTable = Session["CheckTable"] as DataTable;
        myGridView.DataSource = myTable;
        myGridView.DataBind();
    }

    /// <summary>
    /// VS2005 无法自动Paging,所以必须编程实现。
    /// 同理参见protected void GetWarehouseItems(GridView myGridView)
    /// 注意在翻页之前必须重新指定DataSource,否则空白。
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView myGridView = (GridView)sender;
        GetCheckItems(myGridView);
        myGridView.PageIndex = e.NewPageIndex;
        myGridView.DataBind();
    }

    protected void GridView2_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView myGridView = (GridView)sender;
        GetWarehouseItems(myGridView);
        myGridView.PageIndex = e.NewPageIndex;
        myGridView.DataBind();
    }


    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridView myGridView = (GridView)sender;
        GetCheckItems(myGridView);
        myGridView.EditIndex = e.NewEditIndex;
        myGridView.DataBind();

        //光标,后面想想怎么默认全部选中
        GridViewRow editRow = myGridView.Rows[e.NewEditIndex];
        Page.SetFocus((TextBox)editRow.FindControl("txtCheckQuantity"));
    }


    /// <summary>
    /// 请注意这里用于获取待删除GridViewRow某一Cell中文本的方法。
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        DataTable myTable = Session["CheckTable"] as DataTable;
        GridView myGridView = (GridView)sender;
        GridViewRow delRow = myGridView.Rows[e.RowIndex];

        //由于可能在后面加入sorting的功能,所以不能简单地用GridView的e.RowIndex代表Session中CheckTable的index
        for (int i = 0; i < myTable.Rows.Count; i++)
        {
            string strTemp = myTable.Rows[i][0].ToString();
            if (strTemp == ((Label)delRow.Cells[1].FindControl("lblCheckItemsID")).Text)
            {
                myTable.Rows[i].Delete();
                break;
            }
        }

        Session["CheckTable"] = myTable;
        GetCheckItems(myGridView);
    }


    protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        GridView myGridView = (GridView)sender;
        GetCheckItems(myGridView);
        myGridView.EditIndex = -1;
        myGridView.DataBind();
    }

    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        GridView myGridView = (GridView)sender;
        GridViewRow updateRow = myGridView.Rows[e.RowIndex];
        DataTable myTable = Session["CheckTable"] as DataTable;

        //由于可能在后面加入sorting的功能,所以不能简单地用GridView的e.RowIndex代表Session中CheckTable的index
        for (int i = 0; i < myTable.Rows.Count; i++)
        {
            string strTemp = myTable.Rows[i]["CheckItemsID"].ToString();
            if (strTemp == ((Label)updateRow.Cells[1].FindControl("lblCheckItemsID")).Text)
            {
                TextBox txtCheckQuantity = (TextBox)updateRow.FindControl("txtCheckQuantity");
                myTable.Rows[i]["CheckQuantity"] = Convert.ToDecimal(txtCheckQuantity.Text);
                myTable.Rows[i]["CheckItemsExtra"] = Convert.ToDecimal(myTable.Rows[i]["CheckQuantity"]) - Convert.ToDecimal(myTable.Rows[i]["CheckItemsInventory"]);
                myTable.Rows[i]["CheckItemsExtraMoney"] = Convert.ToDecimal(myTable.Rows[i]["CheckItemsExtra"]) * Convert.ToDecimal(myTable.Rows[i]["CheckItemsStandardPrice"]);
                DropDownList drpCheckItemsReason = (DropDownList)updateRow.FindControl("drpCheckItemsReason");
                myTable.Rows[i]["CheckItemsReason"] = Convert.ToInt32(drpCheckItemsReason.SelectedValue);
                break;
            }
        }

        Session["CheckTable"] = myTable;

        GetCheckItems(myGridView);
        myGridView.EditIndex = -1;
        myGridView.DataBind();
        Page.SetFocus((TextBox)FormView1.FindControl("ItemIDTextBox"));
    }

    /// <summary>
    /// 设置格式,更主要的是金额合计并验证是否超出定额
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            // add the UnitPrice to the running total variables
            for (int i = 5; i < 12; i++)
                e.Row.Cells[i].HorizontalAlign = HorizontalAlign.Right;

            priceTotal += Convert.ToDecimal(DataBinder.Eval(e.Row.DataItem, "CheckItemsExtraMoney"));            
        }
        else if (e.Row.RowType == DataControlRowType.Footer)
        {
            e.Row.Cells[8].Text = "金额总计:";
            // for the Footer, display the running totals
            e.Row.Cells[9].Text = priceTotal.ToString("c");

            e.Row.Cells[9].HorizontalAlign = HorizontalAlign.Right;
            e.Row.Font.Bold = true;

            hidPriceAtlast.Value = priceTotal.ToString();
            priceTotal = 0;
        }

    }

    private bool isAccepted = false;

    //事实上, 应该是 int DeliveryID,但是省得类型转换
    private bool getIsAccepted(string DeliveryID)
    {
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MySqlProviderConnection"].ConnectionString);
        string strQuery = "Select IsReviewed From InventoryCheckMain Where InventoryCheckID=" + DeliveryID;

        SqlCommand command = new SqlCommand(strQuery, con);
        con.Open();

        SqlDataReader reader = command.ExecuteReader();
        try
        {
            while (reader.Read())
            {
                return Convert.ToBoolean(reader[0].ToString());
            }
        }
        finally
        {
            reader.Close();
        }
        return false;
    }

    protected void GridView4_DataBound(object sender, EventArgs e)
    {
        if (GridView3.SelectedValue != null)
        {
            string strDeliveryID = GridView3.SelectedValue.ToString();
            isAccepted = Convert.ToBoolean(getIsAccepted(strDeliveryID));
            ((CommandField)GridView4.Columns[10]).ShowEditButton = !isAccepted;
            GridView4.Columns[11].Visible = !isAccepted;
            if (!isAccepted)
            {
                SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MySqlProviderConnection"].ConnectionString);
                string strQuery = "";

                strQuery = "SELECT ItemID FROM [Inventory] Where [Inventory].IsDeleted=0" +
                   " And [Inventory].WareHouseID in (Select WareHouseID From InventoryCheckMain Where InventoryCheckID=" + strDeliveryID
                    + ") And [Inventory].ItemID Not In (Select ItemID From InventoryCheckDetail Where InventoryCheckID=" + strDeliveryID + ")";

                SqlDataAdapter adapter = new SqlDataAdapter(strQuery, con);
                DataSet ds = new DataSet();
                adapter.Fill(ds);

                if (ds.Tables[0].Rows.Count != 0 && GridView4.FooterRow != null)
                {

                    DropDownList drpItem = (DropDownList)GridView4.FooterRow.FindControl("drpItem");
                    drpItem.DataSource = ds.Tables[0];
                    drpItem.DataBind();
                    drpItem.Visible = true;
                    LinkButton LinkButtonEditAdd = (LinkButton)GridView4.FooterRow.FindControl("LinkButtonEditAdd");
                    LinkButtonEditAdd.Visible = true;
                }
            }
        }
    }

    /// <summary>
    /// 查询里面的对外调拨历史明细金额合计
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void GridView4_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            for (int i = 0; i < 2; i++)
                e.Row.Cells[i].HorizontalAlign = HorizontalAlign.Left;
            for (int i = 2; i < 9; i++)
                e.Row.Cells[i].HorizontalAlign = HorizontalAlign.Right;

            e.Row.Cells[9].HorizontalAlign = HorizontalAlign.Left;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -