工具表定模块 使用科学计数法
This commit is contained in:
2
SCADA/Pages/UC_ToolMgmt.Designer.cs
generated
2
SCADA/Pages/UC_ToolMgmt.Designer.cs
generated
@@ -57,7 +57,7 @@ namespace MesWork.Pages
|
||||
this.txt_Search.Name = "txt_Search";
|
||||
this.txt_Search.Size = new System.Drawing.Size(280, 27);
|
||||
this.txt_Search.TabIndex = 0;
|
||||
this.txt_Search.Text = "输入工具名称搜索...";
|
||||
this.txt_Search.Text = "输入工位号或工具名称搜索...";
|
||||
this.txt_Search.GotFocus += new System.EventHandler(this.txt_Search_GotFocus);
|
||||
this.txt_Search.LostFocus += new System.EventHandler(this.txt_Search_LostFocus);
|
||||
this.txt_Search.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txt_Search_KeyDown);
|
||||
|
||||
@@ -7,12 +7,12 @@ using System.Windows.Forms;
|
||||
namespace MesWork.Pages
|
||||
{
|
||||
/// <summary>
|
||||
/// 工具管理页面 — 传感器/工具校准和使用管理
|
||||
/// 对应存储过程:工具管理_分页查询、工具管理_新增、工具管理_修改、工具管理_删除
|
||||
/// 工具标定页面 — 固定维护OP10/OP20重量标定公式。
|
||||
/// 对应存储过程:工具管理_分页查询、工具管理_编辑
|
||||
/// </summary>
|
||||
public partial class UC_ToolMgmt : UserControl
|
||||
{
|
||||
private const string SEARCH_HINT = "输入工具名称搜索...";
|
||||
private const string SEARCH_HINT = "输入工位号或工具名称搜索...";
|
||||
private PagerBar _pager;
|
||||
|
||||
public UC_ToolMgmt()
|
||||
@@ -24,6 +24,9 @@ namespace MesWork.Pages
|
||||
this.Controls.Remove(pnl_StatusBar);
|
||||
this.Controls.Add(_pager);
|
||||
this.Controls.SetChildIndex(_pager, this.Controls.Count - 2);
|
||||
btn_Add.Visible = false;
|
||||
btn_Delete.Visible = false;
|
||||
btn_Edit.Location = btn_Delete.Location;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -34,14 +37,12 @@ namespace MesWork.Pages
|
||||
dgv_Data.AutoGenerateColumns = false;
|
||||
dgv_Data.Columns.Clear();
|
||||
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "ID", HeaderText = "ID", DataPropertyName = "ID", Visible = false });
|
||||
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "工具名称", HeaderText = "工具名称", DataPropertyName = "工具名称", FillWeight = 110 });
|
||||
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "说明", HeaderText = "说明", DataPropertyName = "说明", FillWeight = 120 });
|
||||
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "校准值", HeaderText = "校准值", DataPropertyName = "校准值", FillWeight = 70 });
|
||||
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "校准时间", HeaderText = "校准时间", DataPropertyName = "校准时间", FillWeight = 90 });
|
||||
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "使用次数", HeaderText = "使用次数", DataPropertyName = "使用次数", FillWeight = 60 });
|
||||
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "使用次数变更时间", HeaderText = "次数变更时间", DataPropertyName = "使用次数变更时间", FillWeight = 90 });
|
||||
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "创建时间", HeaderText = "创建时间", DataPropertyName = "创建时间", FillWeight = 90 });
|
||||
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "修改时间", HeaderText = "修改时间", DataPropertyName = "修改时间", FillWeight = 90 });
|
||||
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "工位号", HeaderText = "工位号", DataPropertyName = "工位号", FillWeight = 70 });
|
||||
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "工具名称", HeaderText = "工具名称", DataPropertyName = "工具名称", FillWeight = 120 });
|
||||
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "重量标定", HeaderText = "重量标定", DataPropertyName = "重量标定", FillWeight = 90 });
|
||||
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "计算公式", HeaderText = "计算公式", DataPropertyName = "计算公式", FillWeight = 150 });
|
||||
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "说明", HeaderText = "说明", DataPropertyName = "说明", FillWeight = 180 });
|
||||
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "修改时间", HeaderText = "修改时间", DataPropertyName = "修改时间", FillWeight = 100 });
|
||||
}
|
||||
|
||||
public void LoadData(string keyword = "")
|
||||
@@ -74,27 +75,13 @@ namespace MesWork.Pages
|
||||
|
||||
// ── 按钮事件 ──
|
||||
private void btn_Search_Click(object sender, EventArgs e) { _pager.ResetPage(); LoadData(txt_Search.Text == SEARCH_HINT ? "" : txt_Search.Text.Trim()); }
|
||||
private void btn_Add_Click(object sender, EventArgs e) => ShowEditDialog(null);
|
||||
private void btn_Add_Click(object sender, EventArgs e) { }
|
||||
private void btn_Edit_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (dgv_Data.CurrentRow != null) ShowEditDialog(dgv_Data.CurrentRow);
|
||||
else MessageBox.Show("请先选择一条记录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
private void btn_Delete_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (dgv_Data.CurrentRow == null) { MessageBox.Show("请先选择一条记录", "提示"); return; }
|
||||
string name = dgv_Data.CurrentRow.Cells["工具名称"]?.Value?.ToString() ?? "";
|
||||
if (MessageBox.Show($"确认删除工具「{name}」?", "确认删除", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
|
||||
{
|
||||
try
|
||||
{
|
||||
var parms = new SqlParameter[] { new SqlParameter("@ID", int.Parse(dgv_Data.CurrentRow.Cells["ID"]?.Value?.ToString() ?? "0")) };
|
||||
SqlOperation.ExecuteStoredProcedure("工具管理_删除", parms, out string err);
|
||||
LoadData();
|
||||
}
|
||||
catch (Exception ex) { MessageBox.Show($"删除失败:{ex.Message}"); }
|
||||
}
|
||||
}
|
||||
private void btn_Delete_Click(object sender, EventArgs e) { }
|
||||
private void btn_Refresh_Click(object sender, EventArgs e) { _pager.ResetPage(); LoadData(""); }
|
||||
private void dgv_Data_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0) btn_Edit_Click(sender, e); }
|
||||
|
||||
@@ -103,32 +90,41 @@ namespace MesWork.Pages
|
||||
/// </summary>
|
||||
private void ShowEditDialog(DataGridViewRow row)
|
||||
{
|
||||
bool isEdit = row != null;
|
||||
using (var dlg = CrudHelper.CreateEditDialog(isEdit ? "修改工具" : "新增工具", 420, 380))
|
||||
if (row == null) return;
|
||||
|
||||
using (var dlg = CrudHelper.CreateEditDialog("修改工具标定", 520, 360))
|
||||
{
|
||||
int y = 20;
|
||||
var txtName = CrudHelper.AddTextField(dlg, "工具名称:", ref y, isEdit ? row.Cells["工具名称"]?.Value?.ToString() : "");
|
||||
var txtDesc = CrudHelper.AddTextField(dlg, "说明:", ref y, isEdit ? row.Cells["说明"]?.Value?.ToString() : "");
|
||||
var txtCalVal = CrudHelper.AddTextField(dlg, "校准值:", ref y, isEdit ? row.Cells["校准值"]?.Value?.ToString() : "0");
|
||||
var txtCalTime = CrudHelper.AddTextField(dlg, "校准时间:", ref y, isEdit ? row.Cells["校准时间"]?.Value?.ToString() : DateTime.Now.ToString("yyyy-MM-dd"));
|
||||
var txtUseCnt = CrudHelper.AddTextField(dlg, "使用次数:", ref y, isEdit ? row.Cells["使用次数"]?.Value?.ToString() : "0");
|
||||
var txtStation = CrudHelper.AddTextField(dlg, "工位号:", ref y, row.Cells["工位号"]?.Value?.ToString(), inputWidth: 320);
|
||||
txtStation.ReadOnly = true;
|
||||
txtStation.BackColor = Color.FromArgb(245, 247, 250);
|
||||
var txtName = CrudHelper.AddTextField(dlg, "工具名称:", ref y, row.Cells["工具名称"]?.Value?.ToString(), inputWidth: 320);
|
||||
var txtCalVal = CrudHelper.AddTextField(dlg, "重量标定:", ref y, row.Cells["重量标定"]?.Value?.ToString(), inputWidth: 320);
|
||||
var txtFormula = CrudHelper.AddTextField(dlg, "计算公式:", ref y, row.Cells["计算公式"]?.Value?.ToString(), inputWidth: 320);
|
||||
var txtDesc = CrudHelper.AddTextField(dlg, "说明:", ref y, row.Cells["说明"]?.Value?.ToString(), inputWidth: 320);
|
||||
CrudHelper.AddDialogButtons(dlg, ref y);
|
||||
|
||||
if (dlg.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
try
|
||||
{
|
||||
string sp = isEdit ? "工具管理_编辑" : "工具管理_增加";
|
||||
if (!WeightCalibrationHelper.ValidateFormula(txtFormula.Text.Trim(), out string formulaMsg))
|
||||
{
|
||||
MessageBox.Show(formulaMsg, "公式错误", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
|
||||
var pList = new System.Collections.Generic.List<SqlParameter>
|
||||
{
|
||||
new SqlParameter("@ID", int.Parse(row.Cells["ID"]?.Value?.ToString() ?? "0")),
|
||||
new SqlParameter("@工位号", txtStation.Text.Trim()),
|
||||
new SqlParameter("@工具名称", txtName.Text.Trim()),
|
||||
new SqlParameter("@重量标定", txtCalVal.Text.Trim()),
|
||||
new SqlParameter("@计算公式", txtFormula.Text.Trim()),
|
||||
new SqlParameter("@说明", txtDesc.Text.Trim()),
|
||||
new SqlParameter("@校准值", txtCalVal.Text.Trim()),
|
||||
new SqlParameter("@校准时间", DateTime.Parse(txtCalTime.Text)),
|
||||
new SqlParameter("@使用次数", int.Parse(txtUseCnt.Text))
|
||||
};
|
||||
if (isEdit) pList.Insert(0, new SqlParameter("@ID", int.Parse(row.Cells["ID"]?.Value?.ToString() ?? "0")));
|
||||
SqlOperation.ExecuteStoredProcedure(sp, pList.ToArray(), out string err);
|
||||
SqlOperation.ExecuteStoredProcedure("工具管理_编辑", pList.ToArray(), out string err);
|
||||
WeightCalibrationHelper.ClearCache();
|
||||
LoadData();
|
||||
}
|
||||
catch (Exception ex) { MessageBox.Show($"保存失败:{ex.Message}"); }
|
||||
@@ -138,7 +134,7 @@ namespace MesWork.Pages
|
||||
|
||||
private void btn_Export_Click(object sender, EventArgs e)
|
||||
{
|
||||
CrudHelper.ExportToExcel("工具管理", "工具管理", () =>
|
||||
CrudHelper.ExportToExcel("工具标定", "工具标定", () =>
|
||||
{
|
||||
string keyword = CrudHelper.GetSearchKeyword(txt_Search, SEARCH_HINT);
|
||||
var (pageCountParam, itemCountParam) = PagerBar.CreateOutputParams();
|
||||
|
||||
@@ -741,6 +741,10 @@ namespace MesWork.Pages
|
||||
if (wv != null)
|
||||
{
|
||||
decimal weight = Convert.ToDecimal(wv);
|
||||
if (WeightCalibrationHelper.Apply(opName, weight, out decimal calibratedWeight, out _, out _))
|
||||
{
|
||||
weight = calibratedWeight;
|
||||
}
|
||||
string newTxt = Convert.ToDouble(weight).ToString("F2");
|
||||
if (lblWeight.Text != newTxt) lblWeight.Text = newTxt;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user