您的位置:首页 > 其它

WCF广州本田整车销售系统技术解析(五) 换车功能解析1

2015-06-07 22:16 337 查看
换车功能解析1

接车管理——换车是特约店与生产厂家之间的换车,开始由特约店提交换车申请,待厂方同意后方可换车;换回来的新车应进行结接车操作,可以查询以往历史换车的记录。该模块主要功能有:查询可换车车辆和已申请换车车辆、不定条件查询、查询车辆车况的问题列表、换车确认、接收车辆、查看已往换车记录等功能实现

换车的主界面在可换车中查询出可以换车的车辆,选中一条可换车车辆,然后点击换车确定,就提交了一条申请换车记录,待厂家同意后,方可进行换车操作!如图(图1)所示



(图1)

已申请换车界面,可以在本界面dgv单击详细信息,就会弹出检查列表和存在的问题或缺陷。如图(图2)所示



(图2)

从界面上可以看到我们这里用到的控件有

控件名称
说明
日期控件(DateTimePicker)

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

下拉框(ComboBox)

文本(TextBox)

按钮(Button)

表格(DataGridView)

复选框(CheckBox)

选项卡(tabControl)

表与关系如图(图3)



(图3)

表1:CarList(车辆表)

Primary Key(s): CarID

Field

Type

Nulls?

说明

CarID

int - Identity

No

车辆ID

FreightInvoicesDetailID

int

Yes

货运单明细ID

CarTypeID

int

Yes

车辆类型ID

CarFrameNumber

nchar (60)

Yes

车架号

CarEngineNumber

nchar (60)

Yes

发动机号

CarKindID

int

Yes

车种ID

CarMondelID

int

Yes

车型ID

CarBodyColorID

int

Yes

车身颜色ID

CarUnderOrnamentsColorID

int

Yes

内饰颜色ID

CarTransmissionID

int

Yes

变速箱ID

CarKeyNumber

nchar (20)

Yes

钥匙号

CarStockPrice

decimal (18, 3)

Yes

进货价格

ProductionManufacturersID

int

Yes

生产厂家ID

CarPDIWhetherDetection

bit

Yes

PDI检查否

CarStatusID

int

Yes

车辆状态ID

OldCarID

int

Yes

原车辆ID

OutSurveyCommodityCarID

int

Yes

外调商品车ID

WhetherSchedule

bit

Yes

是否预定

ThoughtCarPDIWhetherDetection

bit

Yes

通过PDI检查否

WhetherStraightMelt

bit

Yes

直销车否

WhetherConnectCar

bit

Yes

是否接车

2:ApplyExChangeCarList(申请换车表)

Primary Key(s): ApplyExChangeCarID

Field

Type

Nulls?

说明

ApplyExChangeCarID

int - Identity

No

申请换车ID

CarID

int

Yes

车辆ID

ProvinceID

int

Yes

省份ID

CityID

int

Yes

市ID

DistrictID

int

Yes

地区ID

ApplierID

int

Yes

申请人ID

ApplyTime

date

Yes

申请时间

AffirmerID

int

Yes

确认人ID

AffirmTime

date

Yes

确认时间

ApplyReason

nchar (100)

Yes

申请原因

WhetherAgreeExChangeCar

bit

Yes

同意换车否

3:ExChangeCarList(换车车辆表)

Primary Key(s): ExChangeCarID

Field

Type

Nulls?

说明

ExChangeCarID

int - Identity

No

换车车辆ID

ExChangeCarFrameNumber

nchar (60)

Yes

换车车架号

ExChangeCarEngineNumber

nchar (60)

Yes

换车发动机号

ExChangeCarKindID

int

Yes

换车车种ID

ExChangeCarMondelID

int

Yes

换车车型ID

ExChangeCarBodyColorID

int

Yes

换车车身颜色ID

ExChangeCarUnderOrnamentsColorID

int

Yes

换车内饰颜色ID

ExChangeCarTransmissionID

int

Yes

换车变速箱ID

ExChangeCarKeyNumber

nchar (20)

Yes

换车钥匙号

ExChangeCarPrice

decimal (18, 3)

Yes

换车价格

