海马汽车经销商管理系统技术解析(六)定位预约单

定位——条件查询

 

定位实现预约单据的条件查询功能。【满足所有条件】就是条件的累加,所有条件都满足后才查询出来。【满足任一条件】就是只要只要满足其中任意一个条件就会查询出来。

 

从定位界面上可以看到控件:

控件

说明

单选框(RadioButton)

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

文本框(TextBox)

日期控件(DateTimePicker)

按钮(Button)

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

 

有效否

表3、车主信息表(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、条件查询数据——“确定”按钮点击事件。

第一步:数据库存储过程。

IF(@TYPE='FRM_YuYueGuanLi_Load_SelectYuYue')
BEGIN
SELECT     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
FROM         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_BespeakWay
WHERE     (PW_BespeakBillList.IfEffective = 1 and PW_BespeakBillList.IfResourceRelease=0)                
END

 

第二步:逻辑层(BLL)

 

//查询预约信息
[OperationContract]
       public DataSet FRM_YuYueGuanLi_Load_SelectYuYue()
       {
           SqlParameter[] mySqlParameters =
       {
        new SqlParameter("@TYPE",SqlDbType.Char),
       };
           mySqlParameters[0].Value = "FRM_YuYueGuanLi_Load_SelectYuYue";
           DataTable dt=myDALMethod.QueryDataTable("预约管理_FRM_YuYueGuanLi", mySqlParameters);
           DataSet ds=new DataSet();
           ds.Tables.Add(dt);
           return ds; //返回数据集
       }

 

第三步:界面层(UIL),定位界面。

 

BLL海马汽车销售系统.预约管理.FRM_YuYueGuanLi.FRM_YuYueGuanLiClient myFRM_YuYueGuanLiClient = 
            new BLL海马汽车销售系统.预约管理.FRM_YuYueGuanLi.FRM_YuYueGuanLiClient();
        public static DataTable dtYuYueGuanLiDanJu; //公共静态表
        public static bool blnKuaiGuan; //公共静态变量
        private void btnConFirm_Click(object sender, EventArgs e)
        {
            //给自定义表赋值
            DataTable dt = myFRM_YuYueGuanLiClient.FRM_YuYueGuanLi_Load_SelectYuYue().Tables[0];
            DataView dv = new DataView(dt);//过滤表
            string str = "";//定义字符串
            string strDanYi = "";
            if (tdbContentAll.Checked)//选中满足所有条件
            {
                if (txtWorkOddNember.Text == "")//判断预约单号为不为空
                {
                    //如果为空就跳出这个事件
                    MessageBox.Show("单号不能为空!");
                    return;
                }
                else
                {
                    //不为空就进行条件的字符串拼接
                    str = " BespeakTime >='" + dtpStartEntranceTime.Value.ToShortDateString() + " 00:00:00.000" + 
                        "' and BespeakTime <='" + dtpEndEntranceTime.Value.ToShortDateString() + " 23:59:59.999" + "' and";
                    str += " BespeakOddNumBer = '" + txtWorkOddNember.Text.Trim() + "' and";
                }
                if (str.Length > 1)//判断字符串的长度是否大于1
                {
                    //如果大于1就截断字符串的后三位
                    str = str.Remove(str.Length - 3);
                }
                dv.RowFilter = str;//根据条件字符串过滤
                dtYuYueGuanLiDanJu = dv.ToTable();//将dv转换成表并赋值
            }
            else if (rdbContentSingle.Checked)//选中满足任一条件
            {
                if (rdbContentSingle.Checked)
                {
                    //条件的字符串拼接
                    str += " BespeakTime >='" + dtpStartEntranceTime.Value.ToShortDateString() + " 00:00:00.000" + "' and BespeakTime <='" + dtpEndEntranceTime.Value.ToShortDateString() + " 23:59:59.999" + "' and";
                }
                if (str.Length > 1)  
              {
                    str = str.Remove(str.Length - 3);
                }
                dv.RowFilter = str;
                dtYuYueGuanLiDanJu = dv.ToTable();
                if (rdbContentSingle.Checked)
                {
                    //条件的字符串拼接
                    strDanYi += " BespeakOddNumBer = '" + txtWorkOddNember.Text.Trim() + "' and";
                }
                if (strDanYi.Length > 1)
                {
                    strDanYi = strDanYi.Remove(strDanYi.Length - 3);
                }
                dv.RowFilter = strDanYi;
                DataTable dtDanHao = new DataTable();//实例化表
                dtDanHao = dv.ToTable();
                for (int i = 0; i < dtDanHao.Rows.Count; i++)//循环表
                {
                    DataRow row = dtYuYueGuanLiDanJu.NewRow();//表dtYuYueGuanLiDanJu添加一行
                    row.ItemArray = dtDanHao.Rows[i].ItemArray;//获取行数据
                    dtYuYueGuanLiDanJu.Rows.Add(row);//把行数据添加进表dtYuYueGuanLiDanJu
                }
            }
            blnKuaiGuan = true; //静态变量的值为“true”
            this.Close();//关闭窗体
        }

 

第三步:界面层(UIL),主界面,“定位”按钮点击事件。

 

private void btnLocation_Click(object sender, EventArgs e)
        {
//实例化窗体
            FRM_YuYueGuanLi_DingWei myFRM_YuYueGuanLi_DingWei = new FRM_YuYueGuanLi_DingWei();
            myFRM_YuYueGuanLi_DingWei.ShowDialog();//显示窗体
            if (FRM_YuYueGuanLi_DingWei.blnKuaiGuan == true) //如果静态变量的值为“true”
            { 
                dgvBespeak.DataSource = FRM_YuYueGuanLi_DingWei.dtYuYueGuanLiDanJu;//把表绑定到DataGridView
            }
        }

 

 

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

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值