Example #1
0
        private void CreatNormalType(DateTime starttime, DateTime endtime)
        {
            int n1 = 0;
            int n2 = 0;
            int n3 = 0;

            string[]   NgType = { "包装", "标签", "数量", "错料", "外观", "尺寸", "试装不良", "功能", "环保", "其他" };
            int[]      Number = new int[10];
            DataTable  dt     = new DataTable();
            DataColumn dc1    = new DataColumn("不良类别", Type.GetType("System.String"));
            DataColumn dc2    = new DataColumn("不良批数", Type.GetType("System.Int32"));

            dt.Columns.Add(dc1);
            dt.Columns.Add(dc2);

            DataTable  dt1 = new DataTable();
            DataColumn dc3 = new DataColumn("不良类别", Type.GetType("System.String"));
            DataColumn dc6 = new DataColumn("不良批数", Type.GetType("System.Int32"));     //0305新添加不良批数。
            DataColumn dc5 = new DataColumn("Percent", Type.GetType("System.String")); //0305新添加不良批数对应的百分比。
            DataColumn dc4 = new DataColumn("Cum%", Type.GetType("System.String"));

            dt1.Columns.Add(dc3);
            dt1.Columns.Add(dc6);
            dt1.Columns.Add(dc5);
            dt1.Columns.Add(dc4);
            string constr = "server=192.168.0.176;database=BarcodeNew;user id=sa;password=The0more7people0you7love3the7weaker8you8are;Pooling=false";

            for (int i = 0; i < 10; i++)
            {
                using (SqlConnection con = new SqlConnection(constr))
                {
                    string sql1 = "QMS_NgTypeAnalyse";
                    using (SqlCommand cmd = new SqlCommand(sql1, con))
                    {
                        cmd.CommandType = CommandType.StoredProcedure;
                        cmd.Parameters.AddWithValue("@ubussiness", comboBox1.SelectedItem);
                        cmd.Parameters.AddWithValue("@ucustomer", comboBox2.SelectedItem);
                        cmd.Parameters.AddWithValue("@umaterialstype", comboBox3.SelectedItem);
                        cmd.Parameters.AddWithValue("@ustarttime", starttime);
                        cmd.Parameters.AddWithValue("@uendtime", endtime);
                        cmd.Parameters.AddWithValue("@ngtype", NgType[i]);//添加一种不良类别,然后分别统计该类别的不良批数
                        con.Open();
                        Number[i] = (int)cmd.ExecuteScalar();
                    }
                }
                n2 += Number[i];
                DataRow dr = dt.NewRow();
                dr["不良类别"] = NgType[i];
                dr["不良批数"] = Number[i];
                //去掉不良类别中不良批数为0的行。
                if (Number[i] != 0)
                {
                    dt.Rows.Add(dr);
                    // n1++;
                }
            }
            dt.DefaultView.Sort = "不良批数 DESC";
            dt = dt.DefaultView.ToTable();

            int len = 0;

            len = dt.Rows.Count;
            int[] ArrayNumber = new int[len];
            for (int i = 0; i < len; i++)
            {
                ArrayNumber[i] = Convert.ToInt32(dt.Rows[i]["不良批数"]);
            }

            for (int i = 0; i < len; i++)
            {
                n3 += ArrayNumber[i];
                DataRow dr = dt1.NewRow();
                dr["不良类别"]    = dt.Rows[i]["不良类别"];
                dr["不良批数"]    = dt.Rows[i]["不良批数"];
                dr["Percent"] = (ArrayNumber[i] / (double)n2).ToString("p");
                //dr["Pencent"] = n4==0 ? 0.ToString() : (ArrayNumber[i] / (double)n2).ToString("p");
                dr["Cum%"] = (n3 / (double)n2).ToString("p");
                dt1.Rows.Add(dr);
            }

            gridControl1.DataSource = dt1;
            this.gridView1.Appearance.Row.TextOptions.HAlignment         = DevExpress.Utils.HorzAlignment.Center;
            this.gridView1.Appearance.HeaderPanel.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;


            chartControl1.Series.Clear();
            Series series1 = CreateSeries("不良批数", ViewType.Bar, dt1);

            chartControl1.Series.Add(series1);
            Series series3 = CreateSeries2(ViewType.Line, dt1);

            chartControl1.Series.Add(series3);

            //AxisRange.Auto
            AxisRange DIA = (AxisRange)((XYDiagram)chartControl1.Diagram).AxisY.Range;

            //DIA.Auto = false;
            //DIA.SetInternalMinMaxValues(0, n2);
            //DIA.MaxValue = n2;
            //DIA.MinValue = 0;

            if (n2 > 0)
            {
                DIA.Auto = false;
                DIA.SetInternalMinMaxValues(0, n2);
            }


            XYDiagram diagram = (XYDiagram)chartControl1.Diagram;

            diagram.AxisY.Title.Visible      = true;
            diagram.AxisY.Title.Alignment    = StringAlignment.Center;
            diagram.AxisY.Title.Text         = "不良批数";
            diagram.AxisY.Title.TextColor    = Color.Black;
            diagram.AxisY.Title.Antialiasing = true;
            diagram.AxisY.Title.Font         = new Font("Tahoma", 10);


            ((XYDiagram)chartControl1.Diagram).SecondaryAxesY.Clear();
            SecondaryAxisY myAxisY = new SecondaryAxisY();

            ((XYDiagram)chartControl1.Diagram).SecondaryAxesY.Add(myAxisY);
            ((LineSeriesView)series3.View).AxisY = myAxisY;
            myAxisY.Color = Color.Red;

            myAxisY.Range.Auto = false;
            myAxisY.Range.SetInternalMinMaxValues(0, 1);

            //myAxisY.AxisRange.Auto
            //myAxisY.Range.Auto = false;
            //myAxisY.Range.MinValue = 0;
            //myAxisY.Range.MaxValue = 1.00;



            myAxisY.Title.Text         = "不良占比";
            myAxisY.Title.Alignment    = StringAlignment.Center;
            myAxisY.Title.Visible      = true;
            myAxisY.Title.TextColor    = Color.Black;
            myAxisY.Title.Font         = new Font("Tahoma", 10);
            myAxisY.Title.Antialiasing = true;
            //myAxisY.Label.TextColor = Color.Blue;
            //myAxisY.Color = Color.Blue;

            ((LineSeriesView)series3.View).LineMarkerOptions.Color = Color.Red;
            myAxisY.NumericOptions.Format = DevExpress.XtraCharts.NumericFormat.Percent;//显示为百分数
        }