ExChangeCarProductionManufacturersID

int

Yes

换车生产厂家ID

WhetherConnectCar

bit

Yes

是否接车

ApplyExChangeCarID

int

Yes

申请换车ID

4:CarInventoryList(车辆库存表)

Primary Key(s): CarInventoryID

Field

Type

Nulls?

说明

CarInventoryID

int - Identity

No

车辆库存ID

CarID

int

Yes

车辆ID

PutHouseDay

int

Yes

入库天数

InventoryReasonID

int

Yes

库存原因ID

InInventoryDate

date

Yes

入库日期

一、 查询可换车车辆和已申请换车车辆

查询可换车车辆和已申请换车车辆分别如图(图4)和(图5)所示



[align=center](图4)[/align]



(图5)
1、 数据库的存储过程

--查询可换车的车辆
if(@Type='frm_JieCheGuanLi_HuanCheShengQingLoad_SelectKeHuanCheLiang')
begin
begin
SELECT     CarList.CarID, CarList.CarFrameNumber, CarList.CarEngineNumber, CarList.CarKeyNumber, CarList.CarStockPrice, AttributeGatherDetailList.AttributeGatherDetail AS CarKind,
AttributeGatherDetailList_1.AttributeGatherDetail AS CarMondel, ColorList.ColorName AS CarBodyColor, ColorList_1.ColorName AS UnderOrnamentsColor,
AttributeGatherDetailList_2.AttributeGatherDetail AS CarTransmission, AttributeGatherDetailList_3.AttributeGatherDetail AS ProductionManufacturers, CarList.CarKindID, CarList.CarMondelID,
CarList.CarBodyColorID, CarList.CarUnderOrnamentsColorID, CarList.CarTransmissionID, CarList.ProductionManufacturersID
FROM         AttributeGatherDetailList INNER JOIN
CarList ON AttributeGatherDetailList.AttributeGatherDetailID = CarList.CarKindID INNER JOIN
AttributeGatherDetailList AS AttributeGatherDetailList_1 ON CarList.CarMondelID = AttributeGatherDetailList_1.AttributeGatherDetailID INNER JOIN
ColorList ON CarList.CarBodyColorID = ColorList.ColorID INNER JOIN
ColorList AS ColorList_1 ON CarList.CarUnderOrnamentsColorID = ColorList_1.ColorID INNER JOIN
AttributeGatherDetailList AS AttributeGatherDetailList_2 ON CarList.CarTransmissionID = AttributeGatherDetailList_2.AttributeGatherDetailID INNER JOIN
AttributeGatherDetailList AS AttributeGatherDetailList_3 ON CarList.ProductionManufacturersID = AttributeGatherDetailList_3.AttributeGatherDetailID
Where CarList.CarID not in (Select ApplyExChangeCarList.CarID from ApplyExChangeCarList)
and  CarList.CarID not in (Select ApplyReturnCarList.CarID from ApplyReturnCarList)
and  CarList.CarStatusID=36
end
end
--查询已申请换车的车辆
if(@Type='frm_JieCheGuanLi_HuanCheShengQingLoad_YiShenQingHuanChe')
begin
SELECT     ApplyExChangeCarList.ApplyExChangeCarID, ApplyExChangeCarList.CarID, ApplyExChangeCarList.WhetherAgreeExChangeCar, CarList.CarFrameNumber, CarList.CarEngineNumber,
CarList.CarKeyNumber, CarList.CarStockPrice, AttributeGatherDetailList.AttributeGatherDetail AS CarKind, AttributeGatherDetailList_1.AttributeGatherDetail AS CarMondel,
ColorList.ColorName AS CarBodyColor, ColorList_1.ColorName AS UnderOrnamentsColor, AttributeGatherDetailList_2.AttributeGatherDetail AS CarTransmission,
AttributeGatherDetailList_3.AttributeGatherDetail AS ProductionManufacturers, CarList.CarKindID, CarList.CarMondelID, CarList.CarBodyColorID, CarList.CarUnderOrnamentsColorID,
CarList.CarTransmissionID, CarList.ProductionManufacturersID
FROM         CarList INNER JOIN
ApplyExChangeCarList ON CarList.CarID = ApplyExChangeCarList.CarID INNER JOIN
AttributeGatherDetailList ON CarList.CarKindID = AttributeGatherDetailList.AttributeGatherDetailID INNER JOIN
AttributeGatherDetailList AS AttributeGatherDetailList_1 ON CarList.CarMondelID = AttributeGatherDetailList_1.AttributeGatherDetailID INNER JOIN
ColorList ON CarList.CarBodyColorID = ColorList.ColorID INNER JOIN
ColorList AS ColorList_1 ON CarList.CarUnderOrnamentsColorID = ColorList_1.ColorID INNER JOIN
AttributeGatherDetailList AS AttributeGatherDetailList_2 ON CarList.CarTransmissionID = AttributeGatherDetailList_2.AttributeGatherDetailID INNER JOIN
AttributeGatherDetailList AS AttributeGatherDetailList_3 ON CarList.ProductionManufacturersID = AttributeGatherDetailList_3.AttributeGatherDetailID
end


