protected void fvLotCardMgrSupplementAdd_ItemCreated(object sender, EventArgs e) { //新增状态 if (fvLotCardMgrSupplementAdd.CurrentMode == FormViewMode.Insert) { //当前批量卡id号 var tb = (TextBox)fvLotCardMgrSupplementAdd.FindControl("txtLotId"); if (tb != null) { //获取最大id号 using (var da = new t_ppc_lot_cardTableAdapter()) { //获取结果 object obj = da.GetLastLotId(); //获取最大id号 string str = string.Empty; if (obj != null) { //获取最大id号 str = obj.ToString(); } if (!Regex.IsMatch(str, @"^[1-9]\d(0[1-9]|1[012])-[1-9]\d{0,4}$") || DateTime.Now.ToString("yyMM") != str.Substring(0, 4)) { //本月第一张批量卡 str = DateTime.Now.ToString("yyMM-1"); } else { //修改批量卡号+1 str = str.Substring(0, 5) + (int.Parse(str.Substring(5)) + 1).ToString(); } //设置起始批量卡号为最大id号+1 tb.Text = str; } } //设置默认订单序号 tb = (TextBox)fvLotCardMgrSupplementAdd.FindControl("txtOrderId"); if (tb != null) { //获取当前已经开批量卡的最大订单序号 using (var da = new t_ppc_lot_cardTableAdapter()) { //获取 object obj = da.GetLastOrderId(); string strMaxId = "A0"; if (obj != null && obj.ToString().Trim().Length > 0) { strMaxId = obj.ToString(); } //设置为最大id号+1 tb.Text = strMaxId.Substring(0, 1) + (int.Parse(strMaxId.Substring(1)) + 1).ToString(); } } //当前编号首部门 tb = (TextBox)fvLotCardMgrSupplementAdd.FindControl("txtFirstProc"); if (tb != null) { //检查用户提供的首部门参数标识 string strProc = Request["fproc"]; if (strProc != null && strProc.Length > 0) { //设置默认用户提供的首部门 tb.Text = strProc; } else { //当前用户所在部门id byte procId = Convert.ToByte(Session["proc_id"]); //从数据库中获取PMC的下个部门 using (var da = new t_procTableAdapter()) using (var tab = da.GetDataByProcId(procId)) { //检查是否存在数据 if (tab.Rows.Count > 0) { var row = tab.Rows[0] as DataSetProc.t_procRow; //设置到文本框 if (!row.Isnext_proc_nameNull()) { tb.Text = row.next_proc_name; } } } } } } //当前订单序号获取焦点 var txtOrderId = (TextBox)fvLotCardMgrSupplementAdd.FindControl("txtOrderId"); if (txtOrderId != null) { //设置焦点 txtOrderId.Focus(); } //当前状态 if (fvLotCardMgrSupplementAdd.CurrentMode == FormViewMode.Insert) { //设置默认补料单为true var chk = (CheckBox)fvLotCardMgrSupplementAdd.FindControl("chkIsSupplement"); if (chk != null) { chk.Checked = true; } } }
protected void ddlProc_DataBound(object sender, EventArgs e) { //获取Session中保存的用户id Int16 userId = Int16.Parse(Session["user_id"].ToString()); //当前用户选择的部门id object obj = Session["proc_id"]; //通过选择的部门id以及当前用户id获取用户权限 using (var da = new v_user_proc_roleTableAdapter()) { //保存查询数据的表 DataSetUserProcRole.v_user_proc_roleDataTable tab; //检测部门id号 byte procId; if (obj != null && byte.TryParse(obj.ToString(), out procId) && procId != byte.MaxValue) { //获取数据 tab = da.GetDataByUserIdAndProcId(userId, procId); } else { //获取数据 tab = da.GetDataByUserId(userId); } //检测有无数据 if (tab != null && tab.Rows.Count > 0) { //只取首行 var row = (DataSetUserProcRole.v_user_proc_roleRow)tab.Rows[0]; //设置用户名和部门名称 ltlUser.Text = row.u_name; //清除之前保存的全部session Session.Clear(); //将用户名id写入Session Session["user_id"] = row.u_id; //将用户名写入Session Session["user_name"] = row.u_name; //将部门id写入Session Session["proc_id"] = row.proc_id; //将部门名称写入Session Session["proc_name"] = row.proc_name; //将角色id写入Session Session["role_id"] = row.ro_id; //取得是否部门名称 using (var da2 = new t_procTableAdapter()) { //获取全部部门清单 var tab2 = da2.GetDataByProductProcName(row.proc_name); //检测结果 if (tab2.Rows.Count <= 0) { //改变为部门 litProc.Text = "部门"; } } //显示到ddl控件中 for (int i = 0; i < ddlProc.Items.Count; i++) { //当前项 var itm = ddlProc.Items[i]; if (itm.Text == row.proc_name) { //设置当前项为选中项 if (ddlProc.SelectedIndex != i) { ddlProc.SelectedIndex = i; } //更新最后一次部门名称 using (var da2 = new t_userTableAdapter()) { da2.UpdateLastProcByUserId(row.proc_name, row.u_id); } //刷新页面 StringBuilder sb = new StringBuilder(); sb.AppendLine("<script type=\"text/javascript\">"); sb.AppendLine("this.top.document.title=\"" + ddlProc.SelectedItem.Text + litProc.Text + "管理系统\";"); sb.AppendLine("</script>"); Response.Write(sb.ToString()); //退出循环 break; } } } } }
//根据传入的参数处理事情 public void ProcessRequest(HttpContext context) { //清空之前数据 context.Response.Clear(); //检测是否含有session if (context.Session.Count < 5) { //跳转 context.Response.Redirect("/Account/Login", true); //停止加载后续内容 context.Response.End(); //直接返回 return; } //执行基类的方法 if (!base.CheckIsLogin(context)) { return; } //用户传入的操作名称 string oper = context.Request["oper"]; //查询除自己所在部门外的部门名称 if (oper != null) { switch (oper) { case "getall": //实例化查询所有部门名称信息数据适配器类 //执行获取结果 using (var da = new t_procTableAdapter()) using (var tab = da.GetData()) { //将查询到的结果保存到泛型变量中 var l = new List<LiItem>(); //写入获取到的部门名称到泛型变量 AddListItem(tab, ref l); //将内容写入浏览器 for (int i = 0; i < l.Count; i++) { //写入当前行 context.Response.Write(l[i].ToString()); } } //不继续执行后续代码 return; case "getallproduct": //实例化查询所有部门名称信息数据适配器类 //执行获取结果 using (var da = new t_procTableAdapter()) using (var tab = da.GetProductProcName()) { //将查询到的结果保存到泛型变量中 var l = new List<LiItem>(); //写入获取到的部门名称到泛型变量 AddListItem(tab, ref l); //将内容写入浏览器 for (int i = 0; i < l.Count; i++) { //写入当前行 context.Response.Write(l[i].ToString()); } } //不继续执行后续代码 return; case "getallproductother": //部门id参数 //当前用户所操作的部门id object objId = context.Session["proc_id"]; byte procId; if (objId == null || !Byte.TryParse(objId.ToString(), out procId)) { return; } //实例化查询所有部门名称信息数据适配器类 //执行获取结果 using (var da = new t_procTableAdapter()) using (var tab = da.GetProductProcNameExceptSelf(procId)) { //将查询到的结果保存到泛型变量中 var l = new List<LiItem>(); //写入获取到的部门名称到泛型变量 AddListItem(tab, ref l); //将内容写入浏览器 for (int i = 0; i < l.Count; i++) { //写入当前行 context.Response.Write(l[i].ToString()); } } //不继续执行后续代码 return; case "getallproductandmrb": //部门id参数 //当前用户所操作的部门id objId = context.Session["proc_id"]; if (objId == null || !Byte.TryParse(objId.ToString(), out procId)) { return; } //实例化查询所有部门名称信息数据适配器类 //执行获取结果 using (var da = new t_procTableAdapter()) using (var tab = da.GetProductProcNameOrMRB(procId)) { //将查询到的结果保存到泛型变量中 var l = new List<LiItem>(); //写入获取到的部门名称到泛型变量 AddListItem(tab, ref l); //将内容写入浏览器 for (int i = 0; i < l.Count; i++) { //写入当前行 context.Response.Write(l[i].ToString()); } } //不继续执行后续代码 return; } } }
protected void fvProductRecordAdd_ItemCreated(object sender, EventArgs e) { //修改状态 if (fvProductRecordAdd.CurrentMode == FormViewMode.Edit) { //当前日期文本框获取焦点 var tb = (TextBox)fvProductRecordAdd.FindControl("txtProductDate"); if (tb != null) { //设置焦点 tb.Focus(); } } //新增状态 else if (fvProductRecordAdd.CurrentMode == FormViewMode.Insert) { //当前日期文本框获取焦点 var tb = (TextBox)fvProductRecordAdd.FindControl("txtProductDate"); if (tb != null) { //检查用户提供的日期参数标识 string strProductDate = Request["pdate"]; DateTime dtProductDate; if (strProductDate != null && strProductDate.Length > 0 && DateTime.TryParse(strProductDate, out dtProductDate)) { //设置默认日期 tb.Text = dtProductDate.ToString("yyyy-MM-dd"); } else { //设置日期为当前时间8小时前的日期 tb.Text = DateTime.Now.AddHours(-8).ToString("yyyy-MM-dd"); } } //当前部门名称 var lit = (Literal)fvProductRecordAdd.FindControl("litProcName"); if (lit != null) { //session中保存的当前部门 string procName = Session["proc_name"].ToString(); //写入到客户端 lit.Text = procName; } //当前下部门文本框 tb = (TextBox)fvProductRecordAdd.FindControl("txtNextProc"); if (tb != null) { //检查用户提供的部门名称参数标识 string nextProc = Request["nproc"]; if (nextProc != null && nextProc.Length > 0) { //设置默认部门名称 tb.Text = nextProc; } else { //获取当前部门的id号 string str = Session["proc_id"].ToString(); //转换id数据格式 Byte procId; if (Byte.TryParse(str, out procId)) { //获取默认的下个部门 using (var da = new t_procTableAdapter()) using (var tab = da.GetDataByProcId(procId)) { //检查值 if (tab.Rows.Count > 0) { //取首行 var row = (DataSetProc.t_procRow)tab.Rows[0]; //设置默认部门名称 if (!row.Isnext_proc_nameNull()) { tb.Text = row.next_proc_name; } } } } } } //当前批量卡号文本框获取焦点 tb = (TextBox)fvProductRecordAdd.FindControl("txtLotId"); if (tb != null) { //设置焦点 tb.Focus(); } } }
/// <summary> /// 检查用的输入是否合法.合法返回true,否则返回false /// </summary> /// <returns></returns> private bool CheckUserInput() { //部门序号文本框 var txtProcId = (TextBox)fvProcMaterialBalanceAdd.FindControl("txtProcId"); //数据适配器 using (var daProc = new t_procTableAdapter()) using (var conn = daProc.Connection) { //打开数据连接 conn.Open(); //取得部门相关数据行 var tabProc = daProc.GetDataByProcId(byte.Parse(txtProcId.Text)); //检测部门名称 if (tabProc.Rows.Count <= 0) { throw new Exception(string.Format("没有部门序号为 {0} 的部门!", txtProcId.Text)); } //部门名称文本框 var txtProcName = (TextBox)fvProcMaterialBalanceAdd.FindControl("txtProcName"); //序号和名称必须对应 if (!txtProcName.Text.ToUpper().Equals(((DataSetProc.t_procRow)tabProc.Rows[0]).proc_name.ToUpper())) { throw new Exception(string.Format("部门序号与部门名称不匹配!!", txtProcId.Text)); } //当前数量文本框 var txtQty = (TextBox)fvProcMaterialBalanceAdd.FindControl("txtQty"); //将用输入的内容转换为整数数字 decimal dec; //检测数量文本框 if (!decimal.TryParse(txtQty.Text, out dec) || dec <= 0) { throw new Exception("数量必须大于0!"); } //当前单价文本框 var txtPrice = (TextBox)fvProcMaterialBalanceAdd.FindControl("txtPrice"); //将用输入的内容转换为整数数字 //检测单价文本框 if (!decimal.TryParse(txtPrice.Text, out dec) || dec <= 0) { throw new Exception("单价必须大于0!"); } //结存的物料必须在物料清单中存在且与供应商代码、供应商名称、物料代码、规格、单位、单价一一对应 using (var daMaterial = new t_material_nameTableAdapter()) { //设置数据库连接 daMaterial.Connection = conn; //物料代码文本框 var txtMaterialCode = (TextBox)fvProcMaterialBalanceAdd.FindControl("txtMaterialCode"); //获取该物料代码的物料属性 using (var tabMaterial = daMaterial.GetDataByMaterialCode(txtMaterialCode.Text)) { //检测数据 if (tabMaterial.Rows.Count <= 0) { throw new Exception(string.Format("不存在物料代码为 {0} 的物料!", txtMaterialCode.Text)); } //首行数据 var rowFirst = (DataSetMaterialName.t_material_nameRow)tabMaterial.Rows[0]; //检测物料其他属性 //物料类型 var txtMaterialType = (TextBox)fvProcMaterialBalanceAdd.FindControl("txtMaterialType"); if (!rowFirst.material_type.Equals(txtMaterialType.Text)) { throw new Exception( string.Format( "物料代码为 {0} 的物料类型应该为 \n{1}\n而不是\n{2}!", txtMaterialCode.Text, rowFirst.material_type, txtMaterialType.Text ) ); } //供应商代码 var txtSupplierCode = (TextBox)fvProcMaterialBalanceAdd.FindControl("txtSupplierCode"); if (!rowFirst.supplier_code.Equals(txtSupplierCode.Text)) { throw new Exception( string.Format( "物料代码为 {0} 的物料的供应商代码应该为\n{1}\n而不是\n{2}!", txtMaterialCode.Text, rowFirst.supplier_code, txtSupplierCode.Text ) ); } //供应商名称 var txtSupplierName = (TextBox)fvProcMaterialBalanceAdd.FindControl("txtSupplierName"); if (!rowFirst.supplier_code.Equals(txtSupplierCode.Text)) { throw new Exception( string.Format( "物料代码为 {0} 的物料的供应商名称应该为\n{1}\n而不是\n{2}!", txtMaterialCode.Text, rowFirst.supplier_name, txtSupplierName.Text ) ); } //物料名称 var txtMaterialName = (TextBox)fvProcMaterialBalanceAdd.FindControl("txtMaterialName"); if (!rowFirst.material_name.Equals(txtMaterialName.Text)) { throw new Exception( string.Format( "物料代码为 {0} 的物料名称应该为 \n{1}\n而不是\n{2}!", txtMaterialCode.Text, rowFirst.material_name, txtMaterialName.Text ) ); } //物料规格 var txtMaterialSize = (TextBox)fvProcMaterialBalanceAdd.FindControl("txtMaterialSize"); if (!(rowFirst.Ismaterial_sizeNull() ? string.Empty : rowFirst.material_size).Equals(txtMaterialSize.Text)) { throw new Exception( string.Format( "物料代码为 {0} 的物料规格应该为 \n{1}\n而不是\n{2}!", txtMaterialCode.Text, rowFirst.material_size, txtMaterialSize.Text ) ); } //物料单位 var txtUnit = (TextBox)fvProcMaterialBalanceAdd.FindControl("txtUnit"); if (!rowFirst.unit.Equals(txtUnit.Text)) { throw new Exception( string.Format( "物料代码为 {0} 的物料单位应该为 \n{1}\n而不是\n{2}!", txtMaterialCode.Text, rowFirst.unit, txtUnit.Text ) ); } //物料单价 if (rowFirst.price != decimal.Parse(txtPrice.Text)) { throw new Exception( string.Format( "物料代码为 {0} 的物料单价应该为 \n{1}\n而不是\n{2}!", txtMaterialCode.Text, rowFirst.price, txtPrice.Text ) ); } } } } //可以提交 return true; }
protected new void Page_Load(object sender, EventArgs e) { //执行基类事件过程 base.Page_Load(sender, e); //根据部门名称设置是否默认选中只显示本部门 if (!IsPostBack) { //保存排序规则到session Session["proc_lot_card_mgr_order_by_content"] = "order by [proc_name],[product_num],[lot_id],[id]"; //检测是否含有session if (Session.Count < 5) { //跳转 Response.Redirect("/Account/Login", true); //停止加载后续内容 Response.End(); //直接返回 return; } //当前所选择的部门 string procName = Session["proc_name"].ToString().ToUpper(); //当前角色id Int16 roleId = Convert.ToInt16(Session["role_id"]); //检测是否有权限 if ((procName != mustProcName && procName != "样板") || roleId < 0 || roleId > 2) { //设置部分按钮和超链接不可用 linkAdd.Attributes.Remove("href"); linkAdd.Attributes.Add("class", "yd-no-underline"); } //检测当前部门是否是生产部门 bool isShowAllProc = true; if (procName == "成品仓" || procName == "MRB") { isShowAllProc = false; } else { using (var da = new t_procTableAdapter()) using (var tab = da.GetDataByProductProcName(procName)) { if (tab.Rows.Count > 0) { isShowAllProc = false; } } } //检测是否显示全部部门结存批量卡 if (isShowAllProc) { //选择显示所有部门余数 chkThisProcOnly.Checked = false; chkThisProcOnly.Visible = false; } //默认汇总条件 divTotalInfo.Attributes.Add("wh", string.Empty); } //检查传入的参数 string proc = Request["proc"]; //是否指定只取指定部门的余数 if (proc != null && proc.Length > 0) { //选择只显示当前部门余数 chkThisProcOnly.Checked = true; chkThisProcOnly.Visible = false; //只显示当前部门 litHeadName.Text = proc; odsProcLotCardMgr.SelectParameters["procName"].DefaultValue = proc; } else if (chkThisProcOnly.Checked) { //选中只显示当前部门 odsProcLotCardMgr.SelectParameters["procName"].DefaultValue = Session["proc_name"].ToString(); } else { //显示全部部门 odsProcLotCardMgr.SelectParameters["procName"].DefaultValue = ""; } //默认汇总条件 divTotalInfo.Attributes.Add("proc", odsProcLotCardMgr.SelectParameters["procName"].DefaultValue); }
/// <summary> /// 检测是否存在指定的生产部门名称或者MRB /// </summary> /// <param name="procName">待检测的部门名称</param> /// <returns></returns> internal static bool IsExistProductProcOrMRB(string procName) { //部门名称转大写 procName = procName.ToUpper(); //实例化数据适配器并获取数据 using (var da = new t_procTableAdapter()) using (var tab = da.GetDataByProductProcNameOrMRB(procName)) { //检测是否获取到数据 if (tab.Rows.Count > 0) { //存在该部门 return true; } else { //不存在该部门 return false; } } }
protected new void Page_Load(object sender, EventArgs e) { //执行基类事件过程 base.Page_Load(sender, e); //根据部门名称设置是否默认选中只显示本部门 if (!IsPostBack) { //保存排序规则到session Session["over_time_balance_order_by_content"] = "order by [proc_name],[product_num],[lot_id],[id]"; //检测是否含有session if (Session.Count < 5) { //跳转 Response.Redirect("/Account/Login", true); //停止加载后续内容 Response.End(); //直接返回 return; } //当前所选择的部门 string procName = Session["proc_name"].ToString(); //检测当前部门是否是生产部门 bool isShowAllProc = true; if (procName == "成品仓") { isShowAllProc = false; } else { using (var da = new t_procTableAdapter()) using (var tab = da.GetDataByProductProcName(procName)) { if (tab.Rows.Count > 0) { isShowAllProc = false; } } } //检测是否显示全部部门结存批量卡 if (isShowAllProc) { //选择显示所有部门余数 chkThisProcOnly.Checked = false; chkThisProcOnly.Visible = false; } //检测当前是否为空的查询条件 var obj = Session["over_time_balance_where_content"]; if (obj == null || obj == DBNull.Value || obj.ToString().Length <= 0) { Session["over_time_balance_where_content"] = string.Format(" where [add_time]<'{0}'", DateTime.Now.AddHours(-25)); txtOverHours.Value = "25"; } //默认汇总条件 divTotalInfo.Attributes.Add("wh", Session["over_time_balance_where_content"].ToString()); } //检查传入的参数 string proc = Request["proc"]; //是否指定只取指定部门的余数 if (proc != null && proc.Length > 0) { //选择只显示当前部门余数 chkThisProcOnly.Checked = true; chkThisProcOnly.Visible = false; //只显示当前部门 litHeadName.Text = proc; odsOverTimeBalance.SelectParameters["procName"].DefaultValue = proc; } else if (chkThisProcOnly.Checked) { //选中只显示当前部门 odsOverTimeBalance.SelectParameters["procName"].DefaultValue = Session["proc_name"].ToString(); } else { //显示全部部门 odsOverTimeBalance.SelectParameters["procName"].DefaultValue = ""; } //默认汇总条件 string strProcName = odsOverTimeBalance.SelectParameters["procName"].DefaultValue; divTotalInfo.Attributes.Add("proc", strProcName); if (!IsPostBack) { txtProcName.Value = strProcName; } }