//创建合格率标签 protected PassrateChartTag CreatePassrateTag(XmlNode nodeTag) { PassrateChartTag tag = new PassrateChartTag(); tag.PartInfo.PartName = nodeTag.Attributes["PartName"].Value; return(tag); }
protected void StatPassrate(ServerConnection conn, ProjectInfo projectInfo, PassrateChartTag tag, ref string strError) { if (tag.PartInfo.PartID == 0) { return; } float fAveragePassRate = 0; List <DM_ModelPassRate> arrPassrate = CmdStat.StatPassRate(conn, projectInfo.ProjectID, tag.PartInfo.PartID, GlobalSession.Period, ref strError); tag.Passrate = new float[arrPassrate.Count]; tag.AxisX = new string[arrPassrate.Count]; int i = 0; float fMin = 10; float fMax = -1; foreach (DM_ModelPassRate passrate in arrPassrate) { fAveragePassRate += passrate.PassRate; tag.Passrate[i] = passrate.PassRate; tag.AxisX[i] = passrate.MeasureDate.ToString("MM/dd/yyyy"); fMin = Math.Min(fMin, tag.Passrate[i]); fMax = Math.Max(fMax, tag.Passrate[i]); i++; } if (fMax < 0) { fMax = 0; } if (fMin > 1) { fMin = 1; } if (arrPassrate.Count > 0) { fAveragePassRate /= arrPassrate.Count; fAveragePassRate = (float)Math.Round(fAveragePassRate, 3); } //更新相关标签信息 for (int nTagIndex = 0; nTagIndex < projectInfo.Tags.Length; nTagIndex++) { if (projectInfo.Tags[nTagIndex].TagName == "Label") { LabelTag label = (LabelTag)projectInfo.Tags[nTagIndex]; if (label.PartInfo.PartID == tag.PartInfo.PartID) { for (int j = 0; j < label.Items.Length; j++) { if (label.Items[j].TagName[0] == "平均合格率") { label.Items[j].Value[0] = (float)Math.Round(fAveragePassRate * 100, 1); } else if (label.Items[j].TagName.Length > 1) { if (label.Items[j].TagName[0] == "最差合格率") { label.Items[j].Value[0] = fMin; } if (label.Items[j].TagName[1] == "最好合格率") { label.Items[j].Value[1] = fMax; } } } } } } }