2、 逻辑层(BLL)

#region 查询可换车
[OperationContract]
public DataSet frm_JieCheGuanLi_HuanCheShengQingLoad_SelectKeHuanCheLiang()
{
SqlParameter[] mySqlParameters = {
new SqlParameter("@Type",SqlDbType.Char),
};
mySqlParameters[0].Value = "frm_JieCheGuanLi_HuanCheShengQingLoad_SelectKeHuanCheLiang";
DataTable dt = myDALMethod.QueryDataTable("接车管理_frm_JieCheGuanLi_HuanChe", mySqlParameters);
DataSet ds = new DataSet();
ds.Tables.Add(dt);
return ds;
}
#endregion

#region 查询已申请换车
[OperationContract]
public DataSet frm_JieCheGuanLi_HuanCheShengQingLoad_YiShenQingHuanChe()
{
SqlParameter[] mySqlParameters = {
new SqlParameter("@Type",SqlDbType.Char),
};
mySqlParameters[0].Value = "frm_JieCheGuanLi_HuanCheShengQingLoad_YiShenQingHuanChe";
DataTable dt = myDALMethod.QueryDataTable("接车管理_frm_JieCheGuanLi_HuanChe", mySqlParameters);
DataSet ds = new DataSet();
ds.Tables.Add(dt);
return ds;
}
#endregion


3、 界面层(UIL)

/// <summary>
/// 自定义绑定DGV的方法
/// </summary>
public void BangDingDGV()
{
#region 绑定DGV
dgvCar.DataSource = null;
//this.dgvCar = PublicStaticMothd.SetDgv(dgvCar);
dgvCar.AutoGenerateColumns = false;
//查询车辆
dgvCar.DataSource = myfrm_JieCheGuanLi_HuanCheClient.frm_JieCheGuanLi_HuanCheShengQingLoad_SelectKeHuanCheLiang().Tables[0];
//查询车况
CheKuang();
rdbCanExChangeCar.Checked = true;
#endregion
}

//rdb可换车
private void rdbKeHuanChe_Click(object sender, EventArgs e)
{
#region 绑定可换车DGV
QingKongKongJian();
btnProductionManufacturersAgree.Visible = false;
BangDingDGV();
btnSave.Enabled = true;
cboProvince.Enabled = true;
cboCity.Enabled = true;
cboDistrict.Enabled = true;
cboApplier.Enabled = true;
dtpApplyTime.Enabled = true;
cboAffirmer.Enabled = true;
dtpAffirmTime.Enabled = true;
txtApplyReason.Enabled = true;
#endregion
}

//rdb已申请换车
private void rdbYiShenQingHuanChe_Click(object sender, EventArgs e)
{
#region 绑定已申请换车DGV
QingKongKongJian();
btnProductionManufacturersAgree.Visible = true;
dgvCar.AutoGenerateColumns = false;
dgvCar.DataSource = null;
//绑定已申请换车
dgvCar.DataSource = myfrm_JieCheGuanLi_HuanCheClient.frm_JieCheGuanLi_HuanCheShengQingLoad_YiShenQingHuanChe().Tables[0];
CheKuang();
btnSave.Enabled = false;
cboProvince.Enabled = false;
cboCity.Enabled = false;
cboDistrict.Enabled = false;
cboApplier.Enabled = false;
dtpApplyTime.Enabled = false;
cboAffirmer.Enabled = false;
dtpAffirmTime.Enabled = false;
txtApplyReason.Enabled = false;
//循环
for (int i = 0; i < dgvCar.Rows.Count; i++)
{
//设置同已换车否
int intTongYiHuanCheFou = Convert.ToInt32(dgvCar.Rows[i].Cells["同意换车否"].Value);
if (intTongYiHuanCheFou == 1)
{
//改变颜色
dgvCar.Rows[i].DefaultCellStyle.BackColor = Color.Pink;
}
}
#endregion
}


二、 查询车辆车况的问题列表

查询车辆车况的问题列表如图(图6)所示



[align=center](图6)[/align]
1、 数据库的存储过程

--查询PDI检查车况
if(@Type='frm_JieCheGuanLi_SelectPDICheckCheKuang')
begin
SELECT     PDICheckBInvoicesList.Question, PDICheckBInvoicesList.ServiceCondition, PDICheckList.CarID
FROM         PDICheckBInvoicesList INNER JOIN
PDICheckList ON PDICheckBInvoicesList.PDICheckID = PDICheckList.PDICheckID
WHERE PDICheckList.CarID=@CarID AND KeYongFou=1
end

--查询接车问题列表
if(@Type='frm_SelectWenTiLieBiao')
begin
SELECT     ConnectCarCheckProjctRecordList.CarID, ConnectCarCheckProjctRecordList.CheckResult, ConnectCarCheckProjctRecordList.DiposeMethod, ConnectCarCheckProjctRecordList.Valuation,
CheckProjectList.CheckProjectName, CheckProjectList.CheckProjectNumber
FROM         ConnectCarCheckProjctRecordList INNER JOIN
CarList ON ConnectCarCheckProjctRecordList.CarID = CarList.CarID INNER JOIN
CheckProjectList ON ConnectCarCheckProjctRecordList.CheckProjectID = CheckProjectList.CheckProjectID
WHERE CarList.CarID=@CarID
end


2、 逻辑层(BLL)

#region 查询车况 (PDI检查B单)
[OperationContract]
public DataSet frm_JieCheGuanLi_SelectPDICheckCheKuang(int CarID)
{
SqlParameter[] mySqlParameters = {
new SqlParameter("@Type",SqlDbType.Char),
new SqlParameter("@CarID",SqlDbType.Int)
};
mySqlParameters[0].Value = "frm_JieCheGuanLi_SelectPDICheckCheKuang";
mySqlParameters[1].Value = CarID;
DataTable dt = myDALMethod.QueryDataTable("接车管理_frm_JieCheGuanLi_TuiCheXinXi", mySqlParameters);
DataSet ds = new DataSet();
ds.Tables.Add(dt);
return ds;
}
#endregion

#region 查询接车问题列表
[OperationContract]
public DataSet frm_SelectWenTiLieBiao(int CarID)
{
SqlParameter[] mySqlParameters = {
new SqlParameter("@Type",SqlDbType.Char),
new SqlParameter("@CarID",SqlDbType.Int)
};
mySqlParameters[0].Value = "frm_SelectWenTiLieBiao";
mySqlParameters[1].Value = CarID;
DataTable dt = myDALMethod.QueryDataTable("接车管理_frm_JieCheGuanLi_TuiCheXinXi", mySqlParameters);
DataSet ds = new DataSet();
ds.Tables.Add(dt);
return ds;
}
#endregion


3、 界面层(UIL)

//绑定接车检查列表
dgvJieCheJianCha.DataSource = myfrm_JieCheGuanLi_TuiCheXinXiClient.frm_SelectWenTiLieBiao(intCheLiangID).Tables[0];
//绑定PDI检查列表
dgvPDIJianCha.DataSource = myfrm_JieCheGuanLi_TuiCheXinXiClient.frm_JieCheGuanLi_SelectPDICheckCheKuang(intCheLiangID).Tables[0];


本文仅供学习使用,禁止用于商业用途,否则后果自负!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: