You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lj_plc/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/LjPlanning/FrmWeiRecipeDataAdd.cs

1136 lines
41 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using DevExpress.PivotGrid.OLAP.Mdx;
using HslCommunication.Robot.YASKAWA;
using Mesnac.Action.ChemicalWeighing.LjMaterial;
using Mesnac.Action.ChemicalWeighing.LjPlanning.Db;
using Mesnac.Action.ChemicalWeighing.LjPlanning.Entity;
using Mesnac.Codd.Session;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Windows.Forms;
namespace Mesnac.Action.ChemicalWeighing.LjPlanning
{
public partial class FrmWeiRecipeDataAdd : Form
{
public FrmWeiRecipeDataAdd()
{
InitializeComponent();
Init();
FillDryer();
FillSilo();
FillSiloWater();
FillDataGridDryer1Action();
//糊化
FillDataGridSilo1Action();
FillDataGridWeter1Action();
//and MachineType='Dry' and FormulaType=1 and Machine=1
//dataGridDryer.DataSource = list;
//dataGridDryer.Rows.Add();
}
int _id = 0;
public FrmWeiRecipeDataAdd(int id) : this()
{
this._id = id;
var main = LjFormulaDb.GetById(id);
if (null != main)
{
this.txtName.Text = main.FormulaName;
foreach (MyNameValue drpTypeItem in DrpCpType.Items)
{
if (drpTypeItem.Id == main.RecipeTypeId)
{
DrpCpType.SelectedItem = drpTypeItem;
break;
}
}
txtCpVersion.Text = main.FormulaVersion;
}
var detail = LjFormulaDb.GetDetail(_id);
UpdateDataGridDryer(detail);
UpdateDataGridSilo(detail,main.CbSiloC);
UpdateDryH(detail);
UpdatSiloH(detail,main.CbSiloH);
UpdatWeterH(detail, main.CbWeterH);
}
/// <summary>
/// 更新干混机
/// </summary>
/// <param name="ljs"></param>
private void UpdateDataGridDryer(List<LjFormulaDetail> detail)
{
dataGridDryer.DataError += DataGrid_DataError;
dataGridDryer.AutoGenerateColumns = false;
dataGridDryer.AllowUserToAddRows = true;
//MachineType='Dry' and FormulaType=1 and Machine='A'
var data = detail.Where(x => x.MachineType == "Dry" && x.FormulaType == 1 && x.Machine == "A").ToList();
dataGridDryer.DataSource = new BindingList<LjFormulaDetail>(data);//DataGridView的行可以添加删除只有允许添加行、删除行
}
private void UpdateDataGridSilo(List<LjFormulaDetail> detail,bool check)
{
dataGridSilo1.DataError += DataGrid_DataError;
dataGridSilo1.AutoGenerateColumns = false;
dataGridSilo1.AllowUserToAddRows = true;
dataGridSilo2.DataError += DataGrid_DataError;
dataGridSilo2.AutoGenerateColumns = false;
dataGridSilo2.AllowUserToAddRows = true;
dataGridWater1.DataError += DataGrid_DataError;
dataGridWater1.AutoGenerateColumns = false;
dataGridWater1.AllowUserToAddRows = true;
dataGridWater2.DataError += DataGrid_DataError;
dataGridWater2.AutoGenerateColumns = false;
dataGridWater2.AllowUserToAddRows = true;
var data = detail.Where(x => x.MachineType == "Silo" && x.FormulaType == 1 && x.Machine == "A").ToList();
dataGridSilo1.DataSource = new BindingList<LjFormulaDetail>(data);//DataGridView的行可以添加删除只有允许添加行、删除行
//Silo_Water
var data1Water = detail.Where(x => x.MachineType == "Silo_Water" && x.FormulaType == 1
&& x.Machine == "A").ToList();
dataGridWater1.DataSource = new BindingList<LjFormulaDetail>(data1Water);//DataGridView的行可以添加删除只有允许添加行、删除行
CbSiloC.Checked = check;
if (!check)
{
var dataB = detail.Where(x => x.MachineType == "Silo" && x.FormulaType == 1 && x.Machine == "B").ToList();
dataGridSilo2.DataSource = new BindingList<LjFormulaDetail>(data);//DataGridView的行可以添加删除只有允许添加行、删除行
var data2Water = detail.Where(x => x.MachineType == "Silo_Water" && x.FormulaType == 1
&& x.Machine == "B").ToList();
dataGridWater2.DataSource = new BindingList<LjFormulaDetail>(data2Water);//DataGridView的行可以添加删除只有允许添加行、删除行
}
}
private void UpdateDryH(List<LjFormulaDetail> detail)
{
dataGridDryer1Action.DataError += DataGrid_DataError;
dataGridDryer1Action.AutoGenerateColumns = false;
dataGridDryer1Action.AllowUserToAddRows = true;
var data = detail.Where(x => x.MachineType == "Dry" && x.FormulaType == 2 && x.Machine == "A").ToList();
dataGridDryer1Action.DataSource = new BindingList<LjFormulaDetail>(data);//DataGridView的行可以添加删除只有允许添加行、删除行
}
private void UpdatSiloH(List<LjFormulaDetail> detail,bool cbSiloH)
{
dataGridSiloH1.DataError += DataGrid_DataError;
dataGridSiloH1.AutoGenerateColumns = false;
dataGridSiloH1.AllowUserToAddRows = true;
dataGridSiloH2.DataError += DataGrid_DataError;
dataGridSiloH2.AutoGenerateColumns = false;
dataGridSiloH2.AllowUserToAddRows = true;
var data1SiloH = detail.Where(x => x.MachineType == "Silo" && x.FormulaType == 2
&& x.Machine == "A").ToList();
dataGridSiloH1.DataSource = new BindingList<LjFormulaDetail>(data1SiloH);//DataGridView的行可以添加删除只有允许添加行、删除行
CbSiloH.Checked = cbSiloH;
if (!cbSiloH)
{
var data2SiloH = detail.Where(x => x.MachineType == "Silo" && x.FormulaType == 2
&& x.Machine == "B").ToList();
dataGridSiloH2.DataSource = new BindingList<LjFormulaDetail>(data2SiloH);//DataGridView的行可以添加删除只有允许添加行、删除行
}
}
private void UpdatWeterH(List<LjFormulaDetail> detail, bool cbWeterH)
{
dataGridWeter1.DataError += DataGrid_DataError;
dataGridWeter1.AutoGenerateColumns = false;
dataGridWeter1.AllowUserToAddRows = true;
dataGridWeter2.DataError += DataGrid_DataError;
dataGridWeter2.AutoGenerateColumns = false;
dataGridWeter2.AllowUserToAddRows = true;
var data1WeterH = detail.Where(x => x.MachineType == "Weter" && x.FormulaType == 2
&& x.Machine == "A").ToList();
dataGridWeter1.DataSource = new BindingList<LjFormulaDetail>(data1WeterH);//DataGridView的行可以添加删除只有允许添加行、删除行
CbWeterH.Checked = cbWeterH;
if (!cbWeterH)
{
var data2WeterH = detail.Where(x => x.MachineType == "Weter" && x.FormulaType == 2
&& x.Machine == "B").ToList();
dataGridWeter2.DataSource = new BindingList<LjFormulaDetail>(data2WeterH);//DataGridView的行可以添加删除只有允许添加行、删除行
}
}
private void DataGrid_DataError(object sender, DataGridViewDataErrorEventArgs e)
{
e.Cancel = true;
}
private void FillDataGridDryer1Action()
{
DataGridViewComboBoxColumn combox = this.dataGridDryer1Action.Columns["ComBoxDryer1Code"] as DataGridViewComboBoxColumn;
var list = GetAction(2);
combox.DataSource = list;
combox.DisplayMember = "Name";
combox.ValueMember = "Id";
combox.DataPropertyName = "ActionId";
}
private void FillDataGridSilo1Action()
{
DataGridViewComboBoxColumn combox1 = this.dataGridSiloH1.Columns["ComBoxSilo1Code"] as DataGridViewComboBoxColumn;
var list1 = GetAction(1);
combox1.DataSource = list1;
combox1.DisplayMember = "Name";
combox1.ValueMember = "Id";
combox1.DataPropertyName = "ActionId";
DataGridViewComboBoxColumn combox2 = this.dataGridSiloH2.Columns["ComBoxSilo2Code"] as DataGridViewComboBoxColumn;
var list2 = GetAction(1);
combox2.DataSource = list2;
combox2.DisplayMember = "Name";
combox2.ValueMember = "Id";
combox2.DataPropertyName = "ActionId";
}
private void FillDataGridWeter1Action()
{
DataGridViewComboBoxColumn combox1 = this.dataGridWeter1.Columns["ComBoxWeter1Code"] as DataGridViewComboBoxColumn;
var list1 = GetAction(3);
combox1.DataSource = list1;
combox1.DisplayMember = "Name";
combox1.ValueMember = "Id";
combox1.DataPropertyName = "ActionId";
DataGridViewComboBoxColumn combox2 = this.dataGridWeter2.Columns["ComBoxWeter2Code"] as DataGridViewComboBoxColumn;
var list2 = GetAction(3);
combox2.DataSource = list2;
combox2.DisplayMember = "Name";
combox2.ValueMember = "Id";
combox2.DataPropertyName = "ActionId";
}
/// <summary>
/// 绑定配方类别
/// </summary>
private void Init()
{
DrpCpType.ValueMember = "Id";
DrpCpType.DisplayMember = "Name";
var ls = new List<MyNameValue>();
string sql = "select recipetype_Id as Id,recipetype_Name as Name from Base_RecipeType";
var dataTable = DBHelp.GetTable(sql);
var dr = dataTable.Rows;
ls = new List<MyNameValue>();
foreach (DataRow o in dr)
{
ls.Add(new MyNameValue()
{
Id = (int)o["Id"],
Name = o["Name"].ToString()
});
}
DrpCpType.DataSource = ls;
}
private List<MyNameValue> GetStockMaterrial(int mtypId)
{
string sql = "select Id, Code, StockName, MTypeId, MTypeName, MId, MName, Remark from lj_stock_material";
var dataTable = DBHelp.GetTable(sql);
List<MyNameValue> ls = new List<MyNameValue>();
foreach (DataRow o in dataTable.Rows)
{
int tableMTypeId = Convert.ToInt32(o["MTypeId"]);
if (mtypId != 0)
{
if (tableMTypeId == mtypId)
{
ls.Add(new MyNameValue()
{
Id = (int)o["Id"],
Name = o["StockName"].ToString() + $"({o["MName"]})"
});
}
}
}
return ls;
}
private List<MyNameValue> GetAction(int deviceUnitId)
{
string sql = "select ActionCode.id,code,ActionName,ActionCode.Remark,DeviceUnitId,DeviceUnit.Name\r\n from ActionCode\r\n left join DeviceUnit on ActionCode.DeviceUnitId = DeviceUnit.Id ";
if(deviceUnitId > 0)
{
sql += " where DeviceUnitId=" + deviceUnitId;
}
var dataTable = DBHelp.GetTable(sql);
List<MyNameValue> ls = new List<MyNameValue>();
foreach (DataRow o in dataTable.Rows)
{
ls.Add(new MyNameValue()
{
Id = (int)o["id"],
Name = o["ActionName"].ToString()
}) ;
}
return ls;
}
private DataRow GetCodeActionById(int id)
{
string sql = "select code as Code,ActionName as Name from ActionCode where Id=" + id;
var dataTable = DBHelp.GetTable(sql);
return dataTable.Rows[0];
}
/// <summary>
/// 干混机称量配方 物料下拉选择
/// </summary>
private void FillDryer()
{
DataGridViewComboBoxColumn combox = dataGridDryer.Columns["ComBoxDryer1Bin"] as DataGridViewComboBoxColumn;
var list = GetStockMaterrial(1);
combox.DataSource = list;
combox.DisplayMember = "Name";
combox.ValueMember = "Id";
combox.DataPropertyName = "StockMaterialId";
}
/// <summary>
/// 糊化机1 2 物料选择进行初始化
/// </summary>
private void FillSilo()
{
DataGridViewComboBoxColumn combox1 = dataGridSilo1.Columns["ComBoxSilo1Bin"] as DataGridViewComboBoxColumn;
var list1 = GetStockMaterrial(1);
combox1.DataSource = list1;
combox1.DisplayMember = "Name";
combox1.ValueMember = "Id";
combox1.DataPropertyName = "StockMaterialId";
DataGridViewComboBoxColumn combox2 = dataGridSilo2.Columns["ComBoxSilo2Bin"] as DataGridViewComboBoxColumn;
var list2 = GetStockMaterrial(1);
combox2.DataSource = list2;
combox2.DisplayMember = "Name";
combox2.ValueMember = "Id";
combox2.DataPropertyName = "StockMaterialId";
}
/// <summary>
/// 糊化机1 2 物料选择进行初始化 水秤
/// </summary>
private void FillSiloWater()
{
DataGridViewComboBoxColumn comboxWater1 = dataGridWater1.Columns["ComBoxSilo1BinWater"] as DataGridViewComboBoxColumn;
var comboxWater1List = GetStockMaterrial(1);
comboxWater1.DataSource = comboxWater1List;
comboxWater1.DisplayMember = "Name";
comboxWater1.ValueMember = "Id";
comboxWater1.DataPropertyName = "StockMaterialId";
DataGridViewComboBoxColumn comboxWater2 = dataGridWater2.Columns["ComBoxSilo2BinWater"] as DataGridViewComboBoxColumn;
var comboxWater2List = GetStockMaterrial(1);
comboxWater2.DataSource = comboxWater2List;
comboxWater2.DisplayMember = "Name";
comboxWater2.ValueMember = "Id";
comboxWater2.DataPropertyName = "StockMaterialId";
}
private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
}
private void dataGridView1_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)
{
e.Row.Cells["TxtDryer1Weight"].Value = "0";
e.Row.Cells["TxtDryer1Tolerance"].Value = "0";
}
private void button1_Click(object sender, System.EventArgs e)
{
string txtNameStr=txtName.Text.Trim();
if (txtNameStr.Length == 0)
{
MessageBox.Show("请输入配方名称");
return;
}
var txtCpVersionStr=txtCpVersion.Text.Trim();
if (txtCpVersionStr.Length==0)
{
MessageBox.Show("请输入配方版本");
return;
}
//干混机
List<ClEntity> clDry = GetClEnity(dataGridDryer);
if (clDry.Count == 0)
{
MessageBox.Show("");
return;
}
else
{
//
}
//湿混机1
List<ClEntity> clSoil1 = GetClEnity(dataGridSilo1);
List<ClEntity> clSoil1Water = GetClEnity(dataGridWater1);
//湿混机2
List<ClEntity> clSoil2 = new List<ClEntity>();
List<ClEntity> clSoil2Water = new List<ClEntity>();
//如果Copy 2 copy 1
if (CbSiloC.Checked)
{
clSoil2.AddRange(clSoil1);
clSoil2Water.AddRange(clSoil1Water);
}
else
{
clSoil2= GetClEnity(dataGridSilo2);
clSoil2Water=GetClEnity(dataGridWater2);
}
//干混机1 获取混合配方
List<ChEntity> dataGridDryer1List = GetChEnity(dataGridDryer1Action);
//湿混机1 dataGridSiloH1
List<ChEntity> dataGridSiloH1List = GetChEnity(dataGridSiloH1);
List<ChEntity> dataGridSiloH2List = new List<ChEntity>();
if (CbSiloH.Checked)
{
dataGridSiloH2List.AddRange(dataGridSiloH1List);
}
else
{
dataGridSiloH2List = GetChEnity(dataGridSiloH2);
}
List<ChEntity> dataGridWeter1List= GetChEnity(dataGridWeter1);
List<ChEntity> dataGridWeter2List = new List<ChEntity>();
if (CbWeterH.Checked)
{
dataGridWeter2List.AddRange (dataGridWeter1List);
}
else
{
dataGridWeter2List=GetChEnity(dataGridWeter2);
}
Save(clDry, clSoil1, clSoil1Water, clSoil2, clSoil2Water,
dataGridDryer1List, dataGridSiloH1List,
dataGridSiloH2List, dataGridWeter1List, dataGridWeter2List);
this.DialogResult = DialogResult.OK;
//if (CbSilo1.Checked)
//{
// clSoil= GetClEnity(dataGridSilo);
//}
//List<ClEntity> clSoi2 = new List<ClEntity>();
//if (CbSilo2.Checked)
//{
// clSoil = GetClEnity(dataGridSilo);
//}
//List<ClEntity> clSoiHWater = new List<ClEntity>();
//if (CbSilo2.Checked)
//{
// clSoiHWater = GetClEnity(dataGridWater);
//}
//先看统一配方干
// Save(clDry,clSoil, clSoi2);
}
private List<ChEntity> GetChEnity(DataGridView dataGridView)
{
List<ChEntity> clDry = new List<ChEntity>();
foreach (DataGridViewRow row in dataGridView.Rows)
{
try
{
ChEntity entity = new ChEntity();
object obj = row.Cells[0].Value;
var sss = row.Cells[0].FormattedValue;
if (obj != null)
{
entity.ActionId = Convert.ToInt32(obj);
}
else
{
continue;
}
obj = row.Cells[1].Value;
if (obj != null)
{
entity.TimeInfo = Convert.ToInt16(obj);
}
obj = row.Cells[2].Value;
if (obj != null)
{
entity.Temp = Convert.ToSingle(obj);
}
obj = row.Cells[3].Value;
if (obj != null)
{
entity.Speed = Convert.ToSingle(obj);
}
if(row.Cells.Count>4)
{
obj = row.Cells[4].Value;
if(obj != null)
{
entity.SetValue = Convert.ToSingle(obj);
}
}
if (row.Cells.Count >5)
{
obj = row.Cells[5].Value;
if (obj != null)
{
entity.SetTolerance = Convert.ToSingle(obj);
}
}
clDry.Add(entity);
}
catch (Exception)
{
MessageBox.Show("请检查混合配方数据");
break;
}
}
return clDry;
}
/// <summary>
/// 从gdataGridView获取 实体便于插入数据
/// </summary>
/// <param name="dataGridView"></param>
/// <returns></returns>
private List<ClEntity> GetClEnity(DataGridView dataGridView)
{
List<ClEntity> clDry = new List<ClEntity>();
foreach (DataGridViewRow row in dataGridView.Rows)
{
try
{
ClEntity entity = new ClEntity();
object obj = row.Cells[0].Value;
var sss = row.Cells[0].FormattedValue;
if (obj != null)
{
entity.StockMaterialId = Convert.ToInt32(obj);
}
else
{
continue;
}
obj = row.Cells[1].Value;
if (obj != null)
{
entity.Weight = Convert.ToSingle(obj);
}
obj = row.Cells[2].Value;
if (obj != null)
{
entity.Tolerance = Convert.ToSingle(obj);
}
clDry.Add(entity);
}
catch (Exception)
{
MessageBox.Show("请检查称量配方");
break;
}
}
return clDry;
}
/// <summary>
///
/// </summary>
/// <param name="cls">保存干混机称量配方</param>
/// <param name="soil1">湿混机1</param>
/// <param name="soilWater1">湿混机1 水</param>
/// <param name="soil2">湿混机2</param>
/// <param name="soilWater2">湿混机2 水</param>
/// <param name="dataGridDryer1List">干混机1 混合配方</param>
/// <param name="dataGridSiloH1List">糊化机1 混合配方</param>
private void Save(List<ClEntity> cls, List<ClEntity> soil1,
List<ClEntity> soilWater1, List<ClEntity> soil2, List<ClEntity> soilWater2,
List<ChEntity> dataGridDryer1List,
List<ChEntity> dataGridSiloH1List,
List<ChEntity> dataGridSiloH2List,
List<ChEntity> dataGridWeter1List,
List<ChEntity> dataGridWeter2List
)
{
DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
string formulaNameNoStr = "0";
string formulaName=this.txtName.Text;
int recipeTypeId = Convert.ToInt32(DrpCpType.SelectedValue);
string recipeTypeName = DrpCpType.Text;
string formulaVersion = txtCpVersion.Text;
try
{
int cbSiloC = 0;
int cbSiloH = 0;
int cbWeterH = 0;
if(CbSiloC.Checked)
{
cbSiloC = 1;
}
if(CbSiloH.Checked)
{
cbSiloH = 1;
}
if (CbWeterH.Checked)
{
cbWeterH = 1;
}
dbHelper.BeginTransaction();
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
//主表1 1个单元
int id = 0;
if (_id > 0)
{
id = _id;
}
else
{
id= Convert.ToInt32(DBHelp.GetOne("select isnull(max(Id),0) as no from Lj_Formula")) + 1;
}
string sql = "insert into Lj_Formula " +
"(Id, FormulaNo, FormulaName, RecipeTypeId, RecipeTypeName, IsEnable, FormulaVersion, CreateTime,Unit,CbSiloC,CbSiloH,CbWeterH\r\n )\r\n" +
$"values ({id},{formulaNameNoStr},'{formulaName}',{recipeTypeId},'{recipeTypeName}',1,'{formulaVersion}',GETDATE(),1,{cbSiloC},{cbSiloH},{cbWeterH});";
if (_id > 0)
{
sql = "update Lj_Formula";
sql += $" set FormulaName='{formulaName}' ";
sql += $" , RecipeTypeId='{recipeTypeId}' ";
sql += $" , recipeTypeName='{recipeTypeName}' ";
sql += $" , FormulaVersion='{formulaVersion}' ";
sql += $" , UpdateTime=GETDATE() ";
sql += $" , CbSiloC={cbSiloC} ";
sql += $" , CbSiloH={cbSiloH} ";
sql += $" , CbWeterH={cbWeterH} where Id= {_id}";
}
dbHelper.CommandText = sql;
dbHelper.ExecuteNonQuery();
if (_id > 0)
{
dbHelper.CommandText = $"delete from Lj_Formula_Detail where FormulaId={_id}";
dbHelper.ExecuteNonQuery();
}
//干混机1
foreach (ClEntity clEntity in cls)
{
var dr=GetByMaterialId(clEntity.StockMaterialId);
int code = Convert.ToInt32(dr["Code"]);
int mId = Convert.ToInt32(dr["MId"]);
string Mname = dr["MName"].ToString();
//FormulaType 1 称量 2 混合
string sqlA = $"insert into Lj_Formula_Detail " +
$"(FormulaId, BinNo, MId, MName, Weight, Tolerance, Machine, MachineType, FormulaType,\r\n ActionCode, ActionName, TimeInfo, Temp, Speed, SetValue, SetTolerance,StockMaterialId)\r\n" +
$"values ({id},{code},{mId},'{Mname}',{clEntity.Weight},{clEntity.Tolerance},'A','Dry',1,0,'',0,0,0,0,0,{clEntity.StockMaterialId})";
dbHelper.CommandText = sqlA;
dbHelper.ExecuteNonQuery();
}
//湿混1
foreach (ClEntity clEntity in soil1)
{
var dr = GetByMaterialId(clEntity.StockMaterialId);
int code = Convert.ToInt32(dr["Code"]);
int mId = Convert.ToInt32(dr["MId"]);
string Mname = dr["MName"].ToString();
//FormulaType 1 称量 2 混合
// Machine A 左侧 B右侧
string sqlA = $"insert into Lj_Formula_Detail " +
$"(FormulaId, BinNo, MId, MName, Weight, Tolerance, Machine, MachineType, FormulaType,\r\n ActionCode, ActionName, TimeInfo, Temp, Speed, SetValue, SetTolerance,StockMaterialId)\r\n" +
$"values ({id},{code},{mId},'{Mname}',{clEntity.Weight},{clEntity.Tolerance},'A','Silo',1,0,'',0,0,0,0,0,{clEntity.StockMaterialId})";
dbHelper.CommandText = sqlA;
dbHelper.ExecuteNonQuery();
}
//湿混1 水
foreach (ClEntity clEntity in soilWater1)
{
var dr = GetByMaterialId(clEntity.StockMaterialId);
int code = Convert.ToInt32(dr["Code"]);
int mId = Convert.ToInt32(dr["MId"]);
string Mname = dr["MName"].ToString();
//FormulaType 1 称量 2 混合
string sqlA = $"insert into Lj_Formula_Detail " +
$"(FormulaId, BinNo, MId, MName, Weight, Tolerance, Machine, MachineType, FormulaType,\r\n ActionCode, ActionName, TimeInfo, Temp, Speed, SetValue, SetTolerance,StockMaterialId)\r\n" +
$"values ({id},{code},{mId},'{Mname}',{clEntity.Weight},{clEntity.Tolerance},'A','Silo_Water',1,0,'',0,0,0,0,0,{clEntity.StockMaterialId})";
dbHelper.CommandText = sqlA;
dbHelper.ExecuteNonQuery();
}
//湿混2
foreach (ClEntity clEntity in soil2)
{
var dr = GetByMaterialId(clEntity.StockMaterialId);
int code = Convert.ToInt32(dr["Code"]);
int mId = Convert.ToInt32(dr["MId"]);
string Mname = dr["MName"].ToString();
//FormulaType 1 称量 2 混合
string sqlA = $"insert into Lj_Formula_Detail " +
$"(FormulaId, BinNo, MId, MName, Weight, Tolerance, Machine, MachineType, FormulaType,\r\n ActionCode, ActionName, TimeInfo, Temp, Speed, SetValue, SetTolerance,StockMaterialId)\r\n" +
$"values ({id},{code},{mId},'{Mname}',{clEntity.Weight},{clEntity.Tolerance},'B','Silo',1,0,'',0,0,0,0,0,{clEntity.StockMaterialId})";
dbHelper.CommandText = sqlA;
dbHelper.ExecuteNonQuery();
}
//湿混2 水
foreach (ClEntity clEntity in soilWater2)
{
var dr = GetByMaterialId(clEntity.StockMaterialId);
int code = Convert.ToInt32(dr["Code"]);
int mId = Convert.ToInt32(dr["MId"]);
string Mname = dr["MName"].ToString();
//FormulaType 1 称量 2 混合
string sqlA = $"insert into Lj_Formula_Detail " +
$"(FormulaId, BinNo, MId, MName, Weight, Tolerance, Machine, MachineType, FormulaType,\r\n ActionCode, ActionName, TimeInfo, Temp, Speed, SetValue, SetTolerance,StockMaterialId)\r\n" +
$"values ({id},{code},{mId},'{Mname}',{clEntity.Weight},{clEntity.Tolerance},'B','Silo_Water',1,0,'',0,0,0,0,0,{clEntity.StockMaterialId})";
dbHelper.CommandText = sqlA;
dbHelper.ExecuteNonQuery();
}
//-------------------混合配方--------------------------------------------------
foreach(ChEntity chEntity in dataGridDryer1List)
{
var dr = GetCodeActionById(chEntity.ActionId);
int code = Convert.ToInt32(dr["Code"]);
string actionName = dr["Name"].ToString();
//FormulaType 1 称量 2 混合
string sqlA = $"insert into Lj_Formula_Detail " +
$"(FormulaId, BinNo, MId, MName, Weight, Tolerance, Machine, MachineType, FormulaType,\r\n ActionCode, ActionName, TimeInfo, Temp, Speed, SetValue, SetTolerance,ActionId)\r\n" +
$"values ({id},{code},{0},'',{0},{0},'A','Dry',2,{code},'{actionName}',{chEntity.TimeInfo},{chEntity.Temp},{chEntity.Speed},{chEntity.SetValue},{chEntity.SetTolerance},{chEntity.ActionId})";
dbHelper.CommandText = sqlA;
dbHelper.ExecuteNonQuery();
}
foreach (ChEntity chEntity in dataGridSiloH1List)
{
var dr = GetCodeActionById(chEntity.ActionId);
int code = Convert.ToInt32(dr["Code"]);
string actionName = dr["Name"].ToString();
//FormulaType 1 称量 2 混合
string sqlA = $"insert into Lj_Formula_Detail " +
$"(FormulaId, BinNo, MId, MName, Weight, Tolerance, Machine, MachineType, FormulaType,\r\n ActionCode, ActionName, TimeInfo, Temp, Speed, SetValue, SetTolerance,ActionId)\r\n" +
$"values ({id},{code},{0},'',{0},{0},'A','Silo',2," +
$"{code},'{actionName}',{chEntity.TimeInfo},{chEntity.Temp},{chEntity.Speed},{chEntity.SetValue},{chEntity.SetTolerance},{chEntity.ActionId})";
dbHelper.CommandText = sqlA;
dbHelper.ExecuteNonQuery();
}
foreach (ChEntity chEntity in dataGridSiloH2List)
{
var dr = GetCodeActionById(chEntity.ActionId);
int code = Convert.ToInt32(dr["Code"]);
string actionName = dr["Name"].ToString();
//FormulaType 1 称量 2 混合
string sqlA = $"insert into Lj_Formula_Detail " +
$"(FormulaId, BinNo, MId, MName, Weight, Tolerance, Machine, MachineType, FormulaType,\r\n ActionCode, ActionName, TimeInfo, Temp, Speed, SetValue, SetTolerance,ActionId)\r\n" +
$"values ({id},{code},{0},'',{0},{0},'B','Silo',2," +
$"{code},'{actionName}',{chEntity.TimeInfo},{chEntity.Temp},{chEntity.Speed},{chEntity.SetValue},{chEntity.SetTolerance},{chEntity.ActionId})";
dbHelper.CommandText = sqlA;
dbHelper.ExecuteNonQuery();
}
//湿1 混合配方
foreach (ChEntity chEntity in dataGridWeter1List)
{
var dr = GetCodeActionById(chEntity.ActionId);
int code = Convert.ToInt32(dr["Code"]);
string actionName = dr["Name"].ToString();
//FormulaType 1 称量 2 混合
string sqlA = $"insert into Lj_Formula_Detail " +
$"(FormulaId, BinNo, MId, MName, Weight, Tolerance, Machine, MachineType, FormulaType,\r\n ActionCode, ActionName, TimeInfo, Temp, Speed, SetValue, SetTolerance,ActionId)\r\n" +
$"values ({id},{code},{0},'',{0},{0},'A','Weter',2," +
$"{code},'{actionName}',{chEntity.TimeInfo},{chEntity.Temp},{chEntity.Speed},{chEntity.SetValue},{chEntity.SetTolerance},{chEntity.ActionId})";
dbHelper.CommandText = sqlA;
dbHelper.ExecuteNonQuery();
}
foreach (ChEntity chEntity in dataGridWeter2List)
{
var dr = GetCodeActionById(chEntity.ActionId);
int code = Convert.ToInt32(dr["Code"]);
string actionName = dr["Name"].ToString();
//FormulaType 1 称量 2 混合
string sqlA = $"insert into Lj_Formula_Detail " +
$"(FormulaId, BinNo, MId, MName, Weight, Tolerance, Machine, MachineType, FormulaType,\r\n ActionCode, ActionName, TimeInfo, Temp, Speed, SetValue, SetTolerance,ActionId)\r\n" +
$"values ({id},{code},{0},'',{0},{0},'B','Weter',2," +
$"{code},'{actionName}',{chEntity.TimeInfo},{chEntity.Temp},{chEntity.Speed},{chEntity.SetValue},{chEntity.SetTolerance},{chEntity.ActionId})";
dbHelper.CommandText = sqlA;
dbHelper.ExecuteNonQuery();
}
dbHelper.CommitTransaction();
}
catch(Exception ex) {
dbHelper.RollbackTransaction();
}
}
private void CbSilo1_CheckedChanged(object sender, EventArgs e)
{
}
private void CbSilo2_CheckedChanged(object sender, EventArgs e)
{
CbSilo1_CheckedChanged(sender, e);
}
private void dataGridSilo_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)
{
e.Row.Cells["TxtSilo1Weight"].Value = "0";
e.Row.Cells["TxtSilo1Tolerance"].Value = "0";
}
private void dataGridWater_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)
{
e.Row.Cells["TxtSilo1WeightWater"].Value = "0";
e.Row.Cells["TxtSilo1ToleranceWater"].Value = "0";
}
private void dataGridDryer1Action_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)
{
e.Row.Cells["ComBoxDryer1TimeInfo"].Value = "0";
e.Row.Cells["ComBoxDryer1Temp"].Value = "0";
e.Row.Cells["ComBoxDryer1Speed"].Value = "0";
}
private void dataGridWeter1_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)
{
e.Row.Cells["ComBoxWeter1TimeInfo"].Value = "0";
e.Row.Cells["ComBoxWeter1Temp"].Value = "0";
e.Row.Cells["ComBoxWeter1Speed"].Value = "0";
e.Row.Cells["ComBoxWeter1SetValue"].Value = "0";
e.Row.Cells["ComBoxWeter1SetTolerance"].Value = "0";
}
private void dataGridSilo1_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)
{
e.Row.Cells["ComBoxSilo1TimeInfo"].Value = "0";
e.Row.Cells["ComBoxSilo1Temp"].Value = "0";
e.Row.Cells["ComBoxSilo1Speed"].Value = "0";
}
private DataRow GetByMaterialId(int id)
{
string sql = "select Id, Code, StockName, MTypeId, MTypeName, MId, MName, Remark from lj_stock_material where Id=" + id;
var dataTable=DBHelp.GetTable(sql);
return dataTable.Rows[0];
}
private void BtnCanel_Click(object sender, EventArgs e)
{
this.Close();
}
private void dataGridSilo2_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)
{
//e.Row.Cells["ComBoxSilo2Bin"].Value = "0";
e.Row.Cells["TxtSilo2Weight"].Value = "0";
e.Row.Cells["TxtSilo2Tolerance"].Value = "0";
}
private void dataGridWater2_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)
{
e.Row.Cells["TxtSilo2WeightWater"].Value = "0";
e.Row.Cells["TxtSilo2ToleranceWater"].Value = "0";
}
private void dataGridWater1_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)
{
e.Row.Cells["TxtSilo1WeightWater"].Value = "0";
e.Row.Cells["TxtSilo1ToleranceWater"].Value = "0";
}
private void dataGridSiloH1_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)
{
e.Row.Cells["ComBoxSilo1TimeInfo"].Value = "0";
e.Row.Cells["ComBoxSilo1Temp"].Value = "0";
e.Row.Cells["ComBoxSilo1Speed"].Value = "0";
}
private void dataGridSiloH2_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)
{
e.Row.Cells["ComBoxSilo2TimeInfo"].Value = "0";
e.Row.Cells["ComBoxSilo2Temp"].Value = "0";
e.Row.Cells["ComBoxSilo2Speed"].Value = "0";
}
private void dataGridWeter1_DefaultValuesNeeded_1(object sender, DataGridViewRowEventArgs e)
{
e.Row.Cells["ComBoxWeter1TimeInfo"].Value = "0";
e.Row.Cells["ComBoxWeter1Temp"].Value = "0";
e.Row.Cells["ComBoxWeter1Speed"].Value = "0";
e.Row.Cells["ComBoxWeter1SetValue"].Value = "0";
e.Row.Cells["ComBoxWeter1SetTolerance"].Value = "0";
}
private void dataGridWeter2_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)
{
e.Row.Cells["ComBoxWeter2TimeInfo"].Value = "0";
e.Row.Cells["ComBoxWeter2Temp"].Value = "0";
e.Row.Cells["ComBoxWeter2Speed"].Value = "0";
e.Row.Cells["ComBoxWeter2SetValue"].Value = "0";
e.Row.Cells["ComBoxWeter2SetTolerance"].Value = "0";
}
private void dataGridDryer_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
private void CbSiloC_CheckedChanged(object sender, EventArgs e)
{
if(CbSiloC.Checked == true)
{
this.tabPage4.Parent = null;
this.tabPage4.Enabled = false; // no casting required.
}
else
{
tabControl2.TabPages.Add(this.tabPage4);
this.tabPage4.Enabled = true;
}
}
private void CbSiloH_CheckedChanged(object sender, EventArgs e)
{
if (CbSiloH.Checked == true)
{
this.tabPage2.Parent = null;
this.tabPage2.Enabled = false; // no casting required.
}
else
{
tabControl1.TabPages.Add(this.tabPage2);
this.tabPage2.Enabled = true;
}
}
private void CbWeterH_CheckedChanged(object sender, EventArgs e)
{
if (CbWeterH.Checked == true)
{
this.tabPage6.Parent = null;
this.tabPage6.Enabled = false; // no casting required.
}
else
{
tabControl3.TabPages.Add(this.tabPage6);
this.tabPage6.Enabled = true;
}
}
}
}