using ComponentFactory.Krypton.Toolkit;
using NXWMS.Client.Code.Extends;
using NXWMS.Client.Code.Models;
using NXWMS.Client.Model.AppModels.Condition;
using NXWMS.Client.Model.AppModels.Condition.Base;
using NXWMS.Client.Model.AppModels.Condition.Common;
using NXWMS.Client.Model.AppModels.Condition.Inspection;
using NXWMS.Client.Model.AppModels.Result;
using NXWMS.Client.Model.AppModels.Result.Base;
using NXWMS.Client.Model.AppModels.Result.Common;
using NXWMS.Client.Model.AppModels.Result.Inspection;
using NXWMS.Client.Model.CoreModels;
using NXWMS.Commons;
using NXWMS.Forms.Inspection.frmInspectionChild;
using NXWMS.Services;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Web.UI.WebControls;
using System.Windows.Forms;
namespace NXWMS.Forms.Inspection
{
///
/// 质检单窗体
///
public partial class frmWmsQaInspection : KryptonForm
{
///
/// 窗体构造函数
///
public frmWmsQaInspection()
{
InitializeComponent();
// 获取窗体的全类名
_CrrentClassName = System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName;
}
#region 全局变量
///
/// 客户端字段排序列表(质检单主表)
///
private List _clientFieldOrderList;
///
/// 客户端字段排序列表(质检单单明细表)
///
private List _clientFieldOrderDtlList;
///
/// 当前窗体类名
///
private string _CrrentClassName;
///
/// 质检单主键ID,用于记录主表选中行的主键信息。
/// 目前由于 加载控件不能传递具有参数的函数,所以临时使用全局变量。
/// ToDo:后续修改优化加载控件的实现方式,支持传递具有参数的函数。
/// 孙亚龙 舍弃于2020年9月7日
///
//string InspectionId = string.Empty;
///
/// 用于控制明细表数据的加载时机。
/// 由于主表DataGridView数据加载时,会默认触发选中项更改事件。这时候加载明细表数据会发生异常。
/// 使用全局变量,控制明细表的数据的加载时机,只能在主表数据全部初始化完成后,并且选中了一行主表数据的时候。
///
bool isControlInspectionDtlShow = false;
///
/// 定义委托
/// 用于执行刷新页面数据的函数
///
public delegate void dlgRefreshFrmHost();
///
/// 定义委托变量
/// 用于绑定刷新页面数据的函数
///
public static dlgRefreshFrmHost RefreshFrmHost;
#endregion
#region 初始化数据
///
/// 窗体加载事件
///
///
///
private void frmWmsQaInspection_Load(object sender, EventArgs e)
{
#region 获取主、明细表的显示列信息
//获取质检单主表数据源配置
var result = ConfigServices.configService.GetDataViewOrderList(new ClientFieldOrderCondition { SourceCode = $"{_CrrentClassName}" });
if (result.Status == OperateStatus.Success)
{
_clientFieldOrderList = result.Data;
}
//获取质检单明细表表数据源配置
var resultDtl = ConfigServices.configService.GetDataViewOrderList(new ClientFieldOrderCondition { SourceCode = $"{_CrrentClassName}_Dtl" });
if (resultDtl.Status == OperateStatus.Success)
{
_clientFieldOrderDtlList = resultDtl.Data;
}
#endregion
InitComboBoxItemData();
kdtp_startCreateTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00"));
kdtp_endCreateTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 23:59:59"));
kdtp_startCreateTime.Checked = false;
kdtp_endCreateTime.Checked = false;
kdtp_startInspectionTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00"));
kdtp_endInspectionTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 23:59:59"));
kdtp_startInspectionTime.Checked = false;
kdtp_endInspectionTime.Checked = false;
RefreshFrmHost = new dlgRefreshFrmHost(RefreshInspectionSearchData);
}
///
/// 初始化下拉列表数据
///
private void InitComboBoxItemData()
{
/*
ToDo:后续把下拉列表转为 后台获取数据,目前是写死的。 1:内部质检;2:外部质检;
*/
List results = new List();
#region 单据类型
results = BasDictionaryUtil.basDictionaryResultLst.FindAll(x => x.DICTIONARY_CODE == "InspectionTypeDesc");
if (results.Count > 0)
{
kcmb_inspectionType.Items.Clear();
kcmb_inspectionType.Items.Add(new ListItem
{
Value = "",
Text = "请选择",
});
foreach (var item in results)
{
kcmb_inspectionType.Items.Add(new ListItem
{
Value = item.DICTIONARY_ITEM_CODE,
Text = item.DICTIONARY_ITEM_NAME,
});
}
kcmb_inspectionType.SelectedIndex = 0;
}
else
{
KryptonMessageBox.Show("未找到质检单类型的字典项数据!");
}
#endregion
#region 单据状态
results = BasDictionaryUtil.basDictionaryResultLst.FindAll(x => x.DICTIONARY_CODE == "InspectionDtlStatusDesc");
if (results.Count > 0)
{
kcmb_inspectionDtlStatus.Items.Clear();
kcmb_inspectionDtlStatus.Items.Add(new ListItem
{
Value = "",
Text = "请选择",
});
foreach (var item in results)
{
kcmb_inspectionDtlStatus.Items.Add(new ListItem
{
Value = item.DICTIONARY_ITEM_CODE,
Text = item.DICTIONARY_ITEM_NAME,
});
}
kcmb_inspectionDtlStatus.SelectedIndex = 0;
}
else
{
KryptonMessageBox.Show("未找到质检单明细状态的字典项数据!");
}
#endregion
#region 供应商信息
var result = BaseServices.supplierService.GetList(new SupplierSearchCondition
{
IsUsed = true,
PageIndex = 1,
PageSize = 10000
});
if (result.Status == OperateStatus.Success)
{
kcmb_supplierMsg.Items.Clear();
kcmb_supplierMsg.Items.Add(new ListItem
{
Value = "",
Text = "请选择",
});
foreach (SupplierResult item in result.Data.RowData.ToList())
{
kcmb_supplierMsg.Items.Add(new ListItem
{
Value = item.SUPPLIER_CODE,
Text = item.SUPPLIER_NAME,
});
}
kcmb_supplierMsg.SelectedIndex = 0;
}
else
{
kcmb_supplierMsg.Items.Clear();
KryptonMessageBox.Show(result.Message);
}
//kcmb_supplierMsg.Items.Clear();
//kcmb_supplierMsg.Items.Add(new ListItem
//{
// Value = "",
// Text = "请选择",
//});
//kcmb_supplierMsg.Items.Add(new ListItem
//{
// Value = "WX_NXZB_001",
// Text = "无锡南兴装备",
//});
//kcmb_supplierMsg.Items.Add(new ListItem
//{
// Value = "WX_NXZB_002",
// Text = "东莞南兴装备",
//});
//kcmb_supplierMsg.SelectedIndex = 0;
#endregion
#region 库区
var regionResult = BaseServices.regionService.GetList(new RegionSearchCondition { IsUsed = true, ItemSQL = "REGION_CODE,REGION_NAME,AREA_NAME,AREA_CODE,WAREHOUSE_CODE,WAREHOUSE_NAME" });
if (regionResult.Status == OperateStatus.Success)
{
kcmb_regionMsg.Items.Clear();
kcmb_regionMsg.Items.Add(new ListItem
{
Value = "",
Text = "请选择",
});
foreach (RegionResult item in regionResult.Data.RowData.ToList())
{
kcmb_regionMsg.Items.Add(new ListItem
{
Value = item.REGION_CODE,
Text = item.REGION_NAME,
});
}
kcmb_regionMsg.SelectedIndex = 0;
}
else
{
kcmb_regionMsg.Items.Clear();
KryptonMessageBox.Show(regionResult.Message);
}
//kcmb_regionMsg.Items.Add(new ListItem
//{
// Value = "Region01",
// Text = "库区1",
//});
//kcmb_regionMsg.Items.Add(new ListItem
//{
// Value = "Region02",
// Text = "库区2",
//});
//kcmb_regionMsg.SelectedIndex = 0;
#endregion
#region 物料类型
var materielTypeResult = BaseServices.materielTypeService.GetList(new MaterielTypeSearchCondition { IsUsed = true, ItemSQL = "MATERIEL_TYPE_CODE,MATERIEL_TYPE_NAME" });
if (materielTypeResult.Status == OperateStatus.Success)
{
kcmb_materielTypeMsg.Items.Clear();
kcmb_materielTypeMsg.Items.Add(new ListItem
{
Value = "",
Text = "请选择",
});
foreach (var item in materielTypeResult.Data.RowData.ToList())
{
kcmb_materielTypeMsg.Items.Add(new ListItem
{
Value = item.MATERIEL_TYPE_CODE,
Text = item.MATERIEL_TYPE_NAME,
});
}
kcmb_materielTypeMsg.SelectedIndex = 0;
}
else
{
kcmb_materielTypeMsg.Items.Clear();
KryptonMessageBox.Show(materielTypeResult.Message);
}
//kcmb_materielTypeMsg.Items.Add(new ListItem
//{
// Value = "TestMaterielType001",
// Text = "测试物料类型1",
//});
//kcmb_materielTypeMsg.Items.Add(new ListItem
//{
// Value = "TestMaterielType002",
// Text = "测试物料类型2",
//});
//kcmb_materielTypeMsg.Items.Add(new ListItem
//{
// Value = "TestMaterielType003",
// Text = "测试物料类型3",
//});
//kcmb_materielTypeMsg.Items.Add(new ListItem
//{
// Value = "TestMaterielType004",
// Text = "测试物料类型4",
//});
//kcmb_materielTypeMsg.SelectedIndex = 0;
#endregion
#region 质检结果
results = BasDictionaryUtil.basDictionaryResultLst.FindAll(x => x.DICTIONARY_CODE == "InspectionResultDesc");
if (results.Count > 0)
{
kcmb_inspectionResultMsg.Items.Clear();
kcmb_inspectionResultMsg.Items.Add(new ListItem
{
Value = "",
Text = "请选择",
});
foreach (var item in results)
{
kcmb_inspectionResultMsg.Items.Add(new ListItem
{
Value = item.DICTIONARY_ITEM_CODE,
Text = item.DICTIONARY_ITEM_NAME,
});
}
kcmb_inspectionResultMsg.SelectedIndex = 0;
}
else
{
KryptonMessageBox.Show("未找到质检结果的字典项数据!");
}
#endregion
}
#endregion
#region 查询质检单数据
///
/// 查询质检单数据
///
///
///
private void kbtnSearch_Click(object sender, EventArgs e)
{
var loadfrm = new frmLoading();
loadfrm.Show();
var message = loadfrm.EventCalExec(LoadWmsQaInspectionData);
}
///
/// 刷新质检单的查询数据
///
private void RefreshInspectionSearchData()
{
var loadfrm = new frmLoading();
loadfrm.Show();
var message = loadfrm.EventCalExec(LoadWmsQaInspectionData);
if (!string.IsNullOrWhiteSpace(message))
{
KryptonMessageBox.Show($"查询失败!\r\n{message}", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
///
/// 调用服务端接口,请求质检单主表数据
///
///
private string LoadWmsQaInspectionData()
{
var result = WmsInspectionService.wmsQaInspectionService.GetWmsQaInspectionListForPage(new WmsQaInspectionSearchMd
{
InspectionNoMsg = ktb_inspectionNo.Text,
BillNoMsg = ktb_sourceNo.Text,
PalletNoMsg = ktb_palletNoMsg.Text,
MaterielMsg = ktb_materielMsg.Text,
RegionNoMsg = ((ListItem)kcmb_regionMsg.SelectedItem).Value,
BinNoMsg = ktb_binMsg.Text,
InspectionResultMsg = ((ListItem)kcmb_inspectionResultMsg.SelectedItem).Value,
MaterielTypeMsg = ((ListItem)kcmb_materielTypeMsg.SelectedItem).Value,
InspectionTypeMsg = ((ListItem)kcmb_inspectionType.SelectedItem).Value,
InspectionStatusMsg = ((ListItem)kcmb_inspectionDtlStatus.SelectedItem).Value,
SupplierMsg = ((ListItem)kcmb_supplierMsg.SelectedItem).Value,
StartCreateMsg = kdtp_startCreateTime.Checked ? kdtp_startCreateTime.Value.ToString() : null,
EndCreateMsg = kdtp_endCreateTime.Checked ? kdtp_endCreateTime.Value.ToString() : null,
StartInspectionTimeMsg = kdtp_startInspectionTime.Checked ? kdtp_startInspectionTime.Value.ToString() : null,
EndInspectionTimeMsg = kdtp_endInspectionTime.Checked ? kdtp_endInspectionTime.Value.ToString() : null,
PageNum = this.pageToolbar1.PageIndex,
EveryPageQty = this.pageToolbar1.PageSize,
}); ; ;
if (result.Status == OperateStatus.Success)
{
kdgv_WmsQaInspection.Columns.Clear();
kdgv_WmsQaInspectionDtl.DataSource = null;
//InspectionId = string.Empty;
isControlInspectionDtlShow = false;
kdgv_WmsQaInspection.DataSource = result.Data;
kdgv_WmsQaInspection.BuildDataGridView(_clientFieldOrderList.GetFieldOrderDic());
kdgv_WmsQaInspection.ClearSelection();
isControlInspectionDtlShow = true;
SetStatusCellBackColor(kdgv_WmsQaInspection, "INSPECTION_STATUS");
this.pageToolbar1.DataCount = result.DataCount;
ktb_inspectionNo.Focus();
return string.Empty;
}
else
{
ktb_inspectionNo.Focus();
return result.Message;
}
}
#endregion
#region 查询质检单明细表数据
///
/// 质检单主表选中行事件
///
///
///
private void kdgv_WmsQaInspection_SelectionChanged(object sender, EventArgs e)
{
if (kdgv_WmsQaInspection.SelectedRows.Count > 0 && isControlInspectionDtlShow)
{
//InspectionId = kdgv_WmsQaInspection.SelectedRows[0].Cells[1].Value.ToString();
int mainTableId = Convert.ToInt32(kdgv_WmsQaInspection.SelectedRows[0].Cells[1].Value);
var loadfrm = new frmLoading();
loadfrm.Show();
var message = loadfrm.EventCalExecExt1(LoadWmsQaInspectionDtlData, mainTableId);
if (!string.IsNullOrWhiteSpace(message))
{
KryptonMessageBox.Show($"查询失败!\r\n{message}", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
///
/// 调用服务端接口,请求质检单明细表数据
///
///
private string LoadWmsQaInspectionDtlData(int mainTableId)
{
//if (string.IsNullOrEmpty(InspectionId))
//{
// return "请选择记录!";
//}
var result = WmsInspectionService.wmsQaInspectionService.GetWmsQaInspectionDtlListForId(new WmsQaInspectionResult { INSPECTION_ID = Convert.ToInt32(mainTableId), REMARKS1 = "查询已删除明细数据" });
if (result.Status == OperateStatus.Success)
{
kdgv_WmsQaInspectionDtl.Columns.Clear();
kdgv_WmsQaInspectionDtl.DataSource = result.Data.WmsQaInspectionDtlList;
kdgv_WmsQaInspectionDtl.BuildDataGridView(_clientFieldOrderDtlList.GetFieldOrderDic(), true, false);
kdgv_WmsQaInspectionDtl.ClearSelection();
SetStatusCellBackColor(kdgv_WmsQaInspectionDtl, "INSPECTION_DTL_STATUS");
return string.Empty;
}
else
{
return result.Message;
}
}
#endregion
#region 质检单增、删、改、强制完成、质检审核等操作
///
/// 质检审核
///
///
///
private void kbtn_InspectionCheck_Click(object sender, EventArgs e)
{
int rowsSelectedNum = 0;
string inspectionId = string.Empty;
int rowSelectIndex = 0;
foreach (DataGridViewRow item in kdgv_WmsQaInspection.Rows)
{
DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)item.Cells[0];
object obj = checkCell.EditedFormattedValue;
if (Convert.ToBoolean(obj))
{
rowsSelectedNum++;
inspectionId = item.Cells[1].Value.ToString();
rowSelectIndex = item.Index;
}
}
if (rowsSelectedNum > 0)
{
if (rowsSelectedNum == 1)
{
int inspectionStatus = Convert.ToInt32(kdgv_WmsQaInspection.Rows[rowSelectIndex].Cells["INSPECTION_STATUS"].Value);
if (inspectionStatus == (int)InspectionStatus.初始创建)
{
frmChildInspectionCheck frm = new frmChildInspectionCheck();
frm.InspectionId = inspectionId;
frm.ShowDialog();
}
else if (inspectionStatus < (int)InspectionStatus.质检完成)
{
KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的质检单不处于【初始创建】状态,无法再次进行质检审核!");
}
else if (inspectionStatus == (int)InspectionStatus.强制完成)
{
KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的质检单已被【强制完成】,无法再次进行质检审核!");
}
else if (inspectionStatus == (int)InspectionStatus.已删除)
{
KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的质检单【已被删除】,无法再次进行质检审核!");
}
else if (inspectionStatus == (int)InspectionStatus.质检完成)
{
KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的质检单【已完成】,无法再次进行质检审核!");
}
else
{
KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的质检单状态【{inspectionStatus}】是未知的,无法进行质检审核!");
}
}
else
{
KryptonMessageBox.Show("不能对勾选的多行数据进行质检审核,请重新勾选一行数据!");
}
}
else
{
KryptonMessageBox.Show("请勾选要质检审核的数据行!");
}
}
///
/// 新增质检单
///
///
///
private void kbtnAdd_Click(object sender, EventArgs e)
{
frmChildAddWmsQaInspection frm = new frmChildAddWmsQaInspection();
frm.ShowDialog();
}
///
/// 编辑质检单
///
///
///
private void kbtnEdit_Click(object sender, EventArgs e)
{
int rowsSelectedNum = 0;
string inspectionId = string.Empty;
int rowSelectIndex = 0;
foreach (DataGridViewRow item in kdgv_WmsQaInspection.Rows)
{
DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)item.Cells[0];
object obj = checkCell.EditedFormattedValue;
if (Convert.ToBoolean(obj))
{
rowsSelectedNum++;
inspectionId = item.Cells[1].Value.ToString();
rowSelectIndex = item.Index;
}
}
if (rowsSelectedNum > 0)
{
if (rowsSelectedNum == 1)
{
int inspectionStatus = Convert.ToInt32(kdgv_WmsQaInspection.Rows[rowSelectIndex].Cells["INSPECTION_STATUS"].Value);
if (inspectionStatus == (int)InspectionStatus.初始创建)
{
frmChildEditWmsQaInspection frm = new frmChildEditWmsQaInspection();
frm.InspectionId = inspectionId;
frm.ShowDialog();
}
else if (inspectionStatus < (int)InspectionStatus.质检完成)
{
KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的质检单不处于【初始创建】状态,无法再次进行编辑!");
}
else if (inspectionStatus == (int)InspectionStatus.强制完成)
{
KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的质检单已被【强制完成】,无法再次进行编辑!");
}
else if (inspectionStatus == (int)InspectionStatus.已删除)
{
KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的质检单【已被删除】,无法再次进行编辑!");
}
else if (inspectionStatus == (int)InspectionStatus.质检完成)
{
KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的质检单【已完成】,无法再次进行编辑!");
}
else
{
KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的质检单状态【{inspectionStatus}】是未知的,无法进行编辑!");
}
}
else
{
KryptonMessageBox.Show("不能对勾选的多行数据进行编辑,请重新勾选一行数据!");
}
}
else
{
KryptonMessageBox.Show("请勾选要编辑的数据行!");
}
}
///
/// 删除质检单
///
///
///
private void kbtnRemove_Click(object sender, EventArgs e)
{
}
///
/// 强制完成质检单
///
///
///
private void kbtn_ForceFinish_Click(object sender, EventArgs e)
{
}
#endregion
#region 导入、导出、打印、重置条件质检单数据
///
/// 重置质检单查询条件
///
///
///
private void kbtnReset_Click(object sender, EventArgs e)
{
ktb_inspectionNo.Text = "";
ktb_sourceNo.Text = "";
ktb_materielMsg.Text = "";
ktb_binMsg.Text = "";
ktb_palletNoMsg.Text = "";
kcmb_inspectionType.SelectedIndex = 0;
kcmb_inspectionDtlStatus.SelectedIndex = 0;
kcmb_supplierMsg.SelectedIndex = 0;
kcmb_inspectionResultMsg.SelectedIndex = 0;
kcmb_materielTypeMsg.SelectedIndex = 0;
kcmb_regionMsg.SelectedIndex = 0;
kdtp_startCreateTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00"));
kdtp_startCreateTime.Checked = false;
kdtp_endCreateTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 23:59:59"));
kdtp_endCreateTime.Checked = false;
kdtp_startInspectionTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00"));
kdtp_startInspectionTime.Checked = false;
kdtp_endInspectionTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 23:59:59"));
kdtp_endInspectionTime.Checked = false;
}
///
/// 导出质检单数据
///
///
///
private void kbtnExport_Click(object sender, EventArgs e)
{
List inspectionIdList = new List();
foreach (DataGridViewRow item in kdgv_WmsQaInspection.Rows)
{
DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)item.Cells[0];
object obj = checkCell.EditedFormattedValue;
if (Convert.ToBoolean(obj))
{
inspectionIdList.Add(item.Cells[1].Value.ToString());
}
}
if (inspectionIdList.Count > 0)
{
List wmsQaInspectionList = new List();
foreach (string item in inspectionIdList)
{
var result = WmsInspectionService.wmsQaInspectionService.GetWmsQaInspectionDtlListForId(new WmsQaInspectionResult { INSPECTION_ID = Convert.ToInt32(item) });
if (result.Status == OperateStatus.Success)
{
wmsQaInspectionList.Add(result.Data);
}
}
NxExcelHelper.ExportToExcel(GetWmsInspectionExportExcelData(wmsQaInspectionList), "质检单数据");
}
else
{
KryptonMessageBox.Show("请勾选要导出的数据行!");
}
}
private DataTable GetWmsInspectionExportExcelData(List wmsQaInspectionList)
{
DataTable dt = new DataTable();
#region 准备导出列名
DataColumn dc = new DataColumn("质检单号");
dt.Columns.Add(dc);
dc = new DataColumn("质检单类型");
dt.Columns.Add(dc);
dc = new DataColumn("质检方式");
dt.Columns.Add(dc);
dc = new DataColumn("质检人");
dt.Columns.Add(dc);
dc = new DataColumn("质检时间");
dt.Columns.Add(dc);
dc = new DataColumn("物料类型编码");
dt.Columns.Add(dc);
dc = new DataColumn("物料类型名称");
dt.Columns.Add(dc);
dc = new DataColumn("物料编码");
dt.Columns.Add(dc);
dc = new DataColumn("物料名称");
dt.Columns.Add(dc);
dc = new DataColumn("物料条码");
dt.Columns.Add(dc);
dc = new DataColumn("规格");
dt.Columns.Add(dc);
dc = new DataColumn("单位");
dt.Columns.Add(dc);
dc = new DataColumn("批次号");
dt.Columns.Add(dc);
dc = new DataColumn("包装");
dt.Columns.Add(dc);
dc = new DataColumn("供应商编码");
dt.Columns.Add(dc);
dc = new DataColumn("供应商名称");
dt.Columns.Add(dc);
dc = new DataColumn("生产日期");
dt.Columns.Add(dc);
dc = new DataColumn("失效日期");
dt.Columns.Add(dc);
dc = new DataColumn("质检单明细状态");
dt.Columns.Add(dc);
dc = new DataColumn("质检结果");
dt.Columns.Add(dc);
dc = new DataColumn("物品状态");
dt.Columns.Add(dc);
#endregion
foreach (WmsQaInspectionResult retreatMd in wmsQaInspectionList)
{
foreach (WmsQaInspectionDtlResult retreatDtlMd in retreatMd.WmsQaInspectionDtlList)
{
DataRow dr = dt.NewRow();
dr["质检单号"] = retreatMd.INSPECTION_NO;
dr["质检单类型"] = retreatMd.INSPECTION_TYPE_NAME;
dr["质检方式"] = retreatMd.INSPECTION_WAY_NAME;
dr["质检人"] = retreatMd.INSPECTION_USER;
dr["质检时间"] = retreatMd.INSPECTION_TIME;
dr["物料类型编码"] = retreatDtlMd.MATERIEL_TYPE_CODE;
dr["物料类型名称"] = retreatDtlMd.MATERIEL_TYPE_NAME;
dr["物料编码"] = retreatDtlMd.MATERIEL_CODE;
dr["物料名称"] = retreatDtlMd.MATERIEL_NAME;
dr["物料条码"] = retreatDtlMd.MATERIEL_BARCODE;
dr["规格"] = retreatDtlMd.MATERIEL_SPEC;
dr["单位"] = retreatDtlMd.UNIT_CODE;
dr["批次号"] = retreatDtlMd.BATCH_NO;
dr["包装"] = retreatDtlMd.PACKAGE_CODE;
dr["供应商编码"] = retreatDtlMd.SUPPLIER_CODE;
dr["供应商名称"] = retreatDtlMd.SUPPLIER_NAME;
dr["生产日期"] = retreatDtlMd.PRODUCT_DATE;
dr["失效日期"] = retreatDtlMd.EXP_DATE;
dr["质检单明细状态"] = retreatDtlMd.INSPECTION_DTL_STATUS_NAME;
dr["质检结果"] = retreatDtlMd.INSPECTION_RESULT_NAME;
dr["物品状态"] = retreatDtlMd.ITEM_STATUS_NAME;
dt.Rows.Add(dr);
}
}
return dt;
}
private void kbtnImport_Click(object sender, EventArgs e)
{
}
private void kbtnPrint_Click(object sender, EventArgs e)
{
}
#endregion
#region DataGridView 相关事件
///
/// 设置DatatGridView的第一列复选框的背景色
///
///
///
private void kdgv_WmsQaInspection_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 0)
{
DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)kdgv_WmsQaInspection.CurrentCell;
if (Convert.ToBoolean(checkCell.EditedFormattedValue))
{
kdgv_WmsQaInspection.CurrentCell.Style.BackColor = Color.FromArgb(51, 153, 255);
}
else
{
kdgv_WmsQaInspection.CurrentCell.Style.BackColor = Color.Transparent;
}
}
}
///
/// 设置状态列的背景色
///
/// dataGridView控件
/// 状态列的列名称
private void SetStatusCellBackColor(KryptonDataGridView dataGridView, string columnName)
{
foreach (DataGridViewRow item in dataGridView.Rows)
{
string inspectionDtlStatus = item.Cells[columnName].Value.ToString();
switch (Enum.Parse(typeof(InspectionStatus), inspectionDtlStatus))
{
case InspectionStatus.初始创建:
//item.Cells[columnName].Style.ForeColor = Color.White;
item.Cells[columnName].Style.BackColor = Color.FromArgb(214, 228, 243);
break;
case InspectionStatus.质检审核:
//item.Cells[columnName].Style.ForeColor = Color.White;
item.Cells[columnName].Style.BackColor = Color.LightYellow;
break;
case InspectionStatus.质检中:
//item.Cells[columnName].Style.ForeColor = Color.White;
item.Cells[columnName].Style.BackColor = Color.LightGreen;
break;
case InspectionStatus.结果确认完成:
//item.Cells[columnName].Style.ForeColor = Color.White;
item.Cells[columnName].Style.BackColor = Color.LightBlue;
break;
case InspectionStatus.质检完成:
//item.Cells[columnName].Style.ForeColor = Color.White;
item.Cells[columnName].Style.BackColor = Color.LightGray;
break;
case InspectionStatus.强制完成:
//item.Cells[columnName].Style.ForeColor = Color.White;
item.Cells[columnName].Style.BackColor = Color.DarkGray;
break;
case InspectionStatus.已删除:
//item.Cells[columnName].Style.ForeColor = Color.White;
item.Cells[columnName].Style.BackColor = Color.FromArgb(255, 69, 0);
break;
default:
break;
}
}
}
private void kdgv_WmsQaInspection_DataError(object sender, DataGridViewDataErrorEventArgs e)
{
}
private void kdgv_WmsQaInspectionDtl_DataError(object sender, DataGridViewDataErrorEventArgs e)
{
}
#endregion
#region 鼠标右键单击事件
///
/// 刷新明细表数据
///
///
///
private void 刷新ToolStripMenuItem1_Click(object sender, EventArgs e)
{
if (kdgv_WmsQaInspectionDtl.Rows.Count > 0)
{
if (kdgv_WmsQaInspection.SelectedRows.Count > 0 && isControlInspectionDtlShow)
{
//InspectionId = kdgv_WmsQaInspection.SelectedRows[0].Cells[1].Value.ToString();
int mainTableId = Convert.ToInt32(kdgv_WmsQaInspection.SelectedRows[0].Cells[1].Value);
var loadfrm = new frmLoading();
loadfrm.Show();
var message = loadfrm.EventCalExecExt1(LoadWmsQaInspectionDtlData, mainTableId);
if (!string.IsNullOrWhiteSpace(message))
{
KryptonMessageBox.Show($"查询失败!\r\n{message}", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
}
///
/// 刷新主表数据
///
///
///
private void 刷新ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (kdgv_WmsQaInspection.Rows.Count > 0)
{
RefreshInspectionSearchData();
}
}
#endregion
private void pageToolbar1_OnPageChange(int PageIndex, int PageSzie)
{
this.kbtnSearch_Click(null, null);
}
}
}