资源释放
资源释放是根据需要释放已占用的而库存短缺的配件资源。资源还原就是在库存充足的情况下,还原已经释放的配件资源。
从“释放配件资源”主界面看到的控件有:
控件 | 说明 |
(Toolstrip) | 编辑控件可以在工具箱直接拖动至窗体,拖至窗体后右击属性可以修改控件的样式和各种属性,还可以设置事件。 |
表格(DataGridView) |
1、数据库功能实现
第一步:数据库
1、表和关系
表1:预约单表(PW_BespeakBillList)
列名 | 数据类型 | 主键/外键 | 说明 |
BespeakBillID | int - Identity | 主键 | 预约单ID |
BespeakOddNumBer | nchar (20) | 预约单号 | |
CarNewsID | int | 外键 | 车辆信息表,车辆信息ID |
BespeakTime | datetime | 预约时间 | |
AttributeMinuteID_BespeakWay | int | 外键 | 属性明细表,属性明细ID_预约方式 |
BespeakMileage | decimal (18, 2) | 预约里程 | |
BespeakStatus | nchar (20) | 预约状态 | |
Gross | decimal (18, 2) | 总计金额 | |
FailCause | nchar (100) | 失败原因 | |
StaffID_HearPersons | int | 外键 | 员工档案表,员工ID_受理人 |
StaffID_Receiver | int | 外键 | 员工档案表,员工ID_接待人 |
LastTimeInTheFactory | nchar (20) | 上次进厂时间 | |
IfBespeakSucceed | bit | 预约成功否 | |
StaffID_AlterationPerson | nchar (20) | 外键 | 员工档案表,员工ID_变更人 |
BookingCarDeliveryTime | nchar (20) | 预约交车时间 | |
BespeakWarnTime | nchar (20) | 预约提醒时间 | |
ServiceOddNumber | nchar (20) | 外键 | 维修单表,维修单号 |
NewBespeakOddlNumber | nchar (20) | 新预约单号 | |
OldBespeakOddNumber | nchar (20) | 旧预约单号 | |
AlterationTime | nchar (20) | 变更时间 | |
AlterationCauses | nchar (100) | 变更原因 | |
ClientDescribe | nchar (100) | 客户描述 | |
Remarks | nchar (100) | 备注 | |
IfResourceRelease | bit | 资源释放否 |
表2:预约配件表(BespeakPartsList)
列名 | 数据类型 | 主键/外键 | 说明 |
BespeakPartsID | int | 主键 | 预约配件ID |
BespeakBillID | int | 外键 | 预约单表,预约单ID |
PartsID | int | 外键 | 配件表,配件ID |
AttributeMinuteID_AccountType | int | 外键 | 属性明细表,属性明细ID_帐类 |
ObligateNumBer | decimal (18, 2) |
| 预留数量 |
NeedNumber | decimal (18, 2) |
| 需求数量 |
InTranSitNumBer | decimal (18, 2) |
| 在途数量 |
AvailableForSaleNumber | decimal (18, 2) |
| 可售数量 |
Price | decimal (18, 2) |
| 单价 |
IfResourceRelease | bit |
| 资源释放否 |
表3、配件表(BM_PartsList)
列名 | 数据类型 | 主键/外键 | 说明 |
PartsID | int - Identity | 主键 | 配件ID |
PartsCoding | nchar (20) |
| 配件代码 |
PartsName | nchar (20) |
| 配件名称 |
CarModels | nchar (20) |
| 车型 |
Specification | nchar (20) |
| 规格 |
AttributeMinuteID_Unit | int | 外键 | 属性明细表,属性明细ID_单位 |
SellPrice | nchar (20) |
| 销售价格 |
表4、车辆信息表(BM_CarNewsList)
列名 | 数据类型 | 主键/外键 | 说明 |
CarNewsID | int - Identity | 主键 | 车辆信息ID |
CarOwnerNewsID | int | 外键 | 车主信息ID |
RecordNumber | nchar (20) |
| 档案号 |
LicensePlateNumber | nchar (20) |
| 车牌号 |
CarModelsCode | nchar (20) |
| 车型代码 |
VINCode | nchar (20) |
| VIN码 |
MotorModel | nchar (20) |
| 发动机型号 |
Transmissiontype | nchar (20) |
| 变速器型式 |
MotorNumber | nchar (20) |
| 发动机号 |
TransmissionNumber | nchar (20) |
| 变速箱号码 |
KeyNumber | nchar (20) |
| 钥匙号 |
ShiftWay | nchar (20) |
| 换挡方式 |
CarModelsYearFund | nchar (20) |
| 车型年款 |
Displacement | nchar (20) |
| 排量 |
EquipmentCode | nchar (20) |
| 装备代码 |
BodyworkColour | nchar (10) |
| 车身颜色 |
LeaveFactoryDate | datetime |
| 出厂日期 |
FuelKind | nchar (20) |
| 燃料种类 |
BuyCarDate | datetime |
| 购车日期 |
BuyCarMileage | decimal (18, 2) |
| 购车里程 |
Purpose | nchar (20) |
| 用途 |
SellUnit | nchar (20) |
| 销售单位 |
CarBrand | nchar (20) |
| 车辆品牌 |
CarModelsSimpleCode | nchar (20) |
| 车型简码 |
IfInWarrantyperiod | bit |
| 是否在保修期内 |
UserManage | bit |
| 用户管理 |
IfEffective | bit |
| 有效否 |
表5、车主信息表(BM_CarOwnerNewsList)
列名 | 数据类型 | 说明 | 说明 |
CarOwnerNewsID | int - Identity | 主键 | 车主信息ID |
CarOwnerCode | nchar (20) |
| 车主代码 |
CarOwnerName | nchar (20) |
| 车主名称 |
AttributeMinuteID_ClientTypeOne | int | 外键 | 属性明细表,属性明细ID_客户类型一 |
AttributeMinuteID_ClientTypeTwo | int | 外键 | 属性明细表,属性明细ID_客户类型二 |
AttributeMinuteID_Sex | int | 外键 | 属性明细表,属性明细ID_性别 |
Site | nchar (100) |
| 地址 |
MobilePhone | nchar (20) |
| 手机号码 |
HousePhone | nchar (20) |
| 住宅电话 |
OfficePhone | nchar (20) |
| 办公电话 |
AddressPostcode | nchar (20) |
| 住址邮编 |
TheGenusCountiesAndCities | nchar (50) |
| 所属县市 |
WorkUnit | nchar (50) |
| 工作单位 |
Job | nchar (50) |
| 职位 |
AttributeMinuteID_MaritalStatus | int | 外键 | 属性明细表,属性明细ID_婚姻状况 |
IDCard | nchar (30) |
| 身份证 |
Birthday | datetime |
| 生日 |
Hobby | nchar (100) |
| 爱好 |
ChangeSite | nchar (100) |
| 变跟地址 |
Postcode | nchar (20) |
| 邮编 |
Nationality | nchar (50) |
| 国籍 |
| nchar (50) |
| |
FacilitateTheReturnTime | datetime |
| 方便回访时间 |
CarOwnerPicture | nchar (3000) |
| 车主照片 |
Remarks | nchar (50) |
| 备注 |
IfEffective | bit |
| 有效否 |
2、功能实现
1、释放部分配件资源——“释放”按钮点击事件。
第一步:数据库存储过程。
IF(@TYPE='FRM_YuYuePeiJianZiYuanShiFang_ShiFangPeiJIan')
BEGIN
UPDATE PW_BespeakPartsList
SET IfResourceRelease=@IfResourceRelease
WHERE BespeakPartsID=@BespeakPartsID
END
第二步:逻辑层(BLL)
//释放配件资源
[OperationContract]
public int FRM_YuYuePeiJianZiYuanShiFang_ShiFangPeiJIan(bool blnIfResourceRelease, int intBespeakPartsID)
{
SqlParameter[] mySqlParameters =
{
new SqlParameter("@TYPE",SqlDbType.Char),
new SqlParameter("@IfResourceRelease",SqlDbType.Bit),
new SqlParameter("@BespeakPartsID",SqlDbType.Int),
};
mySqlParameters[0].Value = "FRM_YuYuePeiJianZiYuanShiFang_ShiFangPeiJIan";
mySqlParameters[1].Value = blnIfResourceRelease;
mySqlParameters[2].Value = intBespeakPartsID;
return myDALMethod.UpdateData("预约管理_FRM_YuYuePeiJianZiYuanShiFang", mySqlParameters);
//返回值为1是正常的,小于0是异常的。
}
第三步:界面层(UIL)
BLL海马汽车销售系统.预约管理.FRM_YuYuePeiJianZiYuanShiFang.FRM_YuYuePeiJianZiYuanShiFangClient myFRM_YuYuePeiJianZiYuanShiFangClient = new BLL海马汽车销售系统.预约管理.FRM_YuYuePeiJianZiYuanShiFang.FRM_YuYuePeiJianZiYuanShiFangClient();
private void btnRelease_Click(object sender, EventArgs e)
{
dgvBespeakParts.EndEdit();//停止编辑
int intCount=0; //变量
if (MessageBox.Show("确定释放?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)//提示对话框,如果点击“是”
{
for (int i = 0; i < dgvBespeakParts.Rows.Count; i++)//循环dgv(预约配件)
{
if (Convert.ToBoolean(dgvBespeakParts.Rows[i].Cells["选择"].Value) == true)//如果列名“选择”的列打钩
{
bool blnShiFang = true;
//改变该条单据的“资源释放否”的状态
int intResourceRelease = myFRM_YuYuePeiJianZiYuanShiFangClient.FRM_YuYuePeiJianZiYuanShiFang_ShiFangPeiJIan(blnShiFang,Convert.ToInt32(dgvBespeakParts.Rows[i].Cells["预约配件ID"].Value));
intCount++;//变量加1
}
}
}
if (intCount > 0) //变量值大于0
{
MessageBox.Show("资源释放成功!!!");
//刷新dgv(预约配件)
dgvBespeakParts.DataSource =myFRM_YuYueGuanLiClient.FRM_YuYueGuanLi_Load_SelectYuYuePeiJian(Convert.ToInt32(dgvResourceRelease.CurrentRow.Cells["预约单ID"].Value)).Tables[0];
}
}
2、释放全部配件资源——“全部释放”按钮点击事件。
第一步:数据库存储过程。
IF(@TYPE='FRM_YuYuePeiJianZiYuanShiFang_ShiFangPeiJIan')
BEGIN
UPDATE PW_BespeakPartsList
SET IfResourceRelease=@IfResourceRelease
WHERE BespeakPartsID=@BespeakPartsID
END
第二步:逻辑层(BLL)
//释放配件资源
[OperationContract]
public int FRM_YuYuePeiJianZiYuanShiFang_ShiFangPeiJIan(bool blnIfResourceRelease, int intBespeakPartsID)
{
SqlParameter[] mySqlParameters =
{
new SqlParameter("@TYPE",SqlDbType.Char),
new SqlParameter("@IfResourceRelease",SqlDbType.Bit),
new SqlParameter("@BespeakPartsID",SqlDbType.Int),
};
mySqlParameters[0].Value = "FRM_YuYuePeiJianZiYuanShiFang_ShiFangPeiJIan";
mySqlParameters[1].Value = blnIfResourceRelease;
mySqlParameters[2].Value = intBespeakPartsID;
return myDALMethod.UpdateData("预约管理_FRM_YuYuePeiJianZiYuanShiFang", mySqlParameters);
//返回值为1是正常的,小于0是异常的。
}
第三步:界面层(UIL)
BLL海马汽车销售系统.预约管理.FRM_YuYuePeiJianZiYuanShiFang.FRM_YuYuePeiJianZiYuanShiFangClient myFRM_YuYuePeiJianZiYuanShiFangClient = new BLL海马汽车销售系统.预约管理.FRM_YuYuePeiJianZiYuanShiFang.FRM_YuYuePeiJianZiYuanShiFangClient();
private void btnReleaseAll_Click(object sender, EventArgs e)
{
int intCount = 0; //变量
//提示对话框,如果点击【是】
if (MessageBox.Show("确定全部释放?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
for (int i = 0; i < dgvBespeakParts.Rows.Count; i++) //循环dgv(预约配件)
{
bool blnShiFang = true;
//调用方法改变【释放否】的状态
int intResourceRelease = myFRM_YuYuePeiJianZiYuanShiFangClient.FRM_YuYuePeiJianZiYuanShiFang_ShiFangPeiJIan(blnShiFang,Convert.ToInt32(dgvBespeakParts.Rows[i].Cells["预约配件ID"].Value));
intCount++;//变量加1
}
}
if (intCount > 0) //变量值大于0
{
MessageBox.Show("资源释放成功!!!");
//刷新dgv(预约配件)
dgvBespeakParts.DataSource = myFRM_YuYueGuanLiClient.FRM_YuYueGuanLi_Load_SelectYuYuePeiJian(Convert.ToInt32(dgvResourceRelease.CurrentRow.Cells["预约单ID"].Value)).Tables[0];
}
}
3、还原配件资源——“还原”按钮点击事件。
第一步:数据库存储过程。
IF(@TYPE='FRM_YuYuePeiJianZiYuanShiFang_ShiFangPeiJIan')
BEGIN
UPDATE PW_BespeakPartsList
SET IfResourceRelease=@IfResourceRelease
WHERE BespeakPartsID=@BespeakPartsID
END
第二步:逻辑层(BLL)
//释放配件资源
[OperationContract]
public int FRM_YuYuePeiJianZiYuanShiFang_ShiFangPeiJIan(bool blnIfResourceRelease, int intBespeakPartsID)
{
SqlParameter[] mySqlParameters =
{
new SqlParameter("@TYPE",SqlDbType.Char),
new SqlParameter("@IfResourceRelease",SqlDbType.Bit),
new SqlParameter("@BespeakPartsID",SqlDbType.Int),
};
mySqlParameters[0].Value = "FRM_YuYuePeiJianZiYuanShiFang_ShiFangPeiJIan";
mySqlParameters[1].Value = blnIfResourceRelease;
mySqlParameters[2].Value = intBespeakPartsID;
return myDALMethod.UpdateData("预约管理_FRM_YuYuePeiJianZiYuanShiFang", mySqlParameters);
//返回值为1是正常的,小于0是异常的。
}
第三层:界面层(UIL)。
BLL海马汽车销售系统.预约管理.FRM_YuYuePeiJianZiYuanShiFang.FRM_YuYuePeiJianZiYuanShiFangClient myFRM_YuYuePeiJianZiYuanShiFangClient =
new BLL海马汽车销售系统.预约管理.FRM_YuYuePeiJianZiYuanShiFang.FRM_YuYuePeiJianZiYuanShiFangClient();
private void btnRestore_Click(object sender, EventArgs e)
{
dgvBespeakParts.EndEdit();//停止编辑
int intCount = 0; //变量
if (MessageBox.Show("确定还原?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
for (int i = 0; i < dgvBespeakParts.Rows.Count; i++)
{
//dgv(预约配件)中名为“选择”的列与名为“释放否”的列同时打钩
if (Convert.ToBoolean(dgvBespeakParts.Rows[i].Cells["选择"].Value) == true && Convert.ToBoolean(dgvBespeakParts.Rows[i].Cells["释放否"].Value) == true)
{
bool blnShiFang = false;
//改变状态
int intResourceRelease = myFRM_YuYuePeiJianZiYuanShiFangClient.FRM_YuYuePeiJianZiYuanShiFang_ShiFangPeiJIan(blnShiFang, Convert.ToInt32(dgvBespeakParts.Rows[i].Cells["预约配件ID"].Value));
intCount++;//变量加1
}
}
}
if (intCount > 0) //变量值大于1
{
MessageBox.Show("还原成功!!!");
//刷新dgv(预约配件)
dgvBespeakParts.DataSource = myFRM_YuYueGuanLiClient.FRM_YuYueGuanLi_Load_SelectYuYuePeiJian(Convert.ToInt32(dgvResourceRelease.CurrentRow.Cells["预约单ID"].Value)).Tables[0];
}
}
以上仅供学习参考,禁止用于商业用途!!!