Example #2
0
        private void CreatOqcType(DateTime starttime, DateTime endtime)
        {
            if (txtbadclass.SelectedItem == null)
            {
                int       n2     = 0;
                int       n3     = 0;
                string    sql    = @"select distinct badclass from OQC_baditem";
                DataTable dt0    = DbAccess.SelectBySql(sql).Tables[0];
                string[]  NgType = new string[dt0.Rows.Count];
                for (int i = 0; i < dt0.Rows.Count; i++)
                {
                    NgType[i] = dt0.Rows[i]["badclass"].ToString();
                }
                int[]      Number = new int[dt0.Rows.Count];
                DataTable  dt     = new DataTable();
                DataColumn dc1    = new DataColumn("不良类别", Type.GetType("System.String"));
                DataColumn dc2    = new DataColumn("不良批数", Type.GetType("System.Int32"));
                dt.Columns.Add(dc1);
                dt.Columns.Add(dc2);


                DataTable  dt1 = new DataTable();
                DataColumn dc3 = new DataColumn("不良类别", Type.GetType("System.String"));
                DataColumn dc6 = new DataColumn("不良批数", Type.GetType("System.Int32"));     //0305新添加不良批数。
                DataColumn dc5 = new DataColumn("Percent", Type.GetType("System.String")); //0305新添加不良批数对应的百分比。
                DataColumn dc4 = new DataColumn("Cum%", Type.GetType("System.String"));
                dt1.Columns.Add(dc3);
                dt1.Columns.Add(dc6);
                dt1.Columns.Add(dc5);
                dt1.Columns.Add(dc4);
                // string constr = "server=192.168.0.176;database=BarcodeNew;user id=sa;password=The0more7people0you7love3the7weaker8you8are;Pooling=false";
                //注意:此处连接了正式生产数据库。
                string constr = DbAccess.connSql;
                for (int i = 0; i < dt0.Rows.Count; i++)
                {
                    using (SqlConnection con = new SqlConnection(constr))
                    {
                        string sql1 = "QMS_NgTypeOqcforall";
                        using (SqlCommand cmd = new SqlCommand(sql1, con))
                        {
                            cmd.CommandType = CommandType.StoredProcedure;
                            cmd.Parameters.AddWithValue("@ustarttime", starttime);
                            cmd.Parameters.AddWithValue("@uendtime", endtime);
                            cmd.Parameters.AddWithValue("@ngtype", NgType[i]);
                            cmd.Parameters.AddWithValue("@customer", comboBox2.SelectedItem.ToString());
                            con.Open();
                            Number[i] = (int)cmd.ExecuteScalar();
                        }
                    }
                    n2 += Number[i];
                    DataRow dr = dt.NewRow();
                    dr["不良类别"] = NgType[i];
                    dr["不良批数"] = Number[i];
                    if (Number[i] != 0)
                    {
                        dt.Rows.Add(dr);
                        // n1++;
                    }
                }
                dt.DefaultView.Sort = "不良批数 DESC";
                dt = dt.DefaultView.ToTable();

                int len = 0;
                len = dt.Rows.Count;
                int[] ArrayNumber = new int[len];
                for (int i = 0; i < len; i++)
                {
                    ArrayNumber[i] = Convert.ToInt32(dt.Rows[i]["不良批数"]);
                }

                for (int i = 0; i < len; i++)
                {
                    n3 += ArrayNumber[i];//dt.Rows[0][Column]
                    DataRow dr = dt1.NewRow();
                    dr["不良类别"]    = dt.Rows[i]["不良类别"];
                    dr["不良批数"]    = dt.Rows[i]["不良批数"];
                    dr["Percent"] = (ArrayNumber[i] / (double)n2).ToString("p");
                    dr["Cum%"]    = (n3 / (double)n2).ToString("p");
                    dt1.Rows.Add(dr);
                }

                gridControl1.DataSource = dt1;
                this.gridView1.Appearance.Row.TextOptions.HAlignment         = DevExpress.Utils.HorzAlignment.Center;
                this.gridView1.Appearance.HeaderPanel.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;


                chartControl1.Series.Clear();
                Series series1 = CreateSeries("不良批数", ViewType.Bar, dt1);
                chartControl1.Series.Add(series1);
                Series series3 = CreateSeries2(ViewType.Line, dt1);
                chartControl1.Series.Add(series3);

                //AxisRange.Auto
                AxisRange DIA = (AxisRange)((XYDiagram)chartControl1.Diagram).AxisY.Range;
                if (n2 > 0)
                {
                    DIA.Auto = false;
                    DIA.SetInternalMinMaxValues(0, n2);
                }
                XYDiagram diagram = (XYDiagram)chartControl1.Diagram;
                diagram.AxisY.Title.Visible      = true;
                diagram.AxisY.Title.Alignment    = StringAlignment.Center;
                diagram.AxisY.Title.Text         = "不良批数";
                diagram.AxisY.Title.TextColor    = Color.Black;
                diagram.AxisY.Title.Antialiasing = true;
                diagram.AxisY.Title.Font         = new Font("Tahoma", 10);

                ((XYDiagram)chartControl1.Diagram).SecondaryAxesY.Clear();
                SecondaryAxisY myAxisY = new SecondaryAxisY();
                ((XYDiagram)chartControl1.Diagram).SecondaryAxesY.Add(myAxisY);
                ((LineSeriesView)series3.View).AxisY = myAxisY;
                myAxisY.Color = Color.Red;

                myAxisY.Range.Auto = false;
                myAxisY.Range.SetInternalMinMaxValues(0, 1);

                myAxisY.Title.Text         = "不良占比";
                myAxisY.Title.Alignment    = StringAlignment.Center;
                myAxisY.Title.Visible      = true;
                myAxisY.Title.TextColor    = Color.Black;
                myAxisY.Title.Font         = new Font("Tahoma", 10);
                myAxisY.Title.Antialiasing = true;

                ((LineSeriesView)series3.View).LineMarkerOptions.Color = Color.Red;
                myAxisY.NumericOptions.Format = DevExpress.XtraCharts.NumericFormat.Percent;//显示为百分数
            }
            else
            {
                int       n2         = 0;
                int       n3         = 0; // where += " and hytcode = '" + PN + "' ";
                string    badclasses = txtbadclass.SelectedItem.ToString();
                string    sql        = @"select distinct badphenomenon from OQC_baditem where badclass='" + badclasses + "'";
                DataTable dt0        = DbAccess.SelectBySql(sql).Tables[0];
                string[]  NgType     = new string[dt0.Rows.Count];
                string[]  NgType1    = new string[dt0.Rows.Count];
                for (int i = 0; i < dt0.Rows.Count; i++)
                {
                    NgType[i]  = dt0.Rows[i]["badphenomenon"].ToString();
                    NgType1[i] = badclasses + ";" + NgType[i];
                }
                int[]      Number = new int[dt0.Rows.Count];
                DataTable  dt     = new DataTable();
                DataColumn dc1    = new DataColumn("不良现象", Type.GetType("System.String"));
                DataColumn dc2    = new DataColumn("不良批数", Type.GetType("System.Int32"));
                dt.Columns.Add(dc1);
                dt.Columns.Add(dc2);


                DataTable  dt1 = new DataTable();
                DataColumn dc3 = new DataColumn("不良现象", Type.GetType("System.String"));
                DataColumn dc6 = new DataColumn("不良批数", Type.GetType("System.Int32"));     //0305新添加不良批数。
                DataColumn dc5 = new DataColumn("Percent", Type.GetType("System.String")); //0305新添加不良批数对应的百分比。
                DataColumn dc4 = new DataColumn("Cum%", Type.GetType("System.String"));
                dt1.Columns.Add(dc3);
                dt1.Columns.Add(dc6);
                dt1.Columns.Add(dc5);
                dt1.Columns.Add(dc4);
                // string constr = "server=192.168.0.176;database=BarcodeNew;user id=sa;password=The0more7people0you7love3the7weaker8you8are;Pooling=false";
                //注意:此处连接了正式生产数据库。
                string constr = DbAccess.connSql;
                for (int i = 0; i < dt0.Rows.Count; i++)
                {
                    using (SqlConnection con = new SqlConnection(constr))
                    {
                        string sql1 = "QMS_NgTypeOqcforall";
                        using (SqlCommand cmd = new SqlCommand(sql1, con))
                        {
                            cmd.CommandType = CommandType.StoredProcedure;
                            cmd.Parameters.AddWithValue("@ustarttime", starttime);
                            cmd.Parameters.AddWithValue("@uendtime", endtime);
                            cmd.Parameters.AddWithValue("@ngtype", NgType1[i]);
                            cmd.Parameters.AddWithValue("@customer", comboBox2.SelectedItem.ToString());
                            con.Open();
                            Number[i] = (int)cmd.ExecuteScalar();
                        }
                    }
                    n2 += Number[i];
                    DataRow dr = dt.NewRow();
                    dr["不良现象"] = NgType[i];
                    dr["不良批数"] = Number[i];
                    if (Number[i] != 0)
                    {
                        dt.Rows.Add(dr);
                        // n1++;
                    }
                }
                dt.DefaultView.Sort = "不良批数 DESC";
                dt = dt.DefaultView.ToTable();

                int len = 0;
                len = dt.Rows.Count;
                int[] ArrayNumber = new int[len];
                for (int i = 0; i < len; i++)
                {
                    ArrayNumber[i] = Convert.ToInt32(dt.Rows[i]["不良批数"]);
                }

                for (int i = 0; i < len; i++)
                {
                    n3 += ArrayNumber[i];//dt.Rows[0][Column]
                    DataRow dr = dt1.NewRow();
                    dr["不良现象"]    = dt.Rows[i]["不良现象"];
                    dr["不良批数"]    = dt.Rows[i]["不良批数"];
                    dr["Percent"] = (ArrayNumber[i] / (double)n2).ToString("p");
                    dr["Cum%"]    = (n3 / (double)n2).ToString("p");
                    dt1.Rows.Add(dr);
                }

                gridControl1.DataSource = dt1;
                this.gridView1.Appearance.Row.TextOptions.HAlignment         = DevExpress.Utils.HorzAlignment.Center;
                this.gridView1.Appearance.HeaderPanel.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;


                chartControl1.Series.Clear();
                Series series1 = CreateSeries("不良批数", ViewType.Bar, dt1);
                chartControl1.Series.Add(series1);
                Series series3 = CreateSeries2(ViewType.Line, dt1);
                chartControl1.Series.Add(series3);

                //AxisRange.Auto
                AxisRange DIA = (AxisRange)((XYDiagram)chartControl1.Diagram).AxisY.Range;
                if (n2 > 0)
                {
                    DIA.Auto = false;
                    DIA.SetInternalMinMaxValues(0, n2);
                }
                XYDiagram diagram = (XYDiagram)chartControl1.Diagram;
                diagram.AxisY.Title.Visible      = true;
                diagram.AxisY.Title.Alignment    = StringAlignment.Center;
                diagram.AxisY.Title.Text         = "不良批数";
                diagram.AxisY.Title.TextColor    = Color.Black;
                diagram.AxisY.Title.Antialiasing = true;
                diagram.AxisY.Title.Font         = new Font("Tahoma", 10);

                ((XYDiagram)chartControl1.Diagram).SecondaryAxesY.Clear();
                SecondaryAxisY myAxisY = new SecondaryAxisY();
                ((XYDiagram)chartControl1.Diagram).SecondaryAxesY.Add(myAxisY);
                ((LineSeriesView)series3.View).AxisY = myAxisY;
                myAxisY.Color = Color.Red;

                myAxisY.Range.Auto = false;
                myAxisY.Range.SetInternalMinMaxValues(0, 1);

                myAxisY.Title.Text         = "不良占比";
                myAxisY.Title.Alignment    = StringAlignment.Center;
                myAxisY.Title.Visible      = true;
                myAxisY.Title.TextColor    = Color.Black;
                myAxisY.Title.Font         = new Font("Tahoma", 10);
                myAxisY.Title.Antialiasing = true;

                ((LineSeriesView)series3.View).LineMarkerOptions.Color = Color.Red;
                myAxisY.NumericOptions.Format = DevExpress.XtraCharts.NumericFormat.Percent;//显示为百分数
            }
        }