using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using gregn6Lib; using Pub_Class; using System.Threading; namespace WarM { public partial class Gy_BarCodeBill : Form { public Gy_BarCodeBill() { InitializeComponent(); } //定义 public const Int16 HTagCol = 0; public const Int16 HSnoCol = 1; public const Int16 HMainIDCol = 2; public const Int16 HSubIDCol = 3; public const Int16 HBillNoCol = 4; public const Int16 HBillTypeCol = 5; public const Int16 HMaterIDCol = 6; public const Int16 HMaterNumberCol = 7; public const Int16 HMaterNameCol = 8; public const Int16 HPinfanCol = 9;// public const Int16 HMaterModelCol = 10;// public const Int16 HModelCol = 11; public const Int16 HAuxPropIDCol = 12; public const Int16 HAuxPropNumberCol = 13; public const Int16 HAuxPropNameCol = 14; public const Int16 HUnitIDCol = 15; public const Int16 HUnitNumberCol = 16; public const Int16 HUnitNameCol = 17; public const Int16 HBarCodeTypeCol = 18; public const Int16 HBatchManagerCol = 19; public const Int16 HBatchNoCol = 20; public const Int16 HGiveAwayFlagCol = 21; public const Int16 HQtyCol = 22; public const Int16 HMinQtyCol = 23; public const Int16 HBQtyCol = 24; public const Int16 HPackQtyCol = 25; public const Int16 HDeptIDCol = 26; public const Int16 HDeptNumberCol = 27; public const Int16 HDeptNameCol = 28; public const Int16 HSourceIDCol = 29; public const Int16 HSourceNumberCol = 30; public const Int16 HSourceNameCol = 31; public const Int16 HDateCol = 32; public const Int16 HEndDateCol = 33; public const Int16 HSupIDCol = 34; public const Int16 HSupNumberCol = 35; public const Int16 HSupNameCol = 36; public const Int16 HCusIDCol = 37; public const Int16 HCusNumberCol = 38; public const Int16 HCusNameCol = 39; public const Int16 HCusTypeCol = 40; public const Int16 HSourceInterIDCol = 41; public const Int16 HSourceEntryIDCol = 42; public const Int16 HSourceBillNoCol = 43; public const Int16 HSourceBillTypeCol = 44; public const Int16 HInstructIDCol = 45; public const Int16 HInstructNoCol = 46; public const Int16 HSeOrderBillIDCol = 47; public const Int16 HSeOrderBillNoCol = 48; public const Int16 HSeOrderSEQCol = 49; public const Int16 HWhIDCol = 50; public const Int16 HWhNumberCol = 51; public const Int16 HWhNameCol = 52; public const Int16 HSPIDCol = 53; public const Int16 HSPNumberCol = 54; public const Int16 HSPNameCol = 55; public const Int16 HinitQtyCol = 56; public const Int16 HRemarkCol = 57; public const Int16 HPinfanBarCodeCol = 58; public const Int16 HMTONoCol = 59; public const Int16 HShowDateCol = 60; public const Int16 HInnerBillNoCol = 61; public const Int16 HMakerCol = 62; public Int16 HSelectCol = 0; public Int16 HSno2Col = 1; public Int16 HTMCol = 2; public Int16 HBarCodeType2Col = 3; public Int16 HMaterID2Col = 4; public Int16 HMaterNumber2Col = 5; public Int16 HMaterName2Col = 6; public Int16 HPinfan2Col = 7; public Int16 HMaterModel2Col = 8; public Int16 HModel2Col = 9; public Int16 HAuxPropID2Col = 10; public Int16 HAuxPropNumber2Col = 11; public Int16 HAuxPropName2Col = 12; public Int16 HBatchNo2Col = 13; public Int16 HGiveAwayFlag2Col = 14; public Int16 HUnitID2Col = 15; public Int16 HUnitNumber2Col = 16; public Int16 HUnitName2Col = 17; public Int16 HQty2Col = 18; public Int16 HWeiCol = 19; public Int16 HPrintCol = 20; public Int16 HDeptID2Col = 21; public Int16 HDeptNumber2Col = 22; public Int16 HDeptName2Col = 23; public Int16 HSourceID2Col = 24; public Int16 HSourceNumber2Col = 25; public Int16 HSourceName2Col = 26; public Int16 HDate2Col = 27; public Int16 HEndDate2Col = 28; public Int16 HBarcodeNoCol = 29; public Int16 HBarcodeQtysCol = 30; public Int16 HSupID2Col = 31; public Int16 HSupNumber2Col = 32; public Int16 HSupName2Col = 33; public Int16 HCusID2Col = 34; public Int16 HCusNumber2Col = 35; public Int16 HCusName2Col = 36; public Int16 HCusType2Col = 37; public Int16 HSourceInterID2Col = 38; public Int16 HSourceEntryID2Col = 39; public Int16 HSourceBillNo2Col = 40; public Int16 HSourceBillType2Col = 41; public Int16 HInstructID2Col = 42; public Int16 HInstructNo2Col = 43; public Int16 HSeOrderBillID2Col = 44; public Int16 HSeOrderBillNo2Col = 45; public Int16 HSeOrderSEQ2Col = 46; public Int16 HWhID2Col = 47; public Int16 HWhNumber2Col = 48; public Int16 HWhName2Col = 49; public Int16 HSPID2Col = 50; public Int16 HSPNumber2Col = 51; public Int16 HSPName2Col = 52; public Int16 HRemark2Col = 53; public Int16 HPinfanBarCode2Col = 54; public Int16 HMTONo2Col = 55; public Int16 HShowDate2Col = 56; public Int16 HInnerBillNo2Col = 57; public Int16 HMaker2Col = 58; public Int16 HEntryID2Col = 59; // public string ModName = "85"; public string ModCaption = "条码生成"; public bool BillChange; // public DBUtility.ClsPub.Enum_BillStatus BillStatus; public DBUtility.ClsXt_BaseBill BaseBill; //public WarM.WMSWeb.WebService1 oWeb = new WarM.WMSWeb.WebService1(); public Int64 KeyID; public bool grdStatus; //public DAL.ClsGy_BarCodeBill BillNew =new DAL.ClsGy_BarCodeBill(); //public DAL.ClsGy_BarCodeBill BillOld = new DAL.ClsGy_BarCodeBill(); public DAL.ClsGy_BarCodeBill_Ctl oBar = new DAL.ClsGy_BarCodeBill_Ctl(); ClsGridViewSum oSumGrid = new ClsGridViewSum(); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); public int selectRow = 0; public int selectRow2 = 0; public Int64 HInterID = 0; //内码 public Int64 HOrgID = -1; public string HOrgNumber = ""; public string ERPMode = ""; //ERP模式(WISE、CLOUD) public string CampanyName = ""; //客户定制化名称 public string SourceQtyCtl = ""; //超源单数量控制 public long PrintQty = 0; //允许条码打印次数 public string PrintQtyCtl = ""; //条码打印次数控制 public string UpdatePrintQtyCtl = ""; //条码打印次数更新 //------------------------------------------------------------------------- #region 固定代码 //清空界面 public void Sub_ClearBill() { ////表体清空 //grdMain.Rows.Clear(); //grdSub.Rows.Clear(); cmbHBarCodeType.Items.Clear(); cmbSourceBillType.Items.Clear(); //根据系统参数获取对应的条码类型(夏宝电器、博日 以后使用条码规则表) ClsXt_SystemParameter oClsXt_SystemParameter = new ClsXt_SystemParameter(); string sCapName = oClsXt_SystemParameter.GetSingleSystemParameter("WMS_CampanyName", ref DBUtility.ClsPub.sExeReturnInfo); if(sCapName=="夏宝电器") { cmbHBarCodeType.Items.Add("内销机条码"); cmbHBarCodeType.Items.Add("外销机条码"); cmbHBarCodeType.Items.Add("半成品条码"); } else if (sCapName == "博日科技") { cmbHBarCodeType.Items.Add("仪器外购件条码普通规则"); cmbHBarCodeType.Items.Add("仪器外购件条码容器规则"); cmbHBarCodeType.Items.Add("仪器成品条码规则"); cmbHBarCodeType.Items.Add("试剂成品条码规则"); } else { // cmbHBarCodeType.Items.Add("唯一条码"); cmbHBarCodeType.Items.Add("品种条码"); cmbHBarCodeType.Items.Add("批次条码"); //cmbHBarCodeType.Items.Add("托盘条码"); } // cmbSourceBillType.Items.Add("生产订单"); cmbSourceBillType.Items.Add("生产汇报单"); cmbSourceBillType.Items.Add("采购订单"); cmbSourceBillType.Items.Add("收料通知单"); cmbSourceBillType.Items.Add("委外订单"); cmbSourceBillType.Items.Add("退货通知单"); cmbSourceBillType.Items.Add("其他入库单"); cmbSourceBillType.Items.Add("直接调拨单"); cmbSourceBillType.Items.Add("采购退料单"); cmbSourceBillType.Items.Add("生产退料单"); cmbSourceBillType.Items.Add("组装拆卸单"); // DBUtility.Xt_BaseBillFun.Sub_ClearBill(gbUp); // DataSet Ds1 = oCn.RunProcReturn("select * from Xt_ORGANIZATIONS with(nolock) where HItemID=" + ClsPub.HOrgID, "Xt_ORGANIZATIONS", ref DBUtility.ClsPub.sExeReturnInfo); if (Ds1.Tables[0].Rows.Count != 0) { cmbHOrgID.Text = DBUtility.ClsPub.isStrNull(Ds1.Tables[0].Rows[0]["HName"]); } // txtHMaker.Text = ClsPub.CurUserName; txtHMakeDate.Text = ""; txtHChecker.Text = ""; txtHCheckDate.Text = ""; txtHCloseMan.Text = ""; txtHCloseDate.Text = ""; txtHDeleteMan.Text = ""; txtHDeleteDate.Text = ""; txtHUpDater.Text = ""; txtHUpDateDate.Text = ""; initGrid(); grdList.DataSource = null; } //保存列宽 private void bclk_Click(object sender, EventArgs e) { DBUtility.Xt_BaseBillFun.SaveGrid(grdMain, this.Name); DBUtility.Xt_BaseBillFun.SaveGrid(grdSub, this.Name + "grdSub"); DBUtility.Xt_BaseBillFun.SaveGrid(grdList, this.Name + "grdList"); } //默认列宽 private void mrlk_Click(object sender, EventArgs e) { DBUtility.Xt_BaseBillFun.DefaultGridView(grdMain, this.Name); DBUtility.Xt_BaseBillFun.DefaultGridView(grdSub, this.Name + "grdSub"); DBUtility.Xt_BaseBillFun.DefaultGridView(grdList, this.Name + "grdList"); } //增行按钮 private void AddRow_Click(object sender, EventArgs e) { DBUtility.Xt_BaseBillFun.AddRow(oSumGrid); } //删行按纽 private void DelRow_Click(object sender, EventArgs e) { DBUtility.Xt_BaseBillFun.DelRow(oSumGrid); } //保存按钮 private void bc_Click(object sender, EventArgs e) { this.Sub_SaveBill(); Display(); } //重置按纽 private void cz_Click(object sender, EventArgs e) { if (BillStatus == DBUtility.ClsPub.Enum_BillStatus.BillStatus_AddNew || BillStatus == DBUtility.ClsPub.Enum_BillStatus.BillStatus_Modify) { if (MessageBox.Show("确定要清空当前界面信息,重置界面?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { this.Sub_AddBill(); } } grdMain.Columns[HBillNoCol].ReadOnly = false; tabControl1.SelectedIndex = 0; } //新增单据 private void Sub_AddBill() { this.BillStatus = DBUtility.ClsPub.Enum_BillStatus.BillStatus_AddNew; this.Sub_OperStatus();//设置TOOLBAR this.Sub_ClearBill();//清空界面 } //退出按钮 private void tc_Click(object sender, EventArgs e) { this.Close(); } //离开单元格 private void grdMain_LeaveCell(object sender, EventArgs e) { oSumGrid.LeaveCell(); } //网格单元格变化事件 private void grdMain_RowColChange(object sender, EventArgs e) { if (!grdStatus) { return; } DBUtility.Xt_BaseBillFun.SetSumGrid(oSumGrid); // //if (oSumGrid.Changelock) // return; //if(oSumGrid.EditStatus) //{ if (!CheckGridRow(oSumGrid.OldCell.Row)) return; //} } private void Gy_BarCodeBill_Paint(object sender, PaintEventArgs e)//画线 { Graphics g = this.panel2.CreateGraphics(); Pen p = new Pen(Color.Gray); p.Width = 1; g.DrawLine(p, new Point(txtHMaker.Left, txtHMaker.Top + txtHMaker.Height), new Point(txtHMaker.Left + txtHMaker.Width, txtHMaker.Top + txtHMaker.Height)); g.DrawLine(p, new Point(txtHMakeDate.Left, txtHMakeDate.Top + txtHMakeDate.Height), new Point(txtHMakeDate.Left + txtHMakeDate.Width, txtHMakeDate.Top + txtHMakeDate.Height)); // g.DrawLine(p, new Point(txtHChecker.Left, txtHChecker.Top + txtHChecker.Height), new Point(txtHChecker.Left + txtHChecker.Width, txtHChecker.Top + txtHChecker.Height)); g.DrawLine(p, new Point(txtHCheckDate.Left, txtHCheckDate.Top + txtHCheckDate.Height), new Point(txtHCheckDate.Left + txtHCheckDate.Width, txtHCheckDate.Top + txtHCheckDate.Height)); // g.DrawLine(p, new Point(txtHCloseMan.Left, txtHCloseMan.Top + txtHCloseMan.Height), new Point(txtHCloseMan.Left + txtHCloseMan.Width, txtHCloseMan.Top + txtHCloseMan.Height)); g.DrawLine(p, new Point(txtHCloseDate.Left, txtHCloseDate.Top + txtHCloseDate.Height), new Point(txtHCloseDate.Left + txtHCloseDate.Width, txtHCloseDate.Top + txtHCloseDate.Height)); // g.DrawLine(p, new Point(this.txtHDeleteMan.Left, txtHDeleteMan.Top + txtHDeleteMan.Height), new Point(txtHDeleteMan.Left + txtHDeleteMan.Width, txtHDeleteMan.Top + txtHDeleteMan.Height)); g.DrawLine(p, new Point(txtHDeleteDate.Left, txtHDeleteDate.Top + txtHDeleteDate.Height), new Point(txtHDeleteDate.Left + txtHDeleteDate.Width, txtHDeleteDate.Top + txtHDeleteDate.Height)); // g.DrawLine(p, new Point(this.txtHUpDater.Left, txtHUpDater.Top + txtHUpDater.Height), new Point(txtHUpDater.Left + txtHUpDater.Width, txtHUpDater.Top + txtHUpDater.Height)); g.DrawLine(p, new Point(txtHUpDateDate.Left, txtHUpDateDate.Top + txtHUpDateDate.Height), new Point(txtHUpDateDate.Left + txtHUpDateDate.Width, txtHUpDateDate.Top + txtHUpDateDate.Height)); //控件位置设置 } //控件位置 private void Sub_ControlLocation() { //gbUp.Width = P1.Width - 20; //gbUp.Left = 10; //gbUp.Height = P1.Height - 35; //gbUp.Top = 30; } //窗体加载 private void Gy_BarCodeBill_Load(object sender, EventArgs e) { //打印初始化 oSumGrid.NoCol = HSnoCol; oSumGrid.ogrdMain = grdMain; oSumGrid.oGridsum = grdSum; this.Text = ModCaption; this.lblCaption.Text = ModCaption; //加载组织信息 Sub_AddOrdList(); //加载工厂代码信息 Sub_AddWorksNumberList(); } //加载组织信息 private void Sub_AddOrdList() { DataSet ds; DAL.ClsGy_ORGANIZATIONS_View oClsGy_ORGANIZATIONS_View = new DAL.ClsGy_ORGANIZATIONS_View(); ds = oClsGy_ORGANIZATIONS_View.GetList(); if (ds == null || ds.Tables[0].Rows.Count == 0) { MessageBox.Show("获取组织失败"); return; } cmbHOrgID.Items.Clear(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { cmbHOrgID.Items.Add(DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[i]["HName"])); } } //加载工厂代码信息 private void Sub_AddWorksNumberList() { //获取系统参数 ClsXt_SystemParameter oSystemParameter = new ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref DBUtility.ClsPub.sExeReturnInfo) == false) { MessageBox.Show("获取系统参数失败!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); return; } else { ERPMode = oSystemParameter.omodel.WMS_WMSStockCtl_ERPMode; CampanyName = oSystemParameter.omodel.WMS_CampanyName; SourceQtyCtl = oSystemParameter.omodel.BarCode_SourceQtyCtl; PrintQty = oSystemParameter.omodel.BarCode_PrintQty; PrintQtyCtl = oSystemParameter.omodel.BarCode_PrintQtyCtl; UpdatePrintQtyCtl = oSystemParameter.omodel.BarCode_UpdatePrintQtyCtl; } cmbHWorksNumber.Items.Clear(); if (CampanyName == "飞龙") //系统参数 客户定制化名称 { cmbHWorksNumber.Items.Add("ZL"); cmbHWorksNumber.Items.Add("ST"); cmbHWorksNumber.Items.Add("SQ"); cmbHWorksNumber.Items.Add("MQ"); } else { cmbHWorksNumber.Items.Add(""); } } //窗体尺寸变化时 private void Gy_BarCodeBill_Resize(object sender, EventArgs e) { //Sub_ControlLocation(); } //根据编辑状态 设置 控件是否允许录入 private void Sub_LrtextStatus(bool TextEnabled) { if (TextEnabled == true) { //控件全部有效 gbUp.Enabled = true; grdMain.BackColor = ClsPub.EditColor; } else { //控件全部无效 gbUp.Enabled = false; grdMain.BackColor = ClsPub.ViewColor; } } //timer private void timer1_Tick(object sender, EventArgs e) { timer1.Enabled = false; Sub_ControlLocation(); if (BillStatus == DBUtility.ClsPub.Enum_BillStatus.BillStatus_View) { //this.Sub_ShowBill(); } else { this.Sub_AddBill(); } DBUtility.Xt_BaseBillFun.SetSumGrid(oSumGrid); } //窗体卸载 private void Gy_BarCodeBill_FormClosing(object sender, FormClosingEventArgs e) { BillStatus = DBUtility.ClsPub.Enum_BillStatus.BillStatus_AddNew; DBUtility.Xt_BaseBillFun.SaveGrid(grdMain, this.Name); } //TOOLBAR状态 按钮是否灰度 public void Sub_OperStatus() { switch (BillStatus) { case DBUtility.ClsPub.Enum_BillStatus.BillStatus_View: //浏览状态 yl.Enabled = true; AddRow.Enabled = false; DelRow.Enabled = false; bc.Enabled = false; cz.Enabled = false; tc.Enabled = true; //未审核 if (txtHChecker.Text.Trim() == "") { //未审核 pic1.Visible = false; pic1.Image = null; // } else if (txtHCloseMan.Text.Trim() == "" && txtHChecker.Text.Trim() != "")//审核未关闭 { // pic1.Visible = true; pic1.Image = System.Drawing.Image.FromFile(ClsPub.AppPath + @"/Pic/Checked.jpg"); // } else//已关闭 { // pic1.Visible = true; pic1.Image = System.Drawing.Image.FromFile(ClsPub.AppPath + @"/Pic/Closed.jpg"); // } if (txtHDeleteMan.Text.Trim() == "") { } else //已作废 { AddRow.Enabled = false; DelRow.Enabled = false; bc.Enabled = false; cz.Enabled = false; // pic1.Visible = true; pic1.Image = System.Drawing.Image.FromFile(ClsPub.AppPath + @"/Pic/Deleted.jpg"); // } Sub_LrtextStatus(false); grdStatus = false; break; case DBUtility.ClsPub.Enum_BillStatus.BillStatus_AddNew: //新增状态 yl.Enabled = true; AddRow.Enabled = true; DelRow.Enabled = true; bc.Enabled = true; cz.Enabled = true; tc.Enabled = true; Sub_LrtextStatus(true); grdStatus = true; //未审核 pic1.Visible = false; pic1.Image = null; // break; case DBUtility.ClsPub.Enum_BillStatus.BillStatus_Modify: //修改状态 yl.Enabled = true; AddRow.Enabled = true; DelRow.Enabled = true; bc.Enabled = true; cz.Enabled = true; tc.Enabled = true; Sub_LrtextStatus(true); grdStatus = true; //未审核 pic1.Visible = false; pic1.Image = null; // break; } } #endregion #region 读写类 //单据完整性判断 未完成 private bool Sub_AllowSave() { ////必输项目是否为空 //if (txtHDeptID.Tag.ToString().Trim() == "0") //{ // MessageBox.Show("生产车间没有选择!", "提示"); // return false; //} //if (txtHGroupID.Tag.ToString().Trim() == "0") //{ // MessageBox.Show("班组没有选择!", "提示"); // return false; //} //单据号是否重复 //if (BillNew.IsExistBillNo(ref ClsPub.sExeReturnInfo, txtHBillNo.Text.Trim(), BillStatus, BillOld.omodel.HInterID)) //{ // MessageBox.Show("单据号重复!", "提示"); // return false; //} //明细表是否为零行 bool b = false; for (int i = 0; i < grdMain.RowCount; i++) { if (!IsNullRow(i)) { b = true; break; } } if (b == false) { MessageBox.Show("明细行不存在!", "提示"); return false; } string sHRemark = ""; for (int j = 0; j < grdMain.Rows.Count; j++) { long HSno = DBUtility.ClsPub.isLong(grdMain.Rows[j].Cells[HSnoCol].Value); // 序号 string HBarCodeType= cmbHBarCodeType.Text; // 条码类型 string HSourceBillNo = DBUtility.ClsPub.isStrNull(grdMain.Rows[j].Cells[HBillNoCol].Value); // 源单单号 long HMaterID = DBUtility.ClsPub.isLong(grdMain.Rows[j].Cells[HMaterIDCol].Value); // 物料内码 string HBatchNo = DBUtility.ClsPub.isStrNull(grdMain.Rows[j].Cells[HBatchNoCol].Value); // 批号 long HAuxPropID = DBUtility.ClsPub.isLong(grdMain.Rows[j].Cells[HAuxPropIDCol].Value); // 辅助属性ID double HSourceQty = DBUtility.ClsPub.isDoule(grdMain.Rows[j].Cells[HinitQtyCol].Value); // 源单数量 double HQty = DBUtility.ClsPub.isDoule(grdMain.Rows[j].Cells[HQtyCol].Value); // 数量 double HMinQty= DBUtility.ClsPub.isDoule(grdMain.Rows[j].Cells[HMinQtyCol].Value); // 最小包装数 if (HMaterID != 0) { DataSet oDsCheck = oCn.RunProcReturn("exec h_p_Gy_BarCodeBill_AddCheck " + HSno.ToString() + ",'" + HBarCodeType + "','" + HSourceBillNo + "'," + HMaterID.ToString() + ",'" + HBatchNo + "'," + HAuxPropID.ToString() + "," + HSourceQty.ToString() + "," + HQty.ToString() + "," + HMinQty.ToString() + "," + HOrgID.ToString() + ",'" + SourceQtyCtl + "'", "h_p_Gy_BarCodeBill_AddCheck"); // if (oDsCheck == null && oDsCheck.Tables[0].Rows.Count == 0) { MessageBox.Show("条码生成完整性判断错误!"); return false; } else if(DBUtility.ClsPub.isStrNull(oDsCheck.Tables[0].Rows[0][0]) == "1") { sHRemark= sHRemark+DBUtility.ClsPub.isStrNull(oDsCheck.Tables[0].Rows[0]["HRemark"]); } } } if(sHRemark!="") { MessageBox.Show(sHRemark); return false; } return true; } //保存单据 private bool Sub_SaveBill() { //获取内码 HInterID = DBUtility.ClsPub.CreateBillID_Prod(ModName, ref DBUtility.ClsPub.sExeReturnInfo); ////若MAINDI重复则重新获取 //if (BaseBill.IsExistMainID(ref DBUtility.ClsPub.sExeReturnInfo, HInterID, Pub_Class.ClsPub.Enum_BillStatus.BillStatus_AddNew)) //{ // HInterID = DBUtility.ClsPub.CreateBillID(ModName, ref DBUtility.ClsPub.sExeReturnInfo); //} // DAL.ClsGy_ORGANIZATIONS_View oClsGy_ORGANIZATIONS_View = new DAL.ClsGy_ORGANIZATIONS_View(); HOrgNumber = ""; if (oClsGy_ORGANIZATIONS_View.GetInfoByName(cmbHOrgID.Text)) { HOrgID = oClsGy_ORGANIZATIONS_View.omodel.HItemID; HOrgNumber = DBUtility.ClsPub.isStrNull(oClsGy_ORGANIZATIONS_View.omodel.HNumber); } if (HOrgID == -1) { MessageBox.Show("选择组织有错误!"); return false; } lblCaption.Focus(); if (!Sub_AllowSave())//单据完整性判断 { return false; } bc.Enabled = false; if (cmbHBarCodeType.Text == "仪器成品条码规则") { SaveBarCode_bori(); //物料编码+序列号+生产日期 } else { SaveBarCode(); } return true; } //生成条码 private void SaveBarCode() { grdSub.Rows.Clear(); int LSHlen = 6; //流水号长度 int SumLen = 10; //总长度 string TM = ""; //条码 string HNumber = ""; //物料内码 string HMaterNumber = ""; //物料代码 double HSumQty = 0; //产品数量 double HMinQty = 0; //最小包装数 int HBQty = 0; //箱数 double HQty = 0; //数量 string WeiShu = ""; //尾数 int LSH = 0; //流水号 string LSH2 = ""; //流水号转换成字符 string sDate = ""; //日期 string sYear = ""; //年 string sPeriod = ""; //月 string sDay = ""; //日 string HBatchNo = ""; //批次 string HYasuoji = ""; //压缩机 string HModelName = ""; //机型 string HICMOBillNo = ""; //源单号 string HBarCodeBatchNo = ""; //条码批次号 string HBarCodeDate = ""; //条码日期 int k = 0; int n = 0; //同一批生成条码中的第几条 string sTMNumber = ""; //条码自定义前缀 DataSet Ds; //Ds = oCn.RunProcReturn("exec GetLSH '" + ClsPub.GetServerDate(0) + "'", "GetLSH"); //LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]); for (int j = 0; j < grdMain.Rows.Count; j++) { if (ClsPub.isLong(grdMain.Rows[j].Cells[HMaterIDCol].Value) != 0) { HNumber = DBUtility.ClsPub.isStrNull(grdMain.Rows[j].Cells[HMaterIDCol].Value); HMaterNumber = DBUtility.ClsPub.isStrNull(grdMain.Rows[j].Cells[HMaterNumberCol].Value); HBatchNo = ClsPub.isStrNull(grdMain.Rows[j].Cells[HBatchNoCol].Value); //日期获取方式 sDate = dtpHDate.Value.ToShortDateString(); // if (cmbHBarCodeType.Text == "仪器外购件条码普通规则" || cmbHBarCodeType.Text == "仪器外购件条码容器规则") //单据日期(收料通知单) { sDate = DBUtility.ClsPub.isStrNull(grdMain.Rows[j].Cells[HDateCol].Value); } else if (cmbHBarCodeType.Text == "试剂成品条码规则")// 失效日期(生产订单) { sDate = DBUtility.ClsPub.isStrNull(grdMain.Rows[j].Cells[HEndDateCol].Value); } else if (CampanyName == "夏宝电器")// 日期:生产订单 条码日期 { sDate = DBUtility.ClsPub.isStrNull(grdMain.Rows[j].Cells[HDateCol].Value); } HYasuoji= DBUtility.ClsPub.isStrNull(grdMain.Rows[j].Cells[HPinfanCol].Value); //压缩机代码(夏宝电器) HModelName= DBUtility.ClsPub.isStrNull(grdMain.Rows[j].Cells[HCusTypeCol].Value); //机型(夏宝电器) HICMOBillNo = DBUtility.ClsPub.isStrNull(grdMain.Rows[j].Cells[HSourceBillNoCol].Value); //生产订单号(夏宝电器) HBarCodeBatchNo= DBUtility.ClsPub.isStrNull(grdMain.Rows[j].Cells[HPinfanBarCodeCol].Value); //条码批次号(夏宝电器) HBarCodeDate= DBUtility.ClsPub.isStrNull(grdMain.Rows[j].Cells[HSupNumberCol].Value); //条码日期(夏宝电器) // sYear = ClsPub.isDate(sDate).Year.ToString().Substring(2, 2); sPeriod = "0" + ClsPub.isDate(sDate).Month.ToString(); sPeriod = sPeriod.Substring(sPeriod.Length - 2, 2); sDay = "0" + ClsPub.isDate(sDate).Day.ToString(); sDay = sDay.Substring(sDay.Length - 2, 2); //================================== if (cmbHBarCodeType.Text == "唯一条码") { if (CampanyName == "卓力") //系统参数 客户定制化名称 { //条码前缀 = 物料代码 + 年 + 月 + 日 sTMNumber = HNumber + sYear + sPeriod + sDay; Ds = oCn.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo"); //获取最大流水号 //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'"); LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]); } else if (CampanyName == "飞龙") { string HWorksNumber = ""; HWorksNumber = cmbHWorksNumber.Text; if (HWorksNumber == "") { MessageBox.Show("工厂代码不能为空!"); return; } //条码前缀 = 工厂代码 + 物料内码 + 日期 sTMNumber = HWorksNumber + HNumber + sYear + sPeriod + sDay; Ds = oCn.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo"); //获取最大流水号 //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'"); LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]); } else //通用方法 { //条码前缀 = 组织代码 + 物料代码 + 年 + 月 + 日 sTMNumber = HOrgNumber + HNumber + sYear + sPeriod + sDay; Ds = oCn.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo"); //获取最大流水号 //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'"); LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]); } } else if (cmbHBarCodeType.Text == "品种条码") { if (CampanyName == "五云") //系统参数 客户定制化名称 { TM = HNumber + ";" + DBUtility.ClsPub.isStrNull(grdMain.Rows[j].Cells[HMTONoCol].Value); } else { TM = HOrgNumber + HNumber; } } else if (cmbHBarCodeType.Text == "批次条码") { TM = HOrgNumber + HNumber + HBatchNo; }//博日特殊处理 else if(cmbHBarCodeType.Text == "仪器外购件条码普通规则" || cmbHBarCodeType.Text == "仪器外购件条码容器规则") { //物料编码+单据日期(YYMMDD)+流水4位 sTMNumber = HMaterNumber + sYear + sPeriod + sDay; Ds = oCn.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo"); //获取最大流水号 //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'"); LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]); LSHlen = 4; } else if (cmbHBarCodeType.Text == "仪器成品条码规则") //另外处理了 { //物料编码+序列号+生产日期 //sTMNumber = HMaterNumber + sYear + sPeriod + sDay; //Ds = oCn.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo"); //获取最大流水号 // //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'"); //LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]); } else if (cmbHBarCodeType.Text == "试剂成品条码规则") { //物料编码+生产批号+流水号6位- sTMNumber = HMaterNumber + HBatchNo ; Ds = oCn.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo"); //获取最大流水号 //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'"); LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]); LSHlen = 6; } else if (cmbHBarCodeType.Text == "内销机条码") { //制造本部1位(默认1)+机型代码5位()+年2位+月1位(A、B、C代替10月份) //+日2位+条码批次码2位+压缩机代码1位+00+流水号4位+校验码(默认0) sTMNumber = "1" + HModelName + HBarCodeDate + HBarCodeBatchNo + HYasuoji + "00" ; Ds = oCn.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo"); //获取最大流水号 //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'"); LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]); LSHlen = 5; if (sTMNumber.Length != 16) { MessageBox.Show("条码长度不够16位,是否数据不全!制造本部1位:[0] + 机型代码5位:[" + HModelName + "] + 年月日5位:["+ HBarCodeDate + "] + 批次号2位:[" + HBarCodeBatchNo + "]+ 压缩机1位:["+ HYasuoji + "]+00 ; "); return; } } else if (cmbHBarCodeType.Text == "外销机条码") { //物料代码11位+年2位+月1位(A、B、C代替10月份)+日2位+批次2位+流水号4位 //sTMNumber = HMaterNumber.Replace(Convert.ToChar("."),Convert.ToChar("")) + HBarCodeDate + HBarCodeBatchNo; sTMNumber = HMaterNumber.Replace( "." , "" ) + HBarCodeDate + HBarCodeBatchNo; Ds = oCn.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo"); //获取最大流水号 //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'"); LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]); LSHlen = 5; if (sTMNumber.Length != 18) { MessageBox.Show("条码长度不够18位,是否数据不全!物料代码11位:["+ HMaterNumber.Replace(".", "") + "]+年月日5位:["+ HBarCodeDate + "]+批次号2位:[" + HBarCodeBatchNo + "];"); return; } } else if (cmbHBarCodeType.Text == "半成品条码") { //生产订单号+4位流水号 sTMNumber = HICMOBillNo; Ds = oCn.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo"); //获取最大流水号 //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'"); LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]); LSHlen = 5; } //else if (cmbHBarCodeType.Text == "托盘条码") //{ // TM = HOrgNumber + HNumber + LSH2; //} else { MessageBox.Show("错误的条码类型,不能生成条码!"); return; } HBQty = HBQty + ClsPub.isInt(grdMain.Rows[j].Cells[HBQtyCol].Value); HMinQty = ClsPub.isDoule(grdMain.Rows[j].Cells[HMinQtyCol].Value); HSumQty = ClsPub.isDoule(grdMain.Rows[j].Cells[HQtyCol].Value); n = 0; for (int i = k; i < HBQty; i++) { if (HSumQty - HMinQty > 0) { WeiShu = ""; HSumQty = HSumQty - HMinQty; } else { if (HSumQty == HMinQty) { WeiShu = ""; } else { WeiShu = "尾数"; } HMinQty = HSumQty; } // LSH = LSH + 1; LSH2 = LSH.ToString(); while (LSH2.Length < LSHlen) //如果流水号小于6位数前面补0 { LSH2 = "0" + LSH2; } if (cmbHBarCodeType.Text == "唯一条码") { //条码编号 = 条码前缀 + 流水号 TM = sTMNumber + LSH2; } else if(cmbHBarCodeType.Text == "仪器外购件条码普通规则" || cmbHBarCodeType.Text == "仪器外购件条码容器规则" || cmbHBarCodeType.Text == "试剂成品条码规则" || cmbHBarCodeType.Text == "半成品条码" || cmbHBarCodeType.Text == "外销机条码") { TM = sTMNumber + LSH2; } else if (cmbHBarCodeType.Text == "内销机条码") { TM = sTMNumber + LSH2 + "0"; } // if (i + 1 > grdSub.Rows.Count) { grdSub.RowCount = grdSub.RowCount + 1; } grdSub.Rows[i].Cells[HSno2Col].Value = ClsPub.isStrNull(i + 1); if (TM.Trim() == "") { MessageBox.Show("条形码不能为空,不能生成条码!"); return; } grdSub.Rows[i].Cells[HTMCol].Value = TM; grdSub.Rows[i].Cells[HEntryID2Col].Value = j + 1; grdSub.Rows[i].Cells[HMaterID2Col].Value = grdMain.Rows[j].Cells[HMaterIDCol].Value; grdSub.Rows[i].Cells[HMaterNumber2Col].Value = grdMain.Rows[j].Cells[HMaterNumberCol].Value; grdSub.Rows[i].Cells[HMaterName2Col].Value = grdMain.Rows[j].Cells[HMaterNameCol].Value; grdSub.Rows[i].Cells[HMaterModel2Col].Value = grdMain.Rows[j].Cells[HMaterModelCol].Value; grdSub.Rows[i].Cells[HPinfan2Col].Value = grdMain.Rows[j].Cells[HPinfanCol].Value; grdSub.Rows[i].Cells[HPinfanBarCode2Col].Value = grdMain.Rows[j].Cells[HPinfanBarCodeCol].Value; grdSub.Rows[i].Cells[HAuxPropID2Col].Value = grdMain.Rows[j].Cells[HAuxPropIDCol].Value; grdSub.Rows[i].Cells[HAuxPropNumber2Col].Value = grdMain.Rows[j].Cells[HAuxPropNumberCol].Value; grdSub.Rows[i].Cells[HAuxPropName2Col].Value = grdMain.Rows[j].Cells[HAuxPropNameCol].Value; grdSub.Rows[i].Cells[HUnitID2Col].Value = grdMain.Rows[j].Cells[HUnitIDCol].Value; grdSub.Rows[i].Cells[HUnitNumber2Col].Value = grdMain.Rows[j].Cells[HUnitNumberCol].Value; grdSub.Rows[i].Cells[HUnitName2Col].Value = grdMain.Rows[j].Cells[HUnitNameCol].Value; grdSub.Rows[i].Cells[HQty2Col].Value = HMinQty; grdSub.Rows[i].Cells[HBatchNo2Col].Value = grdMain.Rows[j].Cells[HBatchNoCol].Value; grdSub.Rows[i].Cells[HSourceInterID2Col].Value = grdMain.Rows[j].Cells[HMainIDCol].Value; grdSub.Rows[i].Cells[HSourceEntryID2Col].Value = grdMain.Rows[j].Cells[HSubIDCol].Value; grdSub.Rows[i].Cells[HSourceBillNo2Col].Value = grdMain.Rows[j].Cells[HBillNoCol].Value; grdSub.Rows[i].Cells[HSourceBillType2Col].Value = grdMain.Rows[j].Cells[HBillTypeCol].Value; grdSub.Rows[i].Cells[HPrintCol].Value = "0"; grdSub.Rows[i].Cells[HWeiCol].Value = WeiShu; grdSub.Rows[i].Cells[HBarcodeNoCol].Value = n + 1; grdSub.Rows[i].Cells[HBarcodeQtysCol].Value = grdMain.Rows[j].Cells[HBQtyCol].Value; grdSub.Rows[i].Cells[HSupID2Col].Value = grdMain.Rows[j].Cells[HSupIDCol].Value; grdSub.Rows[i].Cells[HSupNumber2Col].Value = grdMain.Rows[j].Cells[HSupNumberCol].Value; grdSub.Rows[i].Cells[HSupName2Col].Value = grdMain.Rows[j].Cells[HSupNameCol].Value; grdSub.Rows[i].Cells[HDeptID2Col].Value = grdMain.Rows[j].Cells[HDeptIDCol].Value; grdSub.Rows[i].Cells[HDeptNumber2Col].Value = grdMain.Rows[j].Cells[HDeptNumberCol].Value; grdSub.Rows[i].Cells[HDeptName2Col].Value = grdMain.Rows[j].Cells[HDeptNameCol].Value; grdSub.Rows[i].Cells[HRemark2Col].Value = grdMain.Rows[j].Cells[HRemarkCol].Value; grdSub.Rows[i].Cells[HDate2Col].Value = grdMain.Rows[j].Cells[HDateCol].Value; grdSub.Rows[i].Cells[HShowDate2Col].Value = grdMain.Rows[j].Cells[HShowDateCol].Value; grdSub.Rows[i].Cells[HWhID2Col].Value = grdMain.Rows[j].Cells[HWhIDCol].Value; grdSub.Rows[i].Cells[HWhNumber2Col].Value = grdMain.Rows[j].Cells[HWhNumberCol].Value; grdSub.Rows[i].Cells[HWhName2Col].Value = grdMain.Rows[j].Cells[HWhNameCol].Value; grdSub.Rows[i].Cells[HSPID2Col].Value = grdMain.Rows[j].Cells[HSPIDCol].Value; grdSub.Rows[i].Cells[HSPNumber2Col].Value = grdMain.Rows[j].Cells[HSPNumberCol].Value; grdSub.Rows[i].Cells[HSPName2Col].Value = grdMain.Rows[j].Cells[HSPNameCol].Value; grdSub.Rows[i].Cells[HMTONo2Col].Value = grdMain.Rows[j].Cells[HMTONoCol].Value; grdSub.Rows[i].Cells[HCusID2Col].Value = grdMain.Rows[j].Cells[HCusIDCol].Value; grdSub.Rows[i].Cells[HCusNumber2Col].Value = grdMain.Rows[j].Cells[HCusNumberCol].Value; grdSub.Rows[i].Cells[HCusName2Col].Value = grdMain.Rows[j].Cells[HCusNameCol].Value; grdSub.Rows[i].Cells[HCusType2Col].Value = grdMain.Rows[j].Cells[HCusTypeCol].Value; grdSub.Rows[i].Cells[HSourceID2Col].Value = grdMain.Rows[j].Cells[HSourceIDCol].Value; grdSub.Rows[i].Cells[HSourceNumber2Col].Value = grdMain.Rows[j].Cells[HSourceNumberCol].Value; grdSub.Rows[i].Cells[HSourceName2Col].Value = grdMain.Rows[j].Cells[HSourceNameCol].Value; grdSub.Rows[i].Cells[HEndDate2Col].Value = grdMain.Rows[j].Cells[HEndDateCol].Value; grdSub.Rows[i].Cells[HSeOrderBillNo2Col].Value = grdMain.Rows[j].Cells[HSeOrderBillNoCol].Value; grdSub.Rows[i].Cells[HSeOrderSEQ2Col].Value = grdMain.Rows[j].Cells[HSeOrderSEQCol].Value; grdSub.Rows[i].Cells[HInnerBillNo2Col].Value = grdMain.Rows[j].Cells[HInnerBillNoCol].Value; grdSub.Rows[i].Cells[HMaker2Col].Value = grdMain.Rows[j].Cells[HMakerCol].Value; grdSub.Rows[i].Cells[HGiveAwayFlag2Col].Value = grdMain.Rows[j].Cells[HGiveAwayFlagCol].Value; //网格打勾 DataGridViewCheckBoxCell oCell = new DataGridViewCheckBoxCell(); oCell.ThreeState = false; oCell.Value = grdSub.Rows[i].Cells[HGiveAwayFlag2Col].Value; oCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; grdSub.Rows[i].Cells[HGiveAwayFlag2Col] = oCell; k = k + 1; n = n + 1; oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'"); } } } string HWei = ""; //尾数 string HBarCode = ""; string HBarCodeType = ""; Int64 HMaterID = 0; Int64 HAuxPropID = 0; Int64 HUnitID = 0; double HQty2 = 0; string HBatchNo2 = ""; Int64 HSupID = 0; Int64 HGroupID = 0; int HPrintQty = 0; Int64 HSourceInterID = 0; Int64 HSourceEntryID = 0; string HSourceBillNo = ""; string HSourceBillType = ""; Int64 HBarcodeNo = 0; //托号 Int64 HBarcodeQtys = 0; //总托数 Int64 HDeptID = 0; Int64 HWhID = 0; Int64 HSPID = 0; string HRemark = ""; string HMaterName = ""; string HMaterModel = ""; string HPinfan = ""; string HMTONo = ""; Int64 HCusID = 0; string HCusType = ""; DateTime HEndDate; string HWorkLineName = ""; string HSeOrderBillNo = ""; Int64 HSeOrderSEQ = 0; string HInnerBillNo = ""; bool HGiveAwayFlag = false; Int64 HEntryID = 0; try { oCn.BeginTran(); for (int i = 0; i < grdSub.Rows.Count; i++) { if (ClsPub.isLong(grdSub.Rows[i].Cells[HMaterID2Col].Value) != 0) { HWei = ClsPub.isStrNull(grdSub.Rows[i].Cells[HWeiCol].Value); HBarCode = ClsPub.isStrNull(grdSub.Rows[i].Cells[HTMCol].Value); // HBarCodeType = ClsPub.isStrNull(cmbHBarCodeType.Text); if (CampanyName == "博日科技" || CampanyName == "夏宝电器") { HBarCodeType = "唯一条码"; } // HMaterID = ClsPub.isLong(grdSub.Rows[i].Cells[HMaterID2Col].Value); HEntryID = ClsPub.isLong(grdSub.Rows[i].Cells[HEntryID2Col].Value); HAuxPropID = ClsPub.isLong(grdSub.Rows[i].Cells[HAuxPropID2Col].Value); HUnitID = ClsPub.isLong(grdSub.Rows[i].Cells[HUnitID2Col].Value); HQty2 = ClsPub.isDoule(grdSub.Rows[i].Cells[HQty2Col].Value); HBatchNo2 = ClsPub.isStrNull(grdSub.Rows[i].Cells[HBatchNo2Col].Value); HSourceInterID = ClsPub.isLong(grdSub.Rows[i].Cells[HSourceInterID2Col].Value); HSourceEntryID = ClsPub.isLong(grdSub.Rows[i].Cells[HSourceEntryID2Col].Value); HSourceBillNo = ClsPub.isStrNull(grdSub.Rows[i].Cells[HSourceBillNo2Col].Value); HSourceBillType = ClsPub.isStrNull(grdSub.Rows[i].Cells[HSourceBillType2Col].Value); HBarcodeQtys = ClsPub.isLong(grdSub.Rows[i].Cells[HBarcodeQtysCol].Value); HBarcodeNo = ClsPub.isLong(grdSub.Rows[i].Cells[HBarcodeNoCol].Value); HSupID = ClsPub.isLong(grdSub.Rows[i].Cells[HSupID2Col].Value); HDeptID = ClsPub.isLong(grdSub.Rows[i].Cells[HDeptID2Col].Value); HWhID = ClsPub.isLong(grdSub.Rows[i].Cells[HWhID2Col].Value); HSPID = ClsPub.isLong(grdSub.Rows[i].Cells[HSPID2Col].Value); HRemark = ClsPub.isStrNull(grdSub.Rows[i].Cells[HRemark2Col].Value); HMaterName = ClsPub.isStrNull(grdSub.Rows[i].Cells[HMaterName2Col].Value); HMaterModel = ClsPub.isStrNull(grdSub.Rows[i].Cells[HMaterModel2Col].Value); HPinfan = ClsPub.isStrNull(grdSub.Rows[i].Cells[HPinfan2Col].Value); HMTONo = ClsPub.isStrNull(grdSub.Rows[i].Cells[HMTONo2Col].Value); HCusID = ClsPub.isLong(grdSub.Rows[i].Cells[HCusID2Col].Value); HCusType = ClsPub.isStrNull(grdSub.Rows[i].Cells[HCusType2Col].Value); HEndDate = ClsPub.isDate(grdSub.Rows[i].Cells[HEndDate2Col].Value); HWorkLineName = ClsPub.isStrNull(grdSub.Rows[i].Cells[HSourceName2Col].Value); HSeOrderBillNo = ClsPub.isStrNull(grdSub.Rows[i].Cells[HSeOrderBillNo2Col].Value); HSeOrderSEQ = ClsPub.isLong(grdSub.Rows[i].Cells[HSeOrderSEQ2Col].Value); HInnerBillNo = ClsPub.isStrNull(grdSub.Rows[i].Cells[HInnerBillNo2Col].Value); HGiveAwayFlag = ClsPub.isBool(grdSub.Rows[i].Cells[HGiveAwayFlag2Col].Value); oCn.RunProc("insert into Gy_BarCodeBill (HBarCode,HBarCodeType,HMaterID,HUnitID,HQty" + ",HBatchNo,HSupID,HGroupID,HMaker,HMakeDate,HPrintQty,HinitQty" + ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HEndQty " + ",HBarcodeQtys,HBarcodeNo,HDeptID,HWhID,HSPID,HRemark " + ",HCusID,HCusType,HEndDate,HWorkLineName,HBarCodeDate " + ",HSTOCKORGID,HOWNERID,HSeOrderBillNo,HInterID,HEntryID " + ",HGiveAwayFlag,HSeOrderSEQ " + ",HMaterName,HMaterModel,HPinfan,HAuxPropID,HMTONo,HInnerBillNo " + ") values (" + "'" + HBarCode + "','" + HBarCodeType + "'," + HMaterID.ToString() + "," + HUnitID.ToString() + "," + HQty2.ToString() + ",'" + HBatchNo2 + "'," + HSupID.ToString() + "," + HGroupID.ToString() + ",'" + ClsPub.CurUserName + "',getdate()," + HPrintQty.ToString() + "," + HQty2.ToString() + ", " + HSourceInterID.ToString() + "," + HSourceEntryID.ToString() + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HWei + "'" + ", " + HBarcodeQtys.ToString() + "," + HBarcodeNo.ToString() + "," + HDeptID.ToString() + "," + HWhID.ToString() + "," + HSPID.ToString() + ",'" + HRemark + "'" + ", " + HCusID.ToString() + ",'" + HCusType + "','" + HEndDate.ToShortDateString() + "','" + HWorkLineName + "','" + sDate + "'" + ", " + HOrgID.ToString() + "," + HOrgID.ToString() + ",'" + HSeOrderBillNo + "'," + HInterID.ToString() + "," + HEntryID.ToString() + "" + ", " + DBUtility.ClsPub.BoolToString(HGiveAwayFlag) + "," + HSeOrderSEQ.ToString() + ",'" + HMaterName + "','" + HMaterModel + "','" + HPinfan + "'," + HAuxPropID.ToString() + ",'" + HMTONo + "','" + HInnerBillNo + "')"); //HNumber = ClsPub.isStrNull(grdSub.Rows[i].Cells[HMaterID2Col].Value); //if (cmbHBarCodeType.Text == "唯一条码") //{ // if (CampanyName == "卓力") //系统参数 客户定制化名称 // { // //条码前缀 = 物料代码 + 年 + 月 + 日 // sTMNumber = HNumber + sYear + sPeriod + sDay; // } // else if (CampanyName == "飞龙") // { // string HWorksNumber = ""; // HWorksNumber = cmbHWorksNumber.Text; // if (HWorksNumber == "") // { // MessageBox.Show("工厂代码不能为空!"); // return; // } // //条码前缀 = 工厂代码 + 物料内码 + 日期 // sTMNumber = HWorksNumber + HNumber + sYear + sPeriod + sDay; // } // else //通用方法 // { // //条码前缀 = 组织代码 + 物料代码 + 年 + 月 + 日 // sTMNumber = HOrgNumber + HNumber + sYear + sPeriod + sDay; // } //} //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'"); } } //增加 条码超过未生成功能控制 // oCn.Commit(); MessageBox.Show("条码生成完毕!"); //grdSub.RowCount = 0; tabControl1.SelectedIndex = 1; } catch (Exception e) { oCn.RollBack(); MessageBox.Show("条码生成失败!" + e.Message); grdSub.RowCount = 0; } } ////月份转化 //private string Sub_PeriodChange(string sPeriod) //{ // if(sPeriod=="10") // { // return "A"; // } // else if (sPeriod == "11") // { // return "B"; // } // else if (sPeriod == "12") // { // return "C"; // } // else // { // return sPeriod.Substring(1, 1); // } //} //生成条码 博日 //物料编码+序列号+生产日期 private void SaveBarCode_bori() { grdSub.Rows.Clear(); int LSHlen = 6; //流水号长度 int SumLen = 10; //总长度 string TM = ""; //条码 string HNumber = ""; //物料内码 string HMaterNumber = ""; //物料代码 double HSumQty = 0; //产品数量 double HMinQty = 0; //最小包装数 int HBQty = 0; //箱数 double HQty = 0; //数量 string WeiShu = ""; //尾数 //int LSH = 0; //流水号 string LSH2 = ""; //流水号转换成字符 string sDate = ""; //日期 string sYear = ""; //年 string sPeriod = ""; //月 string sDay = ""; //日 string HBatchNo = ""; //批次 int k = 0; int n = 0; //同一批生成条码中的第几条 string sTMNumber = ""; //条码自定义前缀 DataSet Ds; //Ds = oCn.RunProcReturn("exec GetLSH '" + ClsPub.GetServerDate(0) + "'", "GetLSH"); //LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]); for (int j = 0; j < grdMain.Rows.Count; j++) { if (ClsPub.isLong(grdMain.Rows[j].Cells[HMaterIDCol].Value) != 0) { HNumber = DBUtility.ClsPub.isStrNull(grdMain.Rows[j].Cells[HMaterIDCol].Value); HMaterNumber = DBUtility.ClsPub.isStrNull(grdMain.Rows[j].Cells[HMaterNumberCol].Value); HBatchNo = ClsPub.isStrNull(grdMain.Rows[j].Cells[HBatchNoCol].Value); //日期获取方式 sDate = dtpHDate.Value.ToShortDateString(); // if (cmbHBarCodeType.Text == "试剂成品条码规则")// 失效日期(生产订单) { sDate = DBUtility.ClsPub.isStrNull(grdMain.Rows[j].Cells[HEndDateCol].Value); } // sYear = ClsPub.isDate(sDate).Year.ToString().Substring(2, 2); sPeriod = "0" + ClsPub.isDate(sDate).Month.ToString(); sPeriod = sPeriod.Substring(sPeriod.Length - 2, 2); sDay = "0" + ClsPub.isDate(sDate).Day.ToString(); sDay = sDay.Substring(sDay.Length - 2, 2); //================================== //if (cmbHBarCodeType.Text == "试剂成品条码规则") //{ // //条码前缀 = 组织代码 + 物料代码 + 年 + 月 + 日 //sTMNumber = HMaterNumber + HNumber + sYear + sPeriod + sDay; // Ds = oCn.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo"); //获取最大流水号 // //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'"); // LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]); //} //else //{ // MessageBox.Show("错误的条码类型,不能生成条码!"); // return; //} HBQty = HBQty + ClsPub.isInt(grdMain.Rows[j].Cells[HBQtyCol].Value); HMinQty = ClsPub.isDoule(grdMain.Rows[j].Cells[HMinQtyCol].Value); HSumQty = ClsPub.isDoule(grdMain.Rows[j].Cells[HQtyCol].Value); n = 0; //从金蝶序列号表获取序列号 DataSet DSet = oCn.RunProcReturn("exec h_p_CLD_GetBarCodeSno "+ ClsPub.isStrNull(grdMain.Rows[j].Cells[HMainIDCol].Value) + "," + ClsPub.isStrNull(grdMain.Rows[j].Cells[HSubIDCol].Value) + " ", "h_p_CLD_GetBarCodeSno", ref DBUtility.ClsPub.sExeReturnInfo); //生成首行标题 if (DSet == null) { MessageBox.Show("没有返回任何结果,金蝶云序列号不存在!" + DBUtility.ClsPub.sExeReturnInfo); continue; } // for (int i = k; i < DSet.Tables[0].Rows.Count; i++) //for (int i = k; i < HBQty; i++) { if (HSumQty - HMinQty > 0) { WeiShu = ""; HSumQty = HSumQty - HMinQty; } else { if (HSumQty == HMinQty) { WeiShu = ""; } else { WeiShu = "尾数"; } HMinQty = HSumQty; } // //LSH = LSH + 1; LSH2 =DBUtility.ClsPub.isStrNull(DSet.Tables[0].Rows[n]["SHNO"]); //while (LSH2.Length < LSHlen) //如果流水号小于6位数前面补0 //{ // LSH2 = "0" + LSH2; //} //if (cmbHBarCodeType.Text == "唯一条码") //{ //条码编号 = 条码前缀 + 流水号 //T/*M*/ = HMaterNumber + LSH2 + sYear + sPeriod + sDay; TM = LSH2 + sYear + sPeriod + sDay; //} if (i + 1 > grdSub.Rows.Count) { grdSub.RowCount = grdSub.RowCount + 1; } grdSub.Rows[i].Cells[HSno2Col].Value = ClsPub.isStrNull(i + 1); if (TM.Trim() == "") { MessageBox.Show("条形码不能为空,不能生成条码!"); return; } grdSub.Rows[i].Cells[HTMCol].Value = TM; grdSub.Rows[i].Cells[HMaterID2Col].Value = grdMain.Rows[j].Cells[HMaterIDCol].Value; grdSub.Rows[i].Cells[HMaterNumber2Col].Value = grdMain.Rows[j].Cells[HMaterNumberCol].Value; grdSub.Rows[i].Cells[HMaterName2Col].Value = grdMain.Rows[j].Cells[HMaterNameCol].Value; grdSub.Rows[i].Cells[HMaterModel2Col].Value = grdMain.Rows[j].Cells[HMaterModelCol].Value; grdSub.Rows[i].Cells[HPinfan2Col].Value = grdMain.Rows[j].Cells[HPinfanCol].Value; grdSub.Rows[i].Cells[HPinfanBarCode2Col].Value = grdMain.Rows[j].Cells[HPinfanBarCodeCol].Value; grdSub.Rows[i].Cells[HAuxPropID2Col].Value = grdMain.Rows[j].Cells[HAuxPropIDCol].Value; grdSub.Rows[i].Cells[HAuxPropNumber2Col].Value = grdMain.Rows[j].Cells[HAuxPropNumberCol].Value; grdSub.Rows[i].Cells[HAuxPropName2Col].Value = grdMain.Rows[j].Cells[HAuxPropNameCol].Value; grdSub.Rows[i].Cells[HUnitID2Col].Value = grdMain.Rows[j].Cells[HUnitIDCol].Value; grdSub.Rows[i].Cells[HUnitNumber2Col].Value = grdMain.Rows[j].Cells[HUnitNumberCol].Value; grdSub.Rows[i].Cells[HUnitName2Col].Value = grdMain.Rows[j].Cells[HUnitNameCol].Value; grdSub.Rows[i].Cells[HQty2Col].Value = HMinQty; grdSub.Rows[i].Cells[HBatchNo2Col].Value = grdMain.Rows[j].Cells[HBatchNoCol].Value; grdSub.Rows[i].Cells[HSourceInterID2Col].Value = grdMain.Rows[j].Cells[HMainIDCol].Value; grdSub.Rows[i].Cells[HSourceEntryID2Col].Value = grdMain.Rows[j].Cells[HSubIDCol].Value; grdSub.Rows[i].Cells[HSourceBillNo2Col].Value = grdMain.Rows[j].Cells[HBillNoCol].Value; grdSub.Rows[i].Cells[HSourceBillType2Col].Value = grdMain.Rows[j].Cells[HBillTypeCol].Value; grdSub.Rows[i].Cells[HPrintCol].Value = "0"; grdSub.Rows[i].Cells[HWeiCol].Value = WeiShu; grdSub.Rows[i].Cells[HBarcodeNoCol].Value = n + 1; grdSub.Rows[i].Cells[HBarcodeQtysCol].Value = grdMain.Rows[j].Cells[HBQtyCol].Value; grdSub.Rows[i].Cells[HSupID2Col].Value = grdMain.Rows[j].Cells[HSupIDCol].Value; grdSub.Rows[i].Cells[HSupNumber2Col].Value = grdMain.Rows[j].Cells[HSupNumberCol].Value; grdSub.Rows[i].Cells[HSupName2Col].Value = grdMain.Rows[j].Cells[HSupNameCol].Value; grdSub.Rows[i].Cells[HDeptID2Col].Value = grdMain.Rows[j].Cells[HDeptIDCol].Value; grdSub.Rows[i].Cells[HDeptNumber2Col].Value = grdMain.Rows[j].Cells[HDeptNumberCol].Value; grdSub.Rows[i].Cells[HDeptName2Col].Value = grdMain.Rows[j].Cells[HDeptNameCol].Value; grdSub.Rows[i].Cells[HRemark2Col].Value = grdMain.Rows[j].Cells[HRemarkCol].Value; grdSub.Rows[i].Cells[HDate2Col].Value = grdMain.Rows[j].Cells[HDateCol].Value; grdSub.Rows[i].Cells[HShowDate2Col].Value = grdMain.Rows[j].Cells[HShowDateCol].Value; grdSub.Rows[i].Cells[HWhID2Col].Value = grdMain.Rows[j].Cells[HWhIDCol].Value; grdSub.Rows[i].Cells[HWhNumber2Col].Value = grdMain.Rows[j].Cells[HWhNumberCol].Value; grdSub.Rows[i].Cells[HWhName2Col].Value = grdMain.Rows[j].Cells[HWhNameCol].Value; grdSub.Rows[i].Cells[HSPID2Col].Value = grdMain.Rows[j].Cells[HSPIDCol].Value; grdSub.Rows[i].Cells[HSPNumber2Col].Value = grdMain.Rows[j].Cells[HSPNumberCol].Value; grdSub.Rows[i].Cells[HSPName2Col].Value = grdMain.Rows[j].Cells[HSPNameCol].Value; grdSub.Rows[i].Cells[HMTONo2Col].Value = grdMain.Rows[j].Cells[HMTONoCol].Value; grdSub.Rows[i].Cells[HCusID2Col].Value = grdMain.Rows[j].Cells[HCusIDCol].Value; grdSub.Rows[i].Cells[HCusNumber2Col].Value = grdMain.Rows[j].Cells[HCusNumberCol].Value; grdSub.Rows[i].Cells[HCusName2Col].Value = grdMain.Rows[j].Cells[HCusNameCol].Value; grdSub.Rows[i].Cells[HCusType2Col].Value = grdMain.Rows[j].Cells[HCusTypeCol].Value; grdSub.Rows[i].Cells[HSourceID2Col].Value = grdMain.Rows[j].Cells[HSourceIDCol].Value; grdSub.Rows[i].Cells[HSourceNumber2Col].Value = grdMain.Rows[j].Cells[HSourceNumberCol].Value; grdSub.Rows[i].Cells[HSourceName2Col].Value = grdMain.Rows[j].Cells[HSourceNameCol].Value; grdSub.Rows[i].Cells[HEndDate2Col].Value = grdMain.Rows[j].Cells[HEndDateCol].Value; grdSub.Rows[i].Cells[HSeOrderBillNo2Col].Value = grdMain.Rows[j].Cells[HSeOrderBillNoCol].Value; grdSub.Rows[i].Cells[HInnerBillNo2Col].Value = grdMain.Rows[j].Cells[HInnerBillNoCol].Value; grdSub.Rows[i].Cells[HMaker2Col].Value = grdMain.Rows[j].Cells[HMakerCol].Value; grdSub.Rows[i].Cells[HGiveAwayFlag2Col].Value = grdMain.Rows[j].Cells[HGiveAwayFlagCol].Value; //网格打勾 DataGridViewCheckBoxCell oCell = new DataGridViewCheckBoxCell(); oCell.ThreeState = false; oCell.Value = grdSub.Rows[i].Cells[HGiveAwayFlag2Col].Value; oCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; grdSub.Rows[i].Cells[HGiveAwayFlag2Col] = oCell; k = k + 1; n = n + 1; //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'"); } } } string HWei = ""; //尾数 string HBarCode = ""; string HBarCodeType = ""; Int64 HMaterID = 0; Int64 HAuxPropID = 0; Int64 HUnitID = 0; double HQty2 = 0; string HBatchNo2 = ""; Int64 HSupID = 0; Int64 HGroupID = 0; int HPrintQty = 0; Int64 HSourceInterID = 0; Int64 HSourceEntryID = 0; string HSourceBillNo = ""; string HSourceBillType = ""; Int64 HBarcodeNo = 0; //托号 Int64 HBarcodeQtys = 0; //总托数 Int64 HDeptID = 0; Int64 HWhID = 0; Int64 HSPID = 0; string HRemark = ""; string HMaterName = ""; string HMaterModel = ""; string HPinfan = ""; string HMTONo = ""; Int64 HCusID = 0; string HCusType = ""; DateTime HEndDate; string HWorkLineName = ""; string HSeOrderBillNo = ""; string HInnerBillNo = ""; bool HGiveAwayFlag = false; try { oCn.BeginTran(); for (int i = 0; i < grdSub.Rows.Count; i++) { if (ClsPub.isLong(grdSub.Rows[i].Cells[HMaterID2Col].Value) != 0) { HWei = ClsPub.isStrNull(grdSub.Rows[i].Cells[HWeiCol].Value); HBarCode = ClsPub.isStrNull(grdSub.Rows[i].Cells[HTMCol].Value); // HBarCodeType = ClsPub.isStrNull(cmbHBarCodeType.Text); if (CampanyName == "博日科技" || CampanyName == "夏宝电器") { HBarCodeType = "唯一条码"; } // HMaterID = ClsPub.isLong(grdSub.Rows[i].Cells[HMaterID2Col].Value); HAuxPropID = ClsPub.isLong(grdSub.Rows[i].Cells[HAuxPropID2Col].Value); HUnitID = ClsPub.isLong(grdSub.Rows[i].Cells[HUnitID2Col].Value); HQty2 = ClsPub.isDoule(grdSub.Rows[i].Cells[HQty2Col].Value); HBatchNo2 = ClsPub.isStrNull(grdSub.Rows[i].Cells[HBatchNo2Col].Value); HSourceInterID = ClsPub.isLong(grdSub.Rows[i].Cells[HSourceInterID2Col].Value); HSourceEntryID = ClsPub.isLong(grdSub.Rows[i].Cells[HSourceEntryID2Col].Value); HSourceBillNo = ClsPub.isStrNull(grdSub.Rows[i].Cells[HSourceBillNo2Col].Value); HSourceBillType = ClsPub.isStrNull(grdSub.Rows[i].Cells[HSourceBillType2Col].Value); HBarcodeQtys = ClsPub.isLong(grdSub.Rows[i].Cells[HBarcodeQtysCol].Value); HBarcodeNo = ClsPub.isLong(grdSub.Rows[i].Cells[HBarcodeNoCol].Value); HSupID = ClsPub.isLong(grdSub.Rows[i].Cells[HSupID2Col].Value); HDeptID = ClsPub.isLong(grdSub.Rows[i].Cells[HDeptID2Col].Value); HWhID = ClsPub.isLong(grdSub.Rows[i].Cells[HWhID2Col].Value); HSPID = ClsPub.isLong(grdSub.Rows[i].Cells[HSPID2Col].Value); HRemark = ClsPub.isStrNull(grdSub.Rows[i].Cells[HRemark2Col].Value); HMaterName = ClsPub.isStrNull(grdSub.Rows[i].Cells[HMaterName2Col].Value); HMaterModel = ClsPub.isStrNull(grdSub.Rows[i].Cells[HMaterModel2Col].Value); HPinfan = ClsPub.isStrNull(grdSub.Rows[i].Cells[HPinfan2Col].Value); HMTONo = ClsPub.isStrNull(grdSub.Rows[i].Cells[HMTONo2Col].Value); HCusID = ClsPub.isLong(grdSub.Rows[i].Cells[HCusID2Col].Value); HCusType = ClsPub.isStrNull(grdSub.Rows[i].Cells[HCusType2Col].Value); HEndDate = ClsPub.isDate(grdSub.Rows[i].Cells[HEndDate2Col].Value); HWorkLineName = ClsPub.isStrNull(grdSub.Rows[i].Cells[HSourceName2Col].Value); HSeOrderBillNo = ClsPub.isStrNull(grdSub.Rows[i].Cells[HSeOrderBillNo2Col].Value); HInnerBillNo = ClsPub.isStrNull(grdSub.Rows[i].Cells[HInnerBillNo2Col].Value); HGiveAwayFlag = ClsPub.isBool(grdSub.Rows[i].Cells[HGiveAwayFlag2Col].Value); oCn.RunProc("insert into Gy_BarCodeBill (HBarCode,HBarCodeType,HMaterID,HUnitID,HQty" + ",HBatchNo,HSupID,HGroupID,HMaker,HMakeDate,HPrintQty,HinitQty" + ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HEndQty " + ",HBarcodeQtys,HBarcodeNo,HDeptID,HWhID,HSPID,HRemark " + ",HCusID,HCusType,HEndDate,HWorkLineName,HBarCodeDate " + ",HSTOCKORGID,HOWNERID,HSeOrderBillNo,HInterID " + ",HGiveAwayFlag " + ",HMaterName,HMaterModel,HPinfan,HAuxPropID,HMTONo,HInnerBillNo " + ") values (" + "'" + HBarCode + "','" + HBarCodeType + "'," + HMaterID.ToString() + "," + HUnitID.ToString() + "," + HQty2.ToString() + ",'" + HBatchNo2 + "'," + HSupID.ToString() + "," + HGroupID.ToString() + ",'" + ClsPub.CurUserName + "',getdate()," + HPrintQty.ToString() + "," + HQty2.ToString() + ", " + HSourceInterID.ToString() + "," + HSourceEntryID.ToString() + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HWei + "'" + ", " + HBarcodeQtys.ToString() + "," + HBarcodeNo.ToString() + "," + HDeptID.ToString() + "," + HWhID.ToString() + "," + HSPID.ToString() + ",'" + HRemark + "'" + ", " + HCusID.ToString() + ",'" + HCusType + "','" + HEndDate.ToShortDateString() + "','" + HWorkLineName + "','" + sDate + "'" + ", " + HOrgID.ToString() + "," + HOrgID.ToString() + ",'" + HSeOrderBillNo + "'," + HInterID.ToString() + ", " + DBUtility.ClsPub.BoolToString(HGiveAwayFlag) + ",'" + HMaterName + "','" + HMaterModel + "','" + HPinfan + "'," + HAuxPropID.ToString() + ",'" + HMTONo + "','" + HInnerBillNo + "')"); //HNumber = ClsPub.isStrNull(grdSub.Rows[i].Cells[HMaterID2Col].Value); //if (cmbHBarCodeType.Text == "唯一条码") //{ // if (CampanyName == "卓力") //系统参数 客户定制化名称 // { // //条码前缀 = 物料代码 + 年 + 月 + 日 // sTMNumber = HNumber + sYear + sPeriod + sDay; // } // else if (CampanyName == "飞龙") // { // string HWorksNumber = ""; // HWorksNumber = cmbHWorksNumber.Text; // if (HWorksNumber == "") // { // MessageBox.Show("工厂代码不能为空!"); // return; // } // //条码前缀 = 工厂代码 + 物料内码 + 日期 // sTMNumber = HWorksNumber + HNumber + sYear + sPeriod + sDay; // } // else //通用方法 // { // //条码前缀 = 组织代码 + 物料代码 + 年 + 月 + 日 // sTMNumber = HOrgNumber + HNumber + sYear + sPeriod + sDay; // } //} //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'"); } } //增加 条码超过未生成功能控制 // oCn.Commit(); MessageBox.Show("条码生成完毕!"); //grdSub.RowCount = 0; tabControl1.SelectedIndex = 1; } catch (Exception e) { oCn.RollBack(); MessageBox.Show("条码生成失败!" + e.Message); grdSub.RowCount = 0; } } #endregion #region 窗体处理方法 //初始化GRID private void initGrid() { // grdMain.RowCount = 0; grdSub.RowCount = 0; grdMain.ColumnCount = 63; //总列数 DBUtility.Xt_BaseBillFun.initGridFst(grdMain, this.Name); grdMain.Columns[HSnoCol].HeaderText = "序号"; grdMain.Columns[HMainIDCol].HeaderText = "源单主ID"; grdMain.Columns[HSubIDCol].HeaderText = "源单子ID"; grdMain.Columns[HBillNoCol].HeaderText = "源单单号"; grdMain.Columns[HBillTypeCol].HeaderText = "单据类型"; grdMain.Columns[HMaterIDCol].HeaderText = "物料ID"; grdMain.Columns[HMaterNumberCol].HeaderText = "物料代码"; grdMain.Columns[HMaterNameCol].HeaderText = "物料名称"; grdMain.Columns[HMaterModelCol].HeaderText = "规格型号"; grdMain.Columns[HModelCol].HeaderText = "自定义规格"; grdMain.Columns[HPinfanCol].HeaderText = "品番"; grdMain.Columns[HPinfanBarCodeCol].HeaderText = "HPinfanBarCode"; grdMain.Columns[HAuxPropIDCol].HeaderText = "辅助属性ID"; grdMain.Columns[HAuxPropNumberCol].HeaderText = "辅助属性代码"; grdMain.Columns[HAuxPropNameCol].HeaderText = "辅助属性名称"; grdMain.Columns[HUnitIDCol].HeaderText = "计量单位ID"; grdMain.Columns[HUnitNumberCol].HeaderText = "计量单位代码"; grdMain.Columns[HUnitNameCol].HeaderText = "计量单位名称"; grdMain.Columns[HBarCodeTypeCol].HeaderText = "条码类型"; grdMain.Columns[HBatchManagerCol].HeaderText = "是否启用批次"; grdMain.Columns[HBatchNoCol].HeaderText = "批号"; grdMain.Columns[HGiveAwayFlagCol].HeaderText = "是否赠品"; grdMain.Columns[HQtyCol].HeaderText = "数量"; grdMain.Columns[HMinQtyCol].HeaderText = "最小包装数"; grdMain.Columns[HPackQtyCol].HeaderText = "外箱数"; grdMain.Columns[HBQtyCol].HeaderText = "箱数"; grdMain.Columns[HSupIDCol].HeaderText = "供应商ID"; grdMain.Columns[HSupNumberCol].HeaderText = "供应商代码"; grdMain.Columns[HSupNameCol].HeaderText = "供应商"; grdMain.Columns[HDeptIDCol].HeaderText = "车间ID"; grdMain.Columns[HDeptNumberCol].HeaderText = "车间代码"; grdMain.Columns[HDeptNameCol].HeaderText = "车间"; grdMain.Columns[HWhIDCol].HeaderText = "仓库ID"; grdMain.Columns[HWhNumberCol].HeaderText = "仓库代码"; grdMain.Columns[HWhNameCol].HeaderText = "仓库"; grdMain.Columns[HSPIDCol].HeaderText = "仓位ID"; grdMain.Columns[HSPNumberCol].HeaderText = "仓位代码"; grdMain.Columns[HSPNameCol].HeaderText = "仓位"; grdMain.Columns[HInstructNoCol].HeaderText = "指令单号"; grdMain.Columns[HSeOrderBillNoCol].HeaderText = "销售订单号"; grdMain.Columns[HSeOrderSEQCol].HeaderText = "销售订单行号"; grdMain.Columns[HDateCol].HeaderText = "进料日期"; grdMain.Columns[HRemarkCol].HeaderText = "备注"; grdMain.Columns[HMTONoCol].HeaderText = "计划跟踪号"; grdMain.Columns[HCusIDCol].HeaderText = "客户ID"; grdMain.Columns[HCusNumberCol].HeaderText = "客户代码"; grdMain.Columns[HCusNameCol].HeaderText = "客户"; grdMain.Columns[HCusTypeCol].HeaderText = "客户型号"; grdMain.Columns[HEndDateCol].HeaderText = "计划完工日期"; grdMain.Columns[HSourceIDCol].HeaderText = "生产线ID"; grdMain.Columns[HSourceNumberCol].HeaderText = "生产线代码"; grdMain.Columns[HSourceNameCol].HeaderText = "生产线"; grdMain.Columns[HShowDateCol].HeaderText = "日期"; grdMain.Columns[HInnerBillNoCol].HeaderText = "内部采购订单号"; grdMain.Columns[HMakerCol].HeaderText = "制单人"; //// //格式化 grdMain.Columns[HTagCol].Visible = false; //隐藏列 grdMain.Columns[HMainIDCol].Visible = false; grdMain.Columns[HSubIDCol].Visible = false; grdMain.Columns[HBillTypeCol].Visible = false; grdMain.Columns[HMaterIDCol].Visible = false; grdMain.Columns[HModelCol].Visible = false; //grdMain.Columns[HBatchNoCol].Visible = false; grdMain.Columns[HAuxPropIDCol].Visible = false; //grdMain.Columns[HAuxPropNumberCol].Visible = false; //grdMain.Columns[HAuxPropNameCol].Visible = false; grdMain.Columns[HUnitIDCol].Visible = false; grdMain.Columns[HinitQtyCol].Visible = false; grdMain.Columns[HSupIDCol].Visible = false; grdMain.Columns[HSupNumberCol].Visible = false; grdMain.Columns[HSupNameCol].Visible = false; grdMain.Columns[HDeptIDCol].Visible = false; grdMain.Columns[HDeptNumberCol].Visible = false; grdMain.Columns[HDeptNameCol].Visible = false; grdMain.Columns[HWhIDCol].Visible = false; grdMain.Columns[HWhNumberCol].Visible = false; grdMain.Columns[HWhNameCol].Visible = false; grdMain.Columns[HSPIDCol].Visible = false; grdMain.Columns[HSPNumberCol].Visible = false; grdMain.Columns[HSPNameCol].Visible = false; grdMain.Columns[HSourceInterIDCol].Visible = false; grdMain.Columns[HSourceEntryIDCol].Visible = false; grdMain.Columns[HSourceBillNoCol].Visible = false; grdMain.Columns[HSourceBillTypeCol].Visible = false; grdMain.Columns[HInstructIDCol].Visible = false; grdMain.Columns[HInstructNoCol].Visible = false; grdMain.Columns[HSeOrderBillIDCol].Visible = false; //grdMain.Columns[HSeOrderBillNoCol].Visible = false; grdMain.Columns[HBarCodeTypeCol].Visible = false; grdMain.Columns[HBatchManagerCol].Visible = false; //grdMain.Columns[HDateCol].Visible = false; grdMain.Columns[HPinfanCol].Visible = false; grdMain.Columns[HPinfanBarCodeCol].Visible = false; grdMain.Columns[HCusIDCol].Visible = false; //grdMain.Columns[HCusNumberCol].Visible = false; //grdMain.Columns[HCusNameCol].Visible = false; grdMain.Columns[HCusTypeCol].Visible = false; grdMain.Columns[HEndDateCol].Visible = false; grdMain.Columns[HSourceIDCol].Visible = false; grdMain.Columns[HSourceNumberCol].Visible = false; grdMain.Columns[HSourceNameCol].Visible = false; //设置可编辑列 string sAllowCol = HQtyCol.ToString()+ "," + HMinQtyCol.ToString() + "," + HMaterNumberCol.ToString() + "," + HAuxPropNumberCol.ToString() + "," + HUnitNumberCol.ToString() + "," + HSeOrderBillNoCol.ToString() + "," + HBatchNoCol.ToString() + "," + HCusNumberCol.ToString() + "," + HPackQtyCol.ToString() + "," + HRemarkCol.ToString(); //设置合计列 string sTotalCol = HQtyCol.ToString(); //设置特殊列 for (int i = 0; i < grdMain.Rows.Count; i++) { //网格打勾 DataGridViewCheckBoxCell oCell = new DataGridViewCheckBoxCell(); oCell.ThreeState = false; oCell.Value = 0; oCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; grdMain.Rows[i].Cells[HGiveAwayFlagCol] = oCell; } // DBUtility.Xt_BaseBillFun.initGridLast(sAllowCol, sTotalCol,oSumGrid); //---------------------------- grdSub.ColumnCount = 60; //总列数 DBUtility.Xt_BaseBillFun.initGridFst(grdSub, this.Name); grdSub.Columns[HSelectCol].HeaderText = "选择"; grdSub.Columns[HTMCol].HeaderText = "条码编号"; grdSub.Columns[HBarCodeType2Col].HeaderText = "条码类型"; grdSub.Columns[HSno2Col].HeaderText = "序号"; grdSub.Columns[HMaterID2Col].HeaderText = "物料ID"; grdSub.Columns[HMaterNumber2Col].HeaderText = "物料代码"; grdSub.Columns[HMaterName2Col].HeaderText = "物料名称"; grdSub.Columns[HMaterModel2Col].HeaderText = "规格型号"; grdSub.Columns[HModel2Col].HeaderText = "自定义规格"; grdSub.Columns[HAuxPropID2Col].HeaderText = "辅助属性ID"; grdSub.Columns[HAuxPropNumber2Col].HeaderText = "辅助属性代码"; grdSub.Columns[HAuxPropName2Col].HeaderText = "辅助属性"; grdSub.Columns[HPinfan2Col].HeaderText = "品番"; grdSub.Columns[HPinfanBarCode2Col].HeaderText = "HPinfanBarCode"; grdSub.Columns[HBatchNo2Col].HeaderText = "批号"; grdSub.Columns[HGiveAwayFlag2Col].HeaderText = "是否赠品"; grdSub.Columns[HUnitID2Col].HeaderText = "计量单位ID"; grdSub.Columns[HUnitNumber2Col].HeaderText = "计量单位代码"; grdSub.Columns[HUnitName2Col].HeaderText = "计量单位"; grdSub.Columns[HQty2Col].HeaderText = "数量"; grdSub.Columns[HWeiCol].HeaderText = "尾数"; grdSub.Columns[HPrintCol].HeaderText = "打印次数"; grdSub.Columns[HSourceInterID2Col].HeaderText = "源单主ID"; grdSub.Columns[HSourceEntryID2Col].HeaderText = "源单子ID"; grdSub.Columns[HSourceBillNo2Col].HeaderText = "源单单号"; grdSub.Columns[HSourceBillType2Col].HeaderText = "源单类型"; grdSub.Columns[HSeOrderBillNo2Col].HeaderText = "销售订单号"; grdSub.Columns[HSeOrderSEQ2Col].HeaderText = "销售订单行号"; grdSub.Columns[HBarcodeNoCol].HeaderText = "托号"; grdSub.Columns[HBarcodeQtysCol].HeaderText = "总托数"; grdSub.Columns[HSupID2Col].HeaderText = "供应商ID"; grdSub.Columns[HSupNumber2Col].HeaderText = "供应商代码"; grdSub.Columns[HSupName2Col].HeaderText = "供应商"; grdSub.Columns[HDeptID2Col].HeaderText = "车间ID"; grdSub.Columns[HDeptNumber2Col].HeaderText = "车间代码"; grdSub.Columns[HDeptName2Col].HeaderText = "车间"; grdSub.Columns[HWhID2Col].HeaderText = "仓库ID"; grdSub.Columns[HWhNumber2Col].HeaderText = "仓库代码"; grdSub.Columns[HWhName2Col].HeaderText = "仓库"; grdSub.Columns[HSPID2Col].HeaderText = "仓位ID"; grdSub.Columns[HSPNumber2Col].HeaderText = "仓位代码"; grdSub.Columns[HSPName2Col].HeaderText = "仓位"; grdSub.Columns[HInstructNo2Col].HeaderText = "指令单号"; grdSub.Columns[HDate2Col].HeaderText = "进料日期"; grdSub.Columns[HRemark2Col].HeaderText = "备注"; grdSub.Columns[HMTONo2Col].HeaderText = "计划跟踪号"; grdSub.Columns[HCusID2Col].HeaderText = "客户ID"; grdSub.Columns[HCusNumber2Col].HeaderText = "客户代码"; grdSub.Columns[HCusName2Col].HeaderText = "客户"; grdSub.Columns[HCusType2Col].HeaderText = "客户型号"; grdSub.Columns[HEndDate2Col].HeaderText = "计划完工日期"; grdSub.Columns[HSourceID2Col].HeaderText = "生产线ID"; grdSub.Columns[HSourceNumber2Col].HeaderText = "生产线代码"; grdSub.Columns[HSourceName2Col].HeaderText = "生产线"; grdSub.Columns[HShowDate2Col].HeaderText = "日期"; grdSub.Columns[HInnerBillNo2Col].HeaderText = "内部采购订单号"; grdSub.Columns[HMaker2Col].HeaderText = "制单人"; grdSub.Columns[HEntryID2Col].HeaderText = "行号"; //格式化 grdSub.Columns[HMaterID2Col].Visible = false; grdSub.Columns[HModel2Col].Visible = false; grdSub.Columns[HAuxPropID2Col].Visible = false; //grdSub.Columns[HAuxPropNumber2Col].Visible = false; //grdSub.Columns[HAuxPropName2Col].Visible = false; grdSub.Columns[HUnitID2Col].Visible = false; grdSub.Columns[HPrintCol].Visible = false; grdSub.Columns[HSourceInterID2Col].Visible = false; grdSub.Columns[HSourceEntryID2Col].Visible = false; grdSub.Columns[HSourceBillType2Col].Visible = false; grdSub.Columns[HDeptID2Col].Visible = false; grdSub.Columns[HDeptNumber2Col].Visible = false; grdSub.Columns[HDeptName2Col].Visible = false; //grdSub.Columns[HDate2Col].Visible = false; grdSub.Columns[HBarCodeType2Col].Visible = false; //grdSub.Columns[HBatchNo2Col].Visible = false; grdSub.Columns[HWeiCol].Visible = false; grdSub.Columns[HBarcodeNoCol].Visible = false; grdSub.Columns[HBarcodeQtysCol].Visible = false; grdSub.Columns[HSupID2Col].Visible = false; grdSub.Columns[HSupNumber2Col].Visible = false; grdSub.Columns[HSupName2Col].Visible = false; grdSub.Columns[HWhID2Col].Visible = false; grdSub.Columns[HWhNumber2Col].Visible = false; grdSub.Columns[HWhName2Col].Visible = false; grdSub.Columns[HSPID2Col].Visible = false; grdSub.Columns[HSPNumber2Col].Visible = false; grdSub.Columns[HSPName2Col].Visible = false; grdSub.Columns[HInstructID2Col].Visible = false; grdSub.Columns[HInstructNo2Col].Visible = false; grdSub.Columns[HSeOrderBillID2Col].Visible = false; //grdSub.Columns[HSeOrderBillNo2Col].Visible = false; grdSub.Columns[HPinfan2Col].Visible = false; grdSub.Columns[HPinfanBarCode2Col].Visible = false; grdSub.Columns[HCusID2Col].Visible = false; //grdSub.Columns[HCusNumber2Col].Visible = false; //grdSub.Columns[HCusName2Col].Visible = false; grdSub.Columns[HCusType2Col].Visible = false; grdSub.Columns[HEndDate2Col].Visible = false; grdSub.Columns[HSourceID2Col].Visible = false; grdSub.Columns[HSourceNumber2Col].Visible = false; grdSub.Columns[HSourceName2Col].Visible = false; //设置特殊列 for (int i = 0; i < grdSub.Rows.Count; i++) { //网格打勾 DataGridViewCheckBoxCell oCell = new DataGridViewCheckBoxCell(); oCell.ThreeState = false; oCell.Value = 0; oCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; grdSub.Rows[i].Cells[HGiveAwayFlag2Col] = oCell; } DBUtility.Xt_BaseBillFun.GetGrid(grdMain, this.Name); DBUtility.Xt_BaseBillFun.GetGrid(grdSub, this.Name + "grdSub"); grdSub.SelectionMode = DataGridViewSelectionMode.FullRowSelect; //选行模式 //// DBUtility.Xt_BaseBillFun.initGridList(grdList, this.Name + "grdList"); //// } //公式重算 private void RowCount(int sRow, int sTag) { if (sTag == 0) { //箱数列=数量/最小包装数 double sMoney = 0; if (ClsPub.isDoule(grdMain.Rows[sRow].Cells[HMinQtyCol].Value) == 0) { sMoney = 0; } else { sMoney = ClsPub.isDoule(grdMain.Rows[sRow].Cells[HQtyCol].Value) / ClsPub.isDoule(grdMain.Rows[sRow].Cells[HMinQtyCol].Value); } sMoney = Math.Ceiling(sMoney); grdMain.Rows[sRow].Cells[HBQtyCol].Value = sMoney; } else { } //if (ClsPub.isDoule(grdMain.Rows[sRow].Cells[HQtyCol].Value) > ClsPub.isDoule(grdMain.Rows[sRow].Cells[HinitQtyCol].Value) // && ClsPub.isStrNull(grdMain.Rows[sRow].Cells[HBillNoCol].Value) != "") //{ // MessageBox.Show("所输入的产品总数量大于剩余可生成数量" + ClsPub.isDoule(grdMain.Rows[sRow].Cells[HinitQtyCol].Value) + ",请重新输入!"); // grdMain.Rows[sRow].Cells[HQtyCol].Value = ClsPub.isDoule(grdMain.Rows[sRow].Cells[HinitQtyCol].Value); // return; //} } //核对选择的内容 public bool CheckGridCell(Cell oCell) { int Row; int Col; Row = oCell.Row; Col = oCell.Col; //if (ClsPub.isStrNull(grdMain.get_TextMatrix(Row, HTagCol)) != "*") //{ // return true; //} //grdMain.Redraw = VSFlex7.RedrawSettings.flexRDNone; //判断选中列 if (Col == HMaterNumberCol) //物料代码列 { //ClsGy_MaterialHlp oMate = new ClsGy_MaterialHlp(); //if (oMate.GetInfoByID(ClsPub.isLong(grdMain.Rows[Row].Cells[HMaterIDCol].Value))) //{ // grdMain.Rows[Row].Cells[HMaterIDCol].Value = oMate.HItemID.ToString(); // grdMain.Rows[Row].Cells[HMaterNumberCol].Value = oMate.HNumber; // grdMain.Rows[Row].Cells[HMaterNameCol].Value = oMate.HName; // //grdMain.Rows[Row].Cells[HMaterModelCol].Value = oMate.HModel; //} //else //{ // grdMain.Rows[Row].Cells[HMaterIDCol].Value = ""; // grdMain.Rows[Row].Cells[HMaterNumberCol].Value = ""; // grdMain.Rows[Row].Cells[HMaterNameCol].Value = ""; // //grdMain.Rows[Row].Cells[HMaterModelCol].Value = ""; return false; //} } else if (Col == HUnitIDCol) //单位ID列 { //ClsGy_UnitHlp oUn = new ClsGy_UnitHlp(); //if (oUn.GetInfoByID(ClsPub.isLong(grdMain.Rows[Row].Cells[HUnitIDCol]))) //{ // grdMain.Rows[Row].Cells[HUnitIDCol].Value = oUn.HItemID.ToString(); // grdMain.Rows[Row].Cells[HUnitNameCol].Value = oUn.HName; //} //else //{ // grdMain.Rows[Row].Cells[HUnitIDCol].Value = ""; // grdMain.Rows[Row].Cells[HUnitNameCol].Value = ""; return false; //} } else //其他列 { } // // grdMain.Rows[Row].Cells[HTagCol].Value = "*"; oSumGrid.EditStatus = false; return true; } //是否是空行 private bool IsNullRow(int Row) { return DBUtility.Xt_BaseBillFun.IsNullRow(Row, HMaterIDCol,grdMain); } //'判断网格行的录入是否正确 private bool CheckGridRow(int Row) { Cell oCell = new Cell(); int c = 0; //if (ClsPub.isStrNull(grdMain.get_TextMatrix(Row, HTagCol)) != "*") //{ // return true; //} // for (c = 0; c < grdMain.ColumnCount; c++) { oCell.Row = Row; oCell.Col = c; //if (!CheckGridCell(oCell)) // return false; } return true; } //帮助函数 private void Sub_GridKey(int sKeyCode, int sRow, int sCol, DataGridViewTextBoxEditingControl oEdit) { DataSet oDs = new DataSet(); DataSet oDs2 = new DataSet(); long sHMaterID = 0; long sHAuxPropID = 0; long sHOrgID = -1; string sWhere = ""; DAL.ClsGy_ORGANIZATIONS_View oClsGy_ORGANIZATIONS_View = new DAL.ClsGy_ORGANIZATIONS_View(); if (oClsGy_ORGANIZATIONS_View.GetInfoByName(cmbHOrgID.Text)) { sHOrgID = oClsGy_ORGANIZATIONS_View.omodel.HItemID; } if (sHOrgID == -1) { MessageBox.Show("选择组织有错误!"); return; } DAL.ClsIF_Material_View oMater = new DAL.ClsIF_Material_View();//物料 DAL.ClsIF_Unit_View oUnit = new DAL.ClsIF_Unit_View();//计量单位 DAL.ClsIF_Property_View oProperty = new DAL.ClsIF_Property_View();//辅助属性 if (!grdStatus) { return; } //if (oSumGrid.FindAllowEditCol(sCol)) //{ oSumGrid.EditStatus = true; //} //else //{ // return; //} switch (sKeyCode) { case 118: //F7 { switch (sCol) { case HMaterNumberCol: oMater.WherePart = ""; sWhere = " and HUSEORGID = " + sHOrgID; if (oMater.RefreshViewForBig(sWhere)) { if (oMater.GetInfoByID(oMater.oModel.HItemID)) { grdMain.Rows[sRow].Cells[HMaterIDCol].Value = oMater.omodel.HItemID.ToString(); grdMain.Rows[sRow].Cells[HMaterNumberCol].Value = oMater.omodel.HNumber; grdMain.Rows[sRow].Cells[HMaterNameCol].Value = oMater.omodel.HName; grdMain.Rows[sRow].Cells[HMaterModelCol].Value = oMater.omodel.HModel; grdMain.Rows[sRow].Cells[HMinQtyCol].Value = oMater.omodel.HQtyMin; grdMain.Rows[sRow].Cells[HDateCol].Value = dtpHDate.Value.ToShortDateString(); grdMain.Rows[sRow].Cells[HShowDateCol].Value = dtpHDate.Value.ToShortDateString(); grdMain.Rows[sRow].Cells[HAuxPropIDCol].Value = 0; grdMain.Rows[sRow].Cells[HAuxPropNumberCol].Value = ""; grdMain.Rows[sRow].Cells[HAuxPropNameCol].Value = ""; if (oUnit.GetInfoByID(oMater.omodel.HUnitID)) { grdMain.Rows[sRow].Cells[HUnitIDCol].Value = oUnit.omodel.HItemID.ToString(); grdMain.Rows[sRow].Cells[HUnitNumberCol].Value = oUnit.omodel.HNumber; grdMain.Rows[sRow].Cells[HUnitNameCol].Value = oUnit.omodel.HName; } else { grdMain.Rows[sRow].Cells[HUnitIDCol].Value = 0; grdMain.Rows[sRow].Cells[HUnitNumberCol].Value = ""; grdMain.Rows[sRow].Cells[HUnitNameCol].Value = ""; } oEdit.Text = oMater.omodel.HNumber; } else { grdMain.Rows[sRow].Cells[HMaterIDCol].Value = 0; grdMain.Rows[sRow].Cells[HMaterNumberCol].Value = ""; grdMain.Rows[sRow].Cells[HMaterNameCol].Value = ""; grdMain.Rows[sRow].Cells[HMaterModelCol].Value = ""; grdMain.Rows[sRow].Cells[HMinQtyCol].Value = 0; grdMain.Rows[sRow].Cells[HUnitIDCol].Value = 0; grdMain.Rows[sRow].Cells[HUnitNumberCol].Value = ""; grdMain.Rows[sRow].Cells[HUnitNameCol].Value = ""; grdMain.Rows[sRow].Cells[HAuxPropIDCol].Value = 0; grdMain.Rows[sRow].Cells[HAuxPropNumberCol].Value = ""; grdMain.Rows[sRow].Cells[HAuxPropNameCol].Value = ""; } } else { grdMain.Rows[sRow].Cells[HMaterIDCol].Value = 0; grdMain.Rows[sRow].Cells[HMaterNumberCol].Value = ""; grdMain.Rows[sRow].Cells[HMaterNameCol].Value = ""; grdMain.Rows[sRow].Cells[HMaterModelCol].Value = ""; grdMain.Rows[sRow].Cells[HMinQtyCol].Value = 0; grdMain.Rows[sRow].Cells[HUnitIDCol].Value = 0; grdMain.Rows[sRow].Cells[HUnitNumberCol].Value = ""; grdMain.Rows[sRow].Cells[HUnitNameCol].Value = ""; grdMain.Rows[sRow].Cells[HAuxPropIDCol].Value = 0; grdMain.Rows[sRow].Cells[HAuxPropNumberCol].Value = ""; grdMain.Rows[sRow].Cells[HAuxPropNameCol].Value = ""; } break; case HUnitNumberCol: oUnit.WherePart = ""; if (oUnit.RefreshView()) { grdMain.Rows[sRow].Cells[HUnitIDCol].Value = oUnit.oModel.HItemID.ToString(); grdMain.Rows[sRow].Cells[HUnitNumberCol].Value = oUnit.oModel.HNumber; grdMain.Rows[sRow].Cells[HUnitNameCol].Value = oUnit.oModel.HName; EditingControl.Text = oUnit.oModel.HNumber; } else { grdMain.Rows[sRow].Cells[HUnitIDCol].Value = 0; grdMain.Rows[sRow].Cells[HUnitNumberCol].Value = ""; grdMain.Rows[sRow].Cells[HUnitNameCol].Value = ""; } break; case HDeptNumberCol: BLL.ClsBaseSelect_InterFace.SetGridByDept(grdMain, sRow, HDeptIDCol, HDeptNumberCol, HDeptNameCol); oEdit.Text = DBUtility.ClsPub.isStrNull(grdMain.Rows[sRow].Cells[HDeptNumberCol].Value); break; case HCusNumberCol: BLL.ClsBaseSelect_InterFace.SetGridByCus(grdMain, sRow, HCusIDCol, HCusNumberCol, HCusNameCol); oEdit.Text = DBUtility.ClsPub.isStrNull(grdMain.Rows[sRow].Cells[HCusNumberCol].Value); break; case HDateCol: BLL.ClsPub_BLL.Sub_SelectDate(grdMain, sRow, HDateCol); oEdit.Text = DBUtility.ClsPub.isStrNull(grdMain.Rows[sRow].Cells[HDateCol].Value); break; case HAuxPropNumberCol: oProperty.WherePart = ""; if (ERPMode == "CLOUD") { sWhere = " and HMaterNumber = '" + DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentCell.RowIndex].Cells[HMaterNumberCol].Value) + "'"; } else { sWhere = ""; } if (oProperty.RefreshView(sWhere)) { grdMain.Rows[sRow].Cells[HAuxPropIDCol].Value = oProperty.oModel.HItemID.ToString(); grdMain.Rows[sRow].Cells[HAuxPropNumberCol].Value = oProperty.oModel.HNumber; grdMain.Rows[sRow].Cells[HAuxPropNameCol].Value = oProperty.oModel.HName; oEdit.Text = oProperty.oModel.HNumber; } else { grdMain.Rows[sRow].Cells[HAuxPropIDCol].Value = 0; grdMain.Rows[sRow].Cells[HAuxPropNumberCol].Value = ""; grdMain.Rows[sRow].Cells[HAuxPropNameCol].Value = ""; } break; default: break; } bc.Enabled = true; break; } case 117: //F6 { switch (sCol) { default: break; } break; } default: break; } } //选原单 private void cmdSourceBillNo_Click(object sender, EventArgs e) { DAL.ClsGy_ORGANIZATIONS_View oClsGy_ORGANIZATIONS_View = new DAL.ClsGy_ORGANIZATIONS_View(); if (oClsGy_ORGANIZATIONS_View.GetInfoByName(cmbHOrgID.Text)) { HOrgID = oClsGy_ORGANIZATIONS_View.omodel.HItemID; } if (HOrgID == -1) { MessageBox.Show("选择组织有错误!"); return; } if (cmbSourceBillType.Text.Trim() == "生产订单") { string sWhere = " and HOrgID =" + HOrgID.ToString(); DAL.Cls_S_IFCLD_ICMOList oIFCLD_ICMOList = new DAL.Cls_S_IFCLD_ICMOList(); if (oIFCLD_ICMOList.Refresh(sWhere)) //选择原单 { FillSelectData(oIFCLD_ICMOList.oBillSelectColl); } } else if (cmbSourceBillType.Text.Trim() == "生产汇报单") { string sWhere = " and HOrgID =" + HOrgID.ToString(); DAL.Cls_S_IF_ICMOReportBillList oIF_ICMOReportBillList = new DAL.Cls_S_IF_ICMOReportBillList(); if (oIF_ICMOReportBillList.Refresh(sWhere)) //选择原单 { FillSelectData(oIF_ICMOReportBillList.oBillSelectColl); } } else if (cmbSourceBillType.Text.Trim() == "收料通知单") { string sWhere = " and HOrgID =" + HOrgID.ToString(); DAL.Cls_S_IF_POInStockBillList oIF_POInStockBillList = new DAL.Cls_S_IF_POInStockBillList(); if (oIF_POInStockBillList.Refresh(sWhere)) //选择原单 { FillSelectData(oIF_POInStockBillList.oBillSelectColl); } } else if (cmbSourceBillType.Text.Trim() == "采购订单") { string sWhere = " and HOrgID =" + HOrgID.ToString(); DAL.Cls_S_IF_POOrderBillList oIF_POOrderBillList = new DAL.Cls_S_IF_POOrderBillList(); if (oIF_POOrderBillList.Refresh(sWhere)) //选择原单 { FillSelectData(oIF_POOrderBillList.oBillSelectColl); } } else if (cmbSourceBillType.Text.Trim() == "委外订单") { string sWhere = " and HOrgID =" + HOrgID.ToString(); DAL.Cls_S_IF_EntrustOrderBillList oIF_EntrustOrderBillList = new DAL.Cls_S_IF_EntrustOrderBillList(); if (oIF_EntrustOrderBillList.Refresh(sWhere)) //选择原单 { FillSelectData(oIF_EntrustOrderBillList.oBillSelectColl); } } else if (cmbSourceBillType.Text.Trim() == "采购入库单") { string sWhere = ""; DAL.Cls_S_IF_POStockInBillList oIF_POStockInBillList = new DAL.Cls_S_IF_POStockInBillList(); if (oIF_POStockInBillList.Refresh(sWhere)) //选择原单 { FillSelectData(oIF_POStockInBillList.oBillSelectColl); } } else if (cmbSourceBillType.Text.Trim() == "倒箱单") { string sWhere = ""; DAL.Cls_S_IF_ChangeBoxBillList oIF_ChangeBoxBillList = new DAL.Cls_S_IF_ChangeBoxBillList(); if (oIF_ChangeBoxBillList.Refresh(sWhere)) //选择原单 { FillSelectData(oIF_ChangeBoxBillList.oBillSelectColl); } } else if (cmbSourceBillType.Text.Trim() == "退货通知单") { string sWhere = ""; DAL.Cls_S_IF_SeOutStockBackBillList oIF_SeOutStockBackBillList = new DAL.Cls_S_IF_SeOutStockBackBillList(); if (oIF_SeOutStockBackBillList.Refresh(sWhere)) //选择原单 { FillSelectData(oIF_SeOutStockBackBillList.oBillSelectColl); } } else if (cmbSourceBillType.Text.Trim() == "其他入库单") { string sWhere = " and HOrgID =" + HOrgID.ToString(); DAL.Cls_S_IF_OtherInBillList oIF_OtherInBillList = new DAL.Cls_S_IF_OtherInBillList(); if (oIF_OtherInBillList.Refresh(sWhere)) //选择原单 { FillSelectData(oIF_OtherInBillList.oBillSelectColl); } } else if (cmbSourceBillType.Text.Trim() == "直接调拨单") { string sWhere = " and HOrgID =" + HOrgID.ToString(); DAL.Cls_S_IF_MoveStockBillList oIF_MoveStockBillList = new DAL.Cls_S_IF_MoveStockBillList(); if (oIF_MoveStockBillList.Refresh(sWhere)) //选择原单 { FillSelectData(oIF_MoveStockBillList.oBillSelectColl); } } else if (cmbSourceBillType.Text.Trim() == "采购退料单") { string sWhere = " and HOrgID =" + HOrgID.ToString(); DAL.Cls_S_IF_POStockInBackBillList oIF_POStockInBackBillList = new DAL.Cls_S_IF_POStockInBackBillList(); if (oIF_POStockInBackBillList.Refresh(sWhere)) //选择原单 { FillSelectData(oIF_POStockInBackBillList.oBillSelectColl); } } else if (cmbSourceBillType.Text.Trim() == "生产退料单") { string sWhere = " and HOrgID =" + HOrgID.ToString(); DAL.Cls_S_IF_MateOutBackBillList oIF_MateOutBackBillList = new DAL.Cls_S_IF_MateOutBackBillList(); if (oIF_MateOutBackBillList.Refresh(sWhere)) //选择原单 { FillSelectData(oIF_MateOutBackBillList.oBillSelectColl); } } else if (cmbSourceBillType.Text.Trim() == "组装拆卸单") { string sWhere = " and HOrgID =" + HOrgID.ToString(); DAL.Cls_S_IF_PackageDismantleBillList oIF_PackageDismantleBillList = new DAL.Cls_S_IF_PackageDismantleBillList(); if (oIF_PackageDismantleBillList.Refresh(sWhere)) //选择原单 { FillSelectData(oIF_PackageDismantleBillList.oBillSelectColl); } } else { } } // private void FillSelectData(List oList) { DataSet Ds; oSumGrid.Changelock = true; initGrid(); int i = -1; foreach (DBUtility.BillSelect oSelectRow in oList) { i = i + 1; //生产订单 if (oSelectRow.BillType == "3710") { grdMain.Rows.Add(); grdMain.Rows[i].Cells[HTagCol].Value = "*"; //得到信息 Ds = oCn.RunProcReturn("select * from h_v_IFCLD_ICMOList where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IFCLD_ICMOList"); //写入信息 Sub_WriteInForm(Ds.Tables[0], i); } //生产汇报单 if (oSelectRow.BillType == "3711") { grdMain.Rows.Add(); grdMain.Rows[i].Cells[HTagCol].Value = "*"; //得到信息 Ds = oCn.RunProcReturn("select * from h_v_IF_ICMOReportList where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_ICMOReportList"); //写入信息 Sub_WriteInForm1(Ds.Tables[0], i); } //收料通知单 if (oSelectRow.BillType == "1103") { grdMain.Rows.Add(); grdMain.Rows[i].Cells[HTagCol].Value = "*"; //得到信息 Ds = oCn.RunProcReturn("select * from h_v_IF_POInStockList where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_POInStockList"); //写入信息 Sub_WriteInForm1(Ds.Tables[0], i); } //采购订单 if (oSelectRow.BillType == "1102") { grdMain.Rows.Add(); grdMain.Rows[i].Cells[HTagCol].Value = "*"; //得到信息 Ds = oCn.RunProcReturn("select * from h_v_IF_POOrderList where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_POOrderList"); //写入信息 Sub_WriteInForm1(Ds.Tables[0], i); } //委外订单 if (oSelectRow.BillType == "1601") { grdMain.Rows.Add(); grdMain.Rows[i].Cells[HTagCol].Value = "*"; //得到信息 Ds = oCn.RunProcReturn("select * from h_v_IF_EntrustOrderList where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_EntrustOrderList"); //写入信息 Sub_WriteInForm1(Ds.Tables[0], i); } //采购入库单 if (oSelectRow.BillType == "1201") { grdMain.Rows.Add(); grdMain.Rows[i].Cells[HTagCol].Value = "*"; //得到信息 Ds = oCn.RunProcReturn("select * from h_v_IF_POStockInList where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_POStockInList"); //写入信息 Sub_WriteInForm1(Ds.Tables[0], i); } //倒箱单 if (oSelectRow.BillType == "1240") { grdMain.Rows.Add(); grdMain.Rows[i].Cells[HTagCol].Value = "*"; //得到信息 Ds = oCn.RunProcReturn("select * from h_v_IF_ChangeBoxList where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_ChangeBoxList"); //写入信息 Sub_WriteInForm3(Ds.Tables[0], i); } //退货通知单 if (oSelectRow.BillType == "1403") { grdMain.Rows.Add(); grdMain.Rows[i].Cells[HTagCol].Value = "*"; //得到信息 Ds = oCn.RunProcReturn("select * from h_v_IF_SeOutStockBackList where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_SeOutStockBackList"); //写入信息 Sub_WriteInForm1(Ds.Tables[0], i); } //其他入库单 if (oSelectRow.BillType == "1203") { grdMain.Rows.Add(); grdMain.Rows[i].Cells[HTagCol].Value = "*"; //得到信息 Ds = oCn.RunProcReturn("select * from h_v_IF_OtherInList where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_OtherInList"); //写入信息 Sub_WriteInForm1(Ds.Tables[0], i); } //直接调拨单 if (oSelectRow.BillType == "1207") { grdMain.Rows.Add(); grdMain.Rows[i].Cells[HTagCol].Value = "*"; //得到信息 Ds = oCn.RunProcReturn("select * from h_v_IF_MoveStockList where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_MoveStockList"); //写入信息 Sub_WriteInForm1(Ds.Tables[0], i); } //采购退料单 if (oSelectRow.BillType == "1239") { grdMain.Rows.Add(); grdMain.Rows[i].Cells[HTagCol].Value = "*"; //得到信息 Ds = oCn.RunProcReturn("select * from h_v_IF_POStockInBackList where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_POStockInBackList"); //写入信息 Sub_WriteInForm1(Ds.Tables[0], i); } //生产退料单 if (oSelectRow.BillType == "1244") { grdMain.Rows.Add(); grdMain.Rows[i].Cells[HTagCol].Value = "*"; //得到信息 Ds = oCn.RunProcReturn("select * from h_v_IF_MateOutBackList where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_MateOutBackList"); //写入信息 Sub_WriteInForm1(Ds.Tables[0], i); } //组装拆卸单 if (oSelectRow.BillType == "1255") { grdMain.Rows.Add(); grdMain.Rows[i].Cells[HTagCol].Value = "*"; //得到信息 Ds = oCn.RunProcReturn("select * from h_v_IF_PackageDismantleList where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_PackageDismantleList"); //写入信息 Sub_WriteInForm1(Ds.Tables[0], i); } //即时库存 if (oSelectRow.BillType == "JSKC") { grdMain.Rows.Add(); Application.DoEvents(); //得到信息 Ds = oCn.RunProcReturn("select * from h_v_KF_ICInventoryList_IF where hmaterid=" + oSelectRow.BillMainID + " and hwhid=" + oSelectRow.BillSubID + " and hspid=" + oSelectRow.SPID + " and HAuxPropID=" + oSelectRow.HAuxPropID + " and 批次='" + oSelectRow.BatchNo + "' and 计划跟踪号='" + oSelectRow.BillNo + "'", "h_v_KF_ICInventoryList_IF"); //写入信息 Sub_WriteInForm2(Ds.Tables[0], i); } } // oSumGrid.Changelock = false; DBUtility.Xt_BaseBillFun.SetSumGrid(oSumGrid); } //根据TABLE写入界面(生产任务单) private void Sub_WriteInForm(DataTable oTable, int i) { ////加载表头 //this.txtHDeptID.Tag = oTable.Rows[0]["HDeptID"].ToString(); //this.txtHDeptID.Text = oTable.Rows[0]["部门名称"].ToString(); ////加载表体 grdMain.Rows[i].Cells[HTagCol].Value = "*"; grdMain.Rows[i].Cells[HQtyCol].Value = ClsPub.isDoule(oTable.Rows[0]["未生成条码数量"]); grdMain.Rows[i].Cells[HinitQtyCol].Value = ClsPub.isDoule(oTable.Rows[0]["未生成条码数量"]); // grdMain.Rows[i].Cells[HMainIDCol].Value = oTable.Rows[0]["hmainid"].ToString(); grdMain.Rows[i].Cells[HSubIDCol].Value = oTable.Rows[0]["hsubid"].ToString(); grdMain.Rows[i].Cells[HBillNoCol].Value = oTable.Rows[0]["单据号"].ToString(); grdMain.Rows[i].Cells[HSourceBillNoCol].Value = oTable.Rows[0]["单据号"].ToString(); grdMain.Rows[i].Cells[HBillTypeCol].Value = oTable.Rows[0]["HBillType"].ToString(); grdMain.Rows[i].Cells[HDateCol].Value = oTable.Rows[0]["日期"].ToString(); //博日 收料单据日期 grdMain.Rows[i].Cells[HShowDateCol].Value = dtpHDate.Value.ToShortDateString(); grdMain.Rows[i].Cells[HSupIDCol].Value = oTable.Rows[0]["hsupid"].ToString(); grdMain.Rows[i].Cells[HSupNumberCol].Value = oTable.Rows[0]["供应商代码"].ToString(); grdMain.Rows[i].Cells[HSupNameCol].Value = oTable.Rows[0]["供应商"].ToString(); grdMain.Rows[i].Cells[HDeptIDCol].Value = oTable.Rows[0]["HDeptID"].ToString(); grdMain.Rows[i].Cells[HDeptNumberCol].Value = oTable.Rows[0]["部门代码"].ToString(); grdMain.Rows[i].Cells[HDeptNameCol].Value = oTable.Rows[0]["部门"].ToString(); grdMain.Rows[i].Cells[HMaterIDCol].Value = oTable.Rows[0]["HMaterID"].ToString(); grdMain.Rows[i].Cells[HMaterNumberCol].Value = oTable.Rows[0]["物料代码"].ToString(); grdMain.Rows[i].Cells[HMaterNameCol].Value = oTable.Rows[0]["物料名称"].ToString(); grdMain.Rows[i].Cells[HMaterModelCol].Value = oTable.Rows[0]["规格型号"].ToString(); //grdMain.Rows[i].Cells[HBatchManagerCol].Value = oTable.Rows[0]["是否启用批次"].ToString(); grdMain.Rows[i].Cells[HBatchNoCol].Value = oTable.Rows[0]["批次"].ToString(); grdMain.Rows[i].Cells[HUnitIDCol].Value = oTable.Rows[0]["HUnitID"].ToString(); grdMain.Rows[i].Cells[HUnitNumberCol].Value = oTable.Rows[0]["计量单位代码"].ToString(); grdMain.Rows[i].Cells[HUnitNameCol].Value = oTable.Rows[0]["计量单位"].ToString(); grdMain.Rows[i].Cells[HRemarkCol].Value = oTable.Rows[0]["备注"].ToString(); grdMain.Rows[i].Cells[HMTONoCol].Value = oTable.Rows[0]["计划跟踪号"].ToString(); grdMain.Rows[i].Cells[HCusIDCol].Value = oTable.Rows[0]["HCusID"].ToString(); grdMain.Rows[i].Cells[HCusNumberCol].Value = oTable.Rows[0]["客户代码"].ToString(); grdMain.Rows[i].Cells[HCusNameCol].Value = oTable.Rows[0]["客户"].ToString(); grdMain.Rows[i].Cells[HCusTypeCol].Value = oTable.Rows[0]["客户型号"].ToString(); grdMain.Rows[i].Cells[HPinfanBarCodeCol].Value = oTable.Rows[0]["HPinfanBarCode"].ToString(); grdMain.Rows[i].Cells[HPinfanCol].Value = oTable.Rows[0]["HPinfan"].ToString(); //grdMain.Rows[i].Cells[HSourceIDCol].Value = oTable.Rows[0]["HSourceID"].ToString(); //grdMain.Rows[i].Cells[HSourceNumberCol].Value = oTable.Rows[0]["生产线代码"].ToString(); grdMain.Rows[i].Cells[HSourceNameCol].Value = oTable.Rows[0]["生产线"].ToString(); grdMain.Rows[i].Cells[HEndDateCol].Value = oTable.Rows[0]["计划完工日期"].ToString();//博日 生产订单 失效日期 if (cmbHBarCodeType.Text == "仪器外购件条码容器规则" ) { grdMain.Rows[i].Cells[HMinQtyCol].Value = ClsPub.isDoule(oTable.Rows[0]["未生成条码数量"]); } else if (cmbHBarCodeType.Text == "仪器外购件条码普通规则" || cmbHBarCodeType.Text == "仪器成品条码规则" || cmbHBarCodeType.Text == "试剂成品条码规则") { grdMain.Rows[i].Cells[HMinQtyCol].Value = "1"; } else { grdMain.Rows[i].Cells[HMinQtyCol].Value = oTable.Rows[0]["最小包装数"].ToString(); } //-- //设置可编辑列 string sAllowCol = HQtyCol.ToString() + "," + HMinQtyCol.ToString() + "," + HAuxPropNumberCol.ToString() + "," + HBatchNoCol.ToString() + "," + HPackQtyCol.ToString() + "," + HRemarkCol.ToString(); grdMain.Columns[HBillNoCol].ReadOnly = true; //设置合计列 string sTotalCol = HQtyCol.ToString(); // DBUtility.Xt_BaseBillFun.initGridLast(sAllowCol, sTotalCol, oSumGrid); tabControl1.SelectedIndex = 0; bc.Enabled = true; // RowCount(i, 0); } //根据TABLE写入界面 private void Sub_WriteInForm1(DataTable oTable, int i) { ////加载表头 //this.txtHDeptID.Tag = oTable.Rows[0]["HDeptID"].ToString(); //this.txtHDeptID.Text = oTable.Rows[0]["部门名称"].ToString(); ////加载表体 grdMain.Rows[i].Cells[HTagCol].Value = "*"; grdMain.Rows[i].Cells[HQtyCol].Value = ClsPub.isDoule(oTable.Rows[0]["未生成条码数量"]); grdMain.Rows[i].Cells[HinitQtyCol].Value = ClsPub.isDoule(oTable.Rows[0]["未生成条码数量"]); // grdMain.Rows[i].Cells[HMainIDCol].Value = oTable.Rows[0]["hmainid"].ToString(); grdMain.Rows[i].Cells[HSubIDCol].Value = oTable.Rows[0]["hsubid"].ToString(); grdMain.Rows[i].Cells[HBillNoCol].Value = oTable.Rows[0]["单据号"].ToString(); grdMain.Rows[i].Cells[HBillTypeCol].Value = oTable.Rows[0]["HBillType"].ToString(); grdMain.Rows[i].Cells[HDateCol].Value = oTable.Rows[0]["日期"].ToString(); //博日 单据日期 grdMain.Rows[i].Cells[HShowDateCol].Value = dtpHDate.Value.ToShortDateString(); grdMain.Rows[i].Cells[HDeptIDCol].Value = oTable.Rows[0]["HDeptID"].ToString(); grdMain.Rows[i].Cells[HDeptNumberCol].Value = oTable.Rows[0]["部门代码"].ToString(); grdMain.Rows[i].Cells[HDeptNameCol].Value = oTable.Rows[0]["部门"].ToString(); grdMain.Rows[i].Cells[HMaterIDCol].Value = oTable.Rows[0]["HMaterID"].ToString(); grdMain.Rows[i].Cells[HMaterNumberCol].Value = oTable.Rows[0]["物料代码"].ToString(); grdMain.Rows[i].Cells[HMaterNameCol].Value = oTable.Rows[0]["物料名称"].ToString(); grdMain.Rows[i].Cells[HMaterModelCol].Value = oTable.Rows[0]["规格型号"].ToString(); //grdMain.Rows[i].Cells[HBatchManagerCol].Value = oTable.Rows[0]["是否启用批次"].ToString(); grdMain.Rows[i].Cells[HBatchNoCol].Value = oTable.Rows[0]["批次"].ToString(); grdMain.Rows[i].Cells[HUnitIDCol].Value = oTable.Rows[0]["HUnitID"].ToString(); grdMain.Rows[i].Cells[HUnitNumberCol].Value = oTable.Rows[0]["计量单位代码"].ToString(); grdMain.Rows[i].Cells[HUnitNameCol].Value = oTable.Rows[0]["计量单位"].ToString(); grdMain.Rows[i].Cells[HRemarkCol].Value = oTable.Rows[0]["备注"].ToString(); grdMain.Rows[i].Cells[HMTONoCol].Value = oTable.Rows[0]["计划跟踪号"].ToString(); if (cmbHBarCodeType.Text == "仪器外购件条码容器规则") { grdMain.Rows[i].Cells[HMinQtyCol].Value = ClsPub.isDoule(oTable.Rows[0]["未生成条码数量"]); } else if (cmbHBarCodeType.Text == "仪器外购件条码普通规则") { grdMain.Rows[i].Cells[HMinQtyCol].Value = "1"; } else { grdMain.Rows[i].Cells[HMinQtyCol].Value = oTable.Rows[0]["最小包装数"].ToString(); } grdMain.Rows[i].Cells[HMakerCol].Value = ClsPub.CurUserName; if (cmbSourceBillType.Text.Trim() == "收料通知单"|| cmbSourceBillType.Text.Trim() == "采购订单" || cmbSourceBillType.Text.Trim() == "委外订单" || cmbSourceBillType.Text.Trim() == "采购入库单") { grdMain.Rows[i].Cells[HInnerBillNoCol].Value = oTable.Rows[0]["内部采购订单号"].ToString(); grdMain.Rows[i].Cells[HSupIDCol].Value = oTable.Rows[0]["hsupid"].ToString(); grdMain.Rows[i].Cells[HSupNumberCol].Value = oTable.Rows[0]["供应商代码"].ToString(); grdMain.Rows[i].Cells[HSupNameCol].Value = oTable.Rows[0]["供应商"].ToString(); if (cmbSourceBillType.Text.Trim() == "收料通知单") { if (oTable.Rows[0]["是否赠品"].ToString() == "是") { grdMain.Rows[i].Cells[HGiveAwayFlagCol].Value = 1; } else { grdMain.Rows[i].Cells[HGiveAwayFlagCol].Value = 0; } grdMain.Rows[i].Cells[HSeOrderBillNoCol].Value = oTable.Rows[0]["销售订单号"].ToString(); grdMain.Rows[i].Cells[HSeOrderSEQCol].Value = oTable.Rows[0]["销售订单行号"].ToString(); } } if (cmbSourceBillType.Text.Trim() == "退货通知单") { grdMain.Rows[i].Cells[HCusIDCol].Value = oTable.Rows[0]["HCusID"].ToString(); grdMain.Rows[i].Cells[HCusNumberCol].Value = oTable.Rows[0]["客户代码"].ToString(); grdMain.Rows[i].Cells[HCusNameCol].Value = oTable.Rows[0]["客户"].ToString(); } if (cmbSourceBillType.Text.Trim() == "其他入库单") { grdMain.Rows[i].Cells[HWhIDCol].Value = oTable.Rows[0]["HWhID"].ToString(); grdMain.Rows[i].Cells[HWhNumberCol].Value = oTable.Rows[0]["仓库代码"].ToString(); grdMain.Rows[i].Cells[HWhNameCol].Value = oTable.Rows[0]["仓库"].ToString(); grdMain.Rows[i].Cells[HSPIDCol].Value = oTable.Rows[0]["HSPID"].ToString(); grdMain.Rows[i].Cells[HSPNumberCol].Value = oTable.Rows[0]["仓位代码"].ToString(); grdMain.Rows[i].Cells[HSPNameCol].Value = oTable.Rows[0]["仓位"].ToString(); } //-- //设置可编辑列 string sAllowCol = HQtyCol.ToString() + "," + HMinQtyCol.ToString() + "," + HAuxPropNumberCol.ToString() + "," + HBatchNoCol.ToString() + "," + HRemarkCol.ToString(); grdMain.Columns[HBillNoCol].ReadOnly = true; //设置合计列 string sTotalCol = HQtyCol.ToString(); // DBUtility.Xt_BaseBillFun.initGridLast(sAllowCol, sTotalCol, oSumGrid); tabControl1.SelectedIndex = 0; bc.Enabled = true; // RowCount(i, 0); } //根据TABLE写入界面(K3即时库存) private void Sub_WriteInForm2(DataTable oTable, int i) { ////加载表头 //this.txtHDeptID.Tag = oTable.Rows[0]["HDeptID"].ToString(); //this.txtHDeptID.Text = oTable.Rows[0]["部门名称"].ToString(); ////加载表体 grdMain.Rows[i].Cells[HTagCol].Value = "*"; grdMain.Rows[i].Cells[HQtyCol].Value = ClsPub.isDoule(oTable.Rows[0]["数量"]); grdMain.Rows[i].Cells[HinitQtyCol].Value = ClsPub.isDoule(oTable.Rows[0]["数量"]); // //grdMain.Rows[i].Cells[HMainIDCol].Value = oTable.Rows[0]["hmainid"].ToString(); //grdMain.Rows[i].Cells[HBillNoCol].Value = oTable.Rows[0]["任务单号"].ToString(); //grdMain.Rows[i].Cells[HBillTypeCol].Value = oTable.Rows[0]["HBillType"].ToString(); grdMain.Rows[i].Cells[HMaterIDCol].Value = oTable.Rows[0]["HMaterID"].ToString(); grdMain.Rows[i].Cells[HMaterNumberCol].Value = oTable.Rows[0]["物料代码"].ToString(); grdMain.Rows[i].Cells[HMaterNameCol].Value = oTable.Rows[0]["物料名称"].ToString(); grdMain.Rows[i].Cells[HMaterModelCol].Value = oTable.Rows[0]["规格型号"].ToString(); grdMain.Rows[i].Cells[HAuxPropIDCol].Value = oTable.Rows[0]["HAuxPropID"].ToString(); grdMain.Rows[i].Cells[HAuxPropNumberCol].Value = oTable.Rows[0]["辅助属性代码"].ToString(); grdMain.Rows[i].Cells[HAuxPropNameCol].Value = oTable.Rows[0]["辅助属性名称"].ToString(); grdMain.Rows[i].Cells[HBatchNoCol].Value = oTable.Rows[0]["批次"].ToString(); grdMain.Rows[i].Cells[HUnitIDCol].Value = oTable.Rows[0]["HUnitID"].ToString(); grdMain.Rows[i].Cells[HUnitNumberCol].Value = oTable.Rows[0]["计量单位代码"].ToString(); grdMain.Rows[i].Cells[HUnitNameCol].Value = oTable.Rows[0]["计量单位"].ToString(); grdMain.Rows[i].Cells[HSupIDCol].Value = oTable.Rows[0]["HSupplyID"].ToString(); grdMain.Rows[i].Cells[HSupNumberCol].Value = oTable.Rows[0]["供应商代码"].ToString(); grdMain.Rows[i].Cells[HSupNameCol].Value = oTable.Rows[0]["供应商"].ToString(); grdMain.Rows[i].Cells[HWhIDCol].Value = oTable.Rows[0]["HWhID"].ToString(); grdMain.Rows[i].Cells[HWhNumberCol].Value = oTable.Rows[0]["仓库代码"].ToString(); grdMain.Rows[i].Cells[HWhNameCol].Value = oTable.Rows[0]["仓库"].ToString(); grdMain.Rows[i].Cells[HSPIDCol].Value = oTable.Rows[0]["HSPID"].ToString(); grdMain.Rows[i].Cells[HSPNumberCol].Value = oTable.Rows[0]["仓位代码"].ToString(); grdMain.Rows[i].Cells[HSPNameCol].Value = oTable.Rows[0]["仓位"].ToString(); grdMain.Rows[i].Cells[HDateCol].Value = ClsPub.GetServerDate(0); grdMain.Rows[i].Cells[HShowDateCol].Value = dtpHDate.Value.ToShortDateString(); grdMain.Rows[i].Cells[HRemarkCol].Value = "按库存生成"; grdMain.Rows[i].Cells[HMTONoCol].Value = oTable.Rows[0]["计划跟踪号"].ToString(); //-- //设置可编辑列 string sAllowCol = HQtyCol.ToString() + "," + HRemarkCol.ToString() + "," + HMinQtyCol.ToString(); grdMain.Columns[HBillNoCol].ReadOnly = true; //设置合计列 string sTotalCol = HQtyCol.ToString(); // DBUtility.Xt_BaseBillFun.initGridLast(sAllowCol, sTotalCol, oSumGrid); tabControl1.SelectedIndex = 0; bc.Enabled = true; // RowCount(i, 0); } //根据TABLE写入界面(倒箱单) private void Sub_WriteInForm3(DataTable oTable, int i) { ////加载表头 //this.txtHDeptID.Tag = oTable.Rows[0]["HDeptID"].ToString(); //this.txtHDeptID.Text = oTable.Rows[0]["部门名称"].ToString(); ////加载表体 grdMain.Rows[i].Cells[HTagCol].Value = "*"; grdMain.Rows[i].Cells[HQtyCol].Value = ClsPub.isDoule(oTable.Rows[0]["可生成条码数量"]); grdMain.Rows[i].Cells[HinitQtyCol].Value = ClsPub.isDoule(oTable.Rows[0]["可生成条码数量"]); // grdMain.Rows[i].Cells[HMainIDCol].Value = oTable.Rows[0]["hmainid"].ToString(); grdMain.Rows[i].Cells[HSubIDCol].Value = oTable.Rows[0]["hsubid"].ToString(); grdMain.Rows[i].Cells[HBillNoCol].Value = oTable.Rows[0]["单据号"].ToString(); grdMain.Rows[i].Cells[HBillTypeCol].Value = oTable.Rows[0]["HBillType"].ToString(); grdMain.Rows[i].Cells[HDateCol].Value = oTable.Rows[0]["日期"].ToString(); grdMain.Rows[i].Cells[HShowDateCol].Value = dtpHDate.Value.ToShortDateString(); grdMain.Rows[i].Cells[HDeptIDCol].Value = oTable.Rows[0]["HDeptID"].ToString(); grdMain.Rows[i].Cells[HDeptNumberCol].Value = oTable.Rows[0]["部门代码"].ToString(); grdMain.Rows[i].Cells[HDeptNameCol].Value = oTable.Rows[0]["部门"].ToString(); grdMain.Rows[i].Cells[HMaterIDCol].Value = oTable.Rows[0]["HMaterID"].ToString(); grdMain.Rows[i].Cells[HMaterNumberCol].Value = oTable.Rows[0]["物料代码"].ToString(); grdMain.Rows[i].Cells[HMaterNameCol].Value = oTable.Rows[0]["物料名称"].ToString(); grdMain.Rows[i].Cells[HMaterModelCol].Value = oTable.Rows[0]["规格型号"].ToString(); grdMain.Rows[i].Cells[HPinfanCol].Value = oTable.Rows[0]["品番"].ToString(); grdMain.Rows[i].Cells[HPinfanBarCodeCol].Value = oTable.Rows[0]["HPinfanBarCode"].ToString(); grdMain.Rows[i].Cells[HAuxPropIDCol].Value = oTable.Rows[0]["HAuxPropID"].ToString(); grdMain.Rows[i].Cells[HAuxPropNumberCol].Value = oTable.Rows[0]["辅助属性代码"].ToString(); grdMain.Rows[i].Cells[HAuxPropNameCol].Value = oTable.Rows[0]["辅助属性名称"].ToString(); grdMain.Rows[i].Cells[HBatchNoCol].Value = oTable.Rows[0]["批号"].ToString(); grdMain.Rows[i].Cells[HUnitIDCol].Value = oTable.Rows[0]["HUnitID"].ToString(); grdMain.Rows[i].Cells[HUnitNumberCol].Value = oTable.Rows[0]["计量单位代码"].ToString(); grdMain.Rows[i].Cells[HUnitNameCol].Value = oTable.Rows[0]["计量单位"].ToString(); grdMain.Rows[i].Cells[HRemarkCol].Value = oTable.Rows[0]["备注"].ToString(); //获取最新最小包装数 DataSet oDs = new DataSet(); oDs = oCn.RunProcReturn("exec h_p_Gy_StdPack " + oTable.Rows[0]["HMaterID"].ToString() + "," + oTable.Rows[0]["HAuxPropID"].ToString(), "h_p_Gy_StdPack"); // if (oDs != null && oDs.Tables[0].Rows.Count > 0) { grdMain.Rows[i].Cells[HMinQtyCol].Value = DBUtility.ClsPub.isSingle(oDs.Tables[0].Rows[0]["HMinPack"]); } //-- //设置可编辑列 string sAllowCol = HQtyCol.ToString() + "," + HRemarkCol.ToString() + "," + HMaterNameCol.ToString() + "," + HMaterModelCol.ToString() + "," + HPinfanCol.ToString() + "," + HMinQtyCol.ToString(); grdMain.Columns[HBillNoCol].ReadOnly = true; //设置合计列 string sTotalCol = HQtyCol.ToString(); // DBUtility.Xt_BaseBillFun.initGridLast(sAllowCol, sTotalCol, oSumGrid); tabControl1.SelectedIndex = 0; bc.Enabled = true; // RowCount(i, 0); } //网格编辑前判断 private void grdMain_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) { int i = grdMain.CurrentCell.ColumnIndex; if (DBUtility.Xt_BaseBillFun.AllowEdit(grdStatus, oSumGrid,i)) { e.Cancel = true; } } //网格编辑后处理 private void grdMain_CellEndEdit(object sender, DataGridViewCellEventArgs e) { DBUtility.Xt_BaseBillFun.SetSumGrid(oSumGrid); if (e.ColumnIndex == HMinQtyCol) { RowCount(e.RowIndex, 0); // } else if (e.ColumnIndex == HQtyCol) { RowCount(e.RowIndex, 0); // } // if (this.EditingControl != null) //释放事件 { EditingControl.KeyDown -= new KeyEventHandler(this.EditingControl_KeyDown); this.EditingControl = null; } } DataGridViewTextBoxEditingControl EditingControl; private void grdMain_CellLeave(object sender, DataGridViewCellEventArgs e) { // if (!grdStatus) { return; } DBUtility.Xt_BaseBillFun.SetSumGrid(oSumGrid); // //if (oSumGrid.Changelock) // return; //if(oSumGrid.EditStatus) //{ if (!CheckGridRow(oSumGrid.OldCell.Row)) return; //} } private void grdMain_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e) { DBUtility.Xt_BaseBillFun.SetSumGrid(oSumGrid); } private void grdMain_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { if (grdMain.CurrentCell != null) { if (e.Control is DataGridViewTextBoxEditingControl) { this.EditingControl = (DataGridViewTextBoxEditingControl)e.Control; //增加委托处理 this.EditingControl.KeyDown += new KeyEventHandler(this.EditingControl_KeyDown); } } } private void EditingControl_KeyDown(object sender, KeyEventArgs e) { //业务处理 Sub_GridKey(e.KeyValue, grdMain.CurrentRow.Index, grdMain.CurrentCell.ColumnIndex, EditingControl); } private void grdMain_RowHeadersWidthChanged(object sender, EventArgs e) { DBUtility.Xt_BaseBillFun.SetSumGrid(oSumGrid); } private void grdMain_Scroll(object sender, ScrollEventArgs e) { DBUtility.Xt_BaseBillFun.SetSumGrid(oSumGrid); oSumGrid.DisplayCurRow(); } #endregion #region //打印设置 GridppReport Report; int CurRows = 0; string sBarCodeItemID = ""; //条码自增列 //预览 private void yl_Click(object sender, EventArgs e) { //判断是否已经生成条码 if (DBUtility.ClsPub.isStrNull(grdSub.Rows[0].Cells[HTMCol].Value) == "") { MessageBox.Show("条码未生成,请先生成条码后再预览!"); return; } //打印前判断条码是否已打印过 if (ReportPrintBegin()) { return; } //选择打印模板 BLL.Gy_OpenTmp oFrm = new BLL.Gy_OpenTmp(); oFrm.sBillName = ModName; oFrm.sBillModel = ModCaption; oFrm.ShowDialog(); if (oFrm.OKTag == Pub_Class.ClsPub.Enum_OKTag.OKTag_OK) { Sub_SetReport(oFrm.sOpenTmp); Report.PrintPreview(false); Thread.Sleep(1000); } } //打印 private void dy_Click(object sender, EventArgs e) { //判断是否已经生成条码 if (DBUtility.ClsPub.isStrNull(grdSub.Rows[0].Cells[HTMCol].Value) == "") { MessageBox.Show("条码未生成,请先生成条码后再打印!"); return; } //打印前判断条码是否已打印过 if (ReportPrintBegin()) { return; } //选择打印模板 BLL.Gy_OpenTmp oFrm = new BLL.Gy_OpenTmp(); oFrm.sBillName = ModName; oFrm.sBillModel = ModCaption; oFrm.ShowDialog(); if (oFrm.OKTag == Pub_Class.ClsPub.Enum_OKTag.OKTag_OK) { //循环选中行 Sub_SetReport(oFrm.sOpenTmp); Report.Print(true); Thread.Sleep(1000); } } ////打印前判断条码是否已打印过 //private bool ReportPrintBegin() //{ // string sRelQty = ""; // if (oBar.Set_BPrintQty(DBUtility.ClsPub.isStrNull(grdSub.Rows[0].Cells[HTMCol].Value), ref sRelQty)) // { // MessageBox.Show("条码已经打印过,不可重复打印!"); // return true; // } // else // { // return false; // } //} //打印前判断条码是否超过允许可打印次数 private bool ReportPrintBegin() { string sHRemark = ""; if (PrintQtyCtl == "Y") { if (oBar.Set_CheckPrintQty_SD(HInterID, PrintQty, ref sHRemark)) { MessageBox.Show(sHRemark); return true; } return false; } else { return false; } } private void Sub_SetReport(string sOpenTmp) { //判断行数 for (int i = 0; i < grdList.Rows.Count; i++) { grdList.Rows[i].Cells[0].Value = "*"; } // Report = new GridppReport(); Report.LoadFromFile(DBUtility.ClsPub.AppPath + @"\" + sOpenTmp + ".grf"); //here . Report.BeforePostRecord += new _IGridppReportEvents_BeforePostRecordEventHandler(ReportBeforePostRecord); Report.FetchRecord += new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecordByDataTable); Report.PrintEnd += new _IGridppReportEvents_PrintEndEventHandler(ReportPrintEnd); } //填入单据表头信息 private void ReportBeforePostRecord()// { try { //Report.FieldByName("物料代码").AsString = ClsPub.isStrNull(grdSub.Rows[CurRows].Cells[HMaterNumber2Col].Value); //Report.FieldByName("物料名称").AsString = ClsPub.isStrNull(grdSub.Rows[CurRows].Cells[HMaterName2Col].Value); //Report.FieldByName("规格型号").AsString = ClsPub.isStrNull(grdSub.Rows[CurRows].Cells[HMaterModel2Col].Value); ////Report.FieldByName("自定义规格").AsString = ClsPub.isStrNull(grdSub.Rows[CurRows].Cells[HModel2Col].Value); //Report.FieldByName("条码编号").AsString = ClsPub.isStrNull(grdSub.Rows[CurRows].Cells[HTMCol].Value); //Report.FieldByName("数量").AsString = ClsPub.isStrNull(grdSub.Rows[CurRows].Cells[HQty2Col].Value); //Report.FieldByName("源单单号").AsString = ClsPub.isStrNull(grdSub.Rows[CurRows].Cells[HSourceBillNoCol].Value); //Report.FieldByName("销售订单号").AsString = ClsPub.isStrNull(grdSub.Rows[CurRows].Cells[HSeOrderBillNo2Col].Value); //Report.FieldByName("生产车间").AsString = ClsPub.isStrNull(grdSub.Rows[CurRows].Cells[HDeptName2Col].Value); //Report.FieldByName("备注").AsString = ClsPub.isStrNull(grdSub.Rows[CurRows].Cells[HRemark2Col].Value); } catch (Exception e) { MessageBox.Show("打印失败!表头:" + e.Message); } } //填入单据表体信息 private void ReportFetchRecordByDataTable() { try { DataTable ds = new DataTable(); BLL.Utility.FillRecordToReport_Sel(Report, grdList, ds, Fun_GetCol("选择")); } catch (Exception e) { MessageBox.Show("打印失败!表体:" + e.Message); } } ////打印结束后回填条码打印次数 //private void ReportPrintEnd() //{ // try // { // oCn.RunProc("update Gy_BarCodeBill set HPrintQty=isnull(HPrintQty,0)+1 where HInterID=" + HInterID, ref DBUtility.ClsPub.sExeReturnInfo); // } // catch (Exception e) // { // MessageBox.Show("打印失败!打印结束 :" + e.Message); // } //} //打印结束后回填条码打印次数 private void ReportPrintEnd() { if (UpdatePrintQtyCtl == "Y") { oBar.Set_UpdatePrintQty_SD(HInterID); } } //试打印 private void sdy_Click(object sender, EventArgs e) { //判断是否已经生成条码 if (DBUtility.ClsPub.isStrNull(grdSub.Rows[0].Cells[HTMCol].Value) == "") { MessageBox.Show("条码未生成,请先生成条码后再预览!"); return; } //打印前判断条码是否已打印过 if (ReportPrintBegin_SDY()) { return; } //选择打印模板 BLL.Gy_OpenTmp oFrm = new BLL.Gy_OpenTmp(); oFrm.sBillName = ModName; oFrm.sBillModel = ModCaption; oFrm.ShowDialog(); if (oFrm.OKTag == Pub_Class.ClsPub.Enum_OKTag.OKTag_OK) { Sub_SetReportView(oFrm.sOpenTmp); Report.PrintPreview(false); Thread.Sleep(1000); } } //打印前判断条码是否超过允许可打印次数 private bool ReportPrintBegin_SDY() { string sHRemark = ""; sBarCodeItemID = ""; for (int i = 0; i < grdList.SelectedRows.Count; i++) { sBarCodeItemID = sBarCodeItemID + "," + DBUtility.ClsPub.isLong(grdList.Rows[grdList.SelectedRows[i].Index].Cells[Fun_GetCol("HItemID")].Value).ToString(); } sBarCodeItemID = sBarCodeItemID.Remove(0, 1); if (PrintQtyCtl == "Y") { if (oBar.Set_CheckPrintQty(sBarCodeItemID, PrintQty, ref sHRemark)) { MessageBox.Show(sHRemark); return true; } return false; } else { return false; } } private void Sub_SetReportView(string sOpenTmp) { //判断行数 for (int i = 0; i < grdList.Rows.Count; i++) { grdList.Rows[i].Cells[0].Value = ""; } for (int i = 0; i < grdList.SelectedRows.Count; i++) { grdList.Rows[grdList.SelectedRows[i].Index].Cells[0].Value = "*"; } // Report = new GridppReport(); Report.LoadFromFile(DBUtility.ClsPub.AppPath + @"\" + sOpenTmp + ".grf"); //here . Report.BeforePostRecord += new _IGridppReportEvents_BeforePostRecordEventHandler(ReportBeforePostRecord); Report.FetchRecord += new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecordByDataTable); Report.PrintEnd += new _IGridppReportEvents_PrintEndEventHandler(ReportPrintEnd_SDY); } //打印结束后回填条码打印次数 private void ReportPrintEnd_SDY() { if (UpdatePrintQtyCtl == "Y") { oBar.Set_UpdatePrintQty(sBarCodeItemID); } } private Int32 Fun_GetCol(string sCol) { return DBUtility.Xt_BaseBillFun.Fun_GetCol(sCol, grdList); } #endregion private void grdSub_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) { int i = grdSub.CurrentCell.ColumnIndex; if (DBUtility.Xt_BaseBillFun.AllowEdit(grdStatus, oSumGrid, i)) { e.Cancel = true; } } private void grdSub_CellEndEdit(object sender, DataGridViewCellEventArgs e) { DBUtility.Xt_BaseBillFun.SetSumGrid(oSumGrid); RowCount(e.RowIndex, 0); //计算 金额 单价 // if (this.EditingControl != null) //释放事件 { EditingControl.KeyDown -= new KeyEventHandler(this.EditingControl_KeyDown); this.EditingControl = null; } } //按库存生成条码 private void kc_Click(object sender, EventArgs e) { long sHOrgID = -1; string sWhere = ""; DAL.ClsGy_ORGANIZATIONS_View oClsGy_ORGANIZATIONS_View = new DAL.ClsGy_ORGANIZATIONS_View(); if (oClsGy_ORGANIZATIONS_View.GetInfoByName(cmbHOrgID.Text)) { sHOrgID = oClsGy_ORGANIZATIONS_View.omodel.HItemID; } if (sHOrgID == -1) { MessageBox.Show("选择组织有错误!"); return; } sWhere = " and HOrgID =" + sHOrgID.ToString(); BLL.Cls_S_KF_ICInventoryList_IF oadd = new BLL.Cls_S_KF_ICInventoryList_IF(); if (oadd.Refresh(sWhere)) //选择原单 //if (oadd.Refresh(" and HErpClsID in (1,2,3) ")) //选择原单 { FillSelectData(oadd.oBillSelectColl); } } //获取本月的第几周 private static int getWeekNumInMonth(DateTime daytime) { int dayInMonth = daytime.Day; //本月第一天 DateTime firstDay = daytime.AddDays(1 - daytime.Day); //本月第一天是周几 int weekday = (int)firstDay.DayOfWeek == 0 ? 7 : (int)firstDay.DayOfWeek; //本月第一周有几天 int firstWeekEndDay = 7 - (weekday - 1); //当前日期和第一周之差 int diffday = dayInMonth - firstWeekEndDay; diffday = diffday > 0 ? diffday : 1; //当前是第几周,如果整除7就减一天 int WeekNumInMonth = ((diffday % 7) == 0 ? (diffday / 7 - 1) : (diffday / 7)) + 1 + (dayInMonth > firstWeekEndDay ? 1 : 0); return WeekNumInMonth; } //同步基础资料信息 private void tb_Click(object sender, EventArgs e) { try { oCn.RunProc("exec h_p_IF_ERPDataToLocal", ref DBUtility.ClsPub.sExeReturnInfo); MessageBox.Show("同步基础资料成功!"); } catch (Exception ex) { MessageBox.Show("同步基础资料失败!" + ex); } } public Frm_Split oDlg = new Frm_Split(); private void spRow_Click(object sender, EventArgs e) { //DBUtility.Xt_BaseBillFun.AddRow(oSumGrid); oDlg.ShowDialog(); if (oDlg.IsOk == 1) { grdMainData_CF(DBUtility.ClsPub.isInt(oDlg.txtHQ.Text)); } } private void grdMainData_CF(int HQty) { double hq = 0; int Qty = HQty - 1; int row = grdMain.CurrentCell.RowIndex; grdMain.Rows.Insert(row + 1, Qty); hq = DBUtility.ClsPub.isDoule(grdMain.Rows[row].Cells[HQtyCol].Value) / HQty; grdMain.Rows[row].Cells[HQtyCol].Value = hq; for (int i = 0; i < Qty; i++) { int r = i + 1; grdMain.Rows[row + r].Cells[HMaterIDCol].Value = grdMain.Rows[row].Cells[HMaterIDCol].Value; grdMain.Rows[row + r].Cells[HMaterNumberCol].Value = grdMain.Rows[row].Cells[HMaterNumberCol].Value; grdMain.Rows[row + r].Cells[HMaterNameCol].Value = grdMain.Rows[row].Cells[HMaterNameCol].Value; grdMain.Rows[row + r].Cells[HMaterModelCol].Value = grdMain.Rows[row].Cells[HMaterModelCol].Value; grdMain.Rows[row + r].Cells[HUnitIDCol].Value = grdMain.Rows[row].Cells[HUnitIDCol].Value; grdMain.Rows[row + r].Cells[HUnitNameCol].Value = grdMain.Rows[row].Cells[HUnitNameCol].Value; grdMain.Rows[row + r].Cells[HSourceIDCol].Value = grdMain.Rows[row].Cells[HSourceIDCol].Value; grdMain.Rows[row + r].Cells[HSourceNumberCol].Value = grdMain.Rows[row].Cells[HSourceNumberCol].Value; grdMain.Rows[row + r].Cells[HSourceNameCol].Value = grdMain.Rows[row].Cells[HSourceNameCol].Value; grdMain.Rows[row + r].Cells[HQtyCol].Value = DBUtility.ClsPub.isDoule(hq, 4); grdMain.Rows[row + r].Cells[HinitQtyCol].Value = DBUtility.ClsPub.isDoule(hq, 4); grdMain.Rows[row + r].Cells[HMinQtyCol].Value = 0; grdMain.Rows[row + r].Cells[HTagCol].Value = grdMain.Rows[row].Cells[HTagCol].Value; grdMain.Rows[row + r].Cells[HMainIDCol].Value = grdMain.Rows[row].Cells[HMainIDCol].Value; grdMain.Rows[row + r].Cells[HSubIDCol].Value = grdMain.Rows[row].Cells[HSubIDCol].Value; grdMain.Rows[row + r].Cells[HBillNoCol].Value = grdMain.Rows[row].Cells[HBillNoCol].Value; grdMain.Rows[row + r].Cells[HBillTypeCol].Value = grdMain.Rows[row].Cells[HBillTypeCol].Value; grdMain.Rows[row + r].Cells[HDateCol].Value = grdMain.Rows[row].Cells[HDateCol].Value; grdMain.Rows[row + r].Cells[HShowDateCol].Value = grdMain.Rows[row].Cells[HShowDateCol].Value; grdMain.Rows[row + r].Cells[HEndDateCol].Value = grdMain.Rows[row].Cells[HEndDateCol].Value; grdMain.Rows[row + r].Cells[HSupIDCol].Value = grdMain.Rows[row].Cells[HSupIDCol].Value; grdMain.Rows[row + r].Cells[HSupNumberCol].Value = grdMain.Rows[row].Cells[HSupNumberCol].Value; grdMain.Rows[row + r].Cells[HSupNameCol].Value = grdMain.Rows[row].Cells[HSupNameCol].Value; grdMain.Rows[row + r].Cells[HDeptIDCol].Value = grdMain.Rows[row].Cells[HDeptIDCol].Value; grdMain.Rows[row + r].Cells[HDeptNumberCol].Value = grdMain.Rows[row].Cells[HDeptNumberCol].Value; grdMain.Rows[row + r].Cells[HDeptNameCol].Value = grdMain.Rows[row].Cells[HDeptNameCol].Value; grdMain.Rows[row + r].Cells[HBatchNoCol].Value = grdMain.Rows[row].Cells[HBatchNoCol].Value; grdMain.Rows[row + r].Cells[HAuxPropIDCol].Value = grdMain.Rows[row].Cells[HAuxPropIDCol].Value; grdMain.Rows[row + r].Cells[HAuxPropNumberCol].Value = grdMain.Rows[row].Cells[HAuxPropNumberCol].Value; grdMain.Rows[row + r].Cells[HAuxPropNameCol].Value = grdMain.Rows[row].Cells[HAuxPropNameCol].Value; grdMain.Rows[row + r].Cells[HRemarkCol].Value = grdMain.Rows[row].Cells[HRemarkCol].Value; grdMain.Rows[row + r].Cells[HMTONoCol].Value = grdMain.Rows[row].Cells[HMTONoCol].Value; grdMain.Rows[row + r].Cells[HInnerBillNoCol].Value = grdMain.Rows[row].Cells[HInnerBillNoCol].Value; grdMain.Rows[row + r].Cells[HMakerCol].Value = grdMain.Rows[row].Cells[HMakerCol].Value; } DBUtility.Xt_BaseBillFun.SetSumGrid(oSumGrid); } private void grdSub_CellContentClick(object sender, DataGridViewCellEventArgs e) { } private void Display() { DataSet DSet = oCn.RunProcReturn("select * from h_v_IF_BarCodeBillList Where HinterID=" + HInterID.ToString() + " order by HItemID", "h_v_IF_BarCodeBillList", ref DBUtility.ClsPub.sExeReturnInfo); //生成首行标题 if (DSet == null) { MessageBox.Show("没有返回任何结果,条码不存在!" + DBUtility.ClsPub.sExeReturnInfo); return; } // grdList.DataSource = DSet.Tables[0].DefaultView; //冻结 int FrCol = 0; string s = "是"; DBUtility.Xt_BaseBillFun.DisplayGrid(grdList, this.Name + "grdList", s, FrCol); //画线 //GraphLine(); // } //关联按钮 private void gl_Click(object sender, EventArgs e) { try { long HInterID = DBUtility.ClsPub.isLong(grdList.Rows[0].Cells[Fun_GetCol("HInterID")].Value); string HBarCode = DBUtility.ClsPub.isStrNull(grdList.Rows[0].Cells[Fun_GetCol("条码编号")].Value); string HBarCodeType = DBUtility.ClsPub.isStrNull(grdList.Rows[0].Cells[Fun_GetCol("条码类型")].Value); string HSourceBillType = DBUtility.ClsPub.isStrNull(grdList.Rows[0].Cells[Fun_GetCol("HSourceBillType")].Value); DataSet oDs = oCn.RunProcReturn("exec h_p_WMS_BarCodeToICStockBillSub_Insert " + HInterID.ToString() + ",'" + HBarCode + "','" + HBarCodeType + "','" + HSourceBillType + "'", "h_p_WMS_BarCodeToICStockBillSub_Insert"); // if (oDs == null && oDs.Tables[0].Rows.Count == 0) { MessageBox.Show("关联自动生成条码出入库记录失败!"); } else { MessageBox.Show(DBUtility.ClsPub.isStrNull(oDs.Tables[0].Rows[0]["HRemark"])); } } catch (Exception ex) { MessageBox.Show("关联自动生成条码出入库记录失败22!" + ex); } } //批次按钮 private void BatchNo_Click(object sender, EventArgs e) { lblCaption.Focus(); bool b = false; for (int i = 0; i < grdMain.RowCount; i++) { long HMaterID = DBUtility.ClsPub.isLong(grdMain.Rows[i].Cells[HMaterIDCol].Value); // 物料内码 string HBatchNo = DBUtility.ClsPub.isStrNull(grdMain.Rows[i].Cells[HBatchNoCol].Value); // 批号 if (HMaterID != 0) { DataSet oDs = oCn.RunProcReturn("exec h_p_Gy_BarCodeBill_GetBatchNo " + HMaterID.ToString() + ",'" + HBatchNo + "','" + dtpHDate.Value.ToShortDateString() + "','" + CampanyName + "'", "h_p_Gy_BarCodeBill_GetBatchNo"); // if (oDs == null && oDs.Tables[0].Rows.Count == 0) { MessageBox.Show("生成批次失败!"); return; } else if (DBUtility.ClsPub.isStrNull(oDs.Tables[0].Rows[0][0]) == "1") { grdMain.Rows[i].Cells[HBatchNoCol].Value = DBUtility.ClsPub.isStrNull(oDs.Tables[0].Rows[0]["HBatchNo"]); b = true; } } } //明细表是否为零行 if (b == false) { MessageBox.Show("没有需要生成批次的明细行!", "提示"); return; } } private void txtHSourceBillNo_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)Keys.Return)//回车带出源单信息 { long sHOrgID = -1; DAL.ClsGy_ORGANIZATIONS_View oClsGy_ORGANIZATIONS_View = new DAL.ClsGy_ORGANIZATIONS_View(); if (oClsGy_ORGANIZATIONS_View.GetInfoByName(cmbHOrgID.Text)) { sHOrgID = oClsGy_ORGANIZATIONS_View.omodel.HItemID; } if (txtHSourceBillNo.Text.Length < 4) { MessageBox.Show("请输入4位以上数据!"); return; } //根据源单类型 和源单号 获取信息 if (cmbSourceBillType.Text.Trim() == "生产订单") { DAL.Cls_S_IFCLD_ICMOList oIFCLD_ICMOList = new DAL.Cls_S_IFCLD_ICMOList(); if (oIFCLD_ICMOList.RefreshBySourceBillNo(" Where 单据号 like '%" + txtHSourceBillNo.Text + "' and HOrgID =" + sHOrgID.ToString())) //选择原单 { FillSelectData(oIFCLD_ICMOList.oBillSelectColl); txtHSourceBillNo.Text = ""; } else { MessageBox.Show("未查询到任务数据,请确认所选组织、源单类型与源单单号是否正确!"); return; } } else if (cmbSourceBillType.Text.Trim() == "生产汇报单") { DAL.Cls_S_IF_ICMOReportBillList oIF_ICMOReportBillList = new DAL.Cls_S_IF_ICMOReportBillList(); if (oIF_ICMOReportBillList.RefreshBySourceBillNo(" Where 单据号 like '%" + txtHSourceBillNo.Text + "' ")) //选择原单 { FillSelectData(oIF_ICMOReportBillList.oBillSelectColl); txtHSourceBillNo.Text = ""; } else { MessageBox.Show("未查询到任务数据,请确认所选组织、源单类型与源单单号是否正确!"); return; } } else if (cmbSourceBillType.Text.Trim() == "收料通知单") { DAL.Cls_S_IF_POInStockBillList oIF_POInStockBillList = new DAL.Cls_S_IF_POInStockBillList(); if (oIF_POInStockBillList.RefreshBySourceBillNo(" Where 单据号 like '%" + txtHSourceBillNo.Text + "' ")) //选择原单 { FillSelectData(oIF_POInStockBillList.oBillSelectColl); txtHSourceBillNo.Text = ""; } else { MessageBox.Show("未查询到任务数据,请确认所选组织、源单类型与源单单号是否正确!"); return; } } else if (cmbSourceBillType.Text.Trim() == "采购订单") { DAL.Cls_S_IF_POOrderBillList oIF_POOrderBillList = new DAL.Cls_S_IF_POOrderBillList(); if (oIF_POOrderBillList.RefreshBySourceBillNo(" Where 单据号 like '%" + txtHSourceBillNo.Text + "' ")) //选择原单 { FillSelectData(oIF_POOrderBillList.oBillSelectColl); txtHSourceBillNo.Text = ""; } else { MessageBox.Show("未查询到任务数据,请确认所选组织、源单类型与源单单号是否正确!"); return; } } else if (cmbSourceBillType.Text.Trim() == "委外订单") { DAL.Cls_S_IF_EntrustOrderBillList oIF_EntrustOrderBillList = new DAL.Cls_S_IF_EntrustOrderBillList(); if (oIF_EntrustOrderBillList.RefreshBySourceBillNo(" Where 单据号 like '%" + txtHSourceBillNo.Text + "' ")) //选择原单 { FillSelectData(oIF_EntrustOrderBillList.oBillSelectColl); txtHSourceBillNo.Text = ""; } else { MessageBox.Show("未查询到任务数据,请确认所选组织、源单类型与源单单号是否正确!"); return; } } else { MessageBox.Show("所选源单类型,不支持此功能!"); return; } } } //生成外箱码 private void wxm_Click(object sender, EventArgs e) { try { Int64 iInterID = 0; Int64 dPackQty = 0; //外箱数量 Int64 dPackLeftQty = 0; //外箱剩余数量 Int64 dLabelQty = 0; //小箱数量 Int64 dQty = 0; //总数量 Int64 dEntryID = 0; //行号 string sPackBarCode = ""; //外箱码 string sBarCode = ""; //唯一码 Int64 LSH = 0; DataSet Ds; string sYear = DateTime.Today.Year.ToString().Substring(2, 2); string sPeriod = "0" + DateTime.Today.Month.ToString(); sPeriod = sPeriod.Substring(sPeriod.Length - 2, 2); string sDay = "0" + DateTime.Today.Day.ToString(); sDay = sDay.Substring(sDay.Length - 2, 2); // string sPackStr = "ZXM" + sYear + sPeriod + sDay; //外箱码 前缀 //必须条码生成按钮是灰度才可以生成箱条码 if (bc.Enabled != false) { MessageBox.Show("请先生成条形码,再生成箱条码"); return; } //-------------------根据HINTERID生成箱条码 //生成前判断,循环物料网格,判断 是否设置了合理的 外箱数量。 外箱数量 必须是 最小包装数的 倍数 并必须大于0和大于等于最小包装数量。 for (int i = 0; i < grdMain.Rows.Count; i++) { if (DBUtility.ClsPub.isLong(grdMain.Rows[i].Cells[HMaterIDCol].Value) != 0) { if (DBUtility.ClsPub.isLong(grdMain.Rows[i].Cells[HPackQtyCol].Value) <= 0) { MessageBox.Show("请录入合理的外箱数量,第" + Convert.ToString(i + 1) + "行"); return; } if (DBUtility.ClsPub.isLong(grdMain.Rows[i].Cells[HPackQtyCol].Value) % DBUtility.ClsPub.isLong(grdMain.Rows[i].Cells[HMinQtyCol].Value) != 0 || DBUtility.ClsPub.isLong(grdMain.Rows[i].Cells[HPackQtyCol].Value) < DBUtility.ClsPub.isLong(grdMain.Rows[i].Cells[HMinQtyCol].Value)) { MessageBox.Show("外箱数量必须是最小包装数的倍数,且大于等于最小包装数,第" + Convert.ToString(i + 1) + "行"); return; } } } //oCn.BeginTran(); //从0行进行循环 物料网格,获取外箱数量 for (int i = 0; i < grdMain.Rows.Count; i++) { if (DBUtility.ClsPub.isLong(grdMain.Rows[i].Cells[HMaterIDCol].Value) != 0) { //获取总数量、外箱数量 dPackQty = DBUtility.ClsPub.isLong(grdMain.Rows[i].Cells[HPackQtyCol].Value); dQty = DBUtility.ClsPub.isLong(grdMain.Rows[i].Cells[HQtyCol].Value); dEntryID = i + 1; dPackLeftQty = DBUtility.ClsPub.isLong(grdMain.Rows[i].Cells[HPackQtyCol].Value); //生成一个外箱码 Ds = oCn.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sPackStr + "'", "h_p_WMS_GetMaxNo"); //获取最大流水号 //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'"); LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]) + 1; sPackBarCode = sPackStr + LSH.ToString(); oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sPackStr + "'"); //子循环 条码网格 for (int j = 0; j < grdSub.Rows.Count; j++) { if (dEntryID == DBUtility.ClsPub.isLong(grdSub.Rows[j].Cells[HEntryID2Col].Value)) { if (dQty <= 0) { continue; } if (dPackLeftQty > 0) //当剩余外箱数量小于等于0时,重新生成外箱码 { } else { //生成一个外箱码 Ds = oCn.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sPackStr + "'", "h_p_WMS_GetMaxNo"); //获取最大流水号 //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'"); LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]) + 1; sPackBarCode = sPackStr + LSH.ToString(); oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sPackStr + "'"); dPackLeftQty = DBUtility.ClsPub.isLong(grdMain.Rows[i].Cells[HPackQtyCol].Value); } sBarCode = DBUtility.ClsPub.isStrNull(grdSub.Rows[j].Cells[HTMCol].Value); // 条码 dLabelQty = DBUtility.ClsPub.isLong(grdSub.Rows[j].Cells[HQty2Col].Value); // 小箱数量 oCn.RunProc("update Gy_BarCodebill set HInnerBillNo= '" + sPackBarCode + "' Where HbarCode='" + sBarCode + "'"); dPackLeftQty = dPackLeftQty - dLabelQty; dQty = dQty - dLabelQty; if (dPackLeftQty <= 0)//当箱剩余数量小于等于0时 执行 组托单 { //获取组托单内码 iInterID = DBUtility.ClsPub.CreateBillID("3783", ref DBUtility.ClsPub.sExeReturnInfo); ;//得到新单号; //根据外箱码 写入 组托单主表,组托单子表,SUM,外箱码档案,SUM档案 oCn.RunProc("exec h_p_WMS_PackUnionBill_AddNew '" + sPackBarCode + "'," + iInterID.ToString() + ",'" + DBUtility.ClsPub.CurUserName + "'," + HInterID.ToString()); //根据箱条码,写入 主表,子表 ,箱条码档案 oCn.RunProc("exec h_p_WMS_PackUnionBill_SumSubBill " + iInterID.ToString() + ",'" + sPackBarCode + "','3783','" + DBUtility.ClsPub.CurUserName + "'," + HInterID.ToString()); //根据箱条码,写入 SUM表,SUM条码档案 } } else { continue; } } } } wxm.Enabled = false; //oCn.Commit(); MessageBox.Show("生成箱码完毕!"); //刷新数据 Display(); } catch(Exception e1) { //oCn.RollBack(); MessageBox.Show("生成箱码失败!" + e1.Message ); } } } }