海马汽车经销商管理系统技术解析(六)顾客生日祝贺

                    海马汽车经销商管理系统技术解析(六)顾客生日祝贺

顾客生日祝贺模块会把当天生日的顾客信息显示在顾客生日祝贺界面,然后可以对客户进行生日祝贺,还有上页、下页操作。

顾客生日祝贺主界面如图(图1)所示:                                                                          (图1)


顾客生日祝贺祝贺界面如图(图2)所示:


                                                                     (图2)

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

控件名称

说明

       ToolStrip

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

  表格DataGridView

按钮toolStripButton   /(Button)

下拉框ComBoBox

文本框TextBox

日期控件(DateTimePicker

显示功能实现:

第一步:数据库

1、表和关系

表1:车辆信息表(BM_CarNewsList)
用于存放车辆录入的信息

列名

数据类型

主键/外键

说明

CarNewsID

int

主键

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

 

有效否

表2:车主信息表(BM_CarOwnerNewsList)
用于存放车主录入的信息

列名

数据类型

主键/外键

说明

CarOwnerNewsID

int

主键

车主信息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

 

有效否

表3:顾客生日提醒表(BM_ClientBirthdayWarnList)
用于存放顾客生日祝贺录入的信息

列名

数据类型

主键/外键

说明

ClientBirthdayWarnID

int

主键

顾客生日提醒ID

CarOwnerNewsID

int

外键

车主信息ID

StaffID_CongratulatePerson

int

外键

员工ID_祝贺人

AttributeMinuteID_CongratulateWay

int

外键

属性明细ID_祝贺方式

CongratulateDate

datetime

 

祝贺日期

StaffID_CreatePerson

int

外键

员工ID_生成人

CreateDate

datetime

 

生成日期

CongratulateContent

nchar (100)

 

祝贺内容

第二步:技术解析

1、只显示当前时间生日的顾客信息,而且未祝贺的背景色为蓝色,已祝贺的背景色为白色:

第一步:数据库存储过程

IF(@TYPE ='dgvCongratulate_Select_ChaXunKeHuXinXi')
	BEGIN
		SELECT   BM_CarNewsList.CarNewsID, BM_CarNewsList.CarOwnerNewsID, BM_CarNewsList.LicensePlateNumber, BM_CarNewsList.CarModelsCode, BM_CarNewsList.VINCode, 
				  BM_CarOwnerNewsList.CarOwnerCode, BM_CarOwnerNewsList.CarOwnerName, BM_CarOwnerNewsList.AttributeMinuteID_Sex, AttributeMinuteList.AttributeMinuteName AS Sex, 
				  BM_CarOwnerNewsList.MobilePhone, BM_CarOwnerNewsList.HousePhone, BM_CarOwnerNewsList.Birthday
		FROM     BM_CarNewsList INNER JOIN
				  BM_CarOwnerNewsList ON BM_CarNewsList.CarOwnerNewsID = BM_CarOwnerNewsList.CarOwnerNewsID INNER JOIN
				  AttributeMinuteList ON BM_CarOwnerNewsList.AttributeMinuteID_Sex = AttributeMinuteList.AttributeMinuteID
	END

IF(@TYPE ='FRM_GuKeShengRiZhuHe_Load_Select_ChaXunKeHuShengRiZhuHe')
	BEGIN
		SELECT     BM_ClientBirthdayWarnList.ClientBirthdayWarnID, BM_ClientBirthdayWarnList.StaffID_CongratulatePerson, BM_StaffRecordList.StaffName AS CongratulatePerson, 
					  BM_ClientBirthdayWarnList.AttributeMinuteID_CongratulateWay, AttributeMinuteList.AttributeMinuteName AS CongratulateWay, BM_ClientBirthdayWarnList.CongratulateDate, 
					  BM_ClientBirthdayWarnList.StaffID_CreatePerson, BM_StaffRecordList_1.StaffName AS CreatePerson, BM_ClientBirthdayWarnList.CreateDate, BM_ClientBirthdayWarnList.CarOwnerNewsID, 
					  BM_ClientBirthdayWarnList.CongratulateContent
		FROM         BM_ClientBirthdayWarnList INNER JOIN
					  BM_StaffRecordList ON BM_ClientBirthdayWarnList.StaffID_CongratulatePerson = BM_StaffRecordList.StaffID INNER JOIN
					  AttributeMinuteList ON BM_ClientBirthdayWarnList.AttributeMinuteID_CongratulateWay = AttributeMinuteList.AttributeMinuteID INNER JOIN
					  BM_StaffRecordList AS BM_StaffRecordList_1 ON BM_ClientBirthdayWarnList.StaffID_CreatePerson = BM_StaffRecordList_1.StaffID
		              
        WHERE  BM_ClientBirthdayWarnList.CarOwnerNewsID=@CarOwnerNewsID AND 
            BM_ClientBirthdayWarnList.CongratulateDate=@CongratulateDate
    END

第二步:逻辑层(BLL)代码

[OperationContract]
        public DataSet dgvCongratulate_Select_ChaXunKeHuXinXi()
        {
            SqlParameter[] mySqlParameters ={
                                                new SqlParameter("@TYPE",SqlDbType.Char),
                                            };
            mySqlParameters[0].Value = "dgvCongratulate_Select_ChaXunKeHuXinXi";
            DataTable dt = myDALMethod.QueryDataTable("顾客关系_FRM_KeHuShengRiZhuHe", mySqlParameters);
            DataSet ds = new DataSet();
            ds.Tables.Add(dt);
            return ds;
        }

[OperationContract]
        public DataSet  FRM_GuKeShengRiZhuHe_Load_Select_ChaXunKeHuShengRiZhuHe( DateTime dtmCongratulateDate,int intCarOwnerNewsID)
        {
            SqlParameter[] mySqlParameters = {
                                                 new SqlParameter ("@TYPE",SqlDbType.Char),
                                                 
                                                 new SqlParameter ("@CongratulateDate",SqlDbType.DateTime),
                                                 new SqlParameter ("@CarOwnerNewsID",SqlDbType.Int),
                                             };
            mySqlParameters[0].Value = "FRM_GuKeShengRiZhuHe_Load_Select_ChaXunKeHuShengRiZhuHe";
           
            mySqlParameters[1].Value = dtmCongratulateDate;
            mySqlParameters[2].Value = intCarOwnerNewsID;
            DataTable dt = myDALMethod.QueryDataTable("顾客关系_FRM_KeHuShengRiZhuHe", mySqlParameters);
            DataSet ds = new DataSet();
            ds.Tables.Add(dt);
            return ds;
        }

第三步:界面层(UIL)代码,写进界面Load事件

dtClientBirthdayWarn = myFRM_KeHuShengRiZhuHeClient.dgvCongratulate_Select_ChaXunKeHuXinXi().Tables[0];
            dtClient = dtClientBirthdayWarn.Copy();//把查询得到的整个表复制到新创建的表
            dtClient.Clear();//清除表里的数据
            for (int i = 0; i < dtClientBirthdayWarn.Rows.Count; i++)//循环遍历dtClientBirthdayWarn
            {
                for (int Z = 0; Z < 100; Z++)
                {                    
                    if (Convert.ToDateTime(dtClientBirthdayWarn.Rows[i]["Birthday"]).AddYears(Z).ToShortDateString() == DateTime.Now.ToShortDateString())
                        //如果顾客生日以年自增=现在日期
                    {                        
                        DataRow row = dtClient.NewRow();//创建空白行
                        row.ItemArray = dtClientBirthdayWarn.Rows[i].ItemArray;//把dtClientBirthdayWarn第i行放进空白行
                        dtClient.Rows.Add(row);//把行数据放进表中
                        //dgvClientBirthdayWarn.Rows.Add(dtClientBirthdayWarn.Rows[i]);
                    }
                }
            }
            dgvCongratulate.DataSource = dtClient;
for (int i = 0; i < dgvCongratulate.Rows.Count; i++)
            {
                int CarOwnerNewsID = Convert.ToInt32(dgvCongratulate.Rows[i].Cells["车主信息ID"].Value );
                DateTime Time=Convert.ToDateTime(DateTime.Now.ToShortDateString());
                dtWarn = myFRM_KeHuShengRiZhuHeClient.FRM_GuKeShengRiZhuHe_Load_Select_ChaXunKeHuShengRiZhuHe(Time,CarOwnerNewsID).Tables[0];
                if (dtWarn.Rows.Count < 1)
                {
                    dgvCongratulate.Rows[i].DefaultCellStyle.BackColor = Color.Blue;
                }
            }

2、祝贺功能:

第一步:数据库存储过程

IF(@TYPE ='btnConfirm_Click_Insert_XinZengZhuHeXinXi')
	BEGIN
	INSERT BM_ClientBirthdayWarnList (CarOwnerNewsID, StaffID_CongratulatePerson, 
	       AttributeMinuteID_CongratulateWay, CongratulateDate, StaffID_CreatePerson, 
	       CreateDate,CongratulateContent)      
	VALUES (@CarOwnerNewsID,@StaffID_CongratulatePerson, 
	       @AttributeMinuteID_CongratulateWay,@CongratulateDate,@StaffID_CreatePerson, 
	       @CreateDate,@CongratulateContent)   
	END

第二步:逻辑层(BLL)代码

[OperationContract]
        public int btnConfirm_Click_Insert_XinZengZhuHeXinXi(int intCarOwnerNewsID, int intStaffID_CongratulatePerson,
           int intAttributeMinuteID_CongratulateWay, DateTime dtmCongratulateDate, int intStaffID_CreatePerson,
           DateTime dtmCreateDate, string strCongratulateContent)
        {
            SqlParameter[] mySqlParameters ={
                                                new SqlParameter("@TYPE",SqlDbType.Char),
                                                new SqlParameter("@CarOwnerNewsID",SqlDbType.Int),
                                                new SqlParameter("@StaffID_CongratulatePerson",SqlDbType.Int),
                                                new SqlParameter("@AttributeMinuteID_CongratulateWay",SqlDbType.Int),
                                                new SqlParameter("@CongratulateDate",SqlDbType.DateTime),
                                                new SqlParameter("@StaffID_CreatePerson",SqlDbType.Int),
                                                new SqlParameter("@CreateDate",SqlDbType.DateTime),
                                                new SqlParameter("@CongratulateContent",SqlDbType.Char),
                                            };
            mySqlParameters[0].Value = "btnConfirm_Click_Insert_XinZengZhuHeXinXi";
            mySqlParameters[1].Value = intCarOwnerNewsID;
            mySqlParameters[2].Value = intStaffID_CongratulatePerson;
            mySqlParameters[3].Value = intAttributeMinuteID_CongratulateWay;
            mySqlParameters[4].Value = dtmCongratulateDate;
            mySqlParameters[5].Value = intStaffID_CreatePerson;
            mySqlParameters[6].Value = dtmCreateDate;
            mySqlParameters[7].Value = strCongratulateContent;
            return myDALMethod.UpdateData("顾客关系_FRM_KeHuShengRiZhuHe_ZhuHe", mySqlParameters);
           
        }

第三步:界面层(UIL)代码,写进Button单击事件

/// <summary>
        /// 
        /// </summary>
        /// <param name="sender">触发者</param>
        /// <param name="e">触发事件</param>
        private void btnConfirm_Click(object sender, EventArgs e)
        {
            int intCarOwnerNewsID = FRM_KeHuShengRiZhuHe.CarOwnerNewsID;
            int intStaffID_CongratulatePerson = PublicStaticObject.YuanGongID;
            int intAttributeMinuteID_CongratulateWay = Convert.ToInt32(cboCongratulateWay.SelectedValue);
            DateTime dtmCongratulateDate = Convert.ToDateTime(dtpCongratulateDate.Text.Trim());
            int intStaffID_CreatePerson = PublicStaticObject .YuanGongID;
            DateTime dtmCreateDate = DateTime.Now;
            string strCongratulateContent = txtCongratulateContent.Text.Trim();
            int i = myFRM_KeHuShengRiZhuHe_ZhuHeClient.btnConfirm_Click_Insert_XinZengZhuHeXinXi(intCarOwnerNewsID,
               intStaffID_CongratulatePerson, intAttributeMinuteID_CongratulateWay, dtmCongratulateDate,
              intStaffID_CreatePerson, dtmCreateDate, strCongratulateContent);
            BaoCunFou = true;
            if (i > 0)
            {
                MessageBox.Show("祝贺成功!!!");
                this.Close();
            }
            else { MessageBox.Show("祝贺失败!!!"); }
        }

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






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值