Exemplo n.º 1
0
        private void barButtonItem6_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            var  data       = new SPC.Base.Interface.ChoosedData(this.Data, (this.monitorControl1.DataView as SPC.Controls.Base.CanChooseDataGridView).GetChoosedRowIndexs());
            var  columns    = data.GetColumnsList(false, typeof(DateTime), typeof(string), typeof(bool));
            var  con        = new SPC.Controls.ConfigControls.ColumnCalculateConfigControl();
            Form configform = new Form();

            configform.Controls.Add(con);
            con.OKEvent     += (ss, ee) => { configform.DialogResult = System.Windows.Forms.DialogResult.OK; };
            con.CancelEvent += (ss, ee) => { configform.DialogResult = System.Windows.Forms.DialogResult.Cancel; };
            con.Init(columns);
            double[] result = null;
            if (configform.ShowDialog() == DialogResult.OK)
            {
                switch (con.MethodIndex)
                {
                case 0:
                    result = SPC.Base.Operation.ColumnCalculate.Sum(data, con.SourceColumns); break;

                case 1:
                    result = SPC.Base.Operation.ColumnCalculate.Avg(data, con.SourceColumns); break;

                case 2:
                    result = SPC.Base.Operation.ColumnCalculate.Stdev(data, con.SourceColumns); break;

                case 3:
                    result = SPC.Base.Operation.ColumnCalculate.Min(data, con.SourceColumns); break;

                case 4:
                    result = SPC.Base.Operation.ColumnCalculate.Max(data, con.SourceColumns); break;

                case 5:
                    result = SPC.Base.Operation.ColumnCalculate.Range(data, con.SourceColumns); break;

                case 6:
                    result = SPC.Base.Operation.ColumnCalculate.Mid(data, con.SourceColumns); break;

                case 7:
                    result = SPC.Base.Operation.ColumnCalculate.QuadraticSum(data, con.SourceColumns); break;

                case 8:
                    result = SPC.Base.Operation.ColumnCalculate.Count(data, con.SourceColumns); break;

                case 9:
                    result = SPC.Base.Operation.ColumnCalculate.IsNotNull(data, con.SourceColumns); break;

                case 10:
                    result = SPC.Base.Operation.ColumnCalculate.IsNull(data, con.SourceColumns); break;

                default:
                    MessageBox.Show("不支持的方法");
                    return;
                }
                DataTable resulttable = new DataTable();
                resulttable.Columns.Add("列名", typeof(string));
                resulttable.Columns.Add(con.MethodString, typeof(double));
                int count = result.Length;
                for (int i = 0; i < count; i++)
                {
                    resulttable.Rows.Add(con.SourceColumns[i], result[i]);
                }
                Form resultform = new Form();
                var  res        = new SPC.Controls.ResultControls.CalculateResultControl()
                {
                    Dock = DockStyle.Fill
                };
                resultform.Controls.Add(res);
                res.Init(resulttable);
                resultform.Show();
            }
        }
Exemplo n.º 2
0
 private void barButtonItem6_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
 {
     var data = new SPC.Base.Interface.ChoosedData(this.Data,(this.monitorControl1.DataView as SPC.Controls.Base.CanChooseDataGridView).GetChoosedRowIndexs());
     var columns =data.GetColumnsList(false,typeof(DateTime),typeof(string),typeof(bool));
     var con = new SPC.Controls.ConfigControls.ColumnCalculateConfigControl();
     Form configform  = new Form();
     configform.Controls.Add(con);
     con.OKEvent += (ss, ee) => { configform.DialogResult = System.Windows.Forms.DialogResult.OK; };
     con.CancelEvent += (ss, ee) => { configform.DialogResult = System.Windows.Forms.DialogResult.Cancel; };
     con.Init(columns);
     double[] result = null;
     if (configform.ShowDialog() == DialogResult.OK)
     {
         switch (con.MethodIndex)
         {
             case 0:
                 result = SPC.Base.Operation.ColumnCalculate.Sum(data, con.SourceColumns); break;
             case 1:
                 result = SPC.Base.Operation.ColumnCalculate.Avg(data, con.SourceColumns); break;
             case 2:
                 result = SPC.Base.Operation.ColumnCalculate.Stdev(data, con.SourceColumns); break;
             case 3:
                 result = SPC.Base.Operation.ColumnCalculate.Min(data, con.SourceColumns); break;
             case 4:
                 result = SPC.Base.Operation.ColumnCalculate.Max(data, con.SourceColumns); break;
             case 5:
                 result = SPC.Base.Operation.ColumnCalculate.Range(data, con.SourceColumns); break;
             case 6:
                 result = SPC.Base.Operation.ColumnCalculate.Mid(data, con.SourceColumns); break;
             case 7:
                 result = SPC.Base.Operation.ColumnCalculate.QuadraticSum(data, con.SourceColumns); break;
             case 8:
                 result = SPC.Base.Operation.ColumnCalculate.Count(data, con.SourceColumns); break;
             case 9:
                 result = SPC.Base.Operation.ColumnCalculate.IsNotNull(data, con.SourceColumns); break;
             case 10:
                 result = SPC.Base.Operation.ColumnCalculate.IsNull(data, con.SourceColumns); break;
             default:
                 MessageBox.Show("不支持的方法");
                 return;
         }
         DataTable resulttable = new DataTable();
         resulttable.Columns.Add("列名", typeof(string));
         resulttable.Columns.Add(con.MethodString, typeof(double));
         int count = result.Length;
         for (int i = 0; i < count; i++)
         {
             resulttable.Rows.Add(con.SourceColumns[i], result[i]);
         }
         Form resultform = new Form();
         var res = new SPC.Controls.ResultControls.CalculateResultControl() { Dock = DockStyle.Fill };
         resultform.Controls.Add(res);
         res.Init(resulttable);
         resultform.Show();
     }
 }