海马汽车经销商管理系统技术解析(十八)修改出库

来源:互联网 发布:数据库系统概论复习 编辑:程序博客网 时间:2024/04/27 15:43

修改出库

修改界面见下图:

从【出库修改】界面可以看到控件有:

控件

说明

文本框(TextBox)

编辑控件可以在工具箱直接拖动至窗体,拖至窗体后右击属性可以修改控件的样式和各种属性,还可以设置事件。

日期控件(DateTimePicKer)

表格(DataGridView)

下拉框(ComboBox)

按钮(Button)

1、数据库功能实现

第一步:数据库

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

 

有效否

表2、出入库明细表(PW_ComeInAndGoOutMinuteList)

列名

数据类型

主键/外键

说明

ComeInAndGoOutMinuteID

int

主键

出入库明细ID

ComeInAndGoOutID

int

外键

出入库表,出入库ID

PartsID

int

外键

配件表,配件ID

StorageID

int

外键

仓库表,仓库ID

AtributeMinuteID_ComeInAndGoOutType

int

外键

属性明细表,属性明细ID_出入库类型

ComeInAndGoOutQuantity

decimal (18, 2)

 

出入库数量

ComeInAndGoOutPrice

decimal (18, 2)

 

出入库单价

表3、库存表(BM_StockList)

列名

数据类型

主键/外键

说明

StockID

int - Identity

主键

库存ID

PartsID

int

外键

配件表,配件ID

StorageID

int

外键

仓库表,仓库ID

StockNumber

decimal (18, 2)

 

库存数

表4、仓库表(BM_StorageList)

列名

数据类型

主键/外键

说明

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')BEGINSELECT     StockID,StockNumber    FROM         BM_StockList            WHERE  PartsID=@PartsID AND StorageID=@StorageIDEND

第二步:逻辑层(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')BEGINSELECT     StockID,StockNumber    FROM         BM_StockList            WHERE  PartsID=@PartsID AND StorageID=@StorageIDEND

第二步:逻辑层(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')BEGINSELECT     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.StorageNameFROM         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.AttributeMinuteIDWHERE      PW_ComeInAndGoOutMinuteList.ComeInAndGoOutID=@ComeInAndGoOutIDENDIF(@TYPE='FRM_RuKuGuanLi_Update_btnSave_Click_UpdateComeIn')BEGINUPDATE     PW_ComeInAndGoOutListSET         ComeInAndGoOutGross=@ComeInAndGoOutGross, ComeInAndGoOutData=@ComeInAndGoOutData,          DrawUp_StaffID=@DrawUp_StaffID, ExAminePerson_StaffID=@ExAminePerson_StaffIDWHERE   PW_ComeInAndGoOutList.ComeInAndGoOutID=@ComeInAndGoOutID        ENDIF(@TYPE='FRM_RuKuGuanLi_Update_btnSave_Click_DeleteComeInMinute')BEGINDELETE PW_ComeInAndGoOutMinuteListWHERE PW_ComeInAndGoOutMinuteList.ComeInAndGoOutID=@ComeInAndGoOutIDENDIF(@TYPE='FRM_RuKuGuanLi_Update_btnSave_Click_DeleteComeInMinute')BEGINDELETE PW_ComeInAndGoOutMinuteListWHERE PW_ComeInAndGoOutMinuteList.ComeInAndGoOutID=@ComeInAndGoOutIDEND

第二步:逻辑层(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);                    }                }            }        }

以上仅供学习参考,禁止用于商业用途!!!































0 0
原创粉丝点击