You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
413 lines
18 KiB
413 lines
18 KiB
using Module.Plc.ModbusTcp.Tool;
|
|
using RS.BLL;
|
|
using RS.Common;
|
|
using RS.Model;
|
|
using RS.Module.Common;
|
|
using Sunny.UI;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace MorClient.UserFrmFrame
|
|
{
|
|
public partial class FrmScrubbingFormula : Form
|
|
{
|
|
/// <summary>
|
|
/// 能否新增
|
|
/// </summary>
|
|
bool canAdd = true;
|
|
/// <summary>
|
|
/// 鼠标所在行数
|
|
/// </summary>
|
|
int rowLocate = -1;
|
|
bool isUpdate = false;
|
|
int state = 0;
|
|
DataTable dtResult = new DataTable();
|
|
DataGridViewHandle gridHdl = new DataGridViewHandle();
|
|
BRecipeWoekManage bRecipeWoekManage = new BRecipeWoekManage();
|
|
|
|
public FrmScrubbingFormula(int STATE)
|
|
{
|
|
InitializeComponent();
|
|
CreateNewRecipe();
|
|
state = STATE;
|
|
}
|
|
/// <summary>
|
|
/// 关闭
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void uiButton3_Click(object sender, EventArgs e)
|
|
{
|
|
this.Close();
|
|
}
|
|
#region 按钮动作
|
|
/// <summary>
|
|
/// 新增
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void uiButton1_Click(object sender, EventArgs e)
|
|
{
|
|
if (canAdd)
|
|
{
|
|
canAdd = false;
|
|
isUpdate = true;
|
|
ScrubbingRecipeArm scrubbingRecipeArm = new ScrubbingRecipeArm();
|
|
scrubbingRecipeArm.scrub_position_one = Common.commonClass_scr1_scrubLeftRight.F_Position_M8;
|
|
scrubbingRecipeArm.scrub_position_two = Common.commonClass_scr1_scrubLeftRight.F_Position_M8;
|
|
scrubbingRecipeArm.scrub_speed = 0;
|
|
scrubbingRecipeArm.move_method = "抬起";
|
|
scrubbingRecipeArm.scrub_recipe_name = null;
|
|
scrubbingRecipeArm.scrub_type = state.ToString();
|
|
|
|
if (dtResult == null || dtResult.Rows.Count <= 0)
|
|
dtResult.Rows.Add(scrubbingRecipeArm.scrub_position_one, scrubbingRecipeArm.scrub_position_two,
|
|
scrubbingRecipeArm.scrub_speed, scrubbingRecipeArm.move_method, scrubbingRecipeArm.scrub_recipe_name, scrubbingRecipeArm.scrub_type);
|
|
else
|
|
dtResult.Rows.Add(scrubbingRecipeArm.scrub_recipe_name, scrubbingRecipeArm.scrub_position_one,
|
|
scrubbingRecipeArm.scrub_position_two, scrubbingRecipeArm.scrub_speed, "抬起");
|
|
|
|
dataGridView.DataSource = dtResult;
|
|
gridHdl._dbgrid = dataGridView;
|
|
gridHdl.GenerateBaseDataGridView();
|
|
|
|
dataGridView.ReadOnly = false;
|
|
rowLocate = dataGridView.Rows.Count;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void uiButton2_Click(object sender, EventArgs e)
|
|
{
|
|
if (dataGridView.DataSource != null && dataGridView.Rows.Count > 0)
|
|
{
|
|
DialogResult dgRst = MessageBox.Show(this, "您确认删除配方吗?", "警告", MessageBoxButtons.OKCancel);
|
|
if (dgRst == DialogResult.OK)
|
|
{
|
|
// 获取第一个选定单元格
|
|
DataGridViewCell selectedCell = dataGridView.SelectedCells[0];
|
|
// 获取包含该单元格的行
|
|
DataGridViewRow selectedRow = selectedCell.OwningRow;
|
|
// 获取行索引
|
|
int rowIndex = selectedRow.Index;
|
|
|
|
if (rowIndex >= 0 && rowIndex < dataGridView.RowCount)
|
|
{
|
|
if (!canAdd && rowLocate == dataGridView.RowCount)
|
|
{
|
|
dataGridView.Rows.RemoveAt(rowIndex);
|
|
rowLocate = 0;
|
|
}
|
|
else
|
|
{
|
|
DataTable data = bRecipeWoekManage.GetScruRecipeScrInfo(state);
|
|
string old = data.Rows[rowIndex][0].ToString();
|
|
if (!bRecipeWoekManage.whetherDelete("SCR" + state, "scrubing_arm", old))
|
|
{
|
|
//数据库删除
|
|
DataGridViewRow dataGridViewRow = dataGridView.Rows[rowIndex] as DataGridViewRow;
|
|
string recipeName = dataGridViewRow.Cells[0].Value.ToString();
|
|
bool result = bRecipeWoekManage.DeletScrubRecipeArmInfo(recipeName);
|
|
//页面删除
|
|
dataGridView.Rows.RemoveAt(rowIndex);
|
|
|
|
if (result)
|
|
{
|
|
//MessageBox.Show("删除成功");
|
|
GetDataSource();
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("删除失败");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("当前配方已选择,禁止删除");
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("请选择要删除的行");
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("表中无数据,请先添加数据");
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 修改
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void uiButton4_Click(object sender, EventArgs e)
|
|
{
|
|
dataGridView.ReadOnly = false;
|
|
if (dataGridView.DataSource != null && dataGridView.Rows.Count > 0)
|
|
{
|
|
DialogResult dgRst = MessageBox.Show(this, "您确认修改配方吗?", "警告", MessageBoxButtons.OKCancel);
|
|
if (dgRst == DialogResult.OK)
|
|
{
|
|
isUpdate = true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("表中无数据,请先添加数据");
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 保存
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void uiButton5_Click(object sender, EventArgs e)
|
|
{
|
|
if (isUpdate)
|
|
{
|
|
// 假设你的DataGridView控件名为dataGridView1
|
|
if (dataGridView.SelectedCells.Count > 0)
|
|
{
|
|
try
|
|
{
|
|
// 获取第一个选定单元格
|
|
DataGridViewCell selectedCell = dataGridView.SelectedCells[0];
|
|
// 获取包含该单元格的行
|
|
DataGridViewRow selectedRow = selectedCell.OwningRow;
|
|
// 获取行索引
|
|
int rowIndex = selectedRow.Index;
|
|
|
|
if (rowIndex >= 0 && rowIndex < dataGridView.RowCount)
|
|
{
|
|
List<string> strings = new List<string>();
|
|
//判断有没有重复的
|
|
for (int i = 0; i < dataGridView.Rows.Count; i++)
|
|
{
|
|
string flush_recipe_name = dataGridView.Rows[i].Cells[0].Value.ToString();
|
|
if (!string.IsNullOrEmpty(flush_recipe_name))
|
|
{
|
|
if (!strings.Contains(flush_recipe_name))
|
|
{
|
|
strings.Add(flush_recipe_name);
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("配方名重复");
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("配方名不能为空");
|
|
return;
|
|
}
|
|
}
|
|
|
|
DataGridViewRow dataGridViewRow = dataGridView.Rows[rowIndex] as DataGridViewRow;
|
|
ScrubbingRecipeArm scrubbingRecipeArm = new ScrubbingRecipeArm();
|
|
scrubbingRecipeArm.move_method = dataGridViewRow.Cells[4].Value.ToString();
|
|
scrubbingRecipeArm.scrub_recipe_name = dataGridViewRow.Cells[0].Value.ToString().Replace(" ", "");
|
|
scrubbingRecipeArm.scrub_position_one = Convert.ToSingle(dataGridViewRow.Cells[1].Value.ToString());
|
|
scrubbingRecipeArm.scrub_position_two = Convert.ToSingle(dataGridViewRow.Cells[2].Value.ToString());
|
|
scrubbingRecipeArm.scrub_speed = Convert.ToSingle(dataGridViewRow.Cells[3].Value.ToString());
|
|
scrubbingRecipeArm.scrub_type = state.ToString();
|
|
|
|
if (float.TryParse(dataGridViewRow.Cells[1].Value.ToString(), out float scrub_position_one) && float.TryParse(dataGridViewRow.Cells[2].Value.ToString(), out float scrub_position_two))
|
|
{
|
|
if (!canAdd && rowLocate == dataGridView.RowCount)
|
|
{//新增
|
|
if (!bRecipeWoekManage.whetherScrubbing(scrubbingRecipeArm.scrub_recipe_name, scrubbingRecipeArm.scrub_type))//不重复
|
|
{
|
|
bool result = bRecipeWoekManage.SaveScrubbingRecipeArmInfo(scrubbingRecipeArm);
|
|
if (result)
|
|
{
|
|
canAdd = true;
|
|
MessageBox.Show("保存成功");
|
|
GetDataSource();
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("保存失败");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("配方名重复");
|
|
}
|
|
}
|
|
else//这个是更改原有配方
|
|
{
|
|
//不用dtresult是因为不知道什么原因这个数据和控件中数据源一样了
|
|
DataTable dataTable = bRecipeWoekManage.GetScruRecipeScrInfo(state);
|
|
string old_scrub_recipe_name = dataTable.Rows[rowIndex]["scrub_recipe_name"].ToString();
|
|
if (!bRecipeWoekManage.whetherDelete("SCR" + state, "scrubing_arm", old_scrub_recipe_name))
|
|
{
|
|
bool result = bRecipeWoekManage.UpdateScrubRecipeArmInfo(scrubbingRecipeArm, old_scrub_recipe_name);
|
|
if (result)
|
|
{
|
|
canAdd = true;
|
|
MessageBox.Show("保存成功");
|
|
GetDataSource();
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("保存失败");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
string msg = "保存成功";
|
|
if (scrubbingRecipeArm.scrub_recipe_name != old_scrub_recipe_name)
|
|
msg = "名字已还原,数据保存成功";
|
|
scrubbingRecipeArm.scrub_recipe_name = old_scrub_recipe_name;
|
|
bool result = bRecipeWoekManage.UpdateScrubRecipeArmInfo(scrubbingRecipeArm, old_scrub_recipe_name);
|
|
if (result)
|
|
{
|
|
canAdd = true;
|
|
MessageBox.Show(msg);
|
|
GetDataSource();
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("保存失败");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("位置1或位置2数据无效");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("未选中数据行");
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show("出现错误,请联系管理员");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// 如果没有选定任何单元格,则显示消息
|
|
MessageBox.Show("没有选定任何单元格。");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("请先点击修改");
|
|
}
|
|
dataGridView.ReadOnly = true;
|
|
}
|
|
|
|
#endregion 按钮动作
|
|
|
|
#region DataGridView
|
|
|
|
/// <summary>
|
|
/// 加载数据
|
|
/// </summary>
|
|
/// <param name="recipeName">配方名</param>
|
|
public void CreateNewRecipe()
|
|
{
|
|
#region
|
|
DataGridViewTextBoxColumn textBoxColumn1 = new DataGridViewTextBoxColumn();
|
|
DataGridViewTextBoxColumn textBoxColumn2 = new DataGridViewTextBoxColumn();
|
|
DataGridViewTextBoxColumn textBoxColumn3 = new DataGridViewTextBoxColumn();
|
|
DataGridViewTextBoxColumn textBoxColumn4 = new DataGridViewTextBoxColumn();
|
|
DataGridViewComboBoxColumn comboBoxColumn5 = new DataGridViewComboBoxColumn();
|
|
// 如果需要绑定到数据源的属性,请设置此属性
|
|
textBoxColumn1.DataPropertyName = "scrub_recipe_name";
|
|
textBoxColumn2.DataPropertyName = "scrub_position_one";
|
|
textBoxColumn3.DataPropertyName = "scrub_position_two";
|
|
textBoxColumn4.DataPropertyName = "scrub_speed";
|
|
// 显示为带有一位位小数的浮点数
|
|
textBoxColumn2.DefaultCellStyle.Format = "N2";
|
|
textBoxColumn3.DefaultCellStyle.Format = "N2";
|
|
textBoxColumn4.DefaultCellStyle.Format = "N2";
|
|
// 如果需要绑定到数据源的属性,请设置此属性
|
|
comboBoxColumn5.DataPropertyName = "move_method";
|
|
List<string> vs = new List<string>();
|
|
vs.Add("抬起");
|
|
vs.Add("下压");
|
|
comboBoxColumn5.DataSource = vs;
|
|
|
|
// 将列添加到 DataGridView 的 Columns 集合中
|
|
dataGridView.Columns.Add(textBoxColumn1);
|
|
dataGridView.Columns.Add(textBoxColumn2);
|
|
dataGridView.Columns.Add(textBoxColumn3);
|
|
dataGridView.Columns.Add(textBoxColumn4);
|
|
dataGridView.Columns.Add(comboBoxColumn5);
|
|
|
|
//设置显示列名称
|
|
dataGridView.Columns[0].HeaderText = "配方名称";
|
|
dataGridView.Columns[1].HeaderText = "位置1";
|
|
dataGridView.Columns[2].HeaderText = "位置2";
|
|
dataGridView.Columns[3].HeaderText = "速度";
|
|
dataGridView.Columns[4].HeaderText = "移动方式";
|
|
|
|
#endregion
|
|
gridHdl._dbgrid = dataGridView;
|
|
gridHdl.GenerateBaseDataGridView();
|
|
|
|
foreach (DataGridViewColumn column in dataGridView.Columns)
|
|
{
|
|
column.SortMode = DataGridViewColumnSortMode.NotSortable;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 数据源 根据配方名 查询所有步骤
|
|
/// </summary>
|
|
/// <param name="recipeName"></param>
|
|
public void GetDataSource()
|
|
{
|
|
dtResult = bRecipeWoekManage.GetScruRecipeScrInfo(state);
|
|
if (dtResult == null || dtResult.Rows.Count <= 0)
|
|
{
|
|
dtResult = new DataTable();
|
|
dtResult.Columns.Add("scrub_position_one", typeof(float));
|
|
dtResult.Columns.Add("scrub_position_two", typeof(float));
|
|
dtResult.Columns.Add("scrub_speed", typeof(float));
|
|
dtResult.Columns.Add("move_method", typeof(string));
|
|
dtResult.Columns.Add("scrub_recipe_name", typeof(string));
|
|
dtResult.Columns.Add("scrub_type", typeof(string));
|
|
}
|
|
dataGridView.DataSource = dtResult;
|
|
}
|
|
|
|
private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
|
|
{
|
|
}
|
|
#endregion DataGridView
|
|
|
|
private void FrmScrubbingFormula_Load(object sender, EventArgs e)
|
|
{
|
|
|
|
if (PublicParams.currUserInfo.userGroup == "Operator")
|
|
{
|
|
this.Enabled = false;
|
|
}
|
|
else
|
|
{
|
|
this.Enabled = true;
|
|
}
|
|
}
|
|
}
|
|
}
|