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.
566 lines
26 KiB
566 lines
26 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Windows.Forms;
|
|
using DevExpress.XtraEditors;
|
|
using ICSSoft.Base.Config.AppConfig;
|
|
using ICSSoft.Base.Config.DBHelper;
|
|
using ICSSoft.Base.ReferForm.AppReferForm;
|
|
using ICSSoft.Frame.Data.Entity;
|
|
using ICSSoft.Frame.Data.BLL;
|
|
namespace ICSSoft.Frame.APP
|
|
{
|
|
public partial class FormICSHeatTreatmentAddNew : DevExpress.XtraEditors.XtraForm
|
|
{
|
|
int flag;
|
|
string ID;
|
|
string Transno;
|
|
string EQPCode;
|
|
string OpCode;
|
|
string Type="";
|
|
ICSITEMLot modelinfo;
|
|
ICSOpFile entity = new ICSOpFile();
|
|
private DataTable dtNewRcards = null;
|
|
|
|
#region 构造函数
|
|
public FormICSHeatTreatmentAddNew()
|
|
{
|
|
InitializeComponent();
|
|
flag = 0;
|
|
}
|
|
public FormICSHeatTreatmentAddNew(string id, string transno,string eqpcode,string opcode)
|
|
{
|
|
InitializeComponent();
|
|
flag = 1;
|
|
ID = id;
|
|
EQPCode = eqpcode;
|
|
Transno = transno;
|
|
OpCode = opcode;
|
|
}
|
|
|
|
public FormICSHeatTreatmentAddNew(string id,string eqpcode,string opcode,string type,string transno)
|
|
{
|
|
InitializeComponent();
|
|
flag = 2;
|
|
ID = id;
|
|
EQPCode = eqpcode;
|
|
OpCode = opcode;
|
|
Type = type;
|
|
Transno = transno;
|
|
SearchInfo(ID);
|
|
}
|
|
#endregion
|
|
|
|
#region 查询数据
|
|
private void SearchInfo(string guid)
|
|
{
|
|
string sql = @"SELECT a.LotNO,a.ItemCode,c.INVNAME,c.INVSTD,a.LOTQTY,c.INVUOM,
|
|
CONVERT(NUMERIC(10,3),(a.LOTQTY*a.EATTRIBUTE3)) AS num,c.INVEXPORTIMPORT,a.VenderLotNO as VenderLotNo,
|
|
a.TransNO as MOCODE,a.TransLine as MOSEQ,d.EQPCode as EQPCODE,d.EATTRIBUTE3 as EQPName,d.EATTRIBUTE4 as OpCode
|
|
FROM ICSITEMLot a
|
|
LEFT JOIN ICSMO b ON a.TransNO=b.MOCODE AND a.TransLine=b.MOSEQ
|
|
LEFT JOIN ICSINVENTORY c ON a.ItemCode=c.INVCODE
|
|
LEFT JOIN (select b.LOTNOs,a.EQPCode,a.EATTRIBUTE3,a.EATTRIBUTE4
|
|
from
|
|
(
|
|
SELECT LOTNOs=CONVERT(xml,'<root><v>'+REPLACE(LOTNOs, ';','</v><v>')+'</v></root>'),EQPCode,EATTRIBUTE3,EATTRIBUTE4
|
|
FROM ICSOpFile
|
|
WHERE id ='{0}')a
|
|
outer apply
|
|
(select LOTNOs=C.v.value('.','nvarchar(100)') from a.LOTNOs.nodes('/root/v')C(v))b) d ON a.LotNO=d.LOTNOs
|
|
WHERE a.LotNO in (select b.LOTNOs
|
|
from
|
|
(
|
|
SELECT LOTNOs=CONVERT(xml,'<root><v>'+REPLACE(LOTNOs, ';','</v><v>')+'</v></root>')
|
|
FROM ICSOpFile
|
|
WHERE id ='{0}')a
|
|
outer apply
|
|
(select LOTNOs=C.v.value('.','nvarchar(100)') from a.LOTNOs.nodes('/root/v')C(v))b) AND a.TYPE='工单'";
|
|
sql = string.Format(sql, guid);
|
|
DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
|
|
if (dt != null)
|
|
{
|
|
gridControl1.DataSource = dt;
|
|
gridView4.BestFitColumns();
|
|
dtNewRcards = dt;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 关闭 退出
|
|
private void btnClose_Click(object sender, EventArgs e)
|
|
{
|
|
this.Close();
|
|
}
|
|
#endregion
|
|
|
|
#region 移动窗体
|
|
private const int WM_NCHITTEST = 0x84;
|
|
private const int HTCLIENT = 0x1;
|
|
private const int HTCAPTION = 0x2;
|
|
//首先必须了解Windows的消息传递机制,当有鼠标活动消息时,
|
|
//系统发送WM_NCHITTEST 消息给窗体作为判断消息发生地的根据。 nchittest
|
|
//假如你点击的是标题栏,窗体收到的消息值就是 HTCAPTION ,
|
|
//同样地,若接受到的消息是 HTCLIENT,说明用户点击的是客户区,也就是鼠标消息发生在客户区。
|
|
|
|
//重写窗体,使窗体可以不通过自带标题栏实现移动
|
|
protected override void WndProc(ref Message m)
|
|
{
|
|
|
|
|
|
//当重载窗体的 WndProc 方法时,可以截获 WM_NCHITTEST 消息并改些该消息,
|
|
//当判断鼠标事件发生在客户区时,改写改消息,发送 HTCAPTION 给窗体,
|
|
//这样,窗体收到的消息就时 HTCAPTION ,在客户区通过鼠标来拖动窗体就如同通过标题栏来拖动一样。
|
|
//注意:当你重载 WndProc 并改写鼠标事件后,整个窗体的鼠标事件也就随之改变了。
|
|
switch (m.Msg)
|
|
{
|
|
case WM_NCHITTEST:
|
|
base.WndProc(ref m);
|
|
if ((int)m.Result == HTCLIENT)
|
|
m.Result = (IntPtr)HTCAPTION;
|
|
return;
|
|
}
|
|
//拦截双击标题栏、移动窗体的系统消息
|
|
if (m.Msg != 0xA3)
|
|
{
|
|
base.WndProc(ref m);
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 保存
|
|
private void save_Click(object sender, EventArgs e)
|
|
{
|
|
entity.MUSER = AppConfig.UserId;
|
|
entity.MUSERName = AppConfig.UserName;
|
|
entity.MTIME = Convert.ToDateTime(AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss").ToString());
|
|
try
|
|
{
|
|
List<ICSOpFile> modelList = new List<ICSOpFile>();
|
|
ICSOpFile model = new ICSOpFile();
|
|
if (txtEQPCode.Text.Trim() == "")
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("设备号不能为空!!!");
|
|
return;
|
|
}
|
|
if (txtCostCenter.Text.Trim() == "")
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("工序不能为空!!!");
|
|
return;
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(ID)&&gridView4.RowCount <= 0)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("产品跟踪单信息不能为空!!!");
|
|
return;
|
|
}
|
|
if (dtNewRcards.Rows.Count > 0)
|
|
{
|
|
#region 表中有值
|
|
for (int i = 0; i < dtNewRcards.Rows.Count; i++)
|
|
{
|
|
if (model.LOTNOs != null)
|
|
{
|
|
model.LOTNOs += gridView4.GetRowCellValue(i, colLotNO).ToString() + ";";
|
|
if (!model.MOCODE.Contains(dtNewRcards.Rows[i]["MOCODE"].ToString()))
|
|
{
|
|
model.MOCODE += gridView4.GetRowCellValue(i, colMOCODE).ToString() + ";";
|
|
}
|
|
if (!model.MOSEQ.Contains(dtNewRcards.Rows[i]["MOSEQ"].ToString()))
|
|
{
|
|
model.MOSEQ += gridView4.GetRowCellValue(i, colMOSEQ).ToString() + ";";
|
|
}
|
|
if (!model.EQPCode.Contains(dtNewRcards.Rows[i]["EQPCODE"].ToString()))
|
|
{
|
|
model.EQPCode += gridView4.GetRowCellValue(i, colEQPCode).ToString() + ";";
|
|
}
|
|
if (!model.EATTRIBUTE2.Contains(dtNewRcards.Rows[i]["VenderLotNo"].ToString()))
|
|
{
|
|
model.EATTRIBUTE2 += gridView4.GetRowCellValue(i, gridColumn11).ToString() + ";";
|
|
}
|
|
if (!model.EATTRIBUTE3.Contains(dtNewRcards.Rows[i]["EQPName"].ToString()))
|
|
{
|
|
model.EATTRIBUTE3 += gridView4.GetRowCellValue(i, colEQPName).ToString() + ";";
|
|
}
|
|
if (!model.EATTRIBUTE4.Contains(dtNewRcards.Rows[i]["OpCode"].ToString()))
|
|
{
|
|
model.EATTRIBUTE4 += gridView4.GetRowCellValue(i, colOpCode).ToString() + ";";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
model.MOCODE += gridView4.GetRowCellValue(i, colMOCODE).ToString() + ";";
|
|
model.MOSEQ += gridView4.GetRowCellValue(i, colMOSEQ).ToString() + ";";
|
|
model.EQPCode += gridView4.GetRowCellValue(i, colEQPCode).ToString() + ";";
|
|
model.EATTRIBUTE2 += gridView4.GetRowCellValue(i, gridColumn11).ToString() + ";";
|
|
model.EATTRIBUTE3 += gridView4.GetRowCellValue(i, colEQPName).ToString() + ";";
|
|
model.LOTNOs += gridView4.GetRowCellValue(i, colLotNO).ToString() + ";";
|
|
model.EATTRIBUTE4 += gridView4.GetRowCellValue(i, colOpCode).ToString() + ";";
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
model.EQPCode = txtEQPCode.Text.Trim();
|
|
model.EATTRIBUTE3= txtEQPName.Text.Trim();
|
|
model.EATTRIBUTE4 = txtCostCenter.Text.Trim();
|
|
}
|
|
if (flag == 2)
|
|
{
|
|
model.ID = ID;
|
|
}
|
|
else
|
|
{
|
|
model.ID = AppConfig.GetGuid();
|
|
}
|
|
model.MUSER = AppConfig.UserId;
|
|
model.MUSERName = AppConfig.UserName;
|
|
model.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
|
|
model.WorkPoint = AppConfig.WorkPointCode;
|
|
model.EATTRIBUTE5 = txtNum.Text;
|
|
modelList.Add(model);
|
|
|
|
if (modelList.Count <= 0)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("请选择数据!!!");
|
|
return;
|
|
}
|
|
|
|
if (flag == 0 || Type.Equals("炉号"))
|
|
{
|
|
ICSHeatTreatmentBLL.AddList(modelList,Transno, AppConfig.AppConnectString);
|
|
if (flag == 2)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("炉号修改成功!!!");
|
|
}
|
|
else
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("炉号新增成功!!!");
|
|
}
|
|
this.Close();
|
|
this.DialogResult = DialogResult.Yes;
|
|
}
|
|
else if (flag == 1 || Type.Equals("试样号"))
|
|
{
|
|
ICSHeatTreatmentBLL.AddSample(modelList, ID, Transno,flag, AppConfig.AppConnectString);
|
|
if (flag == 2)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("试样号修改成功!!!");
|
|
}
|
|
else
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("试样号新增成功!!!");
|
|
}
|
|
this.Close();
|
|
this.DialogResult = DialogResult.Yes;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 取消
|
|
private void can_Click(object sender, EventArgs e)
|
|
{
|
|
this.Close();
|
|
}
|
|
#endregion
|
|
|
|
#region 页面加载
|
|
private void FormICSItenLotAdd_Load(object sender, EventArgs e)
|
|
{
|
|
init();
|
|
load();
|
|
//新增试样号,设备号不可选
|
|
if (!string.IsNullOrEmpty(EQPCode))
|
|
{
|
|
txtEQPCode.Text = EQPCode;
|
|
txtEQPCode.Enabled = false;
|
|
txtCostCenter.Text = OpCode;
|
|
txtCostCenter.Enabled = false;
|
|
}
|
|
txtEQPCode.Focus();
|
|
loadNum();
|
|
}
|
|
#endregion
|
|
|
|
#region 初始化查询条件
|
|
private void init()
|
|
{
|
|
#region 设备
|
|
string sql = @"select EQPCode as 设备号,EQPName as 设备名称
|
|
from ICSEquipment";
|
|
DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
|
|
txtEQPCode.Properties.ValueMember = "设备号";
|
|
txtEQPCode.Properties.DisplayMember = "设备号";
|
|
txtEQPCode.Properties.DataSource = dt;
|
|
txtEQPCode.Properties.NullText = "";//空时的值
|
|
txtEQPCode.Properties.ImmediatePopup = true;//输入值是否马上弹出窗体
|
|
txtEQPCode.Properties.ValidateOnEnterKey = true;//回车确认
|
|
txtEQPCode.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;//要使用户可以输入,这里须设为Standard
|
|
txtEQPCode.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True; //可用Ctrl + Delete清空选择內容
|
|
//自适应宽度
|
|
txtEQPCode.Properties.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup;
|
|
#endregion
|
|
|
|
#region 成本中心
|
|
string sqlop = "select OPCODE as 代码,opdesc as 描述 from ICSOP where OpFrom='热处理'";
|
|
DataTable dtop = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sqlop).Tables[0];
|
|
txtCostCenter.Properties.ValueMember = "代码";
|
|
txtCostCenter.Properties.DisplayMember = "代码";
|
|
txtCostCenter.Properties.DataSource = dtop;
|
|
txtCostCenter.Properties.NullText = "";//空时的值
|
|
txtCostCenter.Properties.ImmediatePopup = true;//输入值是否马上弹出窗体
|
|
txtCostCenter.Properties.ValidateOnEnterKey = true;//回车确认
|
|
txtCostCenter.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;//要使用户可以输入,这里须设为Standard
|
|
txtCostCenter.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True; //可用Ctrl + Delete清空选择內容
|
|
//自适应宽度
|
|
txtCostCenter.Properties.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup;
|
|
#endregion
|
|
}
|
|
#endregion
|
|
|
|
#region 加载方法
|
|
private void load()
|
|
{
|
|
if (flag == 0 || flag == 1)
|
|
{
|
|
string sql = @"SELECT '' as isSelect,a.LotNO,a.ItemCode,b.INVNAME,b.INVSTD,a.LOTQTY,b.INVUOM,CONVERT(NUMERIC(10,3),(a.LOTQTY*a.EATTRIBUTE3)) AS num,b.INVEXPORTIMPORT
|
|
,c.MOCODE,a.VenderLotNO as VenderLotNo,c.MOVER,a.EATTRIBUTE1 as EQPCODE,a.EATTRIBUTE2 as EQPName,c.MOSEQ,'' as OpCode
|
|
FROM ICSITEMLot a
|
|
INNER JOIN ICSINVENTORY b ON a.ItemCode=b.INVCODE
|
|
LEFT JOIN ICSMO c ON a.TransNO=c.MOCODE AND a.TransLine=c.MOSEQ
|
|
WHERE 1!=1
|
|
ORDER BY a.LotNO";
|
|
DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
|
|
dtNewRcards = dt;
|
|
}
|
|
else
|
|
{
|
|
SearchInfo(ID);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 设备号改变
|
|
private void txtEQPCode_EditValueChanged(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
string Code = txtEQPCode.Text.ToString();
|
|
string sql = @"select EQPCode as 设备号,EQPName as 设备名称
|
|
from ICSEquipment
|
|
WHERE EQPCode='{0}'";
|
|
sql = string.Format(sql, Code);
|
|
DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
|
|
if (dt != null && dt.Rows.Count > 0)
|
|
{
|
|
txtEQPName.Text = dt.Rows[0]["设备名称"].ToString();
|
|
}
|
|
//txtCostCenter.Focus();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox(ex.ToString());
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 删除
|
|
private void repositoryItemButtonEdit1_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
|
|
{
|
|
//gridView4.DeleteRow(gridView4.FocusedRowHandle);
|
|
//gridView4.RefreshEditor(true);
|
|
DataRow[] drs = dtNewRcards.Select("LotNO='" + gridView4.GetRowCellValue(gridView4.FocusedRowHandle, colLotNO).ToString() + "'");
|
|
foreach (DataRow dr in drs)
|
|
{
|
|
dtNewRcards.Rows.Remove(dr);
|
|
}
|
|
if (gridView4.RowCount <= 0)
|
|
{
|
|
txtCostCenter.Properties.ReadOnly = true;
|
|
txtEQPCode.Properties.ReadOnly = true;
|
|
}
|
|
loadNum();
|
|
}
|
|
#endregion
|
|
|
|
#region 绑定数据
|
|
private void DataBind(string lotno, string invcode, string invname, string invuom, string invstd, string num, string invexportimport,string mover,
|
|
string mocode,string moseq,string eqpcode,string venderlotno ,string eqpname,string center)
|
|
{
|
|
//带出产品跟踪单信息
|
|
DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在查找...请稍等...");
|
|
try
|
|
{
|
|
_wait.Show();
|
|
if (gridView4.RowCount > 0)
|
|
{
|
|
DataRow[] isRow = dtNewRcards.Select("LotNO= '" + lotno + "'");
|
|
if (isRow == null || isRow.Length <= 0)
|
|
{
|
|
DataRow row = dtNewRcards.NewRow();
|
|
row["LotNO"] = lotno;
|
|
row["ItemCode"] = invcode;
|
|
row["INVNAME"] = invname;
|
|
row["INVUOM"] = invuom;
|
|
row["INVSTD"] = invstd;
|
|
row["num"] = num;
|
|
row["INVEXPORTIMPORT"] = mover;
|
|
row["MOCODE"] = mocode;
|
|
row["MOSEQ"] = moseq;
|
|
row["EQPCODE"] = eqpcode;
|
|
row["VenderLotNo"] = venderlotno;
|
|
row["EQPName"] = eqpname;
|
|
row["OpCode"] = center;
|
|
dtNewRcards.Rows.InsertAt(row, 0);
|
|
gridControl1.DataSource = dtNewRcards;
|
|
gridView4.BestFitColumns();
|
|
txtLotNo.Focus();
|
|
txtLotNo.SelectAll();
|
|
}
|
|
else
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("产品跟踪单已扫描,不能重复扫描!");
|
|
txtLotNo.Focus();
|
|
txtLotNo.SelectAll();
|
|
_wait.Close();
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
DataTable dtNewRcard = new DataTable();
|
|
dtNewRcard.Columns.Add("LotNO", typeof(string));//产品跟踪单号
|
|
dtNewRcard.Columns.Add("ItemCode", typeof(string));//存货编码
|
|
dtNewRcard.Columns.Add("INVNAME", typeof(string));//存货名称
|
|
dtNewRcard.Columns.Add("INVUOM", typeof(string));//单位
|
|
dtNewRcard.Columns.Add("INVSTD", typeof(string));//规格型号
|
|
dtNewRcard.Columns.Add("num", typeof(string));//重量
|
|
dtNewRcard.Columns.Add("INVEXPORTIMPORT", typeof(string));//辅助单位
|
|
dtNewRcard.Columns.Add("MOCODE", typeof(string));//工单
|
|
dtNewRcard.Columns.Add("MOSEQ", typeof(string));//工单行
|
|
dtNewRcard.Columns.Add("EQPCODE", typeof(string));//设备
|
|
dtNewRcard.Columns.Add("VenderLotNo", typeof(string));//批次号
|
|
dtNewRcard.Columns.Add("EQPName", typeof(string));//设备名
|
|
dtNewRcard.Columns.Add("OpCode", typeof(string));//工序
|
|
DataRow row = dtNewRcard.NewRow();
|
|
row["LotNO"] = lotno;
|
|
row["ItemCode"] = invcode;
|
|
row["INVNAME"] = invname;
|
|
row["INVUOM"] = invuom;
|
|
row["INVSTD"] = invstd;
|
|
row["num"] = num;
|
|
row["INVEXPORTIMPORT"] = invexportimport;
|
|
row["VenderLotNo"] = venderlotno;
|
|
row["MOCODE"] = mocode;
|
|
row["MOSEQ"] = moseq;
|
|
row["EQPCODE"] = eqpcode;
|
|
row["VenderLotNo"] = venderlotno;
|
|
row["EQPName"] = eqpname;
|
|
row["OpCode"] = center;
|
|
dtNewRcard.Rows.Add(row);
|
|
gridControl1.DataSource = dtNewRcard;
|
|
dtNewRcards = dtNewRcard;
|
|
gridView4.BestFitColumns();
|
|
txtLotNo.Focus();
|
|
txtLotNo.SelectAll();
|
|
txtCostCenter.Properties.ReadOnly = true;
|
|
txtEQPCode.Properties.ReadOnly = true;
|
|
}
|
|
_wait.Close();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
_wait.Close();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 扫描产品跟踪单号
|
|
private void txtLotNo_KeyPress(object sender, KeyPressEventArgs e)
|
|
{
|
|
if (e.KeyChar != 13)
|
|
{
|
|
return;
|
|
}
|
|
if (txtEQPCode.Text == "")
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("设备编号不能为空,请选择设备!");
|
|
return;
|
|
}
|
|
if (txtCostCenter.Text=="")
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("工序不能为空,请选择工序!");
|
|
return;
|
|
}
|
|
if (txtLotNo.Text == "")
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("产品跟踪单号不能为空!");
|
|
return;
|
|
}
|
|
string sql = @"SELECT a.LotNO,a.ItemCode,c.INVNAME,c.INVSTD,a.LOTQTY,c.INVUOM,
|
|
CONVERT(NUMERIC(10,3),(a.LOTQTY*a.EATTRIBUTE3)) AS num,c.INVEXPORTIMPORT,a.VenderLotNO as VenderLotNo,
|
|
a.TransNO as 工单号,a.TransLine as 生产订单行号,c.INVNAME as 存货名称,b.MOPLANQTY as 工单数量,
|
|
c.INVSTD as 规格型号,b.MOVER as 零件号,b.MOTYPE as 工单类型
|
|
FROM ICSITEMLot a
|
|
LEFT JOIN ICSMO b ON a.TransNO=b.MOCODE AND a.TransLine=b.MOSEQ
|
|
LEFT JOIN ICSINVENTORY c ON a.ItemCode=c.INVCODE
|
|
WHERE a.LotNO='{0}' AND a.TYPE='工单'";
|
|
sql = string.Format(sql, txtLotNo.Text);
|
|
DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
|
|
if (dt != null && dt.Rows.Count > 0)
|
|
{
|
|
txtMOCode.Text = dt.Rows[0]["工单号"].ToString();
|
|
txtMORow.Text = dt.Rows[0]["生产订单行号"].ToString();
|
|
txtiQuantity.Text = dt.Rows[0]["工单数量"].ToString();
|
|
txtMoverCode.Text = dt.Rows[0]["VenderLotNo"].ToString();
|
|
txtMOType.Text = dt.Rows[0]["工单类型"].ToString();
|
|
txtCode.Text = dt.Rows[0]["ItemCode"].ToString();//存货编码
|
|
txtcInvName.Text = dt.Rows[0]["存货名称"].ToString();
|
|
txtcInvStd.Text = dt.Rows[0]["规格型号"].ToString();
|
|
DataBind(txtLotNo.Text, dt.Rows[0]["ItemCode"].ToString(), dt.Rows[0]["INVNAME"].ToString(),
|
|
dt.Rows[0]["INVUOM"].ToString(), dt.Rows[0]["INVSTD"].ToString(), dt.Rows[0]["num"].ToString(),
|
|
dt.Rows[0]["INVEXPORTIMPORT"].ToString(), dt.Rows[0]["零件号"].ToString(), dt.Rows[0]["工单号"].ToString(), dt.Rows[0]["生产订单行号"].ToString(),
|
|
txtEQPCode.Text,dt.Rows[0]["VenderLotNo"].ToString(),txtEQPName.Text,txtCostCenter.Text
|
|
);
|
|
loadNum();
|
|
}
|
|
else
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("产品跟踪单号不存在!");
|
|
txtLotNo.Focus();
|
|
txtLotNo.SelectAll();
|
|
return;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 工序
|
|
private void txtCostCenter_EditValueChanged(object sender, EventArgs e)
|
|
{
|
|
//txtLotNo.Focus();
|
|
//txtLotNo.SelectAll();
|
|
}
|
|
#endregion
|
|
|
|
#region 统计跟踪单个数
|
|
private void loadNum()
|
|
{
|
|
try
|
|
{
|
|
txtNum.Text = gridView4.RowCount.ToString();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
}
|