diff --git a/SCADA/Funtion/B_DB_Opera.cs b/SCADA/Funtion/B_DB_Opera.cs
index d2b3dde..d79ed8b 100644
--- a/SCADA/Funtion/B_DB_Opera.cs
+++ b/SCADA/Funtion/B_DB_Opera.cs
@@ -238,19 +238,21 @@ namespace MesWork
// ====================================================================
///
- /// 从工件管理表查询机型参数(加油量/抽油量/密度/残油量上下限)
+ /// 根据订货号匹配工件管理规则,查询机型参数(加油量/抽油量/密度/残油量上下限)
///
- public static bool QueryWorkpieceByModel(string modelNo, out decimal addOilQty, out decimal extractOilQty, out decimal density,
+ public static bool QueryWorkpieceByOrderNo(string orderNo, out string modelNo, out decimal addOilQty, out decimal extractOilQty, out decimal density,
out decimal residualOilUpperLimit, out decimal residualOilLowerLimit)
{
+ modelNo = "";
addOilQty = 0; extractOilQty = 0; density = 0; residualOilUpperLimit = 0; residualOilLowerLimit = 0;
var sqlParameter = new SqlParameter[] {
- new SqlParameter("@机型号", modelNo)
+ new SqlParameter("@订货号", orderNo)
};
SqlOperation.ExecuteStoredProcedure("称重_查询工件参数", sqlParameter, out DataTable dt, out string err);
if (dt != null && dt.Rows.Count > 0 && dt.Rows[0]["result"].ToString() == "1")
{
var row = dt.Rows[0];
+ modelNo = row["机型号"]?.ToString() ?? "";
decimal.TryParse(row["加油量"]?.ToString(), out addOilQty);
decimal.TryParse(row["抽油量"]?.ToString(), out extractOilQty);
decimal.TryParse(row["密度"]?.ToString(), out density);
diff --git a/SCADA/Funtion/MIS_Funtion.cs b/SCADA/Funtion/MIS_Funtion.cs
index 8a25cf4..dc15e34 100644
--- a/SCADA/Funtion/MIS_Funtion.cs
+++ b/SCADA/Funtion/MIS_Funtion.cs
@@ -166,8 +166,7 @@ namespace MesWork
string modelNo = PLC_R.GetString_CleanGarbled(ReadPLC(11, opName)); // 机型号
string orderNo = PLC_R.GetString_CleanGarbled(ReadPLC(39, opName)); // 工单号
string palletNo = PLC_R.GetString_CleanGarbled(ReadPLC(80, opName)); // 托盘号
- modelNo = "WP7";
- // 解析代码串格式: 0/DHN2.5Q0219-36/D426E016767 或 DHH02K0014-400/B726E00584555
+ // 解析代码串格式: 0/DHN2.5Q0219-36/D426E016767 或 DHH02K0014-400/B726E00584555
if (TryConvertCodeBlockData(engineNo, out string parsedOrderNo, out string parsedProductNo))
{
if (!string.IsNullOrWhiteSpace(parsedOrderNo))
@@ -176,18 +175,19 @@ namespace MesWork
}
engineNo = parsedProductNo;
- B_DB_Opera.SaveLog_Response($"【{opName}】读取工件:发动机={engineNo},机型={modelNo},工单={orderNo},托盘={palletNo}", AID);
- int stIdx = WeighingPage?.GetStationIndex(opName) ?? 1;
- WeighingPage?.UpdateStationInfo(stIdx, engineNo, modelNo, orderNo);
- WeighingPage?.AppendLog($"[{opName}] 读取工件:{engineNo},机型={modelNo}");
- if (!B_DB_Opera.QueryWorkpieceByModel(modelNo, out decimal addOilQty, out decimal extractOilQty, out decimal density,
- out decimal residualOilUpperLimit, out decimal residualOilLowerLimit))
- {
- WritePLC_IF(112, opName, 3); // 报警代码=3,机型错误
- B_DB_Opera.SaveLog_Response($"【{opName}】工件管理中未找到机型[{modelNo}]的参数,发动机={engineNo}", AID);
- WeighingPage?.AppendLog($"[{opName}] 机型[{modelNo}]未找到配置参数");
- return;
- }
+ int stIdx = WeighingPage?.GetStationIndex(opName) ?? 1;
+ if (!B_DB_Opera.QueryWorkpieceByOrderNo(orderNo, out string matchedModelNo, out decimal addOilQty, out decimal extractOilQty, out decimal density,
+ out decimal residualOilUpperLimit, out decimal residualOilLowerLimit))
+ {
+ WritePLC_IF(112, opName, 3); // 报警代码=3,机型错误
+ B_DB_Opera.SaveLog_Response($"【{opName}】工件管理中未找到订货号[{orderNo}]的匹配规则,发动机={engineNo}", AID);
+ WeighingPage?.AppendLog($"[{opName}] 订货号[{orderNo}]未匹配到工件参数");
+ return;
+ }
+ modelNo = matchedModelNo;
+ B_DB_Opera.SaveLog_Response($"【{opName}】读取工件:发动机={engineNo},机型={modelNo},订货号={orderNo},托盘={palletNo}", AID);
+ WeighingPage?.UpdateStationInfo(stIdx, engineNo, modelNo, orderNo);
+ WeighingPage?.AppendLog($"[{opName}] 读取工件:{engineNo},机型={modelNo}");
WeighingPage?.UpdateOilInfo(stIdx, addOilQty, extractOilQty, density, 0, 0);
string weighType = GetWeighingType(opName); // 地面/放油前/放油后
string stationName = weighType; // 工位名称直接用称重类型名
diff --git a/SCADA/Pages/UC_WorkpieceMgmt.cs b/SCADA/Pages/UC_WorkpieceMgmt.cs
index 8d0ae31..c365b86 100644
--- a/SCADA/Pages/UC_WorkpieceMgmt.cs
+++ b/SCADA/Pages/UC_WorkpieceMgmt.cs
@@ -1,654 +1,686 @@
-using System;
-
-
-
-using System.Data;
-
-
-
-using System.Data.SqlClient;
-
-
-
-using System.Drawing;
-
-
-
-using System.Windows.Forms;
-
-
-
-
-
-
-
-namespace MesWork.Pages
-
-
-
-{
-
-
-
- ///
-
-
-
- /// 工件管理页面 — 各机型参数维护(加油量/抽油量/密度)
-
-
-
- /// 对应存储过程:工件管理_查询、工件管理_增加、工件管理_编辑、工件管理_删除
-
-
-
- ///
-
-
-
- public partial class UC_WorkpieceMgmt : UserControl
-
-
-
- {
-
-
-
- private const string SEARCH_HINT = "输入机型号搜索...";
-
-
-
- private PagerBar _pager;
-
-
-
-
-
-
-
- public UC_WorkpieceMgmt()
-
-
-
- {
-
-
-
- InitializeComponent();
-
-
-
- InitColumns();
-
-
-
- _pager = new PagerBar();
-
-
-
- _pager.PageChanged += (s, e) => LoadData(txt_Search.Text == SEARCH_HINT ? "" : txt_Search.Text.Trim());
-
-
-
- this.Controls.Remove(pnl_StatusBar);
-
-
-
- this.Controls.Add(_pager);
-
-
-
- this.Controls.SetChildIndex(_pager, this.Controls.Count - 2);
-
-
-
- }
-
-
-
-
-
-
-
- ///
-
-
-
- /// 预设表格列(确保无数据时也能看到表头结构)
-
-
-
- ///
-
-
-
- private void InitColumns()
-
-
-
- {
-
-
-
- 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 = 120 });
-
-
-
+using System;
+
+
+
+using System.Data;
+
+
+
+using System.Data.SqlClient;
+
+
+
+using System.Drawing;
+
+
+
+using System.Windows.Forms;
+
+
+
+
+
+
+
+namespace MesWork.Pages
+
+
+
+{
+
+
+
+ ///
+
+
+
+ /// 工件管理页面 — 各机型参数维护(加油量/抽油量/密度)
+
+
+
+ /// 对应存储过程:工件管理_查询、工件管理_增加、工件管理_编辑、工件管理_删除
+
+
+
+ ///
+
+
+
+ public partial class UC_WorkpieceMgmt : UserControl
+
+
+
+ {
+
+
+
+ private const string SEARCH_HINT = "输入机型号搜索...";
+
+
+
+ private PagerBar _pager;
+
+
+
+
+
+
+
+ public UC_WorkpieceMgmt()
+
+
+
+ {
+
+
+
+ InitializeComponent();
+
+
+
+ InitColumns();
+
+
+
+ _pager = new PagerBar();
+
+
+
+ _pager.PageChanged += (s, e) => LoadData(txt_Search.Text == SEARCH_HINT ? "" : txt_Search.Text.Trim());
+
+
+
+ this.Controls.Remove(pnl_StatusBar);
+
+
+
+ this.Controls.Add(_pager);
+
+
+
+ this.Controls.SetChildIndex(_pager, this.Controls.Count - 2);
+
+
+
+ }
+
+
+
+
+
+
+
+ ///
+
+
+
+ /// 预设表格列(确保无数据时也能看到表头结构)
+
+
+
+ ///
+
+
+
+ private void InitColumns()
+
+
+
+ {
+
+
+
+ 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 = 120 });
+
+
+
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "说明", HeaderText = "说明", DataPropertyName = "说明", FillWeight = 130 });
+ dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "匹配规则", HeaderText = "匹配规则", DataPropertyName = "匹配规则", FillWeight = 120 });
+
+
+
+ dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "优先级", HeaderText = "优先级", DataPropertyName = "优先级", FillWeight = 50 });
+
+
+
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "加油量", HeaderText = "加油量(L)", DataPropertyName = "加油量", FillWeight = 70 });
-
-
-
- dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "抽油量", HeaderText = "抽油量(L)", DataPropertyName = "抽油量", FillWeight = 70 });
-
-
-
- dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "密度", HeaderText = "密度(kg/L)", DataPropertyName = "密度", FillWeight = 70 });
-
-
-
- dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "残油量上限", HeaderText = "残油量上限(L)", DataPropertyName = "残油量上限", FillWeight = 70 });
-
-
-
- dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "残油量下限", HeaderText = "残油量下限(L)", DataPropertyName = "残油量下限", FillWeight = 70 });
-
-
-
- dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "创建时间", HeaderText = "创建时间", DataPropertyName = "创建时间", FillWeight = 100 });
-
-
-
- dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "修改时间", HeaderText = "修改时间", DataPropertyName = "修改时间", FillWeight = 100 });
-
-
-
- }
-
-
-
-
-
-
-
- public void LoadData(string keyword = "")
-
-
-
- {
-
-
-
- try
-
-
-
- {
-
-
-
- var (pageCountParam, itemCountParam) = PagerBar.CreateOutputParams();
-
-
-
- var parms = new SqlParameter[]
-
-
-
- {
-
-
-
- new SqlParameter("@机型号", keyword ?? ""),
-
-
-
- new SqlParameter("@PageCurrent", _pager.CurrentPage),
-
-
-
- new SqlParameter("@PageSize", _pager.PageSize),
-
-
-
- pageCountParam,
-
-
-
- itemCountParam
-
-
-
- };
-
-
-
- SqlOperation.ExecuteStoredProcedure("工件管理_分页查询", parms, out DataTable dt, out string err);
-
-
-
- if (dt != null) dgv_Data.DataSource = dt;
-
-
-
- _pager.UpdateState(pageCountParam, itemCountParam);
-
-
-
- }
-
-
-
- catch (Exception ex)
-
-
-
- {
-
-
-
- MessageBox.Show($"查询失败:{ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
-
-
-
- }
-
-
-
- }
-
-
-
-
-
-
-
- // ── 搜索框交互 ──
-
-
-
- private void txt_Search_GotFocus(object sender, EventArgs e) { CrudHelper.SearchBox_GotFocus(txt_Search, SEARCH_HINT); }
-
-
-
- private void txt_Search_LostFocus(object sender, EventArgs e) { CrudHelper.SearchBox_LostFocus(txt_Search, SEARCH_HINT); }
-
-
-
- private void txt_Search_KeyDown(object sender, KeyEventArgs e) { if (CrudHelper.SearchBox_KeyDown(e)) btn_Search_Click(sender, e); }
-
-
-
-
-
-
-
- // ── 按钮事件 ──
-
-
-
- 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_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_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); }
-
-
-
-
-
-
-
- ///
-
-
-
- /// 新增/修改弹窗
-
-
-
- ///
-
-
-
- private void ShowEditDialog(DataGridViewRow row)
-
-
-
- {
-
-
-
- bool isEdit = row != null;
-
-
-
- using (var dlg = CrudHelper.CreateEditDialog(isEdit ? "修改工件" : "新增工件", 500, 450))
-
-
-
- {
-
-
-
- int y = 20;
-
-
-
- var txtModel = CrudHelper.AddTextField(dlg, "机型号:", ref y, isEdit ? row.Cells["机型号"]?.Value?.ToString() : "", inputX: 170, inputWidth: 280);
-
-
-
+
+
+
+ dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "抽油量", HeaderText = "抽油量(L)", DataPropertyName = "抽油量", FillWeight = 70 });
+
+
+
+ dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "密度", HeaderText = "密度(kg/L)", DataPropertyName = "密度", FillWeight = 70 });
+
+
+
+ dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "残油量上限", HeaderText = "残油量上限(L)", DataPropertyName = "残油量上限", FillWeight = 70 });
+
+
+
+ dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "残油量下限", HeaderText = "残油量下限(L)", DataPropertyName = "残油量下限", FillWeight = 70 });
+
+
+
+ dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "创建时间", HeaderText = "创建时间", DataPropertyName = "创建时间", FillWeight = 100 });
+
+
+
+ dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "修改时间", HeaderText = "修改时间", DataPropertyName = "修改时间", FillWeight = 100 });
+
+
+
+ }
+
+
+
+
+
+
+
+ public void LoadData(string keyword = "")
+
+
+
+ {
+
+
+
+ try
+
+
+
+ {
+
+
+
+ var (pageCountParam, itemCountParam) = PagerBar.CreateOutputParams();
+
+
+
+ var parms = new SqlParameter[]
+
+
+
+ {
+
+
+
+ new SqlParameter("@机型号", keyword ?? ""),
+
+
+
+ new SqlParameter("@PageCurrent", _pager.CurrentPage),
+
+
+
+ new SqlParameter("@PageSize", _pager.PageSize),
+
+
+
+ pageCountParam,
+
+
+
+ itemCountParam
+
+
+
+ };
+
+
+
+ SqlOperation.ExecuteStoredProcedure("工件管理_分页查询", parms, out DataTable dt, out string err);
+
+
+
+ if (dt != null) dgv_Data.DataSource = dt;
+
+
+
+ _pager.UpdateState(pageCountParam, itemCountParam);
+
+
+
+ }
+
+
+
+ catch (Exception ex)
+
+
+
+ {
+
+
+
+ MessageBox.Show($"查询失败:{ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
+
+
+
+ }
+
+
+
+ }
+
+
+
+
+
+
+
+ // ── 搜索框交互 ──
+
+
+
+ private void txt_Search_GotFocus(object sender, EventArgs e) { CrudHelper.SearchBox_GotFocus(txt_Search, SEARCH_HINT); }
+
+
+
+ private void txt_Search_LostFocus(object sender, EventArgs e) { CrudHelper.SearchBox_LostFocus(txt_Search, SEARCH_HINT); }
+
+
+
+ private void txt_Search_KeyDown(object sender, KeyEventArgs e) { if (CrudHelper.SearchBox_KeyDown(e)) btn_Search_Click(sender, e); }
+
+
+
+
+
+
+
+ // ── 按钮事件 ──
+
+
+
+ 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_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_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); }
+
+
+
+
+
+
+
+ ///
+
+
+
+ /// 新增/修改弹窗
+
+
+
+ ///
+
+
+
+ private void ShowEditDialog(DataGridViewRow row)
+
+
+
+ {
+
+
+
+ bool isEdit = row != null;
+
+
+
+ using (var dlg = CrudHelper.CreateEditDialog(isEdit ? "修改工件" : "新增工件", 500, 520))
+
+
+
+ {
+
+
+
+ int y = 20;
+
+
+
+ var txtModel = CrudHelper.AddTextField(dlg, "机型号:", ref y, isEdit ? row.Cells["机型号"]?.Value?.ToString() : "", inputX: 170, inputWidth: 280);
+
+
+
var txtDesc = CrudHelper.AddTextField(dlg, "说明:", ref y, isEdit ? row.Cells["说明"]?.Value?.ToString() : "", inputX: 170, inputWidth: 280);
+ var txtMatchRule = CrudHelper.AddTextField(dlg, "匹配规则:", ref y, isEdit ? row.Cells["匹配规则"]?.Value?.ToString() : "", inputX: 170, inputWidth: 280);
+
+
+
+ var txtPriority = CrudHelper.AddTextField(dlg, "优先级:", ref y, isEdit ? row.Cells["优先级"]?.Value?.ToString() : "0", inputX: 170, inputWidth: 280);
+
+
+
var txtOilIn = CrudHelper.AddTextField(dlg, "加油量(L):", ref y, isEdit ? row.Cells["加油量"]?.Value?.ToString() : "0", inputX: 170, inputWidth: 280);
-
-
-
- var txtOilOut = CrudHelper.AddTextField(dlg, "抽油量(L):", ref y, isEdit ? row.Cells["抽油量"]?.Value?.ToString() : "0", inputX: 170, inputWidth: 280);
-
-
-
- var txtDensity = CrudHelper.AddTextField(dlg, "密度(kg/L):", ref y, isEdit ? row.Cells["密度"]?.Value?.ToString() : "0.85", inputX: 170, inputWidth: 280);
-
-
-
- var txtOilMax = CrudHelper.AddTextField(dlg, "残油量上限(L):", ref y, isEdit ? row.Cells["残油量上限"]?.Value?.ToString() : "0", inputX: 170, inputWidth: 280);
-
-
-
- var txtOilMin = CrudHelper.AddTextField(dlg, "残油量下限(L):", ref y, isEdit ? row.Cells["残油量下限"]?.Value?.ToString() : "0", inputX: 170, inputWidth: 280);
-
-
-
- CrudHelper.AddDialogButtons(dlg, ref y);
-
-
-
-
-
-
-
- if (dlg.ShowDialog() == DialogResult.OK)
-
-
-
- {
-
-
-
- try
-
-
-
- {
+
+
+
+ var txtOilOut = CrudHelper.AddTextField(dlg, "抽油量(L):", ref y, isEdit ? row.Cells["抽油量"]?.Value?.ToString() : "0", inputX: 170, inputWidth: 280);
+
+
+
+ var txtDensity = CrudHelper.AddTextField(dlg, "密度(kg/L):", ref y, isEdit ? row.Cells["密度"]?.Value?.ToString() : "0.85", inputX: 170, inputWidth: 280);
+
+
+
+ var txtOilMax = CrudHelper.AddTextField(dlg, "残油量上限(L):", ref y, isEdit ? row.Cells["残油量上限"]?.Value?.ToString() : "0", inputX: 170, inputWidth: 280);
+
+
+
+ var txtOilMin = CrudHelper.AddTextField(dlg, "残油量下限(L):", ref y, isEdit ? row.Cells["残油量下限"]?.Value?.ToString() : "0", inputX: 170, inputWidth: 280);
+
+
+
+ CrudHelper.AddDialogButtons(dlg, ref y);
+
+
+
+
+
+
+
+ if (dlg.ShowDialog() == DialogResult.OK)
+
+
+
+ {
+
+
+
+ try
+
+
+
+ {
+
+
+
+ if (!int.TryParse(txtPriority.Text.Trim(), out int priority))
+ {
+ MessageBox.Show("优先级必须是整数", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ return;
+ }
string sp = isEdit ? "工件管理_编辑" : "工件管理_增加";
-
-
-
- var pList = new System.Collections.Generic.List
-
-
-
- {
-
-
-
- new SqlParameter("@机型号", txtModel.Text.Trim()),
-
-
-
+
+
+
+ var pList = new System.Collections.Generic.List
+
+
+
+ {
+
+
+
+ new SqlParameter("@机型号", txtModel.Text.Trim()),
+
+
+
new SqlParameter("@说明", txtDesc.Text.Trim()),
+ new SqlParameter("@匹配规则", txtMatchRule.Text.Trim()),
+
+
+
+ new SqlParameter("@优先级", priority),
+
+
+
new SqlParameter("@加油量", decimal.Parse(txtOilIn.Text)),
-
-
-
- new SqlParameter("@抽油量", decimal.Parse(txtOilOut.Text)),
-
-
-
- new SqlParameter("@密度", decimal.Parse(txtDensity.Text)),
-
-
-
- new SqlParameter("@残油量上限", decimal.Parse(txtOilMax.Text)),
-
-
-
- new SqlParameter("@残油量下限", decimal.Parse(txtOilMin.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);
-
-
-
- LoadData();
-
-
-
- }
-
-
-
- catch (Exception ex) { MessageBox.Show($"保存失败:{ex.Message}"); }
-
-
-
- }
-
-
-
- }
-
-
-
- }
-
-
-
-
-
-
-
- private void btn_Export_Click(object sender, EventArgs e)
-
-
-
- {
-
-
-
- CrudHelper.ExportToExcel("工件管理", "工件管理", () =>
-
-
-
- {
-
-
-
- string keyword = CrudHelper.GetSearchKeyword(txt_Search, SEARCH_HINT);
-
-
-
- var (pageCountParam, itemCountParam) = PagerBar.CreateOutputParams();
-
-
-
- var parms = new SqlParameter[]
-
-
-
- {
-
-
-
- new SqlParameter("@机型号", keyword),
-
-
-
- new SqlParameter("@PageCurrent", 1),
-
-
-
- new SqlParameter("@PageSize", 9999999),
-
-
-
- pageCountParam, itemCountParam
-
-
-
- };
-
-
-
- SqlOperation.ExecuteStoredProcedure("工件管理_分页查询", parms, out DataTable dt, out string err);
-
-
-
- return dt;
-
-
-
- }, dgv_Data.Rows.Count > 0);
-
-
-
- }
-
-
-
-
-
-
-
- protected override void OnVisibleChanged(EventArgs e) { base.OnVisibleChanged(e); if (Visible && dgv_Data.DataSource == null) LoadData(); }
-
-
-
- }
-
-
-
-}
-
+
+
+
+ new SqlParameter("@抽油量", decimal.Parse(txtOilOut.Text)),
+
+
+
+ new SqlParameter("@密度", decimal.Parse(txtDensity.Text)),
+
+
+
+ new SqlParameter("@残油量上限", decimal.Parse(txtOilMax.Text)),
+
+
+
+ new SqlParameter("@残油量下限", decimal.Parse(txtOilMin.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);
+
+
+
+ LoadData();
+
+
+
+ }
+
+
+
+ catch (Exception ex) { MessageBox.Show($"保存失败:{ex.Message}"); }
+
+
+
+ }
+
+
+
+ }
+
+
+
+ }
+
+
+
+
+
+
+
+ private void btn_Export_Click(object sender, EventArgs e)
+
+
+
+ {
+
+
+
+ CrudHelper.ExportToExcel("工件管理", "工件管理", () =>
+
+
+
+ {
+
+
+
+ string keyword = CrudHelper.GetSearchKeyword(txt_Search, SEARCH_HINT);
+
+
+
+ var (pageCountParam, itemCountParam) = PagerBar.CreateOutputParams();
+
+
+
+ var parms = new SqlParameter[]
+
+
+
+ {
+
+
+
+ new SqlParameter("@机型号", keyword),
+
+
+
+ new SqlParameter("@PageCurrent", 1),
+
+
+
+ new SqlParameter("@PageSize", 9999999),
+
+
+
+ pageCountParam, itemCountParam
+
+
+
+ };
+
+
+
+ SqlOperation.ExecuteStoredProcedure("工件管理_分页查询", parms, out DataTable dt, out string err);
+
+
+
+ return dt;
+
+
+
+ }, dgv_Data.Rows.Count > 0);
+
+
+
+ }
+
+
+
+
+
+
+
+ protected override void OnVisibleChanged(EventArgs e) { base.OnVisibleChanged(e); if (Visible && dgv_Data.DataSource == null) LoadData(); }
+
+
+
+ }
+
+
+
+}
+