|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
using System.Drawing;
|
|
|
|
|
using System.Data;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
|
|
|
|
|
namespace Mesnac.Controls.Feeding
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 混炼画面称量物料信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
public partial class RecipeInfoCB : UserControl
|
|
|
|
|
{
|
|
|
|
|
#region 字段定义
|
|
|
|
|
|
|
|
|
|
private string _dataName;
|
|
|
|
|
private DataTable _data;
|
|
|
|
|
private string _smallMaterialValueName1;
|
|
|
|
|
private float _smallMaterialValue1;
|
|
|
|
|
private string _smallMaterialValueName2;
|
|
|
|
|
private float _smallMaterialValue2;
|
|
|
|
|
private string _smallMaterialValueName3;
|
|
|
|
|
private float _smallMaterialValue3;
|
|
|
|
|
private string _smallMaterialValueName4;
|
|
|
|
|
private float _smallMaterialValue4;
|
|
|
|
|
private string _smallMaterialValueName5;
|
|
|
|
|
private float _smallMaterialValue5;
|
|
|
|
|
private string _smallMaterialValueName6;
|
|
|
|
|
private float _smallMaterialValue6;
|
|
|
|
|
private string _smallMaterialValueName7;
|
|
|
|
|
private float _smallMaterialValue7;
|
|
|
|
|
private string _smallMaterialValueName8;
|
|
|
|
|
private float _smallMaterialValue8;
|
|
|
|
|
private string _smallMaterialValueName9;
|
|
|
|
|
private float _smallMaterialValue9;
|
|
|
|
|
private string _smallMaterialValueName10;
|
|
|
|
|
private float _smallMaterialValue10;
|
|
|
|
|
private string _smallMaterialValueName11;
|
|
|
|
|
private float _smallMaterialValue11;
|
|
|
|
|
private string _smallMaterialValueName12;
|
|
|
|
|
private float _smallMaterialValue12;
|
|
|
|
|
private string _smallMaterialValueName13;
|
|
|
|
|
private float _smallMaterialValue13;
|
|
|
|
|
private string _smallMaterialValueName14;
|
|
|
|
|
private float _smallMaterialValue14;
|
|
|
|
|
private string _smallMaterialValueName15;
|
|
|
|
|
private float _smallMaterialValue15;
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
public RecipeInfoCB()
|
|
|
|
|
{
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 数据源动画属性
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string DataName
|
|
|
|
|
{
|
|
|
|
|
get { return _dataName; }
|
|
|
|
|
set { _dataName = value; }
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 数据源
|
|
|
|
|
/// </summary>
|
|
|
|
|
public DataTable Data
|
|
|
|
|
{
|
|
|
|
|
get { return _data; }
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
if (value != null)
|
|
|
|
|
{
|
|
|
|
|
_data = value;
|
|
|
|
|
string controlname = "recipeInfo";
|
|
|
|
|
InitControl();
|
|
|
|
|
for (int i = 0; i < _data.Rows.Count; i++)
|
|
|
|
|
{
|
|
|
|
|
#region 不显示卸料称量信息
|
|
|
|
|
|
|
|
|
|
double setWeight = 0;
|
|
|
|
|
double.TryParse(_data.Rows[i]["设定"].ToString(), out setWeight);
|
|
|
|
|
if (setWeight == 0)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
Mesnac.Controls.Feeding.RecipeInfo RecipeInfo = GetControl(controlname + (i + 1).ToString()) as Mesnac.Controls.Feeding.RecipeInfo;
|
|
|
|
|
if (RecipeInfo != null)
|
|
|
|
|
{
|
|
|
|
|
RecipeInfo.Visible = true;
|
|
|
|
|
InitRecipeInfo(RecipeInfo, _data.Rows[i]["罐号"].ToString(), _data.Rows[i]["设定"].ToString(), _data.Rows[i]["误差"].ToString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取控件
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="name"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
private Control GetControl(string name)
|
|
|
|
|
{
|
|
|
|
|
foreach (Control Item in this.Controls)
|
|
|
|
|
{
|
|
|
|
|
if (Item.Name == name)
|
|
|
|
|
{
|
|
|
|
|
return Item;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
private void InitControl()
|
|
|
|
|
{
|
|
|
|
|
foreach (Control Item in this.Controls)
|
|
|
|
|
{
|
|
|
|
|
if (Item.Name.Contains("recipeInfo"))
|
|
|
|
|
{
|
|
|
|
|
Item.Visible = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 初始化配方信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
private void InitRecipeInfo(Mesnac.Controls.Feeding.RecipeInfo recipeinfo, string jarno,string setvalue, string errorvalue)
|
|
|
|
|
{
|
|
|
|
|
float defualt = 0;
|
|
|
|
|
setvalue = float.TryParse(setvalue, out defualt) ? Convert.ToDecimal(setvalue).ToString("f2") : defualt.ToString();
|
|
|
|
|
errorvalue = float.TryParse(errorvalue, out defualt) ? Convert.ToDecimal(errorvalue).ToString("f2") : defualt.ToString();
|
|
|
|
|
//setvalue = String.Format("{0:N2}", setvalue);
|
|
|
|
|
//errorvalue = String.Format("{0:N2}", errorvalue);
|
|
|
|
|
recipeinfo.JarNo = jarno;
|
|
|
|
|
recipeinfo.SetValue = setvalue;
|
|
|
|
|
recipeinfo.ErrorValue = errorvalue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void RefreshCurrentValue(int index, float value)
|
|
|
|
|
{
|
|
|
|
|
string controlname = "recipeInfo";
|
|
|
|
|
Mesnac.Controls.Feeding.RecipeInfo RecipeInfo = GetControl(controlname + index.ToString()) as Mesnac.Controls.Feeding.RecipeInfo;
|
|
|
|
|
if (RecipeInfo != null)
|
|
|
|
|
RecipeInfo.FactValue = value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#region 物料实际值属性
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第1种物料实际值
|
|
|
|
|
/// </summary>
|
|
|
|
|
public float SmallMaterialValue1
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValue1; }
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this._smallMaterialValue1 = value;
|
|
|
|
|
this.RefreshCurrentValue(1, value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第2种物料实际值
|
|
|
|
|
/// </summary>
|
|
|
|
|
public float SmallMaterialValue2
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValue2; }
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this._smallMaterialValue2 = value;
|
|
|
|
|
this.RefreshCurrentValue(2, value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第3种物料实际值
|
|
|
|
|
/// </summary>
|
|
|
|
|
public float SmallMaterialValue3
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValue3; }
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this._smallMaterialValue3 = value;
|
|
|
|
|
this.RefreshCurrentValue(3, value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第4种物料实际值
|
|
|
|
|
/// </summary>
|
|
|
|
|
public float SmallMaterialValue4
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValue4; }
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this._smallMaterialValue4 = value;
|
|
|
|
|
this.RefreshCurrentValue(4, value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第5种物料实际值
|
|
|
|
|
/// </summary>
|
|
|
|
|
public float SmallMaterialValue5
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValue5; }
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this._smallMaterialValue5 = value;
|
|
|
|
|
this.RefreshCurrentValue(5, value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第6种物料实际值
|
|
|
|
|
/// </summary>
|
|
|
|
|
public float SmallMaterialValue6
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValue6; }
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this._smallMaterialValue6 = value;
|
|
|
|
|
this.RefreshCurrentValue(6, value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第7种物料实际值
|
|
|
|
|
/// </summary>
|
|
|
|
|
public float SmallMaterialValue7
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValue7; }
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this._smallMaterialValue7 = value;
|
|
|
|
|
this.RefreshCurrentValue(7, value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第8种物料实际值
|
|
|
|
|
/// </summary>
|
|
|
|
|
public float SmallMaterialValue8
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValue8; }
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this._smallMaterialValue8 = value;
|
|
|
|
|
this.RefreshCurrentValue(8, value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第9种物料实际值
|
|
|
|
|
/// </summary>
|
|
|
|
|
public float SmallMaterialValue9
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValue9; }
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this._smallMaterialValue9 = value;
|
|
|
|
|
this.RefreshCurrentValue(9, value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第10种物料实际值
|
|
|
|
|
/// </summary>
|
|
|
|
|
public float SmallMaterialValue10
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValue10; }
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this._smallMaterialValue10 = value;
|
|
|
|
|
this.RefreshCurrentValue(10, value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第11种物料实际值
|
|
|
|
|
/// </summary>
|
|
|
|
|
public float SmallMaterialValue11
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValue11; }
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this._smallMaterialValue11 = value;
|
|
|
|
|
this.RefreshCurrentValue(11, value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第12种物料实际值
|
|
|
|
|
/// </summary>
|
|
|
|
|
public float SmallMaterialValue12
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValue12; }
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this._smallMaterialValue12 = value;
|
|
|
|
|
this.RefreshCurrentValue(12, value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第13种物料实际值
|
|
|
|
|
/// </summary>
|
|
|
|
|
public float SmallMaterialValue13
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValue13; }
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this._smallMaterialValue13 = value;
|
|
|
|
|
this.RefreshCurrentValue(13, value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第14种物料实际值
|
|
|
|
|
/// </summary>
|
|
|
|
|
public float SmallMaterialValue14
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValue14; }
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this._smallMaterialValue14 = value;
|
|
|
|
|
this.RefreshCurrentValue(14, value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第15种物料实际值
|
|
|
|
|
/// </summary>
|
|
|
|
|
public float SmallMaterialValue15
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValue15; }
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this._smallMaterialValue15 = value;
|
|
|
|
|
this.RefreshCurrentValue(15, value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 物料实际值动画属性
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第1种物料实际值动画属性
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string SmallMaterialValueName1
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValueName1; }
|
|
|
|
|
set { this._smallMaterialValueName1 = value; }
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第2种物料实际值动画属性
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string SmallMaterialValueName2
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValueName2; }
|
|
|
|
|
set { this._smallMaterialValueName2 = value; }
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第3种物料实际值动画属性
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string SmallMaterialValueName3
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValueName3; }
|
|
|
|
|
set { this._smallMaterialValueName3 = value; }
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第4种物料实际值动画属性
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string SmallMaterialValueName4
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValueName4; }
|
|
|
|
|
set { this._smallMaterialValueName4 = value; }
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第5种物料实际值动画属性
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string SmallMaterialValueName5
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValueName5; }
|
|
|
|
|
set { this._smallMaterialValueName5 = value; }
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第6种物料实际值动画属性
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string SmallMaterialValueName6
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValueName6; }
|
|
|
|
|
set { this._smallMaterialValueName6 = value; }
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第7种物料实际值动画属性
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string SmallMaterialValueName7
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValueName7; }
|
|
|
|
|
set { this._smallMaterialValueName7 = value; }
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第8种物料实际值动画属性
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string SmallMaterialValueName8
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValueName8; }
|
|
|
|
|
set { this._smallMaterialValueName8 = value; }
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第9种物料实际值动画属性
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string SmallMaterialValueName9
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValueName9; }
|
|
|
|
|
set { this._smallMaterialValueName9 = value; }
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第10种物料实际值动画属性
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string SmallMaterialValueName10
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValueName10; }
|
|
|
|
|
set { this._smallMaterialValueName10 = value; }
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第11种物料实际值动画属性
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string SmallMaterialValueName11
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValueName11; }
|
|
|
|
|
set { this._smallMaterialValueName11 = value; }
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第12种物料实际值动画属性
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string SmallMaterialValueName12
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValueName12; }
|
|
|
|
|
set { this._smallMaterialValueName12 = value; }
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第13种物料实际值动画属性
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string SmallMaterialValueName13
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValueName13; }
|
|
|
|
|
set { this._smallMaterialValueName13 = value; }
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第14种物料实际值动画属性
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string SmallMaterialValueName14
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValueName14; }
|
|
|
|
|
set { this._smallMaterialValueName14 = value; }
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第15种物料实际值动画属性
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string SmallMaterialValueName15
|
|
|
|
|
{
|
|
|
|
|
get { return this._smallMaterialValueName15; }
|
|
|
|
|
set { this._smallMaterialValueName15 = value; }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|