海马汽车经销商管理系统技术解析(三)预约管理主界面数据加载及部分功能

来源:互联网 发布:淘宝如何生成客服代码 编辑:程序博客网 时间:2024/04/28 08:08

预约管理模块

预约管理主要包括对需要维修的车辆进行新增预约、修改预约单、定位、转工单、预约失败、预约变更等界面的链接,和删除预约单、上下翻页等功能,主界面见(图一)、(图二)。

(图一)


(图二)

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:预约维修项目表(BespeakServiceItemList)

列名

数据类型

主键/外键

说明

BespeakServiceItemID

int

主键

预约维修项目ID

BespeakBillID

int

外键

预约单表,预约单ID

WorkHoursItemMinuteID

int

外键

工时项目明细表,工时项目明细ID

AttributeMinuteID_AccountType

int

外键

属性明细表,属性明细ID_帐类

WorkHoursPrice

decimal (18, 2)

 

工时单价

GuestAccountWorkHours

decimal (18, 2)

 

客帐工时

ParWorkHours

decimal (18, 2)

 

标准工时

AnticipatedWorkHoursMoney

decimal (18, 2)

 

预计工时金额

表4、配件表(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)

 

销售价格

表5、工时项目表(BM_WorkHoursItemList)

列名

数据类型

主键/外键

说明

WorkHoursItemID

int - Identity

主键

工时项目ID

ItemCode

nchar (20)

 

项目代码

ItemName

nchar (20)

 

项目代码

WorkKindID

int

外键

工种表,工种ID

FirstKind

nchar (20)

 

第一类

SecondKind

nchar (20)

 

第二类

ForeignLanguageName

nchar (20)

 

外文名称

Remarks

nchar (100)

 

备注

AllSuitSign

bit

 

全适用标志

表6、工时项目明细表(BM_WorkHoursItemMinuteList)

列名

数据类型

主键/外键

说明

WorkHoursItemMinuteID

int - Identity

主键

工时项目明细ID

WorkHoursItemID

int

外键

工时项目表,工时项目ID

CarModels

nchar (20)

 

车型

GuestAccountWorkHours

decimal (18, 2)

 

客帐工时

InternalAccountWorkHours

decimal (18, 2)

 

内部帐工时

ParWorkHours

decimal (18, 2)

 

标准工时

InsureAccountWorkHours

decimal (18, 2)

 

保险帐工时

WorkHoursMoney

decimal (18, 2)

 

工时金额

IfWorkHoursMultiplyUnitPrice

bit

 

是否取工时乘单价

Remarks

nchar (100)

 

备注

TheOriginalPar

bit

 

原厂标准

表7、车辆信息表(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

 

有效否

表8、车主信息表(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)

 

国籍

Email

nchar (50)

 

Email

FacilitateTheReturnTime

datetime

 

方便回访时间

CarOwnerPicture

nchar (3000)

 

车主照片

Remarks

nchar (50)

 

备注

IfEffective

bit

 

有效否

功能实现

1、  窗体加载事件,为DataGridView绑定数据源。

第一步:数据库存储过程

IF(@TYPE='FRM_YuYueGuanLi_Load_FenYe')BEGINWITH CTE AS(SELECT  TOP(@YeMa*@YeDaXiao)   PW_BespeakBillList.BespeakBillID, PW_BespeakBillList.BespeakOddNumBer, PW_BespeakBillList.CarNewsID, PW_BespeakBillList.BespeakTime,                       PW_BespeakBillList.AttributeMinuteID_BespeakWay, PW_BespeakBillList.BespeakMileage, PW_BespeakBillList.BespeakStatus, PW_BespeakBillList.Gross, PW_BespeakBillList.FailCause,                       PW_BespeakBillList.StaffID_HearPersons, PW_BespeakBillList.StaffID_Receiver, PW_BespeakBillList.ApprovalTime, PW_BespeakBillList.LastTimeInTheFactory,                       PW_BespeakBillList.IfBespeakSucceed, PW_BespeakBillList.BookingCarDeliveryTime, PW_BespeakBillList.BespeakWarnTime, PW_BespeakBillList.PredictAOGTime,                       PW_BespeakBillList.ServiceOddNumber, PW_BespeakBillList.NewBespeakOddlNumber, PW_BespeakBillList.OldBespeakOddNumber, PW_BespeakBillList.NeedOddNumber,                       PW_BespeakBillList.AlterationTime, PW_BespeakBillList.AlterationCauses, PW_BespeakBillList.ClientDescribe, PW_BespeakBillList.Remarks, PW_BespeakBillList.IfResourceRelease,                       BM_CarNewsList_1.CarOwnerNewsID, BM_CarNewsList_1.BuyCarDate, BM_CarNewsList_1.LicensePlateNumber, BM_CarNewsList_1.VINCode, BM_CarNewsList_1.CarModelsCode,                       BM_CarOwnerNewsList.CarOwnerCode, BM_CarOwnerNewsList.MobilePhone, BM_CarNewsList_1.BodyworkColour, AttributeMinuteList.AttributeMinuteName AS BespeakWay,                       BM_StaffRecordList_1.StaffName AS Receiver, BM_StaffRecordList.StaffName AS HearPersons, PW_BespeakBillList.ApprovalPerson, PW_BespeakBillList.AlterationPerson,                       PW_BespeakBillList.IfApproval, BM_CarOwnerNewsList.CarOwnerName,                      ROW_NUMBER () OVER(ORDER BY PW_BespeakBillList.BespeakBillID) AS _NEMBERFROM         AttributeMinuteList INNER JOIN                      BM_StaffRecordList INNER JOIN                      PW_BespeakBillList INNER JOIN                      BM_CarNewsList AS BM_CarNewsList_1 ON PW_BespeakBillList.CarNewsID = BM_CarNewsList_1.CarNewsID INNER JOIN                      BM_CarOwnerNewsList ON BM_CarNewsList_1.CarOwnerNewsID = BM_CarOwnerNewsList.CarOwnerNewsID ON BM_StaffRecordList.StaffID = PW_BespeakBillList.StaffID_HearPersons INNER JOIN                      BM_StaffRecordList AS BM_StaffRecordList_1 ON PW_BespeakBillList.StaffID_Receiver = BM_StaffRecordList_1.StaffID ON                       AttributeMinuteList.AttributeMinuteID = PW_BespeakBillList.AttributeMinuteID_BespeakWayWHERE     (PW_BespeakBillList.IfEffective = 1 and PW_BespeakBillList.IfResourceRelease=0)      )  SELECT  BespeakBillID, BespeakOddNumBer, CarNewsID, BespeakTime,                       AttributeMinuteID_BespeakWay, BespeakMileage, BespeakStatus, Gross, FailCause,                       StaffID_HearPersons, StaffID_Receiver, ApprovalTime, LastTimeInTheFactory,                       IfBespeakSucceed, BookingCarDeliveryTime, BespeakWarnTime, PredictAOGTime,                       ServiceOddNumber, NewBespeakOddlNumber, OldBespeakOddNumber, NeedOddNumber,                       AlterationTime, AlterationCauses, ClientDescribe, Remarks, IfResourceRelease,                       CarOwnerNewsID, BuyCarDate, LicensePlateNumber, VINCode, CarModelsCode,                       CarOwnerCode, MobilePhone, BodyworkColour, BespeakWay,                       Receiver,  HearPersons, ApprovalPerson, AlterationPerson,                       IfApproval, CarOwnerNameFROM CTE  WHERE _NEMBER>((@YeMa-1)*@YeDaXiao)       END

第二步:逻辑层(BLL)

[OperationContract]        public DataSet FRM_YuYueGuanLi_Load_FenYe(int intYeMa, int intYeDaXiao)        {            SqlParameter[] mySqlParameters =       {        new SqlParameter("@TYPE",SqlDbType.Char),        new SqlParameter("@YeMa",SqlDbType.Int),        new SqlParameter("@YeDaXiao",SqlDbType.Int),       };            mySqlParameters[0].Value = "FRM_YuYueGuanLi_Load_FenYe";            mySqlParameters[1].Value =intYeMa;            mySqlParameters[2].Value = intYeDaXiao;            DataTable dt = myDALMethod.QueryDataTable("预约管理_FRM_YuYueGuanLi", mySqlParameters);            DataSet ds = new DataSet();            ds.Tables.Add(dt);            return ds;        }

第三步:界面层(UIL),Load事件调用方法。

BLL海马汽车销售系统.预约管理.FRM_YuYueGuanLi.FRM_YuYueGuanLiClient myFRM_YuYueGuanLiClient =             new BLL海马汽车销售系统.预约管理.FRM_YuYueGuanLi.FRM_YuYueGuanLiClient();private void FRM_YuYueGuanLi_Load(object sender, EventArgs e)        {ChaXunQuanBuDingDan();}分页int pageNum = 1;//默认页号        int pageSize = 10;//默认页面大小        int pageMaxNum;//最大页号        void ChaXunQuanBuDingDan()        {            //根据页号和页面大小获取数据            dgvBespeak.DataSource =                myFRM_YuYueGuanLiClient.FRM_YuYueGuanLi_Load_FenYe(pageNum, pageSize).Tables[0];            if (dgvBespeak.Rows.Count > 0)            {                //根据页号和页面大小获取数据(主要用到数据库分页,详见存储过程)                //获取总行数                int totalRowsCount =                    Convert.ToInt32(myFRM_YuYueGuanLiClient.FRM_YuYueGuanLi_Load_GetYeShu().Tables[0].Rows[0][0]);                //计算最大页号                pageMaxNum = totalRowsCount / pageSize;                //若有余数则最大一号+1(余1页)                if (totalRowsCount % pageSize > 0)                {                    pageMaxNum++;                }            }        }上页  private void btnLast_Click(object sender, EventArgs e)        {if (pageNum > 1)//若不为尾页                {                    //页号+1                    pageNum--;                    //根据页号和页面大小获取数据                    dgvBespeak.DataSource =                    myFRM_YuYueGuanLiClient.FRM_YuYueGuanLi_Load_FenYe(pageNum, pageSize).Tables[0];                }                else                {                    MessageBox.Show("已经是首页了!");                }}下页private void btnNext_Click(object sender, EventArgs e)        {if (pageNum < pageMaxNum)//若不为尾页                {                    //页号+1                    pageNum++;                    //根据页号和页面大小获取数据                    dgvBespeak.DataSource =                    myFRM_YuYueGuanLiClient.FRM_YuYueGuanLi_Load_FenYe(pageNum, pageSize).Tables[0];                }                else                {                    MessageBox.Show("已经是尾页了!");                }}



2、单击dgv(预约单)加载明细。

第一步:数据库存储过程

IF(@TYPE='FRM_YuYueGuanLi_Update_Load_SelectYuYueXiangMu')BEGINSELECT     PW_BespeakServiceItemList.AttributeMinuteID_AccountType AS AccountTypeID, PW_BespeakServiceItemList.WorkHoursPrice, PW_BespeakServiceItemList.GuestAccountWorkHours,                       PW_BespeakServiceItemList.ParWorkHours, PW_BespeakServiceItemList.AnticipatedWorkHoursMoney, BM_WorkHoursItemList.ItemCode, BM_WorkHoursItemList.ItemName,                       BM_WorkHoursItemList.WorkKindID, BM_WorkKindList.WorkKindName, BM_WorkHoursItemMinuteList.CarModels, AttributeMinuteList.AttributeMinuteName AS AccountType,                       PW_BespeakServiceItemList.WorkHoursItemMinuteID, BM_WorkHoursItemMinuteList.WorkHoursItemID, BM_WorkHoursItemMinuteList.WorkHoursItemMinuteID AS WorkHoursItemMinuteIDFROM         AttributeMinuteList INNER JOIN                      PW_BespeakServiceItemList ON AttributeMinuteList.AttributeMinuteID = PW_BespeakServiceItemList.AttributeMinuteID_AccountType INNER JOIN                      BM_WorkHoursItemMinuteList INNER JOIN                      BM_WorkHoursItemList ON BM_WorkHoursItemMinuteList.WorkHoursItemID = BM_WorkHoursItemList.WorkHoursItemID INNER JOIN                      BM_WorkKindList ON BM_WorkHoursItemList.WorkKindID = BM_WorkKindList.WorkKindID ON                       PW_BespeakServiceItemList.WorkHoursItemMinuteID = BM_WorkHoursItemMinuteList.WorkHoursItemMinuteIDWHERE    PW_BespeakServiceItemList.BespeakBillID=@BespeakBillID                     ENDIF(@TYPE='FRM_YuYueGuanLi_Update_Load_SelectYuYuePeiJian')BEGINSELECT     PW_BespeakPartsList.PartsID, PW_BespeakPartsList.AttributeMinuteID_AccountType AS AccountTypeID, PW_BespeakPartsList.ObligateNumBer,           PW_BespeakPartsList.NeedNumber, PW_BespeakPartsList.InTranSitNumBer, PW_BespeakPartsList.AvailableForSaleNumber,                       PW_BespeakPartsList.Price, PW_BespeakPartsList.Money, BM_PartsList.PartsCoding, BM_PartsList.PartsName,                       BM_PartsList.CarModels, BM_PartsList.AttributeMinuteID_Unit AS UnitID, AttributeMinuteList.AttributeMinuteName AS AccountType,                       AttributeMinuteList_1.AttributeMinuteName AS Unit, PW_BespeakPartsList.BespeakPartsIDFROM         AttributeMinuteList INNER JOIN                      PW_BespeakPartsList INNER JOIN                      BM_PartsList ON PW_BespeakPartsList.PartsID = BM_PartsList.PartsID ON AttributeMinuteList.AttributeMinuteID = PW_BespeakPartsList.AttributeMinuteID_AccountType INNER JOIN                      AttributeMinuteList AS AttributeMinuteList_1 ON BM_PartsList.AttributeMinuteID_Unit = AttributeMinuteList_1.AttributeMinuteIDWHERE    PW_BespeakPartsList.BespeakBillID=@BespeakBillID  AND PW_BespeakPartsList.IfResourceRelease =0END

第二步:逻辑层(BLL)

[OperationContract]        public DataSet FRM_YuYueGuanLi_Update_Load_SelectYuYueXiangMu(int intYuYueDanID)        {            SqlParameter[] mySqlParameters =       {       new SqlParameter("@TYPE",SqlDbType.Char),       new SqlParameter("@BespeakBillID",SqlDbType.Int),       };            mySqlParameters[0].Value = "FRM_YuYueGuanLi_Update_Load_SelectYuYueXiangMu";            mySqlParameters[1].Value = intYuYueDanID;            DataTable dt = myDALMethod.QueryDataTable("预约管理_FRM_YuYueGuanLi_Update", mySqlParameters);            DataSet ds = new DataSet();            ds.Tables.Add(dt);            return ds;        }        [OperationContract]        public DataSet FRM_YuYueGuanLi_Update_Load_SelectYuYuePeiJian(int intYuYueDanID)        {            SqlParameter[] mySqlParameters =       {       new SqlParameter("@TYPE",SqlDbType.Char),       new SqlParameter("@BespeakBillID",SqlDbType.Int),       };            mySqlParameters[0].Value = "FRM_YuYueGuanLi_Update_Load_SelectYuYuePeiJian";            mySqlParameters[1].Value = intYuYueDanID;            DataTable dt = myDALMethod.QueryDataTable("预约管理_FRM_YuYueGuanLi_Update", mySqlParameters);            DataSet ds = new DataSet();            ds.Tables.Add(dt);            return ds;        }

第三步:界面层(UIL)

BLL海马汽车销售系统.预约管理.FRM_YuYueGuanLi_Update.FRM_YuYueGuanLi_UpdateClient myFRM_YuYueGuanLi_UpdateClient =            new BLL海马汽车销售系统.预约管理.FRM_YuYueGuanLi_Update.FRM_YuYueGuanLi_UpdateClient();private void dgvYuYueDan_MouseClick(object sender, MouseEventArgs e)        {            if (dgvBespeak.Rows.Count > 0)//如果dgv(预约单)不为空            {                dgvBespeakServiceItem.AutoGenerateColumns = false;                dgvBespeakServiceItem.ReadOnly = true;                //为dgv(预约维修项目)绑定数据源                dgvBespeakServiceItem.DataSource = myFRM_YuYueGuanLi_UpdateClient.FRM_YuYueGuanLi_Update_Load_SelectYuYueXiangMu(Convert.ToInt32(dgvBespeak.CurrentRow.Cells["预约单ID"].Value)).Tables[0];                dgvBespeakParts.AutoGenerateColumns = false;                dgvBespeakParts.ReadOnly = true;                //为dgv(预约配件)绑定数据源                dgvBespeakParts.DataSource = myFRM_YuYueGuanLiClient.FRM_YuYueGuanLi_Load_SelectYuYuePeiJian(Convert.ToInt32(dgvBespeak.CurrentRow.Cells["预约单ID"].Value)).Tables[0];            }        }

3、刷新

第一步:界面层(UIL),”刷新“按钮点击事件

private void btnShuaXin_Click(object sender, EventArgs e)        {            FRM_YuYueGuanLi_Load(null, null);//直接调用Load事件,从新加载        }

4、删除

第一步:数据库存储过程

IF(@TYPE='FRM_YuYueGuanLi_btnDelete_Click_DeleteYuYuePeiJian')BEGINDELETE     PW_BespeakPartsListWHERE         PW_BespeakPartsList.BespeakBillID =@BespeakBillIDENDIF(@TYPE='FRM_YuYueGuanLi_btnDelete_Click_DeleteYuYueXiangMu')BEGINDELETE     PW_BespeakServiceItemListWHERE         PW_BespeakServiceItemList.BespeakBillID=@BespeakBillIDENDIF(@TYPE='FRM_YuYueGuanLi_btnDelete_Click_DeleteYuYueDan')BEGINDELETE     PW_BespeakBillListWHERE         PW_BespeakBillList.BespeakBillID=@BespeakBillIDEND

第二步:逻辑层(BLL)

[OperationContract]        public int FRM_YuYueGuanLi_btnDelete_Click_DeleteYuYuePeiJian(int intYuYueDanID)        {            SqlParameter[] mySqlParameters =       {        new SqlParameter("@TYPE",SqlDbType.Char),        new SqlParameter("@BespeakBillID",SqlDbType.Int),       };            mySqlParameters[0].Value = "FRM_YuYueGuanLi_btnDelete_Click_DeleteYuYuePeiJian";            mySqlParameters[1].Value = intYuYueDanID;            return myDALMethod.UpdateData("预约管理_FRM_YuYueGuanLi", mySqlParameters);                 }        [OperationContract]        public int FRM_YuYueGuanLi_btnDelete_Click_DeleteYuYueXiangMu(int intYuYueDanID)        {            SqlParameter[] mySqlParameters =       {        new SqlParameter("@TYPE",SqlDbType.Char),        new SqlParameter("@BespeakBillID",SqlDbType.Int),       };            mySqlParameters[0].Value = "FRM_YuYueGuanLi_btnDelete_Click_DeleteYuYueXiangMu";            mySqlParameters[1].Value = intYuYueDanID;            return myDALMethod.UpdateData("预约管理_FRM_YuYueGuanLi", mySqlParameters);        }        [OperationContract]        public int FRM_YuYueGuanLi_btnDelete_Click_DeleteYuYueDan(int intYuYueDanID)        {            SqlParameter[] mySqlParameters =       {        new SqlParameter("@TYPE",SqlDbType.Char),        new SqlParameter("@BespeakBillID",SqlDbType.Int),       };            mySqlParameters[0].Value = "FRM_YuYueGuanLi_btnDelete_Click_DeleteYuYueDan";            mySqlParameters[1].Value = intYuYueDanID;            return myDALMethod.UpdateData("预约管理_FRM_YuYueGuanLi", mySqlParameters);        }

第三步:界面层(UIL)

BLL海马汽车销售系统.预约管理.FRM_YuYueGuanLi.FRM_YuYueGuanLiClient myFRM_YuYueGuanLiClient =             new BLL海马汽车销售系统.预约管理.FRM_YuYueGuanLi.FRM_YuYueGuanLiClient();private void btnDelete_Click(object sender, EventArgs e)        {            if (dgvBespeak.Rows.Count > 0)//如果dgv(预约单)不为空            {                if (dgvBespeak.CurrentRow.Cells["维修单号"].Value.ToString().Trim() != "")//如果选择的预约单已转维修工单                {                    MessageBox.Show("该单据已转维修工单,不能删除!");                    return;                }                if (dgvBespeak.CurrentRow.Cells["失败原因"].Value.ToString().Trim() != "")//如果选择的预约单已作废                {                    MessageBox.Show("该单据是预约失败单据,不能删除!");                    return;                }                //提示对话框,如果点击“是”                if (MessageBox.Show("是否删除,\n注:一旦删除,数据无法恢复!!!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)                {                    //删除预约配件                    int intDeletePeiJian = myFRM_YuYueGuanLiClient.FRM_YuYueGuanLi_btnDelete_Click_DeleteYuYuePeiJian(Convert.ToInt32(dgvBespeak.CurrentRow.Cells["预约单ID"].Value));                   //删除预约项目                    int intDeleteXiangMu = myFRM_YuYueGuanLiClient.FRM_YuYueGuanLi_btnDelete_Click_DeleteYuYueXiangMu(Convert.ToInt32(dgvBespeak.CurrentRow.Cells["预约单ID"].Value));                    //删除预约单                    int intDeleteYuYueDan = myFRM_YuYueGuanLiClient.FRM_YuYueGuanLi_btnDelete_Click_DeleteYuYueDan(Convert.ToInt32(dgvBespeak.CurrentRow.Cells["预约单ID"].Value));                    dgvBespeak.Rows.Remove(dgvBespeak.CurrentRow);//dgv(预约单)上移除该单据                    if (intDeleteYuYueDan > 0)                    {                        MessageBox.Show("删除成功!!!");                    }                }            }        }

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




















































0 0