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; namespace WorkM { public partial class Kf_WIPBal_Add : Form { public Kf_WIPBal_Add() { InitializeComponent(); } public const Int16 HTagCol = 0; public const Int16 HSnoCol = 1; public const Int16 HICMOInterIDCol = 2; public const Int16 HICMONoCol = 3; public const Int16 HMaterIDCol = 4; public const Int16 HMaterNumberCol = 5; public const Int16 HMaterNameCol = 6; public const Int16 HMaterModelCol = 7; public const Int16 HProcNoCol = 8; public const Int16 HProcIDCol = 9; public const Int16 HProcNumberCol = 10; public const Int16 HProcNameCol = 11; public const Int16 HQtyCol = 12; ClsGridViewSum oSumGrid = new ClsGridViewSum(); public bool grdStatus=true; //网格状态(不可编辑,可编辑) #region 窗体处理方法 //初始化GRID private void initGrid() { // grdMain.ColumnCount = 13; //总列数 DBUtility.Xt_BaseBillFun.initGridFst(grdMain, this.Name); ////= grdMain.Columns[HICMONoCol].HeaderText = "任务单号"; grdMain.Columns[HMaterNumberCol].HeaderText = "物料代码"; grdMain.Columns[HMaterNameCol].HeaderText = "物料名称"; grdMain.Columns[HMaterModelCol].HeaderText = "规格型号"; grdMain.Columns[HProcNoCol].HeaderText = "工序号"; grdMain.Columns[HProcNumberCol].HeaderText = "工序代码"; grdMain.Columns[HProcNameCol].HeaderText = "工序名称"; grdMain.Columns[HQtyCol].HeaderText = "期初数量"; ////固定赋值===================================================== grdMain.Columns[HSnoCol].HeaderText = "序号"; ////============================================================================= ////格式化 //////隐藏列 grdMain.Columns[HTagCol].Visible = false; grdMain.Columns[HICMOInterIDCol].Visible = false; grdMain.Columns[HMaterIDCol].Visible = false; grdMain.Columns[HProcIDCol].Visible = false; //设置可编辑列 string sAllowCol = HICMONoCol.ToString() + "," + HMaterNumberCol.ToString() + "," + HProcNoCol.ToString() + "," + HProcNumberCol.ToString() + "," + HProcNameCol.ToString() + "," + HQtyCol.ToString(); //设置合计列 string sTotalCol = HQtyCol.ToString(); //格式化网格 DBUtility.Xt_BaseBillFun.initGridLast(sAllowCol, sTotalCol, oSumGrid); } //帮助函数 private void Sub_GridKey(int sKeyCode, int sRow, int sCol, DataGridViewTextBoxEditingControl oEdit) { DAL.ClsK3_ICMOBill_View oICMO = new DAL.ClsK3_ICMOBill_View(); DAL.ClsK3_Material_View oMater = new DAL.ClsK3_Material_View(); DAL.ClsK3_Process_View oProc = new DAL.ClsK3_Process_View(); oSumGrid.EditStatus = true; switch (sKeyCode) { case 118: //F7 { switch (sCol) { case HICMONoCol: oICMO.WherePart = ""; if (oICMO.RefreshView()) { if (oICMO.GetInfoByID(oICMO.oModel.HItemID)) { grdMain.Rows[sRow].Cells[HICMOInterIDCol].Value = oICMO.oModel.HItemID.ToString(); grdMain.Rows[sRow].Cells[HICMONoCol].Value = oICMO.oModel.HNumber; if (oICMO.omodel.HMaterID != 0) { if (oMater.GetInfoByID(oICMO.omodel.HMaterID)) { 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; } 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 = ""; } } oEdit.Text = oICMO.oModel.HNumber; } else { grdMain.Rows[sRow].Cells[HICMOInterIDCol].Value = 0; grdMain.Rows[sRow].Cells[HICMONoCol].Value = ""; } } else { grdMain.Rows[sRow].Cells[HICMOInterIDCol].Value = 0; grdMain.Rows[sRow].Cells[HICMONoCol].Value = ""; } break; //case HMaterNumberCol: // BLL.ClsBaseSelect_K3.SetGridByMater_K3(grdMain, sRow, HMaterIDCol, HMaterNumberCol, HMaterNameCol, HMaterModelCol, 0, 0, 0, 0, 0); // //BLL.ClsBaseSelect.SetGridByMater(grdMain, sRow, HMaterIDCol, HMaterNumberCol, HMaterNameCol, HMaterModelCol, HUnitIDCol, HUnitNumberCol, HUnitNameCol, HSubjoinCol, HColorCol); // //BLL.ClsPub_BLL.SetGridWarehouse(DBUtility.ClsPub.isLong(txtHWHID.Tag), grdMain, HMaterIDCol, sRow, HWHIDCol, HWHNameCol, HWHNumberCol); // oEdit.Text = DBUtility.ClsPub.isStrNull(grdMain.Rows[sRow].Cells[HMaterNumberCol].Value); // break; case HMaterNumberCol: oMater.WherePart = ""; if (oMater.RefreshView()) { 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; 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 = ""; } } 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 = ""; } break; case HProcNumberCol: oProc.WherePart = ""; if (oProc.RefreshView()) { if (oProc.GetInfoByID(oProc.oModel.HItemID)) { grdMain.Rows[sRow].Cells[HProcIDCol].Value = oProc.oModel.HItemID.ToString(); grdMain.Rows[sRow].Cells[HProcNumberCol].Value = oProc.oModel.HNumber; grdMain.Rows[sRow].Cells[HProcNameCol].Value = oProc.oModel.HName; oEdit.Text = oProc.omodel.HNumber; } else { grdMain.Rows[sRow].Cells[HProcIDCol].Value = 0; grdMain.Rows[sRow].Cells[HProcNumberCol].Value = ""; grdMain.Rows[sRow].Cells[HProcNameCol].Value = ""; } } else { grdMain.Rows[sRow].Cells[HProcIDCol].Value = 0; grdMain.Rows[sRow].Cells[HProcNumberCol].Value = ""; grdMain.Rows[sRow].Cells[HProcNameCol].Value = ""; } break; default: break; } break; } case 117: //F6 { switch (sCol) { default: break; } break; } default: break; } } #region 基本不变 //是否是空行 private bool IsNullRow(int Row) { //return DBUtility.Xt_BaseBillFun.IsNullRow(Row, HEmpIDCol, grdMain); return true; } //网格编辑前判断 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_Scroll(object sender, ScrollEventArgs e) { //DBUtility.Xt_BaseBillFun.SetSumGrid(oSumGrid); //oSumGrid.DisplayCurRow(); } //网格编辑后处理 private void grdMain_CellEndEdit(object sender, DataGridViewCellEventArgs e) { DBUtility.Xt_BaseBillFun.SetSumGrid(oSumGrid); //RowCount(e.RowIndex, 0); //计算 金额 单价 //根据任务单号 返回 内码和物料 DAL.ClsK3_Process_View oProc = new DAL.ClsK3_Process_View(); DAL.ClsK3_ICMOBill_View oICMO = new DAL.ClsK3_ICMOBill_View(); DAL.ClsK3_Material_View oMater = new DAL.ClsK3_Material_View(); int sRow = e.RowIndex; if (DBUtility.ClsPub.isStrNull(EditingControl.Text).Length >=1 && e.ColumnIndex == HProcNameCol) { if (oProc.GetInfoByName(EditingControl.Text)) { grdMain.Rows[sRow].Cells[HProcIDCol].Value = oProc.omodel.HItemID.ToString(); grdMain.Rows[sRow].Cells[HProcNumberCol].Value = oProc.omodel.HNumber.ToString(); grdMain.Rows[sRow].Cells[HProcNameCol].Value = oProc.omodel.HName; } else { grdMain.Rows[sRow].Cells[HProcIDCol].Value =0; grdMain.Rows[sRow].Cells[HProcNumberCol].Value =""; grdMain.Rows[sRow].Cells[HProcNameCol].Value = ""; } } if (DBUtility.ClsPub.isStrNull(EditingControl.Text).Length > 5 && e.ColumnIndex == HICMONoCol) { if (oICMO.GetInfoByNumberLike(DBUtility.ClsPub.isStrNull(EditingControl.Text))) { grdMain.Rows[sRow].Cells[HICMOInterIDCol].Value = oICMO.omodel.HInterID.ToString(); //EditingControl.Text = oICMO.oModel.HNumber; grdMain.Rows[sRow].Cells[HICMONoCol].Value = oICMO.omodel.HBillNo; if (oICMO.omodel.HMaterID != 0) { if (oMater.GetInfoByID(oICMO.omodel.HMaterID)) { 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; } 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 = ""; } } } else { //grdMain.Rows[sRow].Cells[HICMOInterIDCol].Value = 0; //grdMain.Rows[sRow].Cells[HICMONoCol].Value = ""; } } // // 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 (!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); } #endregion private void Kf_WIPBal_Add_Load(object sender, EventArgs e) { oSumGrid.NoCol = HSnoCol; oSumGrid.ogrdMain = grdMain; oSumGrid.oGridsum = grdSum; initGrid(); } #endregion private void cmbOK_Click(object sender, EventArgs e) { //失去焦点 label7.Focus(); int HYear = ClsPub.isInt(cmbHYear.Text); int HPeriod = ClsPub.isInt(cmbHPeriod.Text); if (MessageBox.Show("确定要新增" + HYear + "年," + HPeriod + "月的期初记录?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds; long HICMOInterID; long HMaterID; long HProcNo; long HProcID; double HQty; int j = 0; for (int i = 0; i < grdMain.Rows.Count; i++) { if (ClsPub.isLong(grdMain.Rows[i].Cells[HICMOInterIDCol].Value) != 0) { j = j + 1; HICMOInterID = ClsPub.isLong(grdMain.Rows[i].Cells[HICMOInterIDCol].Value); HMaterID = ClsPub.isLong(grdMain.Rows[i].Cells[HMaterIDCol].Value); HProcNo = ClsPub.isLong(grdMain.Rows[i].Cells[HProcNoCol].Value); HProcID = ClsPub.isLong(grdMain.Rows[i].Cells[HProcIDCol].Value); HQty = ClsPub.isDoule(grdMain.Rows[i].Cells[HQtyCol].Value); if (HMaterID == 0) { MessageBox.Show("第" + (i + 1) + "行,物料不能为空!", "提示"); return; } if (HProcNo <= 0) { MessageBox.Show("第" + (i + 1) + "行,工序号不能小于0!", "提示"); return; } if (HProcID == 0) { MessageBox.Show("第" + (i + 1) + "行,工序不能为空!", "提示"); return; } if (HQty == 0) { MessageBox.Show("第" + (i + 1) + "行,数量不能为0!", "提示"); return; } Ds = oCn.RunProcReturn("select 1 from Kf_WIPBal where HYear=" + HYear + " and HPeriod=" + HPeriod + " and HICMOInterID=" + HICMOInterID + " and HMaterID=" + HMaterID + " and HProcNo=" + HProcNo + " and HProcID=" + HProcID, "Kf_WIPBal"); if (Ds.Tables[0].Rows.Count > 0) { MessageBox.Show("第" + (i + 1) + "行,已存在期初记录!", "提示"); return; } } } if (j == 0) { MessageBox.Show("请输入明细记录!", "提示"); return; } for (int i = 0; i < grdMain.Rows.Count; i++) { if (ClsPub.isLong(grdMain.Rows[i].Cells[HICMOInterIDCol].Value) != 0) { HICMOInterID = ClsPub.isLong(grdMain.Rows[i].Cells[HICMOInterIDCol].Value); HMaterID = ClsPub.isLong(grdMain.Rows[i].Cells[HMaterIDCol].Value); HProcNo = ClsPub.isLong(grdMain.Rows[i].Cells[HProcNoCol].Value); HProcID = ClsPub.isLong(grdMain.Rows[i].Cells[HProcIDCol].Value); HQty = ClsPub.isDoule(grdMain.Rows[i].Cells[HQtyCol].Value); oCn.RunProc("exec h_p_Kf_WIPBal_Add " + HYear + "," + HPeriod + "," + HICMOInterID + "," + HMaterID + "," + HProcNo + "," + HProcID + "," + HQty + ",'" + ClsPub.CurUserName + "'"); } } MessageBox.Show("保存完毕!", "提示"); this.Close(); } } private void cmbCanCel_Click(object sender, EventArgs e) { this.Close(); } private void bclk_Click(object sender, EventArgs e) { //保存列宽 DBUtility.Xt_BaseBillFun.SaveGrid(grdMain, this.Name); } private void mrlk_Click(object sender, EventArgs e) { DBUtility.Xt_BaseBillFun.DefaultGridView(grdMain, this.Name); } 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); } } }