Exemplo n.º 1
0
 public RuleActiveSet(RuleLine ruleLine)
 {
     StartStateName = ruleLine.StrStartActive;
     EndStateName   = ruleLine.StrEndActive;
     RuleName       = ruleLine.Name;
     requestSystemBOAttributeList();
     LoadCoditionList();
 }
Exemplo n.º 2
0
 public RuleActiveSet(RuleLine ruleLine)
 {
     StartStateName = ruleLine.StrStartActive;
     EndStateName = ruleLine.StrEndActive;
     RuleName = ruleLine.Name;
     requestSystemBOAttributeList();
     LoadCoditionList();
 }
Exemplo n.º 3
0
        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
            }
        }
Exemplo n.º 4
0
        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 + "&nbsp;";
            //            }
            //            break;
            //        case XmlNodeType.Attribute:
            //            for (int i = 0; i < XmlReader.AttributeCount; i++)
            //            {
            //                XmlReader.MoveToAttribute(i);
            //                qq+="属性:" + XmlReader.Name + "=" + XmlReader.Value + "&nbsp;";
            //            }
            //            break;
            //        case XmlNodeType.CDATA:
            //            qq+="CDATA:" + XmlReader.Value + "&nbsp;";
            //            break;
            //        case XmlNodeType.Element:
            //            qq+="节点名称:" + XmlReader.LocalName + "<br>";
            //            for (int i = 0; i < XmlReader.AttributeCount; i++)
            //            {
            //                XmlReader.MoveToAttribute(i);
            //               qq+="属性:" + XmlReader.Name + "=" + XmlReader.Value + "&nbsp;";
            //            }
            //            break;
            //        case XmlNodeType.Comment:
            //            qq+="Comment:" + XmlReader.Value;
            //            break;
            //        case XmlNodeType.Whitespace:
            //            qq+="Whitespace:" + "&nbsp;";
            //            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);
            }

        }
Exemplo n.º 5
0
        private void SetPos(string RuleName)//,string ActiveName,Point Pos)
        {
            RuleLine class2 = FindName(RuleName) as RuleLine;

            class2.SetValue(Canvas.TopProperty, (double)200);
        }