예제 #1
0
        //private void btnClose_Click(object sender, RoutedEventArgs e)
        //{
        //    this.DialogResult = false;
        //}

        //private void btnOK_Click(object sender, RoutedEventArgs e)
        //{
        //    StartStateName = ((StateType)cboStartInfo.SelectedItem).StateCode;
        //    EndStateName = ((StateType)cboNextInfo.SelectedItem).StateCode;
        //    if (chkUseCondition.IsChecked == false)
        //    {
        //        CoditionList.Clear();
        //    }
        //    if (StartStateName == EndStateName)
        //    {
        //        MessageBox.Show("起始状态和下一状态不能相同!");
        //        return;
        //    }

        //    this.DialogResult = true;
        //}

        //private void btnDele_Click(object sender, RoutedEventArgs e)
        //{

        //    this.OptState = OptState.Delete;
        //    this.DialogResult = true;
        //}


        private void btnAddCondition_Click(object sender, RoutedEventArgs e)
        {
            //setConditions.Show();
            CompareCondition newCondition = new CompareCondition();
            newCondition.Name = System.Guid.NewGuid().ToString();
            newCondition.Description = ((FlowDesignerWS.WFBOAttribute)cboCoditionAttribute.SelectedItem).Description;
            newCondition.CompAttr = ((FlowDesignerWS.WFBOAttribute)cboCoditionAttribute.SelectedItem).Name;
            newCondition.DataType = ((FlowDesignerWS.WFBOAttribute)cboCoditionAttribute.SelectedItem).DataType;
            newCondition.Operate = ((System.Windows.Controls.ContentControl)(cboOperate.SelectedItem)).Content.ToString(); // cboOperate.SelectedItem.ToString();
            newCondition.CompareValue = txtCompareValue.Text.ToString();
            CoditionList.Add(newCondition);
            dgCodition.ItemsSource = null;
            dgCodition.ItemsSource = CoditionList;
        }
예제 #2
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);
            }

        }