private bool initFlowPicBox() { clear(); string routeCode = "", moCode = "", itemCode; object[] objs; if (string.IsNullOrEmpty(Convert.ToString(this.drownListMoCode.SelectedItemValue))) { return(false); } moCode = Convert.ToString(this.drownListMoCode.SelectedItemValue); if (string.IsNullOrEmpty(Convert.ToString(this.drownListRouteCode.SelectedItemValue))) { return(false); } routeCode = Convert.ToString(this.drownListRouteCode.SelectedItemValue); Messages msg = new Messages(); if (m_DataCollectFacade == null) { m_DataCollectFacade = new DataCollectFacade(this.DataProvider); } try { //add string sourceRcard = m_DataCollectFacade.GetSourceCard(FormatHelper.CleanString(txtRcard.Text.ToUpper()), this.drownListMoCode.SelectedItemValue.ToString()); //end //object objLastSimRe = m_DataCollectFacade.GetLastSimulationReport(FormatHelper.CleanString(sourceRcard)); object objLastSimRe = m_DataCollectFacade.GetSimulationReport(this.drownListMoCode.SelectedItemValue.ToString(), FormatHelper.CleanString(sourceRcard)); if (objLastSimRe == null) { msg.Add(new UserControl.Message(MessageType.Error, "$Error_CS_ID_Not_Exist")); txtRcard.SelectAll(); txtRcard.Focus(); ApplicationRun.GetInfoForm().Add(msg); return(false); } else { SimulationReport currentSimRe = (SimulationReport)objLastSimRe; itemCode = currentSimRe.ItemCode; //查询当前途程工序捞TBLITEMROUTE2OP表 //QueryItemOpFlow(当前itemCode,当前途程Code); objs = m_DataCollectFacade.QueryItemOpFlow(itemCode, routeCode); if (objs == null) { ApplicationRun.GetInfoForm().Add(new UserControl.Message(MessageType.Normal, "$CS_No_Data_To_Display")); //add by klaus 置焦点 txtRcard.SelectAll(); txtRcard.Focus(); return(false); } #region 画流程图 this.panelDrawFlow.Controls.Clear(); this.panelDrawFlow.Refresh(); StartButton btnStart = new StartButton(); this.panelDrawFlow.Controls.Add(btnStart); btnStart.setProcessName(MutiLanguages.ParserString("$CS_Start")); btnStart.Location = new Point(10, 30); btnStart.DrawButton(); FunctionButton lastOne = btnStart; FlowButton btnFlow = new StraightArrowButton(); double vdegree = 0; ItemRoute2OP currentOP = null; for (int i = 0; i < objs.Length; i++) { ItemRoute2OP itemRoute2Op = objs[i] as ItemRoute2OP; btnFlow = lastOne.AddOutArrow(vdegree); Operation op = (Operation) new BaseModelFacade(this.DataProvider).GetOperation(itemRoute2Op.OPCode); lastOne = btnFlow.AddOutProcess(itemRoute2Op.OPCode); lastOne.Tag = itemRoute2Op.OPCode; lastOne.ProcessID = op.OPDescription; lastOne.DrawButton(); lastOne.BackColor = Color.Green; lastOne.Click += new EventHandler(btn_Click); //string actionResult = m_DataCollectFacade.CheckOpIsExist(FormatHelper.CleanString(txtRcard.Text.Trim().ToUpper()), moCode, routeCode, itemRoute2Op.OPCode); string actionResult = m_DataCollectFacade.CheckOpIsExist(sourceRcard, moCode, routeCode, itemRoute2Op.OPCode); if (string.IsNullOrEmpty(actionResult)) { lastOne.BackColor = Color.White; } else { if (actionResult == ProductStatus.GOOD) { lastOne.BackColor = Color.Green; } else { lastOne.BackColor = Color.Red; } } if (itemRoute2Op.OPCode == currentSimRe.OPCode && itemRoute2Op.RouteCode == currentSimRe.RouteCode) { currentOP = (ItemRoute2OP)objs[i]; if (currentSimRe.Status == ProductStatus.GOOD) { lastOne.BackColor = Color.Green; } else { lastOne.BackColor = Color.Red; } } #region 注释 Terry 2012-11-13 //如果途程里工序是从0开始,显示背景有问题。 //if ((currentOP != null) && (i > currentOP.OPSequence - 1)) //{ // lastOne.BackColor = Color.WhiteSmoke; //} #endregion if ((btnFlow as StraightArrowButton).Degree == 90) { vdegree = (vdegree + 180) % 360; } } btnFlow = lastOne.AddOutArrow(vdegree); EndButton btnEnd = btnFlow.AddEnd(); btnEnd.Text = MutiLanguages.ParserString("$CS_End"); btnEnd.BackColor = lastOne.BackColor; #endregion return(true); } } catch (Exception ex) { msg.Add(new UserControl.Message(ex)); ApplicationRun.GetInfoForm().Add(msg); txtRcard.Focus(); return(false); } }