/// <summary>
            /// 插入一行
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            /// <remarks></remarks>
            private void InsertRow(object sender, EventArgs e)
            {
                myDataGridView with_1        = this;
                int            SelectedIndex = with_1.SelectedRows[0].Index;

                with_1.Rows.Insert(SelectedIndex, 1);
            }
Exemplo n.º 2
0
 private void myDataGridViewBOM_KeyPress(object sender, KeyPressEventArgs e)
 {
     if (e.KeyChar == SystemConst.GridKeysEnter)
     {
         myDataGridView   dgv  = sender as myDataGridView;
         DataGridViewCell cell = dgv.CurrentCell;
         GridKeyEnter(dgv, cell, true);
     }
 }
Exemplo n.º 3
0
 public virtual void dataGridViewDetail_KeyPress(object sender, KeyPressEventArgs e)
 {
     if (e.KeyChar == SystemConst.GridKeysEnter)
     {
         myDataGridView   dgv  = sender as myDataGridView;
         DataGridViewCell cell = dgv.CurrentCell;
         GridKeyEnter(dgv, cell, true);
     }
 }
Exemplo n.º 4
0
        private void myDataGridViewBOM_DataError(object sender, DataGridViewDataErrorEventArgs e)
        {
            myDataGridView dgv     = (myDataGridView)sender;
            string         colName = dgv.Columns[e.ColumnIndex].Name;

            if (colName == "数量")
            {
                e.Cancel = false;
            }
        }
Exemplo n.º 5
0
        private void myDataGridViewBOM_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            if (!bCellEndEdit)
            {
                return;
            }
            myDataGridView   dgv  = sender as myDataGridView;
            DataGridViewCell cell = dgv[e.ColumnIndex, e.RowIndex];

            GridKeyEnter(dgv, cell, false);
        }
Exemplo n.º 6
0
        public virtual void dataGridViewDetail_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            if (!bCellEndEdit)
            {
                return;
            }
            myDataGridView   dgv  = sender as myDataGridView;
            DataGridViewCell cell = dgv[e.ColumnIndex, e.RowIndex];

            GridKeyEnter(dgv, cell, false);
        }
            /// <summary>
            /// 移除一行
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            /// <remarks></remarks>
            private void RemoveRow(object sender, EventArgs e)
            {
                myDataGridView with_1 = this;
                var            Row    = with_1.SelectedRows[0];

                if (Row.Index < with_1.Rows.Count - 1)
                {
                    //当删除最后一行(不带数据,自动添加的行)时会报错:无法删除未提交的新行。
                    with_1.Rows.Remove(Row);
                }
            }
Exemplo n.º 8
0
        /// <summary>
        /// 验证品名规格型号合法性
        /// </summary>
        /// <param name="dgv"></param>
        /// <param name="cell"></param>
        /// <returns></returns>
        private bool validate品名规格型号(myDataGridView dgv, DataGridViewCell cell)
        {
            if (dgv.Rows[cell.RowIndex].Cells["手册id"].Value == DBNull.Value || Convert.ToInt32(dgv.Rows[cell.RowIndex].Cells["手册id"].Value) <= 0)
            {
                SysMessage.InformationMsg("请先选择手册编号!");
                return(false);
            }
            string strSQL = string.Empty;

            strSQL = string.Format("SELECT 进口料件id, 商品编号, 品名规格型号, 单位 FROM 进口料件表 where 手册id={0} and 品名规格型号 like '%{1}%'",
                                   dgv.Rows[cell.RowIndex].Cells["手册id"].Value, StringTools.SqlLikeQ(cell.EditedFormattedValue.ToString()));

            IDataAccess dataAccess = DataAccessFactory.CreateDataAccess(DataAccessEnum.DataAccessName.DataAccessName_Uniquegrade);

            dataAccess.Open();
            DataTable dtData = dataAccess.GetTable(strSQL, null);

            dataAccess.Close();
            if (dtData.Rows.Count == 1)
            {
                DataRow row = dtData.Rows[0];
                dgv.Rows[cell.RowIndex].Cells["进口料件id"].Value = row["进口料件id"];
                dgv.Rows[cell.RowIndex].Cells["商品编号"].Value   = row["商品编号"];
                dgv.Rows[cell.RowIndex].Cells["单位"].Value     = row["单位"];
                dgv.Rows[cell.RowIndex].Cells["品名规格型号"].Value = row["品名规格型号"];
            }
            else if (dtData.Rows.Count > 1)
            {
                FormBaseSingleSelect formSelect = new FormBaseSingleSelect();
                formSelect.strFormText = "选择资料";
                formSelect.dtData      = dtData;
                if (formSelect.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    dgv.Rows[cell.RowIndex].Cells["进口料件id"].Value = formSelect.returnRow["进口料件id"];
                    dgv.Rows[cell.RowIndex].Cells["商品编号"].Value   = formSelect.returnRow["商品编号"];
                    dgv.Rows[cell.RowIndex].Cells["单位"].Value     = formSelect.returnRow["单位"];
                    dgv.Rows[cell.RowIndex].Cells["品名规格型号"].Value = formSelect.returnRow["品名规格型号"];
                }
                else
                {
                    dgv.CurrentCell = cell;
                    return(false);
                }
            }
            else
            {
                SysMessage.InformationMsg("此商品编号不存在!");
                dgv.CurrentCell = cell;
                return(false);
            }
            return(true);
        }
            /// <summary>
            /// 移除多行
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            /// <remarks></remarks>
            private void ToolStripMenuItemRemoveRows_Click(object sender, EventArgs e)
            {
                myDataGridView with_1 = this;

                //下面的 For Each 是从下往上索引的,即前面的Row对象的index的值大于后面的Index的值
                foreach (DataGridViewRow Row in with_1.SelectedRows)
                {
                    if (Row.Index < with_1.Rows.Count - 1)
                    {
                        //当删除最后一行(不带数据,自动添加的行)时会报错:无法删除未提交的新行。
                        with_1.Rows.Remove(Row);
                    }
                }
            }
Exemplo n.º 10
0
 /// <summary>
 /// 验证数量合法性
 /// </summary>
 /// <param name="dgv"></param>
 /// <param name="cell"></param>
 /// <returns></returns>
 private void validate数量(myDataGridView dgv, DataGridViewCell cell)
 {
     if (cell.EditedFormattedValue.ToString() == "")
     {
         dgv.Rows[cell.RowIndex].Cells["数量"].Value = DBNull.Value;
     }
     else
     {
         try
         {
             decimal.Parse(cell.EditedFormattedValue.ToString());
             dgv.Rows[cell.RowIndex].Cells["数量"].Value = Convert.ToDecimal(cell.EditedFormattedValue);
         }
         catch
         {
             dgv.Rows[cell.RowIndex].Cells["数量"].Value = 0;
         }
     }
 }
        private void validate日期(myDataGridView dgv, DataGridViewCell cell)
        {
            if (cell.EditedFormattedValue.ToString() == "")
            {
                dgv.Rows[cell.RowIndex].Cells["日期"].Value = DBNull.Value;
            }
            else
            {
                try
                {
                    Convert.ToDateTime(cell.EditedFormattedValue.ToString());

                    dgv.Rows[cell.RowIndex].Cells["日期"].Value = Convert.ToDateTime(cell.EditedFormattedValue).ToString("yyyy-MM-dd");
                }
                catch
                {
                    dgv.Rows[cell.RowIndex].Cells["日期"].Value = DBNull.Value;
                }
            }
        }
Exemplo n.º 12
0
        /// <summary>
        /// 验证手册编号合法性
        /// </summary>
        /// <param name="dgv"></param>
        /// <param name="cell"></param>
        /// <returns></returns>
        private bool validate手册编号(myDataGridView dgv, DataGridViewCell cell)
        {
            string strSQL = string.Empty;

            strSQL = string.Format("SELECT 手册id, 手册编号, 有效期限, 进出口岸一 FROM 手册资料表 where 手册编号 like '%{0}%'", StringTools.SqlLikeQ(cell.EditedFormattedValue.ToString()));
            IDataAccess dataAccess = DataAccessFactory.CreateDataAccess(DataAccessEnum.DataAccessName.DataAccessName_Uniquegrade);

            dataAccess.Open();
            DataTable dtData = dataAccess.GetTable(strSQL, null);

            dataAccess.Close();
            if (dtData.Rows.Count == 1)
            {
                DataRow row = dtData.Rows[0];
                dgv.Rows[cell.RowIndex].Cells["手册id"].Value = row["手册id"];
                dgv.Rows[cell.RowIndex].Cells["手册编号"].Value = row["手册编号"];
            }
            else if (dtData.Rows.Count > 1)
            {
                FormBaseSingleSelect formSelect = new FormBaseSingleSelect();
                formSelect.strFormText = "选择资料";
                formSelect.dtData      = dtData;
                if (formSelect.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    dgv.Rows[cell.RowIndex].Cells["手册id"].Value = formSelect.returnRow["手册id"];
                    dgv.Rows[cell.RowIndex].Cells["手册编号"].Value = formSelect.returnRow["手册编号"];
                }
                else
                {
                    dgv.CurrentCell = cell;
                    return(false);
                }
            }
            else
            {
                SysMessage.InformationMsg("此手册编号不存在!");
                dgv.CurrentCell = cell;
                return(false);
            }
            return(true);
        }
Exemplo n.º 13
0
 private void validate备注(myDataGridView dgv, DataGridViewCell cell)
 {
     dgv["备注", cell.RowIndex].Value = cell.EditedFormattedValue;
     //如果当前行的商品编号为空,则跳转到当前行的商品编号
     if (dgv.Rows[cell.RowIndex].Cells["商品编号"].Value == DBNull.Value ||
         dgv.Rows[cell.RowIndex].Cells["商品编号"].Value.ToString().Trim() == "")
     {
         dgv.CurrentCell = dgv["商品编号", cell.RowIndex];
     }
     else
     {
         //否则跳转到下一行的产品编号,如果是最后一行,则新增一行
         if (cell.RowIndex == dgv.Rows.Count - 1)
         {
             dtBOMAddRow();
             dgv.CurrentCell = dgv["商品编号", cell.RowIndex + 1];
         }
         else
         {
             dgv.CurrentCell = dgv["商品编号", cell.RowIndex + 1];
         }
     }
 }
Exemplo n.º 14
0
        /// <summary>
        /// GRID的回车事件
        /// </summary>
        /// <param name="dgv">Grid对象</param>
        /// <param name="cell">焦点CELL</param>
        /// <param name="bKeyEnter">是否按回车触发的事件</param>
        private void GridKeyEnter(myDataGridView dgv, DataGridViewCell cell, bool bKeyEnter)
        {
            if (!bCellKeyPress)
            {
                return;
            }
            string colName = dgv.Columns[cell.ColumnIndex].Name;

            switch (colName)
            {
            case "手册编号":      //跳转到商品编号
                #region CELL回车跳转
                if (bKeyEnter)
                {
                    if (dgv.CurrentRow.Cells["手册编号"].Value.ToString() == cell.EditedFormattedValue.ToString())
                    {
                        bCellEndEdit    = false;
                        dgv.CurrentCell = dgv["商品编号", cell.RowIndex];
                        bCellEndEdit    = true;
                    }
                    else if (validate手册编号(dgv, cell))
                    {
                        //dtModifyAfterHead.Rows[cell.RowIndex].EndEdit();
                        (dgv.CurrentRow.DataBoundItem as DataRowView).Row.EndEdit();
                        bCellEndEdit    = false;
                        dgv.CurrentCell = dgv["商品编号", cell.RowIndex];
                        bCellEndEdit    = true;
                    }
                }
                else
                {
                    if (dgv.CurrentRow.Cells["手册编号"].Value.ToString() != cell.EditedFormattedValue.ToString())
                    {
                        validate手册编号(dgv, cell);
                    }
                }
                #endregion
                break;

            case "商品编号":      //跳转数量
                #region CELL回车跳转
                if (bKeyEnter)
                {
                    if (dgv.CurrentRow.Cells["商品编号"].Value.ToString() == cell.EditedFormattedValue.ToString())
                    {
                        bCellEndEdit    = false;
                        dgv.CurrentCell = dgv["数量", cell.RowIndex];
                        bCellEndEdit    = true;
                    }
                    else if (validate商品编号(dgv, cell))
                    {
                        //dtModifyAfterHead.Rows[cell.RowIndex].EndEdit();
                        (dgv.CurrentRow.DataBoundItem as DataRowView).Row.EndEdit();
                        bCellEndEdit    = false;
                        dgv.CurrentCell = dgv["数量", cell.RowIndex];
                        bCellEndEdit    = true;
                    }
                }
                else
                {
                    if (dgv.CurrentRow.Cells["商品编号"].Value.ToString() != cell.EditedFormattedValue.ToString())
                    {
                        validate商品编号(dgv, cell);
                    }
                }
                #endregion
                break;

            case "品名规格型号":     //跳转数量
                #region CELL回车跳转
                if (bKeyEnter)
                {
                    if (dgv.CurrentRow.Cells["品名规格型号"].Value.ToString() == cell.EditedFormattedValue.ToString())
                    {
                        bCellEndEdit    = false;
                        dgv.CurrentCell = dgv["数量", cell.RowIndex];
                        bCellEndEdit    = true;
                    }
                    else if (validate品名规格型号(dgv, cell))
                    {
                        //dtModifyAfterHead.Rows[cell.RowIndex].EndEdit();
                        (dgv.CurrentRow.DataBoundItem as DataRowView).Row.EndEdit();
                        bCellEndEdit    = false;
                        dgv.CurrentCell = dgv["数量", cell.RowIndex];
                        bCellEndEdit    = true;
                    }
                }
                else
                {
                    if (dgv.CurrentRow.Cells["品名规格型号"].Value.ToString() != cell.EditedFormattedValue.ToString())
                    {
                        validate品名规格型号(dgv, cell);
                    }
                }
                #endregion
                break;

            case "数量":      //跳转到备注
                #region CELL回车跳转
                if (bKeyEnter)
                {
                    if (dgv.CurrentRow.Cells["数量"].Value.ToString() == cell.EditedFormattedValue.ToString())
                    {
                        bCellEndEdit    = false;
                        dgv.CurrentCell = dgv["备注", cell.RowIndex];
                        bCellEndEdit    = true;
                    }
                    else
                    {
                        validate数量(dgv, cell);
                        (dgv.CurrentRow.DataBoundItem as DataRowView).Row.EndEdit();
                        bCellEndEdit    = false;
                        dgv.CurrentCell = dgv["备注", cell.RowIndex];
                        bCellEndEdit    = true;
                    }
                }
                else
                {
                    if (dgv.CurrentRow.Cells["数量"].Value.ToString() != cell.EditedFormattedValue.ToString())
                    {
                        validate数量(dgv, cell);
                    }
                }
                #endregion
                break;

            case "备注":
                #region CELL回车跳转
                if (bKeyEnter)
                {
                    validate备注(dgv, cell);
                    (dgv.CurrentRow.DataBoundItem as DataRowView).Row.EndEdit();
                }
                #endregion
                break;

            case "项号":       //跳转到"商品编号"
                #region CELL回车跳转
                if (bKeyEnter)
                {
                    dgv.CurrentCell = dgv["商品编号", cell.RowIndex];
                }
                #endregion
                break;

            case "单位":       //跳转到"备注"
                #region CELL回车跳转
                if (bKeyEnter)
                {
                    dgv.CurrentCell = dgv["备注", cell.RowIndex];
                }
                #endregion
                break;
            }
        }
Exemplo n.º 15
0
        private void GridKeyEnter(myDataGridView dgv, DataGridViewCell cell, bool bKeyEnter)
        {
            if (!bCellKeyPress)
            {
                return;
            }
            string colName = dgv.Columns[cell.ColumnIndex].Name;

            switch (colName)
            {
            case "序号":       //跳转到"产品编号"
                #region CELL回车跳转
                if (bKeyEnter)
                {
                    if (dgv.CurrentRow.Cells["序号"].Value.ToString() == cell.EditedFormattedValue.ToString())
                    {
                        bCellEndEdit    = false;
                        dgv.CurrentCell = dgv["产品编号", cell.RowIndex];
                        bCellEndEdit    = true;
                    }
                    else
                    {
                        validate序号(dgv, cell);
                        (dgv.CurrentRow.DataBoundItem as DataRowView).Row.EndEdit();
                        bCellEndEdit    = false;
                        dgv.CurrentCell = dgv["产品编号", cell.RowIndex];
                        bCellEndEdit    = true;
                    }
                }
                else
                {
                    if (dgv.CurrentRow.Cells["序号"].Value.ToString() != cell.EditedFormattedValue.ToString())
                    {
                        validate序号(dgv, cell);
                    }
                }
                #endregion
                break;

            case "产品编号":    //跳转到"商品编码"
                #region CELL回车跳转
                if (bKeyEnter)
                {
                    dgv.CurrentCell = dgv["商品编码", cell.RowIndex];
                }
                #endregion
                break;

            case "商品编码":    //跳转到"商品名称"
                #region CELL回车跳转
                if (bKeyEnter)
                {
                    dgv.CurrentCell = dgv["商品名称", cell.RowIndex];
                }
                #endregion
                break;

            case "商品名称":      //跳转到"商品规格"
                #region CELL回车跳转
                if (bKeyEnter)
                {
                    dgv.CurrentCell = dgv["商品规格", cell.RowIndex];
                }
                #endregion
                break;

            case "商品规格":      //跳转到"单价"
                #region CELL回车跳转
                if (bKeyEnter)
                {
                    dgv.CurrentCell = dgv["单价", cell.RowIndex];
                }
                #endregion
                break;

            case "单价":       //跳转到"币种"
                #region CELL回车跳转
                if (bKeyEnter)
                {
                    if (dgv.CurrentRow.Cells["单价"].Value.ToString() == cell.EditedFormattedValue.ToString())
                    {
                        bCellEndEdit    = false;
                        dgv.CurrentCell = dgv["币种", cell.RowIndex];
                        bCellEndEdit    = true;
                    }
                    else
                    {
                        validate单价(dgv, cell);
                        (dgv.CurrentRow.DataBoundItem as DataRowView).Row.EndEdit();
                        bCellEndEdit    = false;
                        dgv.CurrentCell = dgv["币种", cell.RowIndex];
                        bCellEndEdit    = true;
                    }
                }
                else
                {
                    if (dgv.CurrentRow.Cells["单价"].Value.ToString() != cell.EditedFormattedValue.ToString())
                    {
                        validate单价(dgv, cell);
                    }
                }
                #endregion
                break;

            case "币种":       //跳转到"计量单位"
                #region CELL回车跳转
                if (bKeyEnter)
                {
                    dgv.CurrentCell = dgv["计量单位", cell.RowIndex];
                }
                #endregion
                break;

            case "计量单位":       //跳转到"法定单位"
                #region CELL回车跳转
                if (bKeyEnter)
                {
                    dgv.CurrentCell = dgv["法定单位", cell.RowIndex];
                }
                #endregion
                break;

            case "法定单位":       //跳转到"换算因子"
                #region CELL回车跳转
                if (bKeyEnter)
                {
                    dgv.CurrentCell = dgv["换算因子", cell.RowIndex];
                }
                #endregion
                break;

            case "换算因子":       //跳转到"对应编号"
                #region CELL回车跳转
                if (bKeyEnter)
                {
                    dgv.CurrentCell = dgv["对应编号", cell.RowIndex];
                }
                #endregion
                break;

            case "对应编号":       //跳转到"序号"
                #region CELL回车跳转
                if (bKeyEnter)
                {
                    validate对应编号(dgv, cell);
                    (dgv.CurrentRow.DataBoundItem as DataRowView).Row.EndEdit();
                }
                #endregion
                break;
            }
        }
Exemplo n.º 16
0
 public virtual void GridKeyEnter(myDataGridView dgv, DataGridViewCell cell, bool bKeyEnter)
 {
 }