예제 #1
0
        private void buttonEdit1_Properties_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
        {
            DevExpress.XtraEditors.ButtonEdit target;
            string column;

            if ((target = sender as DevExpress.XtraEditors.ButtonEdit) != null && (column = target.Text.Trim()) != "")
            {
                if (Data.ContainsColumn(column))
                {
                    if ((MessageBox.Show("原表中已有列" + column + ",是否要覆盖?", "注意", MessageBoxButtons.YesNo) == DialogResult.Yes))
                    {
                        int rowcount = (this.gridView2.DataSource as DataView).Count;
                        for (int i = 0; i < rowcount; i++)
                        {
                            Data[i, column] = (this.gridView2.DataSource as DataView)[i]["类标号"];
                        }
                        Data.SetColumnVisible(column);
                    }
                    else
                    {
                        return;
                    }
                }
                else
                {
                    Data.AddColumn(column, typeof(int));
                    int rowcount = (this.gridView2.DataSource as DataView).Count;
                    for (int i = 0; i < rowcount; i++)
                    {
                        Data[i, column] = (this.gridView2.DataSource as DataView)[i]["类标号"];
                    }
                }
                MessageBox.Show("添加成功");
            }
        }
예제 #2
0
파일: Calculate.cs 프로젝트: leonie2020/SPC
        public static void F1T2(SPC.Base.Interface.IDataTable <DataRow> sourcedata, string[] sourcecolumns, string[] targetcolumns, double arg_1, double arg_2)
        {
            var mins        = ColumnCalculate.Min(sourcedata, sourcecolumns);
            var maxs        = ColumnCalculate.Max(sourcedata, sourcecolumns);
            int rowcount    = sourcedata.RowCount;
            int columncount = sourcecolumns.Length;

            double[] ranges = new double[columncount];
            int      i, j;
            DataRow  temprow;
            double   r = arg_2 - arg_1;

            for (j = 0; j < columncount; j++)
            {
                if (!sourcedata.ContainsColumn(targetcolumns[j]))
                {
                    sourcedata.AddColumn(targetcolumns[j], typeof(double));
                }
                ranges[j] = maxs[j] - mins[j];
            }

            for (i = 0; i < rowcount; i++)
            {
                temprow = sourcedata[i];
                for (j = 0; j < columncount; j++)
                {
                    temprow[targetcolumns[j]] = ((temprow[sourcecolumns[j]].ConvertToDouble() - mins[j]) * r) / ranges[j] + arg_1;
                }
            }
        }
예제 #3
0
파일: Calculate.cs 프로젝트: leonie2020/SPC
        public static void ZScore(SPC.Base.Interface.IDataTable <DataRow> sourcedata, string[] sourcecolumns, string[] targetcolumns)
        {
            var     avgs = ColumnCalculate.Avg(sourcedata, sourcecolumns);
            var     stdevs = ColumnCalculate.Stdev(sourcedata, sourcecolumns, avgs);
            int     rowcount = sourcedata.RowCount;
            int     columncount = sourcecolumns.Length;
            int     i, j;
            DataRow temprow;

            foreach (var targetcolumn in targetcolumns)
            {
                if (!sourcedata.ContainsColumn(targetcolumn))
                {
                    sourcedata.AddColumn(targetcolumn, typeof(double));
                }
            }
            for (i = 0; i < rowcount; i++)
            {
                temprow = sourcedata[i];
                for (j = 0; j < columncount; j++)
                {
                    temprow[targetcolumns[j]] = (temprow[sourcecolumns[j]].ConvertToDouble() - avgs[j]) / stdevs[j];
                }
            }
        }
예제 #4
0
        public void doMethod()
        {
            int length = this.inputColumns.Count;

            object[] inputs = new object[length];
            int      i, j;
            bool     addcolumn = false;

            if (this.method != null)
            {
                try
                {
                    if (!this.columnList.Contains(this.targetcolumn))
                    {
                        Data.AddColumn(targetcolumn, targettype);
                        addcolumn = true;
                    }
                    int     count = Data.RowCount;
                    DataRow temprow;
                    for (i = 0; i < count; i++)
                    {
                        temprow = Data[i];
                        for (j = 0; j < length; j++)
                        {
                            inputs[j] = temprow[inputColumns[j]];
                        }
                        temprow[targetcolumn] = method.Invoke(null, inputs);
                    }
                }
                catch (Exception ex)
                {
                    if (addcolumn)
                    {
                        Data.RemoveColumn(targetcolumn);
                    }
                    throw ex;
                }
            }
        }
예제 #5
0
파일: Calculate.cs 프로젝트: leonie2020/SPC
        public static void M1D2(SPC.Base.Interface.IDataTable <DataRow> sourcedata, string[] sourcecolumns, string[] targetcolumns, double arg_1, double arg_2)
        {
            int     rowcount = sourcedata.RowCount;
            int     columncount = sourcecolumns.Length;
            int     i, j;
            DataRow temprow;

            foreach (var targetcolumn in targetcolumns)
            {
                if (!sourcedata.ContainsColumn(targetcolumn))
                {
                    sourcedata.AddColumn(targetcolumn, typeof(double));
                }
            }
            for (i = 0; i < rowcount; i++)
            {
                temprow = sourcedata[i];
                for (j = 0; j < columncount; j++)
                {
                    temprow[targetcolumns[j]] = (temprow[sourcecolumns[j]].ConvertToDouble() - arg_1) / arg_2;
                }
            }
        }