void State_browser_ReloadDataEvent() { if (d_StateActiveSetS == true && StateActiveSetS.ActiveName != "") { if (StateActiveSetS.optFlag == false) { StateActive a = FindName(StateActiveSetS.ActiveName) as StateActive; Actives.Remove(a); cnsDesignerContainer.Children.Remove(a); RuleLine b; for (int i = 0; i < Rules.Count; i++) { if (Rules[i].StrStartActive == StateActiveSetS.ActiveName || Rules[i].StrEndActive == StateActiveSetS.ActiveName) { b = FindName(Rules[i].Name) as RuleLine; Rules.Remove(b); cnsDesignerContainer.Children.Remove(b); --i; } } } else { //检测是否已添加此状态 for (int i = 0; i < Actives.Count; i++) { if (Actives[i].Name == StateActiveSetS.ActiveName) { // MessageBox.Show("此状态已添加,不能添加相同的状态!"); //ComfirmWindow.ConfirmationBox(Utility.GetResourceStr("CAUTION"), Utility.GetResourceStr("M00001"), Utility.GetResourceStr("CONFIRMBUTTON")); ComfirmWindow.ConfirmationBoxs(Utility.GetResourceStr("CAUTION"), Utility.GetResourceStr("M00001"), Utility.GetResourceStr("CONFIRM"), MessageIcon.Error); return; } } StateActive Flow = new StateActive(); Flow.Name = StateActiveSetS.ActiveName; // 1s 冉龙军 //string tmpStateName = (StateList.Where(s => s.StateCode.ToString() == StateActiveSetS.ActiveName).ToList().First().StateName); string tmpStateName = StateActiveSetS.Remark; // 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)); } // StateName += (StateName == "" ? tmp : "\r\n" + tmp.Substring(StateName.Length)); Flow.StateName.Text = StateName;// (StateList.Where(s => s.StateCode.ToString() == StateActiveSetS.ActiveName).ToList().First().StateName); Flow.SetValue(Canvas.TopProperty, (double)100); Flow.SetValue(Canvas.LeftProperty, (double)100); if (!cnsDesignerContainer.Children.Contains(Flow)) { cnsDesignerContainer.Children.Add(Flow); Flow.Container = this; Actives.Add(Flow); // a.ActivityChanged += new ActivityChangeDelegate(OnActivityChanged); } } } }
public void AddStateActive() { if (StateActiveSetS.ActiveName != "") { StateActive Flow = new StateActive(); Flow.Name = StateActiveSetS.ActiveName; Flow.StateName.Text = StateActiveSetS.ActiveName; Flow.SetValue(Canvas.TopProperty, (double)100); Flow.SetValue(Canvas.LeftProperty, (double)100); if (!cnsDesignerContainer.Children.Contains(Flow)) { cnsDesignerContainer.Children.Add(Flow); Flow.Container = this; // a.ActivityChanged += new ActivityChangeDelegate(OnActivityChanged); } } }
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 ClearContain() { cnsDesignerContainer.Children.Clear(); Actives.Clear(); Rules.Clear(); BOSystem.Name = ""; BOSystem.Description = ""; BOObject.Name = ""; BOObject.Description = ""; StateActive StartFlow = new StateActive(); StartFlow.Name = "StartFlow"; StartFlow.bdrName.Width = StartFlow.bdrName.Height; StartFlow.bdrName2.Width = StartFlow.bdrName2.Height; ToolTipService.SetToolTip(StartFlow, "开始流程"); StartFlow.StateName.Text = "开始"; StartFlow.bdrName.Background = new SolidColorBrush(Colors.Orange); StartFlow.bdrName.CornerRadius = new CornerRadius(40); StartFlow.bdrName2.CornerRadius = new CornerRadius(40); StartFlow.SetValue(Canvas.TopProperty, (double)50); StartFlow.SetValue(Canvas.LeftProperty, (double)400); if (!cnsDesignerContainer.Children.Contains(StartFlow)) { cnsDesignerContainer.Children.Add(StartFlow); StartFlow.Container = this; Actives.Add(StartFlow); } StateActive EndFlow = new StateActive(); EndFlow.Name = "EndFlow"; EndFlow.bdrName.Width = StartFlow.bdrName.Width; ; EndFlow.bdrName2.Height = StartFlow.bdrName2.Height; ; ToolTipService.SetToolTip(EndFlow, "结束流程"); EndFlow.StateName.Text = "结束"; EndFlow.StateName.SetValue(Canvas.LeftProperty, (double)8); EndFlow.bdrName.Background = new SolidColorBrush(Colors.Red); EndFlow.bdrName.CornerRadius = new CornerRadius(40); EndFlow.bdrName2.CornerRadius = new CornerRadius(40); EndFlow.SetValue(Canvas.TopProperty, (double)400); EndFlow.SetValue(Canvas.LeftProperty, (double)400); if (!cnsDesignerContainer.Children.Contains(EndFlow)) { cnsDesignerContainer.Children.Add(EndFlow); EndFlow.Container = this; Actives.Add(EndFlow); } }
/// <summary> /// 设置状态位置 /// </summary> /// <param name="Active"></param> public void SetPos(StateActive Active)//,string ActiveName,Point Pos) { for (int i = 0; i < Rules.Count; i++) { if (Rules[i].StrStartActive == Active.Name || Rules[i].StrEndActive == Active.Name) SetRuleLinePos(Rules[i].Name); } }