protected void btnSave_Click(object sender, EventArgs e) { #region 检查 //重复查询 StringBuilder strwhere = new StringBuilder(); strwhere.AppendFormat("ParentNO='{0}' and MaterialNO = '{1}'", Request.QueryString["parentNO"], tgbMaterialNO.Text); BLL.tb_JC_BOMSub bllBOMSub = new BLL.tb_JC_BOMSub(); DataTable dtBOMSub = bllBOMSub.GetList(strwhere.ToString()).Tables[0]; if (dtBOMSub.Rows.Count > 0) { Alert.ShowInTop("该项已存在!", "错误", MessageBoxIcon.Error); return; } if (nbxAmount.Text == "0") { Alert.ShowInTop("数量不能为0!", "错误", MessageBoxIcon.Error); nbxAmount.Focus(); return; } //嵌套查询 BLL.proc_BOM bllBOM_proc = new BLL.proc_BOM(); int exit = bllBOM_proc.isNesting(Request.QueryString["parentNO"], tgbMaterialNO.Text); if (Request.QueryString["parentNO"].Equals(tgbMaterialNO.Text)) { exit = 1; } if (exit == 1) { Alert.ShowInTop("存在嵌套,不能添加此物料!", "错误", MessageBoxIcon.Error); return; } #endregion #region 保存 Model.tb_JC_BOMSub modelBOMSub = new Model.tb_JC_BOMSub(); modelBOMSub.ID = Guid.NewGuid().ToString(); modelBOMSub.MaterialNO = tgbMaterialNO.Text; modelBOMSub.MaterialType = hdfPropertyNO.Text; modelBOMSub.ParentNO = Request.QueryString["parentNO"].ToString(); modelBOMSub.Amount = decimal.Parse(nbxAmount.Text); modelBOMSub.BackFlush = ddlBackFlush.SelectedValue; modelBOMSub.LeadTimeOffset = decimal.Parse(nbxLeadTimeOffset.Text + ".00"); bool result = bllBOMSub.Add(modelBOMSub); if (result) { if (result) { Alert.ShowInTop("添加成功!", "信息", MessageBoxIcon.Information, ActiveWindow.GetHidePostBackReference("Sub_Add_Success")); } else { Alert.ShowInTop("添加失败!", "错误", MessageBoxIcon.Error, ActiveWindow.GetHidePostBackReference("Sub_Add_Fail")); } } #endregion }
private XmlDocument getXmlDocument() { XmlDocument xmlDoc = new XmlDocument(); if (gridBOMParent.SelectedRowIndex == -1) { xmlDoc = PublicMethod.getEmptyTree(); } else { BLL.proc_BOM bllBOM = new BLL.proc_BOM(); string materialNO = gridBOMParent.Rows[gridBOMParent.SelectedRowIndex].Values[1].ToString(); DataSet dsBOM = bllBOM.Search(materialNO); xmlDoc = PublicMethod.getEmptyTree(); if (dsBOM.Tables[0].Rows.Count == 0) { return(xmlDoc); } xmlDoc.SelectSingleNode("Tree").RemoveAll(); XmlElement element = xmlDoc.CreateElement("TreeNode"); element.SetAttribute("Text", dsBOM.Tables[0].Rows[0]["ParentName"].ToString()); element.SetAttribute("Number", dsBOM.Tables[0].Rows[0]["ParentNO"].ToString()); element.SetAttribute("SingleClickExpand", "true"); element.SetAttribute("Level", "0"); xmlDoc.SelectSingleNode("//Tree").AppendChild(element); foreach (DataRow dr in dsBOM.Tables[0].Rows) { element = xmlDoc.CreateElement("TreeNode"); element.SetAttribute("Text", dr["MaterialName"].ToString()); element.SetAttribute("Number", dr["MaterialNO"].ToString()); element.SetAttribute("SingleClickExpand", "true"); element.SetAttribute("Level", dr["Level"].ToString()); string parentLevel = (int.Parse(dr["Level"].ToString()) - 1).ToString(); int i = 0; string path = string.Format("//TreeNode[@Number='{0}' and @Level='{1}']", dr["ParentNO"], parentLevel); while (true) { string childPath = string.Format("//TreeNode[@Number='{0}']", dr["MaterialNO"]); if (xmlDoc.SelectNodes(path)[i].ChildNodes.Count != 0) { if (xmlDoc.SelectNodes(path)[i].SelectSingleNode(childPath) != null) { i = i + 1; continue; } else { xmlDoc.SelectNodes(path)[i].AppendChild(element); break; } } else { xmlDoc.SelectNodes(path)[i].AppendChild(element); break; } } } } return(xmlDoc); }