Пример #1
0
        void dsc_GetProcessInstanceTraceXmlCompleted(object sender, GetProcessInstanceTraceXmlCompletedEventArgs e)
        {
            //流程跟踪
            ObservableCollection <ProcessInstanceTrace> pits = e.Result;

            foreach (ProcessInstanceTrace item in pits)
            {
                if (UserControls.ContainsKey(item.FromNodeId))
                {
                    UserControls[item.FromNodeId].SetState(StateEnum.COMPLETED);
                }
                if (UserControls.ContainsKey(item.EdgeId))
                {
                    UserControls[item.EdgeId].SetState(StateEnum.COMPLETED);
                }
                if (UserControls.ContainsKey(item.ToNodeId))
                {
                    UserControls[item.ToNodeId].SetState(StateEnum.RUNNING);
                }
            }

            for (int i = pits.Count - 1, j = 0; i >= 0 && j < 4; i--, j++)
            {
                if (UserControls.ContainsKey(pits[i].EdgeId))
                {
                    UserControls[pits[i].EdgeId].SetState(StateEnum.RUNNING);
                }
                if (UserControls.ContainsKey(pits[i].FromNodeId) && UserControls[pits[i].FromNodeId] is ActivityControl)
                {
                    break;
                }
            }
        }
Пример #2
0
        void dsc_GetProcessInstanceTraceXmlCompleted(object sender, GetProcessInstanceTraceXmlCompletedEventArgs e)
        {
            //流程跟踪
            ObservableCollection<ProcessInstanceTrace> pits = e.Result;

            foreach (ProcessInstanceTrace item in pits)
            {
                if (UserControls.ContainsKey(item.FromNodeId)) UserControls[item.FromNodeId].SetState(StateEnum.COMPLETED);
                if (UserControls.ContainsKey(item.EdgeId)) UserControls[item.EdgeId].SetState(StateEnum.COMPLETED);
                if (UserControls.ContainsKey(item.ToNodeId)) UserControls[item.ToNodeId].SetState(StateEnum.RUNNING);
            }

            for (int i = pits.Count - 1, j = 0; i >= 0 && j < 4; i--, j++)
            {
                if (UserControls.ContainsKey(pits[i].EdgeId)) UserControls[pits[i].EdgeId].SetState(StateEnum.RUNNING);
                if (UserControls.ContainsKey(pits[i].FromNodeId) && UserControls[pits[i].FromNodeId] is ActivityControl)
                {
                    break;
                }
            }
        }