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.
1278 lines
50 KiB
1278 lines
50 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using DevExpress.XtraEditors;
|
|
using ICSSoft.Base.Config.AppConfig;
|
|
using System.Data.Linq;
|
|
using System.Linq;
|
|
using ICSSoft.Base.Language.Tool;
|
|
using System.Reflection;
|
|
using ICSSoft.Base.Report.GridReport;
|
|
using ICSSoft.Base.Config.DBHelper;
|
|
using ICSSoft.Base.ReferForm;
|
|
using ICSSoft.Base.Report;
|
|
using ICSSoft.Base.ReferForm.AppReferForm;
|
|
using ICSSoft.Frame.Data.Entity;
|
|
using ICSSoft.Frame.Data.BLL;
|
|
using ICSSoft.Base.UserControl.FormControl;
|
|
using ICSSoft.Base.Report.Filter;
|
|
using DevExpress.XtraGrid.Views.BandedGrid;
|
|
using DevExpress.XtraGrid.Columns;
|
|
using DevExpress.XtraGrid;
|
|
using System.Text.RegularExpressions;
|
|
|
|
|
|
namespace ICSSoft.Frame.APP
|
|
{
|
|
public partial class FormICSITEMLOTAdd : DevExpress.XtraEditors.XtraForm
|
|
{
|
|
DataRow rowGroup;
|
|
private DataTable dataSource = null;
|
|
private string sqltxt = "";
|
|
private string sqlconn = "";
|
|
Regex rex = new Regex(@"^\d+$|^\d+\.\d+$");
|
|
|
|
#region 系统
|
|
#region 构造函数
|
|
|
|
public FormICSITEMLOTAdd()
|
|
{
|
|
InitializeComponent();
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 构造函数
|
|
|
|
public FormICSITEMLOTAdd(string receiptno,int receiptline)
|
|
{
|
|
InitializeComponent();
|
|
this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
|
|
this.WindowState = FormWindowState.Maximized;
|
|
SearchItemLotInfo(receiptno, receiptline);
|
|
}
|
|
#endregion
|
|
|
|
private void SearchItemLotInfo(string receiptno, int receiptline)
|
|
{
|
|
btnSTNO.Text = receiptno;
|
|
btnSTNO.Enabled = false;
|
|
btnSTNO.Properties.ReadOnly = true;
|
|
comNUM.Enabled = false;
|
|
comNUM.Text = receiptline.ToString();
|
|
comNUM_SelectedIndexChanged(null,null);
|
|
|
|
}
|
|
|
|
#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 操作权限
|
|
public DataTable RightOfExute()
|
|
{
|
|
DataTable rData = new DataTable();
|
|
rData.Columns.Add("BtnName");
|
|
rData.Columns.Add("ActionName");
|
|
//查看权限(必须有)
|
|
DataRow seeRow = rData.NewRow();
|
|
seeRow["BtnName"] = "see";
|
|
seeRow["ActionName"] = "查看";
|
|
rData.Rows.Add(seeRow);
|
|
|
|
List<Control> ControlList = new List<Control>();
|
|
ControlList.Add(btnCreate);
|
|
ControlList.Add(btnModify);
|
|
ControlList.Add(btnDel);
|
|
ControlList.Add(btnOutPut);
|
|
foreach (Control ctr in ControlList)
|
|
{
|
|
|
|
if (ctr.GetType() == typeof(SimpleButton))
|
|
{
|
|
DataRow dr = rData.NewRow();
|
|
dr["BtnName"] = ctr.Name;
|
|
dr["ActionName"] = ctr.Text;
|
|
rData.Rows.Add(dr);
|
|
}
|
|
}
|
|
|
|
rData.AcceptChanges();
|
|
return rData;
|
|
}
|
|
public DataTable RightOfData()// 数据权限
|
|
{
|
|
DataTable rData = new DataTable();
|
|
rData.Columns.Add("BodyName");
|
|
rData.Columns.Add("ControlName");
|
|
rData.Columns.Add("ControlCaption");
|
|
|
|
rData.AcceptChanges();
|
|
return rData;
|
|
}
|
|
#endregion
|
|
|
|
#region 列表
|
|
private void gridView3_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
|
|
{
|
|
if (e.Info.IsRowIndicator && e.RowHandle >= 0)
|
|
e.Info.DisplayText = (e.RowHandle + 1).ToString();
|
|
|
|
|
|
}
|
|
private void gridView4_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
|
|
{
|
|
if (e.Info.IsRowIndicator && e.RowHandle >= 0)
|
|
e.Info.DisplayText = (e.RowHandle + 1).ToString();
|
|
}
|
|
#endregion
|
|
|
|
#region 关闭
|
|
private void btnExit_Click(object sender, EventArgs e)
|
|
{
|
|
this.Close();
|
|
}
|
|
private void simpleButton2_Click(object sender, EventArgs e)
|
|
{
|
|
this.Close();
|
|
}
|
|
#endregion
|
|
|
|
#region 导出
|
|
private void btnOutPut_Click(object sender, EventArgs e)
|
|
{
|
|
FormOutExcel foe = new FormOutExcel(this.Tag.ToString(), grdDetail);
|
|
foe.ShowDialog();
|
|
}
|
|
#endregion
|
|
|
|
#region 刷新
|
|
private void btnRefresh_Click(object sender, EventArgs e)
|
|
{
|
|
DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在查找...请稍等...");
|
|
try
|
|
{
|
|
_wait.Show();
|
|
gridView3_Load(null, null);
|
|
_wait.Close();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
_wait.Close();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 全选
|
|
private void btnSelectAll_Click(object sender, EventArgs e)
|
|
{
|
|
gv3.PostEditor();
|
|
this.Validate();
|
|
for (int i = 0; i < gv3.RowCount; i++)
|
|
{
|
|
gv3.SetRowCellValue(i, coSelect, "Y");
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 全消
|
|
private void btnCancelAll_Click(object sender, EventArgs e)
|
|
{
|
|
gv3.PostEditor();
|
|
this.Validate();
|
|
for (int i = 0; i < gv3.RowCount; i++)
|
|
{
|
|
gv3.SetRowCellValue(i, coSelect, "");
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 过滤方法
|
|
private void FormContainerManager_FormClosing(object sender, FormClosingEventArgs e)
|
|
{
|
|
AppConfig.DropTemTable(tempTableName);
|
|
}
|
|
#endregion
|
|
|
|
#region 绑定数据源
|
|
private void btnConfig_Click(object sender, EventArgs e)
|
|
{
|
|
if (AppConfig.UserCode.ToLower() != "demo")
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("您没有权限设置数据源,请联系软件提供商!");
|
|
return;
|
|
}
|
|
FormDataSource fdata = new FormDataSource(AppConfig.GetMenuId(this.Tag.ToString()), btnConfig.Name);
|
|
fdata.ShowDialog();
|
|
}
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#region [入库单号]点击事件
|
|
private void btnSTNO_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
|
|
{
|
|
btnSTNO.Text = "";
|
|
ButtonEdit btn = (ButtonEdit)sender;
|
|
string sql = @"select DISTINCT STNO as [入库单号] from ICSASNIQCDETAIL
|
|
where STDSTATUS='已检未入库' and CHECKSTATUS='合格'
|
|
and WorkPoint='" + AppConfig.WorkPointCode + "'";
|
|
sql = string.Format(sql);
|
|
DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
|
|
FormDataRefer reForm = new FormDataRefer();
|
|
reForm.FormTitle = "入库单号信息";
|
|
DataTable menuData = data;
|
|
reForm.DataSource = menuData;
|
|
reForm.MSelectFlag = false;
|
|
reForm.RowIndexWidth = 35;
|
|
reForm.HideCols.Add("ID");
|
|
reForm.FormWidth = 800;
|
|
reForm.FormHeight = 600;
|
|
reForm.FilterKey = btn.Text; //gridView3.GetRowCellValue(gridView3.FocusedRowHandle, gridView3.FocusedColumn).ToString().Trim();
|
|
if (reForm.ShowDialog() == DialogResult.OK)
|
|
{
|
|
DataTable retData = reForm.ReturnData;
|
|
foreach (DataRow dr in retData.Rows)
|
|
{
|
|
btnSTNO.Text = dr["入库单号"].ToString();
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 选择入库单后,为行号下拉框添加项
|
|
private void btnSTNO_EditValueChanged(object sender, EventArgs e)
|
|
{
|
|
string sql = @"select STLINE from ICSASNIQCDETAIL
|
|
where STNO='" + btnSTNO.Text + "' and STDSTATUS='已检未入库' and CHECKSTATUS='合格' and WorkPoint='" + AppConfig.WorkPointCode + "'";
|
|
sql = string.Format(sql);
|
|
DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
|
|
comNUM.Items.Clear();
|
|
foreach (DataRow dr in data.Rows)
|
|
{
|
|
comNUM.Items.Add(dr[0].ToString());
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 选择行号后对后续box 赋值
|
|
private void comNUM_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
string sql = @"select DISTINCT a.ITEMCODE,b.VENDORCODE,a.UNIT,b.INVCONTROLTYPE,c.QualifyQTY,a.MEMO from ICSASNIQCDETAIL as a,ICSINVENTORY as b,ICSINVReceiptDetail as c
|
|
where a.ITEMCODE=b.INVCODE and a.STNO=c.ReceiptNO and a.STLINE=c.ReceiptLine and a.STNO='" + btnSTNO.Text + "' and a.STLINE='" + comNUM.Text + "' and a.WorkPoint='" + AppConfig.WorkPointCode + "' and b.WorkPoint='" + AppConfig.WorkPointCode + "' and c.WorkPoint='" + AppConfig.WorkPointCode + "'";
|
|
sql = string.Format(sql);
|
|
DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
|
|
foreach(DataRow dr in data.Rows)
|
|
{
|
|
txtITEMCODE.Text=dr["ITEMCODE"].ToString();
|
|
txtVENDORCODE.Text=dr["VENDORCODE"].ToString();
|
|
txtUNIT.Text=dr["UNIT"].ToString();
|
|
txtINVCONTROLTYPE.Text = dr["INVCONTROLTYPE"].ToString();
|
|
txtQualifyQTY.Text = dr["QualifyQTY"].ToString();
|
|
txtMEMO.Text=dr["MEMO"].ToString();
|
|
}
|
|
|
|
int s = 0;
|
|
//统计已维护过的[合格数量]的和
|
|
string str = "select LOTQTY from ICSITEMLot where TransNO='" + btnSTNO.Text + "' and TransLine='" + comNUM .Text+ "'";
|
|
str = string.Format(str);
|
|
DataTable dat = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, str).Tables[0];
|
|
foreach (DataRow dr in dat.Rows)
|
|
{
|
|
s += int.Parse(dr[0].ToString().Split('.')[0].ToString());
|
|
}
|
|
labMAIN.Text = s.ToString();
|
|
|
|
grdDetail.DataSource = "";
|
|
gridView3_Load(null,null);
|
|
|
|
if (txtINVCONTROLTYPE.Text == "单件管控")
|
|
{
|
|
NODE(null, 0);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 管控类型的值变化时
|
|
private void txtINVCONTROLTYPE_EditValueChanged(object sender, EventArgs e)
|
|
{
|
|
if (txtINVCONTROLTYPE.Text == "批次管控")
|
|
{
|
|
radNUM.Enabled = false;
|
|
txtNUM.Enabled = false;
|
|
radBEGNUM.Enabled = false;
|
|
txtBEGNUM.Enabled = false;
|
|
txtCOUNT.Enabled = false;
|
|
btnSERIAL.Enabled = false;
|
|
radLOGIN.Enabled = false;
|
|
btnREFER.Enabled = false;
|
|
btnModify.Enabled = true;
|
|
radACOUNTMIN.Enabled = true;
|
|
txtCOUNTMIN.Enabled = true;
|
|
radBAGNUM.Enabled = true;
|
|
txtBAGNUM.Enabled = true;
|
|
}
|
|
else if (txtINVCONTROLTYPE.Text == "单件管控")
|
|
{
|
|
radNUM.Enabled = true;
|
|
txtNUM.Enabled = true;
|
|
radBEGNUM.Enabled = true;
|
|
txtBEGNUM.Enabled = true;
|
|
txtCOUNT.Enabled = true;
|
|
btnSERIAL.Enabled = true;
|
|
radLOGIN.Enabled = true;
|
|
btnREFER.Enabled = true;
|
|
btnModify.Enabled = false;
|
|
radACOUNTMIN.Enabled = false;
|
|
txtCOUNTMIN.Enabled=false;
|
|
radBAGNUM.Enabled=false;
|
|
txtBAGNUM.Enabled = false;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region gridview显示数据
|
|
//gridview中生成数据
|
|
|
|
|
|
private void btnNEW_Click(object sender, EventArgs e)
|
|
{
|
|
int i = 0, j = 0, m = 0, r = 0;// i,m-1 j,最后一行数量 m,项数
|
|
try
|
|
{
|
|
DataTable dd = new DataTable();
|
|
|
|
//除新增项外其他项的select变成false
|
|
for (int n = 0; n < dd.Rows.Count; n++)
|
|
{
|
|
dd.Rows[n]["coSelect"] = "";
|
|
}
|
|
|
|
if (txtQualifyQTY.Text != "" && txtCOUNTMIN.Text != ""&&radACOUNTMIN.Checked==true)
|
|
{
|
|
string[] txtqty = txtQualifyQTY.Text.Split('.');
|
|
string a = txtqty[0];
|
|
i = int.Parse(txtqty[0]) / int.Parse(txtCOUNTMIN.Text);
|
|
j = int.Parse(txtqty[0]) % int.Parse(txtCOUNTMIN.Text);
|
|
if (j != 0)
|
|
{
|
|
m = i + 1;
|
|
}
|
|
else
|
|
{
|
|
m = i;
|
|
}
|
|
}
|
|
if(txtQualifyQTY.Text!=""&&txtBAGNUM.Text!=""&&radBAGNUM.Checked==true)
|
|
{
|
|
string[] txtqty = txtQualifyQTY.Text.Split('.');
|
|
string a = txtqty[0];
|
|
m = int.Parse(txtBAGNUM.Text);
|
|
i=int.Parse(txtqty[0]) % int.Parse(txtBAGNUM.Text);
|
|
r = int.Parse(txtqty[0]) / int.Parse(txtBAGNUM.Text);
|
|
if ( i!= 0)
|
|
{
|
|
j = r + i;
|
|
|
|
}
|
|
else
|
|
{
|
|
j = r ;
|
|
}
|
|
}
|
|
|
|
|
|
//查询物料描述
|
|
string sql = @"select INVDESC from ICSINVENTORY where INVCODE='" + txtITEMCODE.Text + "' and WorkPoint='" + AppConfig.WorkPointCode + "'";
|
|
sql = string.Format(sql);
|
|
DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
|
|
|
|
//先给新建表赋值已存在的批号
|
|
|
|
DataTable ds = new DataTable();
|
|
dd = Dtable().Copy();
|
|
for (int n = 0; n < Dtable().Rows.Count;n++ )
|
|
{
|
|
if (data.Rows[0][0].ToString() != "")
|
|
{
|
|
dd.Rows[n]["INVDESC"] = data.Rows[0][0].ToString();
|
|
}
|
|
}
|
|
|
|
//如果是 单件管控 只产生一行
|
|
if (txtINVCONTROLTYPE.Text == "单件管控")
|
|
{
|
|
m = 1;
|
|
}
|
|
|
|
#region 表中行赋值
|
|
//再赋值自定义的批号
|
|
for (int n = 0; n < m; n++)
|
|
{
|
|
|
|
//生成批次
|
|
|
|
string lotno = "LOT" + AppConfig.GetSeverDateTime("yyyy-MM-dd").ToString("yyyyMMdd");
|
|
lotno = AppConfig.GetSerialCode(AppConfig.FrameConnectString, AppConfig.WorkPointCode, "ICSWareHouseLotInfo", "LotNo", lotno, 4);
|
|
//给新建表的行赋值
|
|
|
|
rowGroup = dd.NewRow();
|
|
rowGroup["ID"] = txtID.Text;
|
|
rowGroup["coSelect"] = "Y";
|
|
rowGroup["LotNO"] = lotno;
|
|
rowGroup["ItemCode"] = txtITEMCODE.Text;
|
|
|
|
if(radACOUNTMIN.Checked==true&&txtCOUNTMIN.Text!="")
|
|
{
|
|
if (n == m - 1 && j != 0)
|
|
{
|
|
rowGroup["LOTQTY"] = j;
|
|
}
|
|
else
|
|
{
|
|
rowGroup["LOTQTY"] = txtCOUNTMIN.Text;
|
|
}
|
|
}
|
|
|
|
if (radBAGNUM.Checked == true && txtBAGNUM.Text != "")
|
|
{
|
|
if (i == 0)
|
|
{
|
|
rowGroup["LOTQTY"] = j;
|
|
}
|
|
else
|
|
{
|
|
if (n == m - 1 && j != 0)
|
|
{
|
|
rowGroup["LOTQTY"] = j;
|
|
}
|
|
else
|
|
{
|
|
rowGroup["LOTQTY"] = r;
|
|
}
|
|
}
|
|
}
|
|
|
|
//如果是单件管控 数量为0
|
|
if (txtINVCONTROLTYPE.Text != "")
|
|
{
|
|
if (txtINVCONTROLTYPE.Text=="单件管控")
|
|
{
|
|
rowGroup["LOTQTY"] = 0;
|
|
}
|
|
}
|
|
rowGroup["PRODUCTDATE"] = Convert.ToDateTime("1991-1-1");
|
|
rowGroup["VENDORITEMCODE"] = "";
|
|
rowGroup["VenderLotNO"] = "";
|
|
if (data.Rows[0][0].ToString() != "")
|
|
{
|
|
rowGroup["INVDESC"] = data.Rows[0][0].ToString();
|
|
}
|
|
rowGroup["MUSERName"] = AppConfig.UserName;
|
|
rowGroup["MTIME"] = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss").ToString();
|
|
dd.Rows.Add(rowGroup);
|
|
|
|
}
|
|
#endregion
|
|
|
|
grdDetail.DataSource = dd;
|
|
if(txtINVCONTROLTYPE.Text=="单件管控")
|
|
{
|
|
btnModify_Click(null,null);
|
|
}
|
|
}
|
|
catch(Exception ex)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region ICSITEMLot表中数据查询
|
|
public DataTable Dtable()
|
|
{
|
|
string sql = @"select '' as coSelect,INVDESC,a.* from ICSITEMLOT as a,ICSINVENTORY as b where a.TransNO='" + btnSTNO.Text + "' and a.TransLine='" + comNUM.Text + "' and a.ItemCode=b.INVCODE and a.WorkPoint='" + AppConfig.WorkPointCode + "' and b.WorkPoint='" + AppConfig.WorkPointCode + "' order by LotNO,LOTQTY";
|
|
sql = string.Format(sql);
|
|
DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
|
|
return data;
|
|
}
|
|
#endregion
|
|
|
|
#region 页面初始加载事件
|
|
private void gridView3_Load(object sender, EventArgs e)
|
|
{
|
|
grdDetail.DataSource = "";
|
|
grdDetail.DataSource=Dtable();
|
|
|
|
//统计已维护过的[合格数量]的和
|
|
if (btnSTNO.Text != "" && comNUM.Text!="")
|
|
{
|
|
int s = 0;
|
|
string str = "select LOTQTY from ICSITEMLot where TransNO='" + btnSTNO.Text + "' and TransLine='" + comNUM.Text + "'";
|
|
str = string.Format(str);
|
|
DataTable dat = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, str).Tables[0];
|
|
foreach (DataRow dr in dat.Rows)
|
|
{
|
|
s += int.Parse(dr[0].ToString().Split('.')[0].ToString());
|
|
}
|
|
labMAIN.Text = s.ToString();
|
|
}
|
|
|
|
if (txtINVCONTROLTYPE.Text == "单件管控")
|
|
{
|
|
NODE(null, 0);
|
|
}
|
|
gv3.BestFitColumns();
|
|
}
|
|
#endregion
|
|
|
|
#region [单件管控]生成序列号
|
|
private void simpleButton1_Click(object sender, EventArgs e)
|
|
{
|
|
if (radNUM.Checked == true && txtNUM.Text != "")
|
|
{
|
|
NODE(txtNUM.Text,0);
|
|
gridView3_Load(null, null);
|
|
}
|
|
if (radBEGNUM.Checked == true && txtBEGNUM.Text != "" && txtCOUNT.Text!="")
|
|
{
|
|
NODE(txtBEGNUM.Text,int.Parse(txtCOUNT.Text));
|
|
gridView3_Load(null, null);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 保存
|
|
private void btnModify_Click(object sender, EventArgs e)
|
|
{
|
|
int h = 0;
|
|
int s = int.Parse(labMAIN.Text);
|
|
List<string> lotlist = new List<string>();
|
|
//统计所选项的[合格数量]的和
|
|
for (int n = 0; n < Dtable().Rows.Count; n++)
|
|
{
|
|
if (Dtable().Rows[n]["ItemCode"].ToString() == txtITEMCODE.Text)
|
|
{
|
|
if (txtQualifyQTY.Text != "")
|
|
{
|
|
h += int.Parse(Dtable().Rows[n]["LOTQTY"].ToString().Split('.')[0].ToString());
|
|
}
|
|
}
|
|
}
|
|
|
|
if (s+h <= int.Parse(txtQualifyQTY.Text.Split('.')[0]))
|
|
{
|
|
if (txtINVCONTROLTYPE.Text == "单件管控")
|
|
{
|
|
lotlist.Add( gv3.GetRowCellValue(Dtable().Rows.Count,LotNO).ToString());
|
|
if (SaveBool(lotlist) == true)
|
|
{
|
|
Save(Dtable().Rows.Count);
|
|
}
|
|
}
|
|
if (txtINVCONTROLTYPE.Text == "批次管控")
|
|
{
|
|
int l = 0;
|
|
for (int n = 0; n < gv3.RowCount; n++)
|
|
{
|
|
if (gv3.GetRowCellValue(n, coSelect).ToString() == "Y")
|
|
{
|
|
lotlist.Add(gv3.GetRowCellValue(n, LotNO).ToString());
|
|
|
|
|
|
l += int.Parse(gv3.GetRowCellValue(n, LOTQTY).ToString().Split('.')[0].ToString());
|
|
}
|
|
|
|
}
|
|
bool b=SaveBool(lotlist);
|
|
if (b == true)
|
|
{
|
|
for (int n = 0; n < gv3.RowCount; n++)
|
|
{
|
|
if (gv3.GetRowCellValue(n, coSelect).ToString() == "Y")
|
|
{
|
|
Save(n);
|
|
}
|
|
}
|
|
//修改到货单 入库数量
|
|
|
|
string sql = @"update ICSINVReceiptDetail set ACTQTY+='" + l + "' where ReceiptNO='" + btnSTNO.Text + "' and ReceiptLine='" + comNUM.Text + "' and WorkPoint='" + AppConfig.WorkPointCode + "'";
|
|
sql = string.Format(sql);
|
|
DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql);
|
|
|
|
ICSBaseSimpleCode.AppshowMessageBox("操作成功!");
|
|
gridView3_Load(null, null);
|
|
}
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("该物料维护的数量已大于此物料的[合格数量]");
|
|
}
|
|
}
|
|
|
|
public bool SaveBool(List<string> lotlist)
|
|
{
|
|
bool savebool = true;
|
|
string st = "select LotNO from ICSITEMLot where WorkPoint='" + AppConfig.WorkPointCode + "' ";
|
|
st = string.Format(st);
|
|
DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, st).Tables[0];
|
|
for (int i = 0; i < lotlist.Count; i++)
|
|
{
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
string a = lotlist[i].ToString();
|
|
string b = dr[0].ToString();
|
|
if (lotlist[i].ToString() == dr[0].ToString())
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("序列号已存在!");
|
|
savebool = false;
|
|
}
|
|
|
|
}
|
|
}
|
|
return savebool;
|
|
}
|
|
|
|
public void Save(int n)
|
|
{
|
|
|
|
string sql = @"select ReceiptNO,ReceiptLine from ICSINVReceiptDetail where ITEMCODE='" + txtITEMCODE.Text + "' and WorkPoint='" + AppConfig.WorkPointCode + "'";
|
|
sql = string.Format(sql);
|
|
DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
|
|
//保存
|
|
ICSITEMLot itemlot = new ICSITEMLot();
|
|
itemlot.ID = AppConfig.GetGuid();
|
|
itemlot.LotNO = gv3.GetRowCellValue(n, LotNO).ToString();
|
|
itemlot.ItemCode = txtITEMCODE.Text;
|
|
itemlot.TransNO = btnSTNO.Text;
|
|
//itemlot.TransLine = int.Parse(comNUM.Text);
|
|
itemlot.TransLine = comNUM.Text;
|
|
itemlot.VENDORITEMCODE = gv3.GetRowCellValue(n, VENDORITEMCODE).ToString();
|
|
itemlot.VenderLotNO = gv3.GetRowCellValue(n, VenderLotNO).ToString();
|
|
if (gv3.GetRowCellValue(n, PRODUCTDATE).ToString() != "")
|
|
{
|
|
itemlot.PRODUCTDATE = Convert.ToDateTime(gv3.GetRowCellValue(n, PRODUCTDATE).ToString());
|
|
}
|
|
else
|
|
{
|
|
itemlot.PRODUCTDATE = Convert.ToDateTime("1900-1-1");
|
|
}
|
|
|
|
if (gv3.GetRowCellValue(n, LOTQTY).ToString() != "")
|
|
{
|
|
itemlot.LOTQTY = int.Parse(gv3.GetRowCellValue(n, LOTQTY).ToString().Split('.')[0].ToString());
|
|
}
|
|
itemlot.ACTIVE = "Y";
|
|
itemlot.Exdate = Convert.ToDateTime("2999-12-31");
|
|
itemlot.WorkPoint = AppConfig.WorkPointCode;
|
|
itemlot.MUSER = AppConfig.UserCode;
|
|
itemlot.MUSERName = AppConfig.UserName;
|
|
itemlot.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
|
|
ICSITEMLOTBLL.AddandEdit(itemlot, AppConfig.AppConnectString);
|
|
}
|
|
#endregion
|
|
|
|
#region 过滤
|
|
private string tempTableName = "";
|
|
private void btnFilter_Click(object sender, EventArgs e)
|
|
{
|
|
FormFilter filter = new FormFilter(AppConfig.GetSourceId(this.Tag.ToString(), btnConfig.Name));
|
|
filter.OldTempTableName = tempTableName;
|
|
DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在查找...请稍等...");
|
|
try
|
|
{
|
|
// string lotno = "LOT" + AppConfig.GetSeverDateTime("yyyy-MM-dd").ToString("yyyyMMdd");
|
|
// lotno = AppConfig.GetSerialCode(AppConfig.FrameConnectString, AppConfig.WorkPointCode, "ITEMLot", "LotNO", lotno, 4);
|
|
|
|
|
|
|
|
_wait.Show();
|
|
tempTableName = filter.NewTempTableName;
|
|
sqltxt = filter.SqlText;
|
|
sqlconn = filter.FilterConnectString;
|
|
dataSource = filter.FilterData.Tables[0];
|
|
|
|
DataTable dt = new DataTable();
|
|
//DataRow dn = dm.NewRow();
|
|
foreach (DataRow dr in dataSource.Rows)
|
|
{
|
|
string sql = "select SERIALNO from ICSITEMLotDetail where WorkPoint='"+AppConfig.WorkPointCode+"' and LotNO='"+dr["LotNO"]+"'";
|
|
sql = string.Format(sql);
|
|
DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
|
|
if (data.Rows.Count != 0)
|
|
{
|
|
dt.Rows.Add(dr);
|
|
}
|
|
}
|
|
|
|
// DATASET 中必须要有主表和子表
|
|
//filter.FilterData.Tables.Add(dt);
|
|
|
|
|
|
|
|
//建立主要和子表之间的关系列
|
|
DataRelation drl = new DataRelation("物料批号", new DataColumn[] { filter.FilterData.Tables[0].Columns["LotNO"] }, new DataColumn[] { filter.FilterData.Tables[1].Columns["PRONUM"] }); //new一个表关系,绑定2个表的键
|
|
filter.FilterData.Relations.Add(drl);
|
|
|
|
|
|
grdDetail.DataSource = dataSource;
|
|
|
|
_wait.Close();
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
_wait.Close();
|
|
}
|
|
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 删除
|
|
private void btnDel_Click(object sender, EventArgs e)
|
|
{
|
|
string lot = "";
|
|
List<int> count = new List<int>();
|
|
List<string> codeList = new List<string>();
|
|
List<string> node = new List<string>();
|
|
List<string> no = new List<string>();
|
|
|
|
for (int i = 0; i < gridView4.RowCount; i++)
|
|
{
|
|
if (gridView4.GetRowCellValue(i, colSelect).ToString() == "True")
|
|
{
|
|
node.Add(gridView4.GetRowCellValue(i, PRONUM).ToString());
|
|
no.Add(gridView4.GetRowCellValue(i, colLotNO).ToString());
|
|
}
|
|
}
|
|
|
|
if (node.Count != 0)
|
|
{
|
|
if (node.Count == 0 || node == null)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("请选择数据");
|
|
return;
|
|
|
|
}
|
|
if (ICSBaseSimpleCode.AppshowMessageBoxRepose("确定删除该条物料追溯信息吗?信息删除后无法恢复,确定吗?") != DialogResult.OK)
|
|
{
|
|
btnCancelAll_Click(sender, e);
|
|
return;
|
|
}
|
|
try
|
|
{
|
|
ICSITEMLOTBLL.Detaildelete(node, AppConfig.AppConnectString);
|
|
|
|
for (int i = 0; i < node.Count;i++ )
|
|
{
|
|
string st = "update ICSITEMLot set LOTQTY-='" + 1 + "' where WorkPoint='" + AppConfig.WorkPointCode + "' and LotNO='" + no[i].ToString() + "'";
|
|
st = string.Format(st);
|
|
DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, st);
|
|
|
|
SysSave(node[i],1);//删除Sys_Sys_HisSerailCodes表
|
|
|
|
string sql = @"update ICSINVReceiptDetail set ACTQTY-='" + 1 + "' where ReceiptNO='" + btnSTNO.Text + "' and ReceiptLine='" + comNUM.Text + "' and WorkPoint='" + AppConfig.WorkPointCode + "'";
|
|
sql = string.Format(sql);
|
|
DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
|
|
}
|
|
}
|
|
|
|
for (int i = 0; i < gv3.RowCount; i++)
|
|
{
|
|
if (gv3.GetRowCellValue(i, coSelect).ToString() == "Y")
|
|
{
|
|
codeList.Add(gv3.GetRowCellValue(i, ID).ToString());
|
|
lot = gv3.GetRowCellValue(i, LotNO).ToString();
|
|
string sql = @"select * from ICSITEMLotDetail where LotNO='" + lot + "' and WorkPoint='" + AppConfig.WorkPointCode + "'";
|
|
sql = string.Format(sql);
|
|
count.Add(DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0].Rows.Count);
|
|
}
|
|
}
|
|
if (codeList.Count != 0)
|
|
{
|
|
if (codeList.Count == 0 || codeList == null)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("请选择数据");
|
|
return;
|
|
|
|
}
|
|
foreach (int i in count)
|
|
{
|
|
if (i > 0)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("请先删除从表中的数据再删除主表!");
|
|
return;
|
|
}
|
|
}
|
|
if (ICSBaseSimpleCode.AppshowMessageBoxRepose("确定删除该条物料追溯信息吗?信息删除后无法恢复,确定吗?") != DialogResult.OK)
|
|
{
|
|
btnCancelAll_Click(sender, e);
|
|
return;
|
|
}
|
|
try
|
|
{
|
|
ICSITEMLOTBLL.delete(codeList, AppConfig.AppConnectString);
|
|
|
|
for (int i = 0; i < gv3.RowCount; i++)
|
|
{
|
|
if (gv3.GetRowCellValue(i, coSelect).ToString() == "Y")
|
|
{
|
|
lot = gv3.GetRowCellValue(i, LotNO).ToString();
|
|
int lotqty = int.Parse(gv3.GetRowCellValue(i, LOTQTY).ToString().Split('.')[0].ToString());
|
|
SysSave(lot, 1);//删除Sys_Sys_HisSerailCodes表
|
|
|
|
string sql = @"update ICSINVReceiptDetail set ACTQTY-='" + lotqty + "' where ReceiptNO='" + btnSTNO.Text + "' and ReceiptLine='" + comNUM.Text + "' and WorkPoint='" + AppConfig.WorkPointCode + "'";
|
|
sql = string.Format(sql);
|
|
DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql);
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
|
|
}
|
|
|
|
}
|
|
|
|
gridView3_Load(null, null);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 双击事件
|
|
private void gridControl1_DoubleClick(object sender, EventArgs e)
|
|
{
|
|
if (gv3.FocusedRowHandle < 0)
|
|
{
|
|
return;
|
|
}
|
|
if (gv3.FocusedColumn == coSelect)
|
|
{
|
|
string m = gv3.GetRowCellValue(gv3.FocusedRowHandle, LotNO).ToString();
|
|
if (gv3.GetRowCellValue(gv3.FocusedRowHandle, coSelect).ToString() == "")
|
|
{
|
|
gv3.SetRowCellValue(gv3.FocusedRowHandle, coSelect, "Y");
|
|
for (int i = 0; i < gridView4.RowCount; i++)
|
|
{
|
|
if (gridView4.GetRowCellValue(i, colLotNO).ToString() == gv3.GetRowCellValue(gv3.FocusedRowHandle, LotNO).ToString())
|
|
{
|
|
gridView4.SetRowCellValue(i,colSelect,true);
|
|
}
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
gv3.SetRowCellValue(gv3.FocusedRowHandle, coSelect, "");
|
|
for (int i = 0; i < gridView4.RowCount; i++)
|
|
{
|
|
if (gridView4.GetRowCellValue(i, colLotNO).ToString() == gv3.GetRowCellValue(gv3.FocusedRowHandle, LotNO).ToString())
|
|
{
|
|
gridView4.SetRowCellValue(i, colSelect, false);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 获取焦点
|
|
private void radACOUNTMIN_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
if (radACOUNTMIN.Text == "True")
|
|
{
|
|
txtCOUNTMIN.Focus();
|
|
}
|
|
}
|
|
|
|
private void radBEGNUM_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
if (radBEGNUM.Text == "True")
|
|
{
|
|
txtBAGNUM.Focus();
|
|
}
|
|
}
|
|
|
|
private void radNUM_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
if (radNUM.Text == "True")
|
|
{
|
|
txtNUM.Focus();
|
|
}
|
|
}
|
|
|
|
private void radBAGNUM_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
if (radBAGNUM.Text == "True")
|
|
{
|
|
txtBAGNUM.Focus();
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 主子节点 显示 及 保存操作
|
|
public void NODE(string str,int count)
|
|
{
|
|
bool p;
|
|
DataTable dt = new DataTable();
|
|
dt.TableName = "Sub";
|
|
dt.Columns.Add("colSelect");
|
|
dt.Columns["colSelect"].DataType=typeof(bool);
|
|
dt.Columns.Add("PRONUM");
|
|
dt.Columns.Add("colLotNO");
|
|
dt.Columns["PRONUM"].Caption = "序列号";
|
|
dt.Columns["colSelect"].Caption = "选择";
|
|
dt.Columns["colLotNO"].Caption = "批次";
|
|
|
|
foreach (DataRow dr in Dtable().Rows)
|
|
{
|
|
string m = dr["LotNO"].ToString();
|
|
string st = "select SERIALNO,LotNO from ICSITEMLotDETAIL where WorkPoint='" + AppConfig.WorkPointCode + "' and LotNO='" + dr["LotNO"].ToString() + "' order by SERIALNO";
|
|
st = string.Format(st);
|
|
DataTable da = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, st).Tables[0];
|
|
for (int i = 0; i < da.Rows.Count;i++ )
|
|
{
|
|
DataRow dn = dt.NewRow();
|
|
dn["colSelect"] = false;
|
|
dn["PRONUM"] = da.Rows[i]["SERIALNO"];
|
|
dn["colLotNO"] = da.Rows[i]["LotNO"];
|
|
dt.Rows.Add(dn);
|
|
}
|
|
}
|
|
|
|
#region 选择数量 生成序列号
|
|
if (count != 0)
|
|
{
|
|
String id = "";
|
|
List<string> editList = new List<string>();
|
|
for (int i = 0; i < gv3.RowCount; i++)
|
|
{
|
|
if (gv3.GetRowCellValue(i, coSelect).ToString() == "Y")
|
|
{
|
|
id = gv3.GetRowCellValue(i, LotNO).ToString();
|
|
editList.Add(id);
|
|
}
|
|
}
|
|
if (editList.Count != 1)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("请选择数据,且只能选择一条进行编辑!!!");
|
|
return;
|
|
}
|
|
try
|
|
{
|
|
string num = txtBEGNUM.Text;
|
|
for (int i = 0; i < count; i++)
|
|
{
|
|
|
|
string lotnum = id + num;
|
|
DataRow dn = dt.NewRow();
|
|
dn["colSelect"] = true;
|
|
dn["PRONUM"] = lotnum;
|
|
dn["colLotNO"] = id;
|
|
dt.Rows.Add(dn);
|
|
|
|
p=save(lotnum,id,txtITEMCODE.Text);//保存
|
|
num = (int.Parse(num) + 1).ToString().PadLeft(5, '0');//序列号递增
|
|
if (p == true)
|
|
{
|
|
SysSave(lotnum,0);//再次保存至Sys_Sys_HisSerailCodes表
|
|
|
|
string sql = @"update ICSINVReceiptDetail set ACTQTY+='" + 1 + "' where ReceiptNO='" + btnSTNO.Text + "' and ReceiptLine='" + comNUM.Text + "' and WorkPoint='" + AppConfig.WorkPointCode + "'";
|
|
sql = string.Format(sql);
|
|
DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql);
|
|
|
|
string st = "update ICSITEMLot set LOTQTY+='" + 1 + "' where WorkPoint='" + AppConfig.WorkPointCode + "' and LotNO='" + dn["colLotNO"] + "'";
|
|
st = string.Format(st);
|
|
DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, st);
|
|
}
|
|
gridView3_Load(null, null);
|
|
|
|
}
|
|
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 不选择数量 生成序列号
|
|
if(count==0 && str!=null) //不选择数量
|
|
{
|
|
String id = "";
|
|
List<string> editList = new List<string>();
|
|
for (int i = 0; i < gv3.RowCount; i++)
|
|
{
|
|
if (gv3.GetRowCellValue(i, coSelect).ToString() == "Y")
|
|
{
|
|
id = gv3.GetRowCellValue(i, LotNO).ToString();
|
|
editList.Add(id);
|
|
}
|
|
}
|
|
if (editList.Count != 1)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("请选择数据,且只能选择一条进行编辑!!!");
|
|
return;
|
|
}
|
|
try
|
|
{
|
|
DataRow dn = dt.NewRow();
|
|
dn["colSelect"] = true;
|
|
dn["PRONUM"] = str;
|
|
dn["colLotNO"] = id;
|
|
dt.Rows.Add(dn);
|
|
|
|
p=save(str,id,txtITEMCODE.Text);
|
|
|
|
if (p == true)
|
|
{
|
|
SysSave(str,0);//再次保存至Sys_Sys_HisSerailCodes表
|
|
|
|
string st = "update ICSITEMLot set LOTQTY+='" + 1 + "' where WorkPoint='" + AppConfig.WorkPointCode + "' and LotNO='" + dn["colLotNO"] + "'";
|
|
st = string.Format(st);
|
|
DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, st);
|
|
|
|
string sql = @"update ICSINVReceiptDetail set ACTQTY+='" + 1 + "' where ReceiptNO='" + btnSTNO.Text + "' and ReceiptLine='" + comNUM.Text + "' and WorkPoint='" + AppConfig.WorkPointCode + "'";
|
|
sql = string.Format(sql);
|
|
DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql);
|
|
}
|
|
gridView3_Load(null,null);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
|
|
}
|
|
#endregion
|
|
|
|
}
|
|
DataTable dm = new DataTable();
|
|
dm = Dtable().Copy();
|
|
|
|
// DATASET 中必须要有主表和子表
|
|
DataSet ds = new DataSet();
|
|
ds.Tables.Add(dm);
|
|
ds.Tables.Add(dt);
|
|
|
|
//gridView3.DataSource = ds;
|
|
//建立主要和子表之间的关系列
|
|
DataRelation drl = new DataRelation("物料批号",new DataColumn[]{ds.Tables[0].Columns["LotNO"] },new DataColumn[]{ ds.Tables[1].Columns["colLotNO"]} ); //new一个表关系,绑定2个表的键
|
|
ds.Relations.Add(drl);
|
|
|
|
grdDetail.DataSource = dm;
|
|
|
|
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 按 回车键 显示及保存 序列号
|
|
private void txtNUM_KeyPress(object sender, KeyPressEventArgs e)
|
|
{
|
|
if (e.KeyChar == 13)
|
|
{
|
|
if (radNUM.Checked == true && txtNUM.Text != "")
|
|
{
|
|
NODE(txtNUM.Text, 0);
|
|
gridView3_Load(null,null);
|
|
}
|
|
}
|
|
}
|
|
private void txtCOUNT_KeyPress(object sender, KeyPressEventArgs e)
|
|
{
|
|
if (e.KeyChar == 13)
|
|
{
|
|
if (radBEGNUM.Checked == true && txtBEGNUM.Text != "" && txtCOUNT.Text != "")
|
|
{
|
|
NODE(txtBEGNUM.Text, int.Parse(txtCOUNT.Text));
|
|
gridView3_Load(null, null);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void txtBEGNUM_KeyPress(object sender, KeyPressEventArgs e)
|
|
{
|
|
|
|
if (e.KeyChar == 13)
|
|
{
|
|
if (!rex.Match(txtBEGNUM.Text).Success || int.Parse(txtBEGNUM.Text) > 99999)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("[数量]是正整数!");
|
|
return;
|
|
}
|
|
if (radBEGNUM.Checked == true && txtBEGNUM.Text != "" && txtCOUNT.Text != "")
|
|
{
|
|
NODE(txtBEGNUM.Text, int.Parse(txtCOUNT.Text));
|
|
gridView3_Load(null, null);
|
|
}
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 保存 子节点 数据
|
|
public bool save(string sertalno,string LotNO,string mcode)
|
|
{
|
|
if (radNUM.Checked == true)
|
|
{
|
|
if (txtNUM.Text == "")
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("不可为空!");
|
|
return false;
|
|
}
|
|
if (!rex.Match(txtNUM.Text).Success || int.Parse(txtNUM.Text) > 99999)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("[序列号]是小于六位的正整数!");
|
|
return false;
|
|
}
|
|
}
|
|
if (radBEGNUM.Checked == true)
|
|
{
|
|
if (txtBEGNUM.Text == "" && txtCOUNT.Text == "")
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("不可为空!");
|
|
return false;
|
|
}
|
|
if (!rex.Match(txtBEGNUM.Text).Success || int.Parse(txtCOUNT.Text) > 99999)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("[起始序列号]是小于六位正整数!");
|
|
return false;
|
|
}
|
|
if (!rex.Match(txtCOUNT.Text).Success)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("[数量]只能输入正整数!");
|
|
return false;
|
|
}
|
|
}
|
|
string st = "select SERIALNO from ICSITEMLotDETAIL where WorkPoint='" + AppConfig.WorkPointCode + "' ";
|
|
st = string.Format(st);
|
|
DataTable dt= DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, st).Tables[0];
|
|
foreach(DataRow dr in dt.Rows)
|
|
{
|
|
if (sertalno == dr[0].ToString())
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("序列号已存在!");
|
|
return false;
|
|
}
|
|
|
|
}
|
|
ICSITEMLotDetail itemlotd = new ICSITEMLotDetail();
|
|
itemlotd.ID = AppConfig.GetGuid();
|
|
itemlotd.SERIALNO = sertalno;
|
|
itemlotd.LotNO = LotNO;
|
|
itemlotd.ItemCode = mcode;
|
|
itemlotd.StorageCODE = "";
|
|
itemlotd.StackCODE = "";
|
|
itemlotd.SerialStatus = "不在库";
|
|
itemlotd.WorkPoint = AppConfig.WorkPointCode;
|
|
itemlotd.MUSER = AppConfig.UserCode;
|
|
itemlotd.MUSERName = AppConfig.UserName;
|
|
itemlotd.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
|
|
|
|
ICSITEMLOTBLL.DetailAddandEdit(itemlotd,AppConfig.AppConnectString);
|
|
return true;
|
|
}
|
|
#endregion
|
|
|
|
#region 页面编辑
|
|
private void gridView3_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
|
|
{
|
|
if(e.Column.FieldName=="LotNO"||e.Column.FieldName=="ItemCode"||e.Column.FieldName=="MUSERName"||e.Column.FieldName=="MTIME"||e.Column.FieldName=="PRODUCTDATE"
|
|
||e.Column.FieldName=="INVDESC"|| e.Column.FieldName == "LOTQTY")
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("此列不可编辑!");
|
|
gridView3_Load(null, null);
|
|
}
|
|
}
|
|
|
|
private void gridView3_ShowingEditor(object sender, CancelEventArgs e)
|
|
{
|
|
if (gv3.FocusedColumn.FieldName == "coSelect")
|
|
{
|
|
e.Cancel = true;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
private void gridView3_MasterRowExpanded(object sender, DevExpress.XtraGrid.Views.Grid.CustomMasterRowEventArgs e)
|
|
{
|
|
gridView4 = gv3.GetDetailView(e.RowHandle, e.RelationIndex) as DevExpress.XtraGrid.Views.Grid.GridView;
|
|
if (gridView4 != null)
|
|
{
|
|
gridView4.Columns["colLotNO"].Visible = false; //gridView4就是子View,设置LotNO 列为隐藏
|
|
gridView4.BestFitColumns();
|
|
}
|
|
|
|
}
|
|
|
|
#region 保存数据至Sys_HisSerailCodes表
|
|
public void SysSave(string lotno,int n)
|
|
{
|
|
if (n == 0)
|
|
{
|
|
string st = "insert into Sys_HisSerailCodes values('" + AppConfig.GetGuid() + "','" + AppConfig.WorkPointCode + "','ICSITEMLotDETAIL','LotNO','" + lotno + "') ";
|
|
st = string.Format(st);
|
|
DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, st);
|
|
}
|
|
if (n == 1)
|
|
{
|
|
string st = "delete Sys_HisSerailCodes where FiledName='LotNO' and MValue='"+lotno+"' and WorkPointCode= '" + AppConfig.WorkPointCode + "' ";
|
|
st = string.Format(st);
|
|
DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, st);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
}
|
|
}
|