public RuleActiveSet(RuleLine ruleLine) { StartStateName = ruleLine.StrStartActive; EndStateName = ruleLine.StrEndActive; RuleName = ruleLine.Name; requestSystemBOAttributeList(); LoadCoditionList(); }
void rule_browser_ReloadDataEvent(RuleActiveSet RuleActiveSetS) { if (d_RuleActiveSet == true) { #region 添加新规则 if (RuleActiveSetS.OptState == OptState.Add && RuleActiveSetS.StartStateName != "" && RuleActiveSetS.EndStateName != "") { //检测是否已添加此状态 for (int i = 0; i < Rules.Count; i++) { if (Rules[i].StrStartActive == RuleActiveSetS.StartStateName && Rules[i].StrEndActive == RuleActiveSetS.EndStateName) { ComfirmWindow.ConfirmationBox(Utility.GetResourceStr("PROMPT"), Utility.GetResourceStr("M00008"), Utility.GetResourceStr("CONFIRMBUTTON")); //MessageBox.Show("此规则已添加,不能添加相同的规则!"); return; } } if ((string.IsNullOrEmpty(BOSystem.Name) || string.IsNullOrEmpty(BOObject.Name)) && !string.IsNullOrEmpty(RuleActiveSetS.BOSystem.Name) && !string.IsNullOrEmpty(RuleActiveSetS.BOObject.Name)) { BOSystem = RuleActiveSetS.BOSystem; BOObject = RuleActiveSetS.BOObject; //this.tbSystemAndBusinessObject.Text = } RuleLine a = new RuleLine(); a.Name = System.Guid.NewGuid().ToString(); a.StrStartActive = RuleActiveSetS.StartStateName; a.StrEndActive = RuleActiveSetS.EndStateName; a.Container = this; a.ruleCoditions = new RuleConditions(); a.ruleCoditions.subCondition.Clear(); if (RuleActiveSetS.CoditionList.Count > 0) { a.ruleCoditions.ConditionObject = BOObject.Name; foreach (CompareCondition cpItem in RuleActiveSetS.CoditionList) { a.ruleCoditions.subCondition.Add(cpItem); } } // StartFlow.GetValue(Canvas.TopProperty) ; //Double X1 = 60 + Convert.ToDouble((FindName(a.StrStartActive) as StateActive).GetValue(Canvas.TopProperty).ToString()); //Double Y1 = 50 + Convert.ToDouble((FindName(a.StrStartActive) as StateActive).GetValue(Canvas.LeftProperty).ToString()); //a.SetValue(Canvas.TopProperty, X1);//(double)110); //a.SetValue(Canvas.LeftProperty, Y1);//(double)450); if (!cnsDesignerContainer.Children.Contains(a)) { cnsDesignerContainer.Children.Add(a); SetRuleLinePos(a.Name); Rules.Add(a); // a.ActivityChanged += new ActivityChangeDelegate(OnActivityChanged); } } #endregion #region 修改规则 else if (RuleActiveSetS.OptState == OptState.Update && RuleActiveSetS.StartStateName != "" && RuleActiveSetS.EndStateName != "") { if ((string.IsNullOrEmpty(BOSystem.Name) || string.IsNullOrEmpty(BOObject.Name)) && !string.IsNullOrEmpty(RuleActiveSetS.BOSystem.Name) && !string.IsNullOrEmpty(RuleActiveSetS.BOObject.Name)) { BOSystem = RuleActiveSetS.BOSystem; BOObject = RuleActiveSetS.BOObject; } RuleLine a = FindName(RuleActiveSetS.RuleName) as RuleLine; a.StrStartActive = RuleActiveSetS.StartStateName; a.StrEndActive = RuleActiveSetS.EndStateName; if (a.ruleCoditions == null) a.ruleCoditions = new RuleConditions(); a.ruleCoditions.subCondition.Clear(); if (RuleActiveSetS.CoditionList.Count > 0) { a.ruleCoditions.ConditionObject = BOObject.Name; foreach (CompareCondition cpItem in RuleActiveSetS.CoditionList) { a.ruleCoditions.subCondition.Add(cpItem); } } SetRuleLinePos(a.Name); } #endregion #region 删除规则 else if (RuleActiveSetS.OptState == OptState.Delete) { RuleLine a = FindName(RuleActiveSetS.RuleName) as RuleLine; if (a == null) return; if (a.ruleCoditions != null) a.ruleCoditions.subCondition.Clear(); Rules.Remove(a); cnsDesignerContainer.Children.Remove(a); } #endregion } }
void SetLayout() { string Layout = this.FlowDefine; //XmlDocument doc = new XmlDocument(); //doc.LoadXml(Layout); string qq; string WFBOSystemName = string.Empty; string WFBOObjectName = string.Empty; qq = ""; XmlReader XmlReader; StringReader bb = new StringReader(Layout); XmlReader = XmlReader.Create(bb); #region 遍历XML //while (XmlReader.Read()) //{ // qq+="<li>节点类型:" + XmlReader.NodeType + "==<br>"; // switch (XmlReader.NodeType) // { // case XmlNodeType.XmlDeclaration: // for (int i = 0; i < XmlReader.AttributeCount; i++) // { // XmlReader.MoveToAttribute(i); // qq+="属性:" + XmlReader.Name + "=" + XmlReader.Value + " "; // } // break; // case XmlNodeType.Attribute: // for (int i = 0; i < XmlReader.AttributeCount; i++) // { // XmlReader.MoveToAttribute(i); // qq+="属性:" + XmlReader.Name + "=" + XmlReader.Value + " "; // } // break; // case XmlNodeType.CDATA: // qq+="CDATA:" + XmlReader.Value + " "; // break; // case XmlNodeType.Element: // qq+="节点名称:" + XmlReader.LocalName + "<br>"; // for (int i = 0; i < XmlReader.AttributeCount; i++) // { // XmlReader.MoveToAttribute(i); // qq+="属性:" + XmlReader.Name + "=" + XmlReader.Value + " "; // } // break; // case XmlNodeType.Comment: // qq+="Comment:" + XmlReader.Value; // break; // case XmlNodeType.Whitespace: // qq+="Whitespace:" + " "; // break; // case XmlNodeType.ProcessingInstruction: // qq+="ProcessingInstruction:" + XmlReader.Value; // break; // case XmlNodeType.Text: // qq+="Text:" + XmlReader.Value; // break; // } // } #endregion XElement XElementS = XElement.Load(XmlReader); var flowSystem = from c in XElementS.Descendants("System") select c; if (flowSystem != null) { foreach (var tmp in flowSystem) { WFBOSystemName = tmp.Value; } } //BOSystem var a = from c in XElementS.Descendants("Activity") select c; foreach (var tmp in a) { string stepname = tmp.Attribute("Name").Value; if (stepname != "StartFlow" && stepname != "EndFlow") { StateActive Flow = new StateActive(); Flow.MinWidth = 60; Flow.Name = stepname; // 1s 冉龙军 //string tmpStateName = (StateList.Where(s => s.StateCode.ToString() == stepname).ToList().First().StateName); string tmpStateName = tmp.Attribute("Remark").Value; // 1e string StateName = ""; for (int i = 0; i < tmpStateName.Length; i = i + 6) { if (tmpStateName.Length < i + 6) StateName += (i == 0 ? tmpStateName : "\r\n" + tmpStateName.Substring(i)); else StateName += (i == 0 ? tmpStateName.Substring(i, 6) : "\r\n" + tmpStateName.Substring(i, 6)); } Flow.StateName.Text = StateName;// (StateList.Where(s => s.StateCode.ToString() == stepname).ToList().First().StateName); #region 加载KPI点的信息 if (KPIPointList != null && KPIPointList.Count != 0) foreach (T_HR_KPIPOINT point in KPIPointList) { if (stepname.Equals(point.STEPID)) Flow.StateName.Text += "(KPI点)"; } #endregion 加载KPI点的信息 Flow.SetValue(Canvas.TopProperty, Convert.ToDouble(tmp.Attribute("X").Value)); Flow.SetValue(Canvas.LeftProperty, Convert.ToDouble(tmp.Attribute("Y").Value)); if (!cnsDesignerContainer.Children.Contains(Flow)) { // 1s 冉龙军 暂不处理错误 //cnsDesignerContainer.Children.Add(Flow); try { cnsDesignerContainer.Children.Add(Flow); } catch (Exception ex) { } // 1e Flow.Container = this; Actives.Add(Flow); } } } var b = from c in XElementS.Descendants("Rule") select c; foreach (var tmp in b) { RuleLine RuleLineS = new RuleLine(); RuleLineS.Name = tmp.Attribute("Name").Value; RuleLineS.StrStartActive = tmp.Attribute("StrStartActive").Value; RuleLineS.StrEndActive = tmp.Attribute("StrEndActive").Value; RuleLineS.Container = this; if (tmp.Element("Conditions") != null) { RuleConditions newRuleCondition = new RuleConditions(); newRuleCondition.Name = tmp.Element("Conditions").Attribute("Name").Value; newRuleCondition.ConditionObject = tmp.Element("Conditions").Attribute("Object").Value; newRuleCondition.CodiCombMode = tmp.Element("Conditions").Attribute("CodiCombMode").Value; if (!string.IsNullOrEmpty(newRuleCondition.ConditionObject)) { WFBOObjectName = newRuleCondition.ConditionObject; } if (tmp.Element("Conditions").Elements("Condition").Count() > 0) { var e = from f in tmp.Element("Conditions").Descendants("Condition") select f; foreach (var tmp2 in e) { CompareCondition newCD = new CompareCondition(); newCD.Name = tmp2.Attribute("Name").Value; newCD.Description = tmp2.Attribute("Description").Value; newCD.CompAttr = tmp2.Attribute("CompAttr").Value; newCD.Operate = backEscapeXMLChar(tmp2.Attribute("Operate").Value); newCD.DataType = tmp2.Attribute("DataType").Value; newCD.CompareValue = tmp2.Attribute("CompareValue").Value; newRuleCondition.subCondition.Add(newCD); } } RuleLineS.ruleCoditions = newRuleCondition; } if (!cnsDesignerContainer.Children.Contains(RuleLineS)) { // 1s 冉龙军 暂不处理错误 //cnsDesignerContainer.Children.Add(RuleLineS); try { cnsDesignerContainer.Children.Add(RuleLineS); } catch (Exception ex) { } // 1e SetRuleLinePos(RuleLineS.Name); Rules.Add(RuleLineS); // a.ActivityChanged += new ActivityChangeDelegate(OnActivityChanged); } // MessageBox.Show(tmp.Attribute("Name").Value); } }
private void SetPos(string RuleName)//,string ActiveName,Point Pos) { RuleLine class2 = FindName(RuleName) as RuleLine; class2.SetValue(Canvas.TopProperty, (double)200); }