📄 dispatch.aspx.cs
字号:
SqlDataSource1.InsertParameters["ReceiverName"].DefaultValue = DrpReceiverName.SelectedValue;
//得到已经增加的物资列表
DataTable myTable = Session["DeliveryTable"] as DataTable;
string strDeliveryItemsID = "";
string strDeliveryItemsQuantity = "";
for (int i = 0; i < myTable.Rows.Count; i++)
{
strDeliveryItemsID += myTable.Rows[i][0] + ",";
strDeliveryItemsQuantity += myTable.Rows[i][6] + ",";
}
if (strDeliveryItemsID != "")
{
//去掉最后一个“,”
strDeliveryItemsID = strDeliveryItemsID.Substring(0, strDeliveryItemsID.Length - 1);
strDeliveryItemsQuantity = strDeliveryItemsQuantity.Substring(0, strDeliveryItemsQuantity.Length - 1);
}
SqlDataSource1.InsertParameters["ItemsIDList"].DefaultValue = strDeliveryItemsID;
SqlDataSource1.InsertParameters["QuantityList"].DefaultValue = strDeliveryItemsQuantity;
}
string insertedDeliveryID="";
protected void SqlDataSource1_Inserted(object sender, SqlDataSourceStatusEventArgs e)
{
insertedDeliveryID = e.Command.Parameters["@DeliveryID"].Value.ToString();
}
protected void FormView1_ItemInserted(object sender, FormViewInsertedEventArgs e)
{
if (e.Exception == null)
{
if (Session["DeliveryTable"] != null)
{
Session["DeliveryTable"] = null;
}
// Get a ClientScriptManager reference from the Page class.
ClientScriptManager cs = Page.ClientScript;
Type cstype = this.GetType();
String csname = "PopupScriptSuccess";
// Check to see if the startup script is already registered.
if (!cs.IsStartupScriptRegistered(cstype, csname))
{
String cstext = "alert('成功添加记录。');if(confirm('是否打印发料单?')) window.open('print.aspx?id=" + insertedDeliveryID + "','_blank','fullscreen=0,menubar=no,location=no,scrollbars=auto,resizable=yes,status=yes');"
+"window.location.href=window.location.href";
cs.RegisterStartupScript(cstype, csname, cstext, true);
}
}
else
{
// Get a ClientScriptManager reference from the Page class.
ClientScriptManager cs = Page.ClientScript;
Type cstype = this.GetType();
String csname = "PopupScriptFail";
// Check to see if the startup script is already registered.
if (!cs.IsStartupScriptRegistered(cstype, csname))
{
String cstext = "alert('在往数据库增加记录时出错,请重新编辑保存。');window.location.href=window.location.href";
cs.RegisterStartupScript(cstype, csname, cstext, true);
}
//e.ExceptionHandled = true;
}
}
protected void DropDownList1_DataBound(object sender, EventArgs e)
{
//获取默认选中的仓库ID
hidWareHouseID.Value = ((DropDownList)sender).SelectedValue;
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
hidWareHouseID.Value = ((DropDownList)sender).SelectedValue;
}
protected void DrpUser_DataBound(object sender, EventArgs e)
{
Label lblMoney = FormView1.FindControl("lblMoney") as Label;
string UserName = ((DropDownList)sender).SelectedValue;
string strDepartID = GetDepartmentID(UserName);
DropDownList DropDownList2 = FormView1.FindControl("DropDownList2") as DropDownList;
DropDownList2.SelectedIndex = DropDownList2.Items.IndexOf(DropDownList2.Items.FindByValue(strDepartID));
TextBox DeliveryDateTextBox = FormView1.FindControl("DeliveryDateTextBox") as TextBox;
DateTime DeliveryDate;
try
{
DeliveryDate = DateTime.Parse(DeliveryDateTextBox.Text);
}
catch (System.FormatException eFormat)
{
DeliveryDate = DateTime.Now;
}
}
/// <summary>
/// 从Items和Inventory表中查出特定仓库中的所有记录,
/// 然后和GridView2绑定
/// ToDo:后面加上条件查询以缩小范围。
/// </summary>
/// <param name="myGridView"></param>
protected void GetWarehouseItems(GridView myGridView)
{
DataSet ds = GetWarehouseItemsToDataSet();
myGridView.DataSource = ds.Tables[0];
myGridView.DataBind();
}
private DataSet GetWarehouseItemsToDataSet()
{
DropDownList drpFilterOption = FormView1.FindControl("drpFilterOption") as DropDownList;
string strOption = drpFilterOption.SelectedValue;
TextBox ItemIDTextBox = FormView1.FindControl("ItemIDTextBox") as TextBox;
string strFilter = ItemIDTextBox.Text + "%";
if (strOption == "ItemID")
strFilter = "[Items].ItemID Like '" + strFilter + "'";
else if (strOption == "Name")
strFilter = "[Items].Name Like '%" + strFilter + "'";
else
strFilter = "[Items].Specification Like '%" + strFilter + "'";
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MySqlProviderConnection"].ConnectionString);
string strQuery = "";
//得到已经增加的物资列表,不再出现
DataTable myTable = Session["DeliveryTable"] as DataTable;
string strDeliveryItemsID = "";
for (int i = 0; i < myTable.Rows.Count; i++)
{
strDeliveryItemsID += "'" + myTable.Rows[i][0] + "',";
}
if (strDeliveryItemsID != "")
{
//去掉最后一个“,”
strDeliveryItemsID = strDeliveryItemsID.Substring(0, strDeliveryItemsID.Length - 1);
strQuery = "SELECT [Items].ItemID, [Items].Name, [Items].Specification, [Items].Unit, [Items].StandardPrice, [Inventory].Quantity" +
" FROM [Items] Join [Inventory] ON ([Items].ItemID = [Inventory].ItemID ) Where [Inventory].IsDeleted=0" +
" And [Inventory].WareHouseID = " +
Convert.ToInt32(hidWareHouseID.Value) + " And " + strFilter + " And [Items].ItemID Not In (" + strDeliveryItemsID + ")" +
" Order by [Items].Name, [Items].Specification";
}
else
{
strQuery = "SELECT [Items].ItemID, [Items].Name, [Items].Specification, [Items].Unit, [Items].StandardPrice, [Inventory].Quantity" +
" FROM [Items] Join [Inventory] ON ([Items].ItemID = [Inventory].ItemID ) Where [Inventory].IsDeleted=0" +
" And [Inventory].WareHouseID = " +
Convert.ToInt32(hidWareHouseID.Value) + " And " + strFilter +
" Order by [Items].Name, [Items].Specification";
}
SqlDataAdapter adapter = new SqlDataAdapter(strQuery, con);
DataSet ds = new DataSet();
adapter.Fill(ds);
return ds;
}
private string GetDepartmentID(string UserName)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MySqlProviderConnection"].ConnectionString);
string strQuery = "Select DepartmentID FROM Accounts_DepartmentUsers WHERE UserName ='" + UserName + "'";
SqlCommand command = new SqlCommand(strQuery, con);
con.Open();
SqlDataReader reader = command.ExecuteReader();
try
{
while (reader.Read())
{
return reader[0].ToString();
}
}
finally
{
reader.Close();
}
return "0";
}
/// <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;
GetDeliveryItems(myGridView);
myGridView.PageIndex = e.NewPageIndex;
myGridView.DataBind();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView myGridView = (GridView)sender;
GetDeliveryItems(myGridView);
myGridView.EditIndex = e.NewEditIndex;
myGridView.DataBind();
//光标,后面想想怎么默认全部选中
GridViewRow editRow = myGridView.Rows[e.NewEditIndex];
Page.SetFocus((TextBox)editRow.FindControl("txtDeliveryItemsQuantity"));
}
/// <summary>
/// 请注意这里用于获取待删除GridViewRow某一Cell中文本的方法。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
DataTable myTable = Session["DeliveryTable"] as DataTable;
GridView myGridView = (GridView)sender;
GridViewRow delRow = myGridView.Rows[e.RowIndex];
//由于可能在后面加入sorting的功能,所以不能简单地用GridView的e.RowIndex代表Session中DeliveryTable的index
for (int i = 0; i < myTable.Rows.Count; i++)
{
string strTemp = myTable.Rows[i][0].ToString();
if (strTemp == ((Label)delRow.Cells[1].FindControl("lblDeliveryItemsID")).Text)
{
myTable.Rows[i].Delete();
break;
}
}
Session["DeliveryTable"] = myTable;
GetDeliveryItems(myGridView);
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView myGridView = (GridView)sender;
GetDeliveryItems(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["DeliveryTable"] as DataTable;
//由于可能在后面加入sorting的功能,所以不能简单地用GridView的e.RowIndex代表Session中DeliveryTable的index
for (int i = 0; i < myTable.Rows.Count; i++)
{
string strTemp = myTable.Rows[i]["DeliveryItemsID"].ToString();
if (strTemp == ((Label)updateRow.Cells[1].FindControl("lblDeliveryItemsID")).Text)
{
TextBox txtDeliveryItemsQuantity = (TextBox)updateRow.FindControl("txtDeliveryItemsQuantity");
myTable.Rows[i]["DeliveryQuantity"] = Convert.ToDecimal(txtDeliveryItemsQuantity.Text);
myTable.Rows[i]["DeliveryItemsMoney"] = Convert.ToDecimal(myTable.Rows[i]["DeliveryQuantity"]) * Convert.ToDecimal(myTable.Rows[i]["DeliveryItemsStandardPrice"]);
myTable.Rows[i]["DeliveryItemsLeftInventory"] = Convert.ToDecimal(myTable.Rows[i]["DeliveryItemsInventory"]) - Convert.ToDecimal(myTable.Rows[i]["DeliveryQuantity"]);
break;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -