using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using SuperMap.RealEstate.CoreFrameWork; using SuperMap.RealEstate.ServiceModel; using SuperMap.RealEstate.Utility; using SuperMap.RealEstate.Web.UI; using SuperMap.RealEstate.Web.UI.WebControls; using SuperMap.RealEstate.Web.Utility; using MSB = SuperMap.RealEstate.MainTenance.Storage.Business; using System.Data; namespace SuperMap.RealEstate.MainTenance.Storage.Modules.Proinst { public partial class EquipmentOut : SuperMap.RealEstate.Web.UI.Page { #region 页面加载事件 protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) return; //设置ToolBar的控制控件 //初始化并加载列表 GridViewEx1.SelectingWithInit(ObjectDataSource1, GridPageEx1); //设置回车焦点按钮 SetControlClientAction(ButtonSearch); } #endregion #region 查询事件 protected void ButtonSearch_CallBackClick(object sender, ClientSetEventArgs e) { GridViewEx1.Selecting(ObjectDataSource1, GridPageEx1); //设置UI变化 e.SetValue(GridViewEx1); e.SetValue(GridPageEx1); } #endregion #region 翻页事件 protected void GridPageEx1_CallBackPageChanged(object src, ClientSetEventArgs e) { GridViewEx1.Pagging(ObjectDataSource1, GridPageEx1); //设置UI变化 e.SetValue(GridViewEx1); } #endregion #region 筛选条件 protected void GridViewEx1_SelectMethodParameters(object sender, SelectMethodParametersArgs e) { //搜索选项的搜索条件过滤 if (!string.IsNullOrEmpty(TextBox_Search.Text)) e.AddOrParams(GridViewSearch1, TextBox_Search.Text); if (EQUIPMENT_TYPE.SelectedValue != "") { e.AddAndParams("EQUIPMENT_TYPE", EQUIPMENT_TYPE.SelectedValue); } //全部 if (OutState.SelectedValue == "1=1") { string PROINSTDETAIL_ID = "";//变量用来存放查询到的ID的值 MSB.PROINSTDETAIL _PROINSTDETAIL = new MSB.PROINSTDETAIL(Transaction); DataTable dt = _PROINSTDETAIL.ExecuteDataTable( @"SELECT p.SERIAL_NUMBER,EQUIPMENT_TYPE FROM MAINTENANCE_STORAGE.T_PROINSTDETAIL p, MAINTENANCE_STORAGE.T_PROINST r WHERE p.PROINST_ID=r.PROINST_ID AND r.PROINST_TYPE='1000'"); for (int i = 0; i < dt.Rows.Count; i++) { if (dt.Rows[i][0].ToString() != "") { DataTable dts = _PROINSTDETAIL.ExecuteDataTable( @"SELECT PROINSTDETAIL_ID FROM MAINTENANCE_STORAGE.T_PROINSTDETAIL WHERE SERIAL_NUMBER='" + dt.Rows[i][0].ToString() + "' AND EQUIPMENT_TYPE=" + "'" + dt.Rows[i][1].ToString() + "'"); PROINSTDETAIL_ID += "'" + dts.Rows[0][0].ToString() + "'" + ","; } } PROINSTDETAIL_ID = PROINSTDETAIL_ID.Substring(0, PROINSTDETAIL_ID.Length - 1); e.SetOtherUserCustomWhereSqlString = "PROINSTDETAIL_ID IN (" + PROINSTDETAIL_ID + ")"; } //未出库 else if (OutState.SelectedValue == "0") { string PROINSTDETAIL_ID = "";//变量用来存放查询到的ID的值 MSB.PROINSTDETAIL _PROINSTDETAIL = new MSB.PROINSTDETAIL(Transaction); DataTable dt = _PROINSTDETAIL.ExecuteDataTable( @"SELECT p.SERIAL_NUMBER,COUNT(p.SERIAL_NUMBER),EQUIPMENT_TYPE FROM MAINTENANCE_STORAGE.T_PROINSTDETAIL p, MAINTENANCE_STORAGE.T_PROINST r WHERE p.PROINST_ID=r.PROINST_ID AND r.PROINST_STATE='9000' GROUP BY SERIAL_NUMBER,EQUIPMENT_TYPE HAVING COUNT(*)<2"); for (int i = 0; i < dt.Rows.Count; i++) { if (dt.Rows[i][0].ToString() != "") { DataTable dts = _PROINSTDETAIL.ExecuteDataTable( @"SELECT PROINSTDETAIL_ID FROM MAINTENANCE_STORAGE.T_PROINSTDETAIL WHERE SERIAL_NUMBER='" + dt.Rows[i][0].ToString() + "' AND EQUIPMENT_TYPE='" + dt.Rows[i][2].ToString() + "'"); PROINSTDETAIL_ID += "'" + dts.Rows[0][0].ToString() + "'" + ","; } } PROINSTDETAIL_ID = PROINSTDETAIL_ID.Substring(0, PROINSTDETAIL_ID.Length - 1); e.SetOtherUserCustomWhereSqlString = "PROINSTDETAIL_ID IN (" + PROINSTDETAIL_ID + ")"; } //已出库 else if (OutState.SelectedValue == "1") { string PROINSTDETAIL_ID = "";//变量用来存放查询到的ID的值 MSB.PROINSTDETAIL _PROINSTDETAIL = new MSB.PROINSTDETAIL(Transaction); DataTable dt = _PROINSTDETAIL.ExecuteDataTable( @"SELECT p.SERIAL_NUMBER,EQUIPMENT_TYPE FROM MAINTENANCE_STORAGE.T_PROINSTDETAIL p, MAINTENANCE_STORAGE.T_PROINST r WHERE p.PROINST_ID=r.PROINST_ID AND r.PROINST_TYPE='2000' " + "AND r.PROINST_STATE='9000'"); for (int i = 0; i < dt.Rows.Count; i++) { if (dt.Rows[i][0].ToString() != "") { DataTable dts = _PROINSTDETAIL.ExecuteDataTable( @"SELECT PROINSTDETAIL_ID FROM MAINTENANCE_STORAGE.T_PROINSTDETAIL WHERE SERIAL_NUMBER='" + dt.Rows[i][0].ToString() + "' AND EQUIPMENT_TYPE='" + "" + dt.Rows[i][1].ToString() + "'"); PROINSTDETAIL_ID += "'" + dts.Rows[0][0].ToString() + "'" + ","; } } PROINSTDETAIL_ID = PROINSTDETAIL_ID.Substring(0, PROINSTDETAIL_ID.Length - 1); e.SetOtherUserCustomWhereSqlString = "PROINSTDETAIL_ID IN (" + PROINSTDETAIL_ID + ")"; } //出库中 else if (OutState.SelectedValue == "2") { string PROINSTDETAIL_ID = "";//变量用来存放查询到的ID的值 MSB.PROINSTDETAIL _PROINSTDETAIL = new MSB.PROINSTDETAIL(Transaction); DataTable dt = _PROINSTDETAIL.ExecuteDataTable( @"SELECT p.SERIAL_NUMBER,EQUIPMENT_TYPE FROM MAINTENANCE_STORAGE.T_PROINSTDETAIL p, MAINTENANCE_STORAGE.T_PROINST r WHERE p.PROINST_ID=r.PROINST_ID AND r.PROINST_TYPE='2000' " + "AND r.PROINST_STATE='1000'"); for (int i = 0; i < dt.Rows.Count; i++) { if (dt.Rows[i][0].ToString() != "") { DataTable dts = _PROINSTDETAIL.ExecuteDataTable( "SELECT PROINSTDETAIL_ID FROM MAINTENANCE_STORAGE.T_PROINSTDETAIL WHERE SERIAL_NUMBER='" + dt.Rows[i][0].ToString()+ "' AND EQUIPMENT_TYPE='" + dt.Rows[i][1].ToString() + "'"); PROINSTDETAIL_ID += "'" + dts.Rows[0][0].ToString() + "'" + ","; } } PROINSTDETAIL_ID = PROINSTDETAIL_ID.Substring(0, PROINSTDETAIL_ID.Length - 1); e.SetOtherUserCustomWhereSqlString = "PROINSTDETAIL_ID IN (" + PROINSTDETAIL_ID + ")"; } //且搜索条件 //e.AddAndParams(字段名, 值); //或搜索条件 //e.AddOrParams(字段名, 值); //设备来源/去由 //排序 e.AddOrderByParams(GridViewOrderBy1); } #endregion #region 数据绑定事件 protected void GridViewEx1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { //绑定设备编号及名称 string PROINSTDETAIL_ID = GridViewEx1.DataKeys[e.Row.RowIndex]. Values["PROINSTDETAIL_ID"].ToString(); MSB.PROINSTDETAIL _PROINSTDETAIL = new MSB.PROINSTDETAIL(Transaction); DataTable dts = _PROINSTDETAIL.ExecuteDataTable( @"SELECT EQUIPMENT_ID,SERIAL_NUMBER,ORIGIN_TYPE,PROINST_DATE, PROINSTDETAIL_DESC,EQUIPMENT_TYPE FROM MAINTENANCE_STORAGE.T_PROINSTDETAIL WHERE PROINSTDETAIL_ID=" + PROINSTDETAIL_ID + ""); string EQUIPMENT_ID = dts.Rows[0][0].ToString(); MSB.EQUIPMENT _EQUIPMENT = new MSB.EQUIPMENT(Transaction); DataTable table = _EQUIPMENT.ExecuteDataTable( "SELECT EQUIPMENT_CODE,EQUIPMENT_NAME FROM " + "MAINTENANCE_STORAGE.T_EQUIPMENT WHERE EQUIPMENT_ID=" + EQUIPMENT_ID + ""); if (table.Rows.Count > 0) { e.Row.Cells[3].Text = table.Rows[0][0].ToString(); e.Row.Cells[4].Text = table.Rows[0][1].ToString(); } //绑定出库状态 DataTable dt = _PROINSTDETAIL.ExecuteDataTable( @"SELECT SERIAL_NUMBER,p.EQUIPMENT_TYPE,r.PROINST_STATE FROM MAINTENANCE_STORAGE.T_EQUIPMENT e,MAINTENANCE_STORAGE.T_PROINSTDETAIL p, MAINTENANCE_STORAGE.T_PROINST r WHERE e.EQUIPMENT_ID=p.EQUIPMENT_ID AND r.PROINST_ID=p.PROINST_ID AND PROINST_TYPE='2000'"); bool outstate = false;//局部变量用来判断是否为未出库 bool _outstate = false;//局部变量用来判断是否为出库中 for (int i = 0; i < dt.Rows.Count; i++) { if (dt.Rows[i][0].ToString() == e.Row.Cells[5].Text && dt.Rows[i][1].ToString() == e.Row.Cells[2].Text) { ((CheckBoxEx)e.Row.Cells[1].FindControl("Checked")).Visible = false; outstate = true; if (dt.Rows[i][2].ToString() == "9000") { _outstate = true; } } } //绑定出库状态 if (outstate == false) { e.Row.Cells[7].Text = "未出库"; } else { if (_outstate == false) { e.Row.Cells[7].Text = "出库中"; } else { e.Row.Cells[7].Text = "已出库"; } } //设备类型 switch (e.Row.Cells[2].Text) { case "0": e.Row.Cells[2].Text = "收银机"; break; case "1": e.Row.Cells[2].Text = "服务器"; break; case "2": e.Row.Cells[2].Text = "打印机"; break; case "3": e.Row.Cells[2].Text = "盘点枪"; break; case "4": e.Row.Cells[2].Text = "扫码器"; break; } } } #endregion #region 保存事件 protected void ButtonSeave_Click(object sender, EventArgs e) { bool check = false;//变量判断是否有被选中的项 //循环获取被选中的行 for (int i = 0; i < this.GridViewEx1.Rows.Count; i++) { string PROINSTDETAIL_ID = GridViewEx1.DataKeys[i].Value.ToString(); bool b = ((CheckBoxEx)GridViewEx1.Rows[i].FindControl("Checked")).Checked; if (b) { //当被选中时获取输入的数量并保存 MSB.PROINSTDETAIL _PROINSTDETAIL = new MSB.PROINSTDETAIL(Transaction); DataTable dt = _PROINSTDETAIL.ExecuteDataTable( "SELECT EQUIPMENT_TYPE,EQUIPMENT_ID FROM MAINTENANCE_STORAGE.T_PROINSTDETAIL " + "WHERE PROINSTDETAIL_ID=" + PROINSTDETAIL_ID + ""); string EQUIPMENT_ID = dt.Rows[0][1].ToString(); string EQUIPMENT_TYPE = dt.Rows[0][0].ToString(); string PROINST_ID = Request.QueryString["ID"].ToString().ToDecrypt(); string SERIAL_NUMBER = GridViewEx1.Rows[i].Cells[5].Text; string sql = string.Format("INSERT INTO MAINTENANCE_STORAGE.T_PROINSTDETAIL VALUES" + " (MAINTENANCE_STORAGE.SEQ_PROINSTDETAIL.nextval,'{0}','{1}','{2}'," + "'{3}',null,null,sysdate,null)", PROINST_ID, EQUIPMENT_ID, EQUIPMENT_TYPE, SERIAL_NUMBER); _PROINSTDETAIL.ExecuteNonQuery(sql, null); check = true; } } if (check == false) { Alert("请选择设备!"); } else { Alert("选择成功!"); string PROINST_ID = Request.QueryString["ID"].ToString(); //三级页面刷新二级页面 ExecClientScript("$('#pop-dialog-frame-GridViewEx1Page',parent.parent.document).attr('src', " + "'/MainTenance/Modules/Proinst/ProinstDetailList.aspx?ID=" + PROINST_ID + "" + "&PopDialogPageName=F_R_GridPageEx1&PopDialogName=GridViewEx1Page&r=0.5539873951065308')"); ClosePopDialog(); } } #endregion } }