286 lines
10 KiB
C#
286 lines
10 KiB
C#
using JinYuan.ControlLib.Models;
|
|||
|
|
using System.ComponentModel;
|
||
|
|
using System.Drawing;
|
||
|
|
using System.Windows.Forms;
|
||
|
|
|
||
|
|
namespace JinYuan.ControlLib
|
||
|
|
{
|
||
|
|
public partial class CPK : UserControl
|
||
|
|
{
|
||
|
|
public CPK()
|
||
|
|
{
|
||
|
|
InitializeComponent();
|
||
|
|
IntValue();
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
#region 减少闪烁
|
||
|
|
protected override CreateParams CreateParams
|
||
|
|
{
|
||
|
|
get
|
||
|
|
{
|
||
|
|
CreateParams cp = base.CreateParams;
|
||
|
|
cp.ExStyle |= 0x02000000;
|
||
|
|
return cp;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
#endregion
|
||
|
|
|
||
|
|
|
||
|
|
private int subgroupSize = 5;
|
||
|
|
[Browsable(true)]
|
||
|
|
[Category("自定义属性")]
|
||
|
|
[Description("设置或获取子组大小值")]
|
||
|
|
public int SubgroupSize
|
||
|
|
{
|
||
|
|
get { return subgroupSize; }
|
||
|
|
set
|
||
|
|
{
|
||
|
|
subgroupSize = value;
|
||
|
|
listView1.Items[0].SubItems[3].Text = value.ToString();
|
||
|
|
this.Invalidate();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
private double _uSLs = 0;
|
||
|
|
[Browsable(true)]
|
||
|
|
[Category("自定义属性")]
|
||
|
|
[Description("设置或获取上规格值")]
|
||
|
|
public double USLs
|
||
|
|
{
|
||
|
|
get { return _uSLs; }
|
||
|
|
set
|
||
|
|
{
|
||
|
|
_uSLs = value;
|
||
|
|
listView1.Items[2].SubItems[1].Text = value.ToString();
|
||
|
|
this.Invalidate();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
private double _lSLs = 0;
|
||
|
|
[Browsable(true)]
|
||
|
|
[Category("自定义属性")]
|
||
|
|
[Description("设置或获取下规格值")]
|
||
|
|
public double LSLs
|
||
|
|
{
|
||
|
|
get { return _lSLs; }
|
||
|
|
set
|
||
|
|
{
|
||
|
|
_lSLs = value;
|
||
|
|
listView1.Items[2].SubItems[5].Text = value.ToString();
|
||
|
|
this.Invalidate();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
private double _cpkPpkAcceptanceValue = 0;
|
||
|
|
[Browsable(true)]
|
||
|
|
[Category("自定义属性")]
|
||
|
|
[Description("设置或获取目标值")]
|
||
|
|
public double CpkPpkAcceptanceValue
|
||
|
|
{
|
||
|
|
get { return _cpkPpkAcceptanceValue; }
|
||
|
|
set
|
||
|
|
{
|
||
|
|
_cpkPpkAcceptanceValue = value;
|
||
|
|
listView1.Items[2].SubItems[3].Text = value.ToString();
|
||
|
|
this.Invalidate();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
private CPKModel _cPKData = new CPKModel();
|
||
|
|
[Browsable(true)]
|
||
|
|
[Category("自定义属性")]
|
||
|
|
[Description("获取目标值")]
|
||
|
|
public CPKModel CPKData
|
||
|
|
{
|
||
|
|
get { return _cPKData; }
|
||
|
|
set
|
||
|
|
{
|
||
|
|
if (value != null)
|
||
|
|
{
|
||
|
|
_cPKData = value;
|
||
|
|
//总样本数
|
||
|
|
listView1.Items[0].SubItems[1].Text = _cPKData.TotalNumber.ToString();
|
||
|
|
//平均值
|
||
|
|
listView1.Items[1].SubItems[1].Text = _cPKData.MeanVlaue.ToString();
|
||
|
|
//最大值
|
||
|
|
listView1.Items[1].SubItems[3].Text = _cPKData.MaxValue.ToString();
|
||
|
|
//最小值
|
||
|
|
listView1.Items[1].SubItems[5].Text = _cPKData.MinValue.ToString();
|
||
|
|
// 正的3倍标准差线
|
||
|
|
listView1.Items[3].SubItems[1].Text = _cPKData.Pos3Sigma.ToString();
|
||
|
|
// 负的3倍标准差线
|
||
|
|
listView1.Items[3].SubItems[3].Text = _cPKData.Neg3Sigma.ToString();
|
||
|
|
|
||
|
|
// 组内标准差值
|
||
|
|
listView2.Items[0].SubItems[1].Text = _cPKData.GroupSTDEV.ToString();
|
||
|
|
// 整体标准差值
|
||
|
|
listView2.Items[0].SubItems[2].Text = _cPKData.WholeSTDEV.ToString();
|
||
|
|
|
||
|
|
// 组内CPK值
|
||
|
|
listView2.Items[1].SubItems[1].Text = _cPKData.GroupCPK.ToString();
|
||
|
|
// 整体CPK值
|
||
|
|
listView2.Items[1].SubItems[2].Text = _cPKData.WholeCPK.ToString();
|
||
|
|
// 组内CP值
|
||
|
|
listView2.Items[2].SubItems[1].Text = _cPKData.GroupCP.ToString();
|
||
|
|
// 整体CP值
|
||
|
|
listView2.Items[2].SubItems[2].Text = _cPKData.WholeCP.ToString();
|
||
|
|
|
||
|
|
// 组内CPL值
|
||
|
|
listView2.Items[3].SubItems[1].Text = _cPKData.GroupCPL.ToString();
|
||
|
|
// 整体CPL值
|
||
|
|
listView2.Items[3].SubItems[2].Text = _cPKData.WholeCPL.ToString();
|
||
|
|
// 组内CPU值
|
||
|
|
listView2.Items[4].SubItems[1].Text = _cPKData.GroupCPU.ToString();
|
||
|
|
// 整体CPU值
|
||
|
|
listView2.Items[4].SubItems[2].Text = _cPKData.WholeCPU.ToString();
|
||
|
|
|
||
|
|
// 组内PPM<LSL值
|
||
|
|
listView2.Items[5].SubItems[1].Text = _cPKData.GroupPPM_LSL.ToString();
|
||
|
|
// 整体PPM<LSL值
|
||
|
|
listView2.Items[5].SubItems[2].Text = _cPKData.WholePPM_LSL.ToString();
|
||
|
|
|
||
|
|
// 组内PPM>USL值
|
||
|
|
listView2.Items[6].SubItems[1].Text = _cPKData.GroupPPM_USL.ToString();
|
||
|
|
// 整体PPM>USL值
|
||
|
|
listView2.Items[6].SubItems[2].Text = _cPKData.WholePPM_USL.ToString();
|
||
|
|
|
||
|
|
// 组内PPM Total值
|
||
|
|
listView2.Items[7].SubItems[1].Text = _cPKData.GroupPPM_Total.ToString();
|
||
|
|
// 整体PPMN Total值
|
||
|
|
listView2.Items[7].SubItems[2].Text = _cPKData.WholePPM_Total.ToString();
|
||
|
|
|
||
|
|
lbl_Ca.Text = _cPKData.CA.ToString();
|
||
|
|
this.Invalidate();
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
#region 初始化
|
||
|
|
private void IntValue()
|
||
|
|
{
|
||
|
|
|
||
|
|
//listView2.OwnerDraw = true;
|
||
|
|
//listView2.DrawColumnHeader += ListView2_DrawColumnHeader;
|
||
|
|
|
||
|
|
listView1.Columns.Clear();
|
||
|
|
listView2.Columns.Clear();
|
||
|
|
|
||
|
|
// 假设ListView控件的名称为listView1
|
||
|
|
// 添加列头
|
||
|
|
listView1.Columns.Add("项目1", 80);
|
||
|
|
listView1.Columns.Add("数值1", 90);
|
||
|
|
listView1.Columns.Add("项目2", 80);
|
||
|
|
listView1.Columns.Add("数值2", 90);
|
||
|
|
listView1.Columns.Add("项目3", 80);
|
||
|
|
listView1.Columns.Add("数值3", 95);
|
||
|
|
|
||
|
|
// 创建一个ListViewItem对象,并将数据添加到指定单元格 0
|
||
|
|
ListViewItem item1_1 = new ListViewItem("总样本数");
|
||
|
|
item1_1.SubItems.Add("0");
|
||
|
|
item1_1.SubItems.Add("子组大小");
|
||
|
|
item1_1.SubItems.Add("0");
|
||
|
|
item1_1.SubItems.Add("图标类型");
|
||
|
|
item1_1.SubItems.Add("XR");
|
||
|
|
listView1.Items.Add(item1_1); // 添加完整的ListViewItem对象到ListView控件中的指定行索引
|
||
|
|
|
||
|
|
|
||
|
|
// 如果需要添加多行数据,可以类似地重复上述步骤
|
||
|
|
ListViewItem item1_2 = new ListViewItem("平均值"); //1
|
||
|
|
item1_2.SubItems.Add("0");
|
||
|
|
item1_2.SubItems.Add("最大值");
|
||
|
|
item1_2.SubItems.Add("0");
|
||
|
|
item1_2.SubItems.Add("最小值");
|
||
|
|
item1_2.SubItems.Add("0");
|
||
|
|
listView1.Items.Add(item1_2);
|
||
|
|
|
||
|
|
ListViewItem item1_3 = new ListViewItem("上规格"); //2
|
||
|
|
item1_3.SubItems.Add("0");
|
||
|
|
item1_3.SubItems.Add("目标值");
|
||
|
|
item1_3.SubItems.Add("0");
|
||
|
|
item1_3.SubItems.Add("下规格");
|
||
|
|
item1_3.SubItems.Add("0");
|
||
|
|
listView1.Items.Add(item1_3);
|
||
|
|
|
||
|
|
ListViewItem item1_4 = new ListViewItem("+3Sigma"); //3
|
||
|
|
item1_4.SubItems.Add("0");
|
||
|
|
item1_4.SubItems.Add("-3Sigma");
|
||
|
|
item1_4.SubItems.Add("0");
|
||
|
|
listView1.Items.Add(item1_4);
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// 假设ListView控件的名称为listView1
|
||
|
|
// 添加列头
|
||
|
|
listView2.Columns.Add("", 150);
|
||
|
|
listView2.Columns.Add("组内", 120);
|
||
|
|
listView2.Columns.Add("整体", 120);
|
||
|
|
listView2.Columns.Add("实测", 128);
|
||
|
|
|
||
|
|
// 创建一个ListViewItem对象,并将数据添加到指定单元格
|
||
|
|
ListViewItem item2_1 = new ListViewItem("STDEV"); //0
|
||
|
|
item2_1.SubItems.Add("0");
|
||
|
|
item2_1.SubItems.Add("0");
|
||
|
|
item2_1.SubItems.Add("");
|
||
|
|
listView2.Items.Add(item2_1); // 添加完整的ListViewItem对象到ListView控件中的指定行索引
|
||
|
|
|
||
|
|
ListViewItem item2_2 = new ListViewItem("CPK"); //1
|
||
|
|
item2_2.SubItems.Add("0");
|
||
|
|
item2_2.SubItems.Add("0");
|
||
|
|
item2_2.SubItems.Add("");
|
||
|
|
listView2.Items.Add(item2_2);
|
||
|
|
ListViewItem item2_3 = new ListViewItem("CP");//2
|
||
|
|
item2_3.SubItems.Add("0");
|
||
|
|
item2_3.SubItems.Add("0");
|
||
|
|
item2_3.SubItems.Add("");
|
||
|
|
listView2.Items.Add(item2_3);
|
||
|
|
ListViewItem item2_4 = new ListViewItem("CPL");//3
|
||
|
|
item2_4.SubItems.Add("0");
|
||
|
|
item2_4.SubItems.Add("0");
|
||
|
|
item2_4.SubItems.Add("");
|
||
|
|
listView2.Items.Add(item2_4);
|
||
|
|
ListViewItem item2_5 = new ListViewItem("CPU");//4
|
||
|
|
item2_5.SubItems.Add("0");
|
||
|
|
item2_5.SubItems.Add("0");
|
||
|
|
item2_5.SubItems.Add("");
|
||
|
|
listView2.Items.Add(item2_5);
|
||
|
|
ListViewItem item2_6 = new ListViewItem("PPM<LSL");//5
|
||
|
|
item2_6.SubItems.Add("0");
|
||
|
|
item2_6.SubItems.Add("0");
|
||
|
|
item2_6.SubItems.Add("0");
|
||
|
|
listView2.Items.Add(item2_6);
|
||
|
|
ListViewItem item2_7 = new ListViewItem("PPM>USL");//6
|
||
|
|
item2_7.SubItems.Add("0");
|
||
|
|
item2_7.SubItems.Add("0");
|
||
|
|
item2_7.SubItems.Add("0");
|
||
|
|
listView2.Items.Add(item2_7);
|
||
|
|
ListViewItem item2_8 = new ListViewItem("PPM Total");//7
|
||
|
|
item2_8.SubItems.Add("0");
|
||
|
|
item2_8.SubItems.Add("0");
|
||
|
|
item2_8.SubItems.Add("0");
|
||
|
|
listView2.Items.Add(item2_8);
|
||
|
|
|
||
|
|
lbl_Ca.Text = "0";
|
||
|
|
}
|
||
|
|
|
||
|
|
#endregion
|
||
|
|
|
||
|
|
public void ListView2_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
|
||
|
|
{
|
||
|
|
e.DrawBackground();
|
||
|
|
|
||
|
|
// 设置自定义的列标题栏背景颜色
|
||
|
|
e.Graphics.FillRectangle(Brushes.AliceBlue, e.Bounds);
|
||
|
|
|
||
|
|
// 绘制列标题栏的文本
|
||
|
|
e.DrawText();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|