海马汽车经销商管理系统技术解析(十八)修改出库
2015-06-04 20:07
281 查看
修改出库
修改界面见下图:
![](http://img.blog.csdn.net/20150604201238727?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR1hfTG9uZ0d1b1FpYW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
从【出库修改】界面可以看到控件有:
1、数据库功能实现
第一步:数据库
1、表和关系
表1、出入库表(PW_ComeInAndGoOutList)
表2、出入库明细表(PW_ComeInAndGoOutMinuteList)
表3、库存表(BM_StockList)
表4、仓库表(BM_StorageList)
功能实现
1、窗体加载事件,绑定数据
第一步:界面层(UIL)
1、查询库存—【修改】按钮点击事件
![](http://img.blog.csdn.net/20150604201636752?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR1hfTG9uZ0d1b1FpYW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
第一步:数据库存储过程
第二步:逻辑层(BLL)
第三步:界面层(UIL)
2、增加
第一步:数据库存储过程
第二步:逻辑层(BLL)
第三步:界面层(UIL)
3、保存
第一步:数据库存储过程
第二步:逻辑层(BLL)
第三步:界面层(UIL)
4、窗体关闭前事件
第一步:界面层(UIL)
以上仅供学习参考,禁止用于商业用途!!!
修改界面见下图:
从【出库修改】界面可以看到控件有:
控件 | 说明 |
文本框(TextBox) | 编辑控件可以在工具箱直接拖动至窗体,拖至窗体后右击属性可以修改控件的样式和各种属性,还可以设置事件。 |
日期控件(DateTimePicKer) | |
表格(DataGridView) | |
下拉框(ComboBox) | |
按钮(Button) |
第一步:数据库
1、表和关系
表1、出入库表(PW_ComeInAndGoOutList)
列名 | 数据类型 | 主键/外键 | 说明 |
ComeInAndGoOutID | int - Identity | 主键 | 出入库ID |
ComeInAndGoOutOddNembers | nchar (20) | 出入库单号 | |
ComeInAndGoOutGross | decimal (18, 2) | 出入库总数量 | |
ComeInAndGoOutData | datetime | 出入库时间 | |
DrawUp_StaffID | int | 外键 | 员工档案表,编制人_员工ID |
ExAminePerson_StaffID | int | 外键 | 员工档案表,审核人_员工ID |
IfComeIn | bit | 入库否 | |
IfEffective | bit | 有效否 |
列名 | 数据类型 | 主键/外键 | 说明 |
ComeInAndGoOutMinuteID | int | 主键 | 出入库明细ID |
ComeInAndGoOutID | int | 外键 | 出入库表,出入库ID |
PartsID | int | 外键 | 配件表,配件ID |
StorageID | int | 外键 | 仓库表,仓库ID |
AtributeMinuteID_ComeInAndGoOutType | int | 外键 | 属性明细表,属性明细ID_出入库类型 |
ComeInAndGoOutQuantity | decimal (18, 2) | 出入库数量 | |
ComeInAndGoOutPrice | decimal (18, 2) | 出入库单价 |
列名 | 数据类型 | 主键/外键 | 说明 |
StockID | int - Identity | 主键 | 库存ID |
PartsID | int | 外键 | 配件表,配件ID |
StorageID | int | 外键 | 仓库表,仓库ID |
StockNumber | decimal (18, 2) | 库存数 |
列名 | 数据类型 | 主键/外键 | 说明 |
StorageID | int - Identity | 主键 | 仓库ID |
StorageName | nchar (20) | 仓库名 | |
Dimension | decimal (18, 2) | 容积 |
1、窗体加载事件,绑定数据
第一步:界面层(UIL)
BLL海马汽车销售系统.库存管理.FRM_RuKuGuanLi_Update.FRM_RuKuGuanLi_UpdateClient myFRM_RuKuGuanLi_UpdateClient = new BLL海马汽车销售系统.库存管理.FRM_RuKuGuanLi_Update.FRM_RuKuGuanLi_UpdateClient(); DataTable dtComeInMinute; private void FRM_ChuKuGuanLi_Update_Load(object sender, EventArgs e) { //查询出库信息 DataTable dtComeIn = myFRM_RuKuGuanLi_UpdateClient.FRM_RuKuGuanLi_Update_Load_SelectComeIn(FRM_ChuKuGuanLi.intGoOutID).Tables[0]; //绑定数据 txtComeInOddNember.Text = dtComeIn.Rows[0]["ComeInAndGoOutOddNembers"].ToString(); cboDrawUp.SelectedValue = Convert.ToInt32(dtComeIn.Rows[0]["DrawUpID"].ToString()); cboExAminePerson.SelectedValue = Convert.ToInt32(dtComeIn.Rows[0]["ExAminePersonID"].ToString()); dtpComeInData.Value = Convert.ToDateTime(dtComeIn.Rows[0]["ComeInAndGoOutData"]); txtGross.Text = dtComeIn.Rows[0]["ComeInAndGoOutGross"].ToString(); //查询出库明细信息 dtComeInMinute = myFRM_RuKuGuanLi_UpdateClient.FRM_RuKuGuanLi_Update_Load_SelectComeInMinute(FRM_ChuKuGuanLi.intGoOutID).Tables[0]; //绑定数据到dgv for (int i = 0; i < dtComeInMinute.Rows.Count; i++) { dgvGoOutMinute.Rows.Add(); dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["出入库明细ID"].Value = dtComeInMinute.Rows[i]["ComeInAndGoOutMinuteID"].ToString(); dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["配件ID"].Value = dtComeInMinute.Rows[i]["PartsID"].ToString(); dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["配件名称"].Value = dtComeInMinute.Rows[i]["PartsName"].ToString(); dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["配件代码"].Value = dtComeInMinute.Rows[i]["PartsCoding"].ToString(); dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["出库类型ID"].Value = dtComeInMinute.Rows[i]["ComeInAndGoOutTypeID"].ToString(); dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["出库类型"].Value = dtComeInMinute.Rows[i]["ComeInAndGoOutType"].ToString(); dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["单位"].Value = dtComeInMinute.Rows[i]["Unit"].ToString(); dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["规格"].Value = dtComeInMinute.Rows[i]["Specification"].ToString(); dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["仓库ID"].Value = dtComeInMinute.Rows[i]["StorageID"].ToString(); dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["仓库名称"].Value = dtComeInMinute.Rows[i]["StorageName"].ToString(); dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["出库单价"].Value = dtComeInMinute.Rows[i]["ComeInAndGoOutPrice"].ToString(); dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["出库数量"].Value = dtComeInMinute.Rows[i]["ComeInAndGoOutQuantity"].ToString(); dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["出库金额"].Value = Convert.ToDecimal(dtComeInMinute.Rows[i]["ComeInAndGoOutPrice"].ToString()) * Convert.ToDecimal(dtComeInMinute.Rows[i]["ComeInAndGoOutQuantity"].ToString()); } decimal decJinE = 0; for (int j = 0; j < dgvGoOutMinute.Rows.Count; j++)//循环dgv { //合计金额 decJinE += Convert.ToDecimal(dgvGoOutMinute.Rows[j].Cells["出库金额"].Value); } txtAmount.Text = decJinE.ToString(); //查询单据的明细信息 //DataTable dtComeInMinute = myFRM_RuKuGuanLi_UpdateClient.FRM_RuKuGuanLi_Update_Load_SelectComeInMinute(FRM_ChuKuGuanLi.intGoOutID).Tables[0]; if (dtComeInMinute.Rows.Count > 0)//如果有数据 { for (int i = 0; i < dtComeInMinute.Rows.Count; i++)//循环表 { //根据配件与仓库查询库存 DataTable dtKunCun = myFRM_RuKuGuanLi_InsertClient.FRM_RuKuGuanLi_Insert_SelectKuCun(Convert.ToInt32(dtComeInMinute.Rows[i]["PartsID"]), Convert.ToInt32(dtComeInMinute.Rows[i]["StorageID"])).Tables[0]; if (dtKunCun.Rows.Count > 0) { //修改库存数 decimal decKuCunShu = Convert.ToDecimal(dtKunCun.Rows[0]["StockNumber"]) + Convert.ToDecimal(dtComeInMinute.Rows[i]["ComeInAndGoOutQuantity"]); int intUpdate = myFRM_RuKuGuanLi_InsertClient.FRM_RuKuGuanLi_Insert_btnInsert_ClickUpdateStockNumber(decKuCunShu, Convert.ToInt32(dtKunCun.Rows[0]["StockID"])); } } } //删除明细信息 int intDelete = myFRM_RuKuGuanLi_UpdateClient.FRM_RuKuGuanLi_Update_btnSave_Click_DeleteComeInMinute(FRM_ChuKuGuanLi.intGoOutID); intCount = 1; }
1、查询库存—【修改】按钮点击事件
第一步:数据库存储过程
IF(@TYPE='FRM_RuKuGuanLi_Insert_SelectKuCun') BEGIN SELECT StockID,StockNumber FROM BM_StockList WHERE PartsID=@PartsID AND StorageID=@StorageID END
第二步:逻辑层(BLL)
//查询库存数 [OperationContract] public DataSet FRM_RuKuGuanLi_Insert_SelectKuCun(int intPartsID, int intStorageID) { SqlParameter[] mySqlParameters = { new SqlParameter("@TYPE",SqlDbType.NChar), new SqlParameter("@PartsID",SqlDbType.Int), new SqlParameter("@StorageID",SqlDbType.Int), }; mySqlParameters[0].Value = "FRM_RuKuGuanLi_Insert_SelectKuCun"; mySqlParameters[1].Value = intPartsID; mySqlParameters[2].Value = intStorageID; DataTable dt= myDALMethod.QueryDataTable("库存管理_FRM_RuKuGuanLi_Insert", mySqlParameters); DataSet ds = new DataSet(); ds.Tables.Add(dt); return ds; }
第三步:界面层(UIL)
BLL海马汽车销售系统.库存管理.FRM_RuKuGuanLi_Insert.FRM_RuKuGuanLi_InsertClient myFRM_RuKuGuanLi_InsertClient = new BLL海马汽车销售系统.库存管理.FRM_RuKuGuanLi_Insert.FRM_RuKuGuanLi_InsertClient(); private void btnUpdate_Click(object sender, EventArgs e) { decimal decKuCunShu = 0; //根据配件与仓库查询库存数 DataTable dtKunCun = myFRM_RuKuGuanLi_InsertClient.FRM_RuKuGuanLi_Insert_SelectKuCun(Convert.ToInt32(cboPartsName.SelectedValue), Convert.ToInt32(cboStorageName.SelectedValue)).Tables[0]; for (int i = 0; i < dgvGoOutMinute.Rows.Count; i++)//循环dgv { //如果dgv中存在相同的配件从相同仓库出库的单据 if (Convert.ToInt32(cboPartsName.SelectedValue) == Convert.ToInt32(dgvGoOutMinute.Rows[i].Cells["配件ID"].Value) && Convert.ToInt32(cboStorageName.SelectedValue) == Convert.ToInt32(dgvGoOutMinute.Rows[i].Cells["仓库ID"].Value)) { if (dtKunCun.Rows.Count > 0) { //计算库存数 decKuCunShu = Convert.ToDecimal(dtKunCun.Rows[0]["StockNumber"]); decKuCunShu = decKuCunShu - Convert.ToDecimal(dgvGoOutMinute.Rows[i].Cells["出库数量"].Value); } } } if (txtPrice.Text == "")//如果出库单价为空 { MessageBox.Show("出库单价不能为空!"); return; } if (txtQuantity.Text == "")//如果出库数量为空 { MessageBox.Show("出库数量不能为空!"); return; } //如果控件中的配件、仓库、出库类型与所选修改行的配件、仓库、出库类型相同 if (Convert.ToInt32(cboPartsName.SelectedValue) == Convert.ToInt32(dgvGoOutMinute.CurrentRow.Cells["配件ID"].Value) && Convert.ToInt32(cboStorageName.SelectedValue) == Convert.ToInt32(dgvGoOutMinute.CurrentRow.Cells["仓库ID"].Value) && Convert.ToInt32(cboGoOutType.SelectedValue) == Convert.ToInt32(dgvGoOutMinute.CurrentRow.Cells["出库类型ID"].Value)) { } else { if (dgvGoOutMinute.Rows.Count > 0)//dgv不为空 { for (int i = 0; i < dgvGoOutMinute.Rows.Count; i++)//循环dgv { //如果dgv中存在相同的配件以相同的出库方式从相同仓库出库的单据 if (Convert.ToInt32(cboPartsName.SelectedValue) == Convert.ToInt32(dgvGoOutMinute.Rows[i].Cells["配件ID"].Value) && Convert.ToInt32(cboStorageName.SelectedValue) == Convert.ToInt32(dgvGoOutMinute.Rows[i].Cells["仓库ID"].Value) && Convert.ToInt32(cboGoOutType.SelectedValue) == Convert.ToInt32(dgvGoOutMinute.Rows[i].Cells["出库类型ID"].Value)) { MessageBox.Show("该配件以该类型从该目标仓库出库的单据已存在"); return; } } } } //DataTable dtKunCun = myFRM_RuKuGuanLi_InsertClient.FRM_RuKuGuanLi_Insert_SelectKuCun(Convert.ToInt32(cboPartsName.SelectedValue), Convert.ToInt32(cboStorageName.SelectedValue)).Tables[0]; if (dtKunCun.Rows.Count > 0)//如果有表数据 { //decimal decKuCunShu = Convert.ToDecimal(dtKunCun.Rows[0]["StockNumber"]); if (decKuCunShu > Convert.ToDecimal(txtQuantity.Text))//如果库存充足 { //把信息添加到dgv dgvGoOutMinute.CurrentRow.Cells["出入库明细ID"].Value = ""; dgvGoOutMinute.CurrentRow.Cells["配件ID"].Value = Convert.ToInt32(cboPartsName.SelectedValue); dgvGoOutMinute.CurrentRow.Cells["配件名称"].Value = cboPartsName.Text; dgvGoOutMinute.CurrentRow.Cells["配件代码"].Value = txtPartsCode.Text; dgvGoOutMinute.CurrentRow.Cells["单位"].Value = txtUnit.Text; dgvGoOutMinute.CurrentRow.Cells["规格"].Value = txtGuiGe.Text; dgvGoOutMinute.CurrentRow.Cells["出库类型ID"].Value = Convert.ToInt32(cboGoOutType.SelectedValue); dgvGoOutMinute.CurrentRow.Cells["出库类型"].Value = cboGoOutType.Text; dgvGoOutMinute.CurrentRow.Cells["仓库名称"].Value = cboStorageName.Text; dgvGoOutMinute.CurrentRow.Cells["仓库ID"].Value = Convert.ToInt32(cboStorageName.SelectedValue); dgvGoOutMinute.CurrentRow.Cells["出库单价"].Value = txtPrice.Text; dgvGoOutMinute.CurrentRow.Cells["出库数量"].Value = txtQuantity.Text; dgvGoOutMinute.CurrentRow.Cells["出库金额"].Value = txtMoney.Text; } else//如果库存不足 { MessageBox.Show("该仓库库存不足!"); } } else//如果没数据 { MessageBox.Show("该仓库不存在该配件!"); } HeJi(); } public void HeJi() { decimal decZongJiE = 0; decimal decZongLiang = 0; if (dgvGoOutMinute.Rows.Count > 0)//如果dgv不为空 { for (int i = 0; i < dgvGoOutMinute.Rows.Count; i++)//循环dgv { //计算出库金额与出库数量 decZongJiE += Convert.ToDecimal(dgvGoOutMinute.Rows[i].Cells["出库金额"].Value); decZongLiang += Convert.ToDecimal(dgvGoOutMinute.Rows[i].Cells["出库数量"].Value); } } //赋值给【出库金额】与【出库数量】 txtGross.Text = decZongLiang.ToString().Trim(); txtAmount.Text = decZongJiE.ToString().Trim(); }
2、增加
第一步:数据库存储过程
IF(@TYPE='FRM_RuKuGuanLi_Insert_SelectKuCun') BEGIN SELECT StockID,StockNumber FROM BM_StockList WHERE PartsID=@PartsID AND StorageID=@StorageID END
第二步:逻辑层(BLL)
//查询库存 [OperationContract] public DataSet FRM_RuKuGuanLi_Insert_SelectKuCun(int intPartsID, int intStorageID) { SqlParameter[] mySqlParameters = { new SqlParameter("@TYPE",SqlDbType.NChar), new SqlParameter("@PartsID",SqlDbType.Int), new SqlParameter("@StorageID",SqlDbType.Int), }; mySqlParameters[0].Value = "FRM_RuKuGuanLi_Insert_SelectKuCun"; mySqlParameters[1].Value = intPartsID; mySqlParameters[2].Value = intStorageID; DataTable dt= myDALMethod.QueryDataTable("库存管理_FRM_RuKuGuanLi_Insert", mySqlParameters); DataSet ds = new DataSet(); ds.Tables.Add(dt); return ds; //返回数据集 }
第三步:界面层(UIL)
BLL海马汽车销售系统.库存管理.FRM_RuKuGuanLi_Insert.FRM_RuKuGuanLi_InsertClient myFRM_RuKuGuanLi_InsertClient = new BLL海马汽车销售系统.库存管理.FRM_RuKuGuanLi_Insert.FRM_RuKuGuanLi_InsertClient(); private void btnInsert_Click(object sender, EventArgs e) { if (dgvGoOutMinute.Rows.Count > 0)//如果dgv不为空 { for (int i = 0; i < dgvGoOutMinute.Rows.Count; i++)//循环dgv { //如果dgv中存在相同的配件从相同仓库出库的单据 if (Convert.ToInt32(cboPartsName.SelectedValue) == Convert.ToInt32(dgvGoOutMinute.Rows[i].Cells["配件ID"].Value) && Convert.ToInt32(cboStorageName.SelectedValue) == Convert.ToInt32(dgvGoOutMinute.Rows[i].Cells["仓库ID"].Value) && Convert.ToInt32(cboGoOutType.SelectedValue) == Convert.ToInt32(dgvGoOutMinute.Rows[i].Cells["出库类型ID"].Value)) { MessageBox.Show("该配件以该种类型从该目标仓库出库的单据已存在"); return; } } } if (txtPrice.Text == "")//如果出库单价为空 { MessageBox.Show("出库单价不能为空!"); return; } if (txtQuantity.Text == "")//如果出库数量为空 { MessageBox.Show("出库数量不能为空!"); return; } //根据配件和仓库查询库存数 DataTable dtKunCun = myFRM_RuKuGuanLi_InsertClient.FRM_RuKuGuanLi_Insert_SelectKuCun(Convert.ToInt32(cboPartsName.SelectedValue), Convert.ToInt32(cboStorageName.SelectedValue)).Tables[0]; if (dtKunCun.Rows.Count > 0)//如果有数据 { decimal decKuCunShu = Convert.ToDecimal(dtKunCun.Rows[0]["StockNumber"]); if (decKuCunShu > Convert.ToDecimal(txtQuantity.Text))//如果库存数充足 { //dgv增加行 dgvGoOutMinute.Rows.Add(); //把信息添加到dgv dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["出入库明细ID"].Value = ""; dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["配件ID"].Value = Convert.ToInt32(cboPartsName.SelectedValue); dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["配件名称"].Value = cboPartsName.Text; dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["配件代码"].Value = txtPartsCode.Text; dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["单位"].Value = txtUnit.Text; dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["规格"].Value = txtGuiGe.Text; dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["出库类型ID"].Value = Convert.ToInt32(cboGoOutType.SelectedValue); dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["出库类型"].Value = cboGoOutType.Text; dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["仓库名称"].Value = cboStorageName.Text; dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["仓库ID"].Value = Convert.ToInt32(cboStorageName.SelectedValue); dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["出库单价"].Value = txtPrice.Text; dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["出库数量"].Value = txtQuantity.Text; dgvGoOutMinute.Rows[dgvGoOutMinute.Rows.Count - 1].Cells["出库金额"].Value = txtMoney.Text; } else//如果库存不足 { MessageBox.Show("该仓库库存不足!"); } } else//如果没数据 { MessageBox.Show("该仓库不存在该配件!"); } HeJi(); } public void HeJi() { decimal decZongJiE = 0; decimal decZongLiang = 0; if (dgvGoOutMinute.Rows.Count > 0)//如果dgv不为空 { for (int i = 0; i < dgvGoOutMinute.Rows.Count; i++)//循环dgv { //计算出库金额与出库数量 decZongJiE += Convert.ToDecimal(dgvGoOutMinute.Rows[i].Cells["出库金额"].Value); decZongLiang += Convert.ToDecimal(dgvGoOutMinute.Rows[i].Cells["出库数量"].Value); } } //赋值给【出库金额】与【出库数量】 txtGross.Text = decZongLiang.ToString().Trim(); txtAmount.Text = decZongJiE.ToString().Trim(); }
3、保存
第一步:数据库存储过程
IF(@TYPE='FRM_RuKuGuanLi_Update_Load_SelectComeInMinute') BEGIN SELECT PW_ComeInAndGoOutMinuteList.ComeInAndGoOutMinuteID, PW_ComeInAndGoOutMinuteList.PartsID, PW_ComeInAndGoOutMinuteList.StorageID, PW_ComeInAndGoOutMinuteList.AtributeMinuteID_ComeInAndGoOutType AS ComeInAndGoOutTypeID, PW_ComeInAndGoOutMinuteList.ComeInAndGoOutQuantity, PW_ComeInAndGoOutMinuteList.ComeInAndGoOutPrice, AttributeMinuteList.AttributeMinuteID, BM_PartsList.PartsCoding, BM_PartsList.PartsName, BM_PartsList.Specification, BM_PartsList.AttributeMinuteID_Unit AS UnitID, AttributeMinuteList_1.AttributeMinuteName AS Unit, AttributeMinuteList.AttributeMinuteName AS ComeInAndGoOutType, BM_StorageList.StorageName FROM AttributeMinuteList INNER JOIN PW_ComeInAndGoOutMinuteList INNER JOIN BM_StorageList ON PW_ComeInAndGoOutMinuteList.StorageID = BM_StorageList.StorageID INNER JOIN BM_PartsList ON PW_ComeInAndGoOutMinuteList.PartsID = BM_PartsList.PartsID ON AttributeMinuteList.AttributeMinuteID = PW_ComeInAndGoOutMinuteList.AtributeMinuteID_ComeInAndGoOutType INNER JOIN AttributeMinuteList AS AttributeMinuteList_1 ON BM_PartsList.AttributeMinuteID_Unit = AttributeMinuteList_1.AttributeMinuteID WHERE PW_ComeInAndGoOutMinuteList.ComeInAndGoOutID=@ComeInAndGoOutID END IF(@TYPE='FRM_RuKuGuanLi_Update_btnSave_Click_UpdateComeIn') BEGIN UPDATE PW_ComeInAndGoOutList SET ComeInAndGoOutGross=@ComeInAndGoOutGross, ComeInAndGoOutData=@ComeInAndGoOutData, DrawUp_StaffID=@DrawUp_StaffID, ExAminePerson_StaffID=@ExAminePerson_StaffID WHERE PW_ComeInAndGoOutList.ComeInAndGoOutID=@ComeInAndGoOutID END IF(@TYPE='FRM_RuKuGuanLi_Update_btnSave_Click_DeleteComeInMinute') BEGIN DELETE PW_ComeInAndGoOutMinuteList WHERE PW_ComeInAndGoOutMinuteList.ComeInAndGoOutID=@ComeInAndGoOutID END IF(@TYPE='FRM_RuKuGuanLi_Update_btnSave_Click_DeleteComeInMinute') BEGIN DELETE PW_ComeInAndGoOutMinuteList WHERE PW_ComeInAndGoOutMinuteList.ComeInAndGoOutID=@ComeInAndGoOutID END
第二步:逻辑层(BLL)
//查询出库明细信息 [OperationContract] public DataSet FRM_RuKuGuanLi_Update_Load_SelectComeInMinute(int intComeInAndGoOutID) { SqlParameter[] mySqlParameters = { new SqlParameter("@TYPE",SqlDbType.NChar), new SqlParameter("@ComeInAndGoOutID",SqlDbType.Int), }; mySqlParameters[0].Value = "FRM_RuKuGuanLi_Update_Load_SelectComeInMinute"; mySqlParameters[1].Value = intComeInAndGoOutID; DataTable dt = myDALMethod.QueryDataTable("库存管理_FRM_RuKuGuanLi_Update", mySqlParameters); DataSet ds = new DataSet(); ds.Tables.Add(dt); //返回数据集 return ds; } //保存出库信息 [OperationContract] public int FRM_RuKuGuanLi_Update_btnSave_Click_UpdateComeIn(decimal decComeInAndGoOutGross, DateTime dtmComeInAndGoOutData, int intDrawUp, int intExAminePerson, int intComeInAndGoOutID) { SqlParameter[] mySqlParameters = { new SqlParameter("@TYPE",SqlDbType.NChar), new SqlParameter("@ComeInAndGoOutGross",SqlDbType.Decimal), new SqlParameter("@ComeInAndGoOutData",SqlDbType.DateTime), new SqlParameter("@DrawUp_StaffID",SqlDbType.Int), new SqlParameter("@ExAminePerson_StaffID",SqlDbType.Int), new SqlParameter("@ComeInAndGoOutID",SqlDbType.Bit), }; mySqlParameters[0].Value = "FRM_RuKuGuanLi_Update_btnSave_Click_UpdateComeIn"; mySqlParameters[1].Value = decComeInAndGoOutGross; mySqlParameters[2].Value = dtmComeInAndGoOutData; mySqlParameters[3].Value = intDrawUp; mySqlParameters[4].Value = intExAminePerson; mySqlParameters[5].Value = intComeInAndGoOutID; return myDALMethod.UpdateData("库存管理_FRM_RuKuGuanLi_Update", mySqlParameters); }
第三步:界面层(UIL)
BLL海马汽车销售系统.库存管理.FRM_RuKuGuanLi_Update.FRM_RuKuGuanLi_UpdateClient myFRM_RuKuGuanLi_UpdateClient = new BLL海马汽车销售系统.库存管理.FRM_RuKuGuanLi_Update.FRM_RuKuGuanLi_UpdateClient(); BLL海马汽车销售系统.库存管理.FRM_RuKuGuanLi_Insert.FRM_RuKuGuanLi_InsertClient myFRM_RuKuGuanLi_InsertClient = new BLL海马汽车销售系统.库存管理.FRM_RuKuGuanLi_Insert.FRM_RuKuGuanLi_InsertClient(); int intNember = 0; //变量 private void btnSave_Click(object sender, EventArgs e) { //给各个参数赋值 int InsertComeInAndGoOutMinute = 0; decimal decComeInAndGoOutGross = Convert.ToDecimal(txtGross.Text); DateTime dtmComeInAndGoOutData = Convert.ToDateTime(dtpComeInData.Value); int intDrawUp = Convert.ToInt32(cboDrawUp.SelectedValue); int intExAminePerson = Convert.ToInt32(cboExAminePerson.SelectedValue); int intComeInAndGoOutID = FRM_ChuKuGuanLi.intGoOutID; //把出库信息保存到数据库 int intUpdateComeIn = myFRM_RuKuGuanLi_UpdateClient.FRM_RuKuGuanLi_Update_btnSave_Click_UpdateComeIn(decComeInAndGoOutGross, dtmComeInAndGoOutData, intDrawUp, intExAminePerson, intComeInAndGoOutID); //查询单据的明细信息 DataTable dtComeInMinute = myFRM_RuKuGuanLi_UpdateClient.FRM_RuKuGuanLi_Update_Load_SelectComeInMinute(FRM_ChuKuGuanLi.intGoOutID).Tables[0]; if (dgvGoOutMinute.Rows.Count > 0) //如果dgv不为空 { for (int i = 0; i < dgvGoOutMinute.Rows.Count; i++)//循环dgv { //根据配件与仓库查询库存 DataTable dtKunCun = myFRM_RuKuGuanLi_InsertClient.FRM_RuKuGuanLi_Insert_SelectKuCun(Convert.ToInt32(dgvGoOutMinute.Rows[i].Cells["配件ID"].Value), Convert.ToInt32(dgvGoOutMinute.Rows[i].Cells["仓库ID"].Value)).Tables[0]; if (dtKunCun.Rows.Count > 0) { //修改库存数 decimal decKuCunShu = Convert.ToDecimal(dtKunCun.Rows[0]["StockNumber"])-Convert.ToDecimal(dgvGoOutMinute.Rows[i].Cells["出库数量"].Value); int intUpdate = myFRM_RuKuGuanLi_InsertClient.FRM_RuKuGuanLi_Insert_btnInsert_ClickUpdateStockNumber(decKuCunShu, Convert.ToInt32(dtKunCun.Rows[0]["StockID"])); } //给参数赋值 int intComeInAndGoOutID1 = FRM_ChuKuGuanLi.intGoOutID; int intPartsID = Convert.ToInt32(dgvGoOutMinute.Rows[i].Cells["配件iD"].Value); int intStorageID = Convert.ToInt32(dgvGoOutMinute.Rows[i].Cells["仓库ID"].Value); int intComeInAndGoOutType = Convert.ToInt32(dgvGoOutMinute.Rows[i].Cells["出库类型ID"].Value); decimal decComeInAndGoOutQuantity = Convert.ToDecimal(dgvGoOutMinute.Rows[i].Cells["出库数量"].Value); decimal decComeInAndGoOutPrice = Convert.ToDecimal(dgvGoOutMinute.Rows[i].Cells["出库单价"].Value); //把出库明细保存到数据库 InsertComeInAndGoOutMinute = myFRM_RuKuGuanLi_InsertClient.FRM_RuKuGuanLi_Insert_btnInsert_ClickInsertComeInAndGoOutMinute(intComeInAndGoOutID1, intPartsID, intStorageID, intComeInAndGoOutType, decComeInAndGoOutQuantity, decComeInAndGoOutPrice); } } if (intUpdateComeIn > 0 || InsertComeInAndGoOutMinute > 0)//如果调用方法成功 { MessageBox.Show("保存成功!"); } intNember = 1;//变量赋值为1 }
4、窗体关闭前事件
第一步:界面层(UIL)
BLL海马汽车销售系统.库存管理.FRM_RuKuGuanLi_Insert.FRM_RuKuGuanLi_InsertClient myFRM_RuKuGuanLi_InsertClient = new BLL海马汽车销售系统.库存管理.FRM_RuKuGuanLi_Insert.FRM_RuKuGuanLi_InsertClient(); private void FRM_ChuKuGuanLi_Update_FormClosing(object sender, FormClosingEventArgs e) { if (intNember == 0)//如果变量值为0 { if (dtComeInMinute.Rows.Count > 0) //如果dgv不为空 { for (int i = 0; i < dtComeInMinute.Rows.Count; i++)//循环dgv { //根据配件与仓库查询库存 DataTable dtKunCun = myFRM_RuKuGuanLi_InsertClient.FRM_RuKuGuanLi_Insert_SelectKuCun(Convert.ToInt32(dtComeInMinute.Rows[i]["配件ID"]), Convert.ToInt32(dtComeInMinute.Rows[i]["StorageID"])).Tables[0]; if (dtKunCun.Rows.Count > 0) { //修改库存数 decimal decKuCunShu = Convert.ToDecimal(dtKunCun.Rows[0]["StockNumber"]) - Convert.ToDecimal(dtComeInMinute.Rows[i]["ComeInAndGoOutQuantity"]); int intUpdate = myFRM_RuKuGuanLi_InsertClient.FRM_RuKuGuanLi_Insert_btnInsert_ClickUpdateStockNumber(decKuCunShu, Convert.ToInt32(dtKunCun.Rows[0]["StockID"])); } //给参数赋值 int intComeInAndGoOutID1 = FRM_ChuKuGuanLi.intGoOutID; int intPartsID = Convert.ToInt32(dtComeInMinute.Rows[i]["PartsID"]); int intStorageID = Convert.ToInt32(dtComeInMinute.Rows[i]["StorageID"]); int intComeInAndGoOutType = Convert.ToInt32(dtComeInMinute.Rows[i]["ComeInAndGoOutTypeID"]); decimal decComeInAndGoOutQuantity = Convert.ToDecimal(dtComeInMinute.Rows[i]["ComeInAndGoOutQuantity"]); decimal decComeInAndGoOutPrice = Convert.ToDecimal(dtComeInMinute.Rows[i]["ComeInAndGoOutPrice"]); //把出库明细保存到数据库 int InsertComeInAndGoOutMinute = myFRM_RuKuGuanLi_InsertClient.FRM_RuKuGuanLi_Insert_btnInsert_ClickInsertComeInAndGoOutMinute(intComeInAndGoOutID1, intPartsID, intStorageID, intComeInAndGoOutType, decComeInAndGoOutQuantity, decComeInAndGoOutPrice); } } } }
以上仅供学习参考,禁止用于商业用途!!!
相关文章推荐
- Tomcat 6 —— Realm域管理
- 几个一
- HDU 4499 Cannon
- bzoj2788
- 求链表中环的入口
- 红黑树基本操作
- 职责链模式
- HID 报告描述符精细说明.
- leetcode - 3Sum ( kSum )
- BZOJ 3684 大朋友和多叉树 FFT+拉格朗日反演
- ALAssetsLibrary
- struts2文件异步上传带进度条(二)
- CSDN之星
- OpenCV学习笔记(17):直方图反向投影(二)
- RIP设置
- 修改linux主机名称
- 第三章四十三题
- Java文本编辑器中遇到的问题详解
- hdu 4496 D-City(并查集)
- UITableView_4cell简单练习,汽车品牌展示