Beispiel #1
0
    //创建合格率标签
    protected PassrateChartTag CreatePassrateTag(XmlNode nodeTag)
    {
        PassrateChartTag tag = new PassrateChartTag();

        tag.PartInfo.PartName = nodeTag.Attributes["PartName"].Value;
        return(tag);
    }
Beispiel #2
0
    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;
                            }
                        }
                    }
                }
            }
        }
    }