新锐房地产销售管理系统(部分流程)技术解释(五) 销售管理_客户登记

1.客户登记选择

这里是根据项目来 客户的登记,具体分为新客登记,老客登记,来电登记和线索登记


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

控件名称

说明

标注(Label)

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

选项卡(TabControl)

扫描二维码关注公众号,回复: 6532925 查看本文章

文本(TextBox)

按钮(Button)

菜单(ToolStripMenuItem)

工具栏(ToolStrip)

表格(DataGridView)

功能实现:

第一步:数据库

1、表与关系



表1: 项目信息表(dbo.SYS_ProjectInformation)

Primary Key(主键):  ProjectID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ProjectID

int - Identity

No

项目ID

SortNumber

int

Yes

排序号

ProjectAreaID

int

Yes

属性明细表,项目区域ID

Project_FatherlID

int

Yes

项目信息表,项目级别ID

ProjectName

nchar (20)

Yes

项目名称

PropertyRightProjectName

nchar (20)

Yes

产权项目名称

ProjectCompanyName

nchar (20)

Yes

项目公司名称

ProjectAddress

nchar (50)

Yes

项目座落地址

CaseWhether

bit

Yes

是否结案

CancelWhether

bit

((0))

Yes

有效否

表2:  客户信息 (dbo.PW_ClientInformation)

Primary Key(主键):  ClientID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ClientID

int - Identity

No

客户ID

ProjectID

int

Yes

项目信息表,项目ID

ClientNumber

nchar (10)

Yes

客户编号

ClientName

nchar (10)

Yes

客户名称

EarlyVisitIntention

nchar (10)

Yes

初访意向

Gender

nchar (10)

Yes

性别

MaritalStatus

nchar (10)

Yes

婚否

ClientRegistrationWayID

int

Yes

属性明细表,客户登记方式ID

RelationPhone

nchar (15)

Yes

联系电话

ElectronMail

nchar (30)

Yes

电子邮箱

HomeBuyerConsultantID

int

Yes

员工表,置业顾问ID

DateOfVisit

datetime

Yes

来访日期

CommunicationAddress

nchar (50)

Yes

通讯地址

Postcode

nchar (10)

Yes

邮编

IDentityCard

nchar (30)

Yes

身份证号

BirthDay

date

Yes

出生日期

Age

nchar (20)

Yes

年龄

Professional

nchar (20)

Yes

职业

NowLivingArea

nchar (20)

Yes

现居住区域

LearnTheWayToTheCase

nchar (20)

Yes

获取本案途径

VisitConstitute

nchar (20)

Yes

来客构成

Traffic

nchar (20)

Yes

交通

RealEstateSituation

nchar (20)

Yes

置业状况

ResidentialMortgageLoans

nchar (20)

Yes

住宅按揭贷款

HomesBuyersPurpose

nchar (20)

Yes

置业目的

PlanTorealEstatePrice

nchar (20)

Yes

计划置业价格

DemandArea

nchar (20)

Yes

需求面积

PaymentWay

nchar (20)

Yes

付款方式ID

BuyingConsideration

nchar (20)

Yes

买房考虑因素

IncalidOr

bit

((0))

Yes

作废否

2、具体代码实现

第一步:数据库相关存储过程

if(@type='frmXiaoShouGuanLi_BindingProjectName')--查询用来绑定dgv项目数据源
begin
SELECT     ProjectID, RTRIM(ProjectName) as 项目名称, RTRIM(SortNumber) AS 排序号
FROM         SYS_ProjectInformation
end

 

第二步:逻辑层(BLL)

DALPublic.DALPublic myDALPublic = new DALPublic.DALPublic();


         [OperationContract]
         #region绑定dgv客户
         public DataSet frmXiaoShouGuanLi_BindingProjectName()
         {
             SqlParameter[] SQLCMDpas = { new SqlParameter("@type", SqlDbType.Char),
                                         
                                          };
             SQLCMDpas[0].Value = "frmXiaoShouGuanLi_BindingProjectName";
             DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ClientRegistrtion_NewClientRegistration", SQLCMDpas);
             DataSet myDataSet = new DataSet();
             myDataSet.Tables.Add(myDataTable);
             return myDataSet;
         }
         #endregion 

 

第三步:界面层(UIL)相关事件及代码

frmMain frmmain;
        public frmMarketManagement_CustomerRegistration(frmMain frm)//从主界面那边传主界面过来
        {
            frmmain = frm;
            InitializeComponent();
        }

        frmMain FrmInsertSubcribe;
        public frmMarketManagement_CustomerRegistration(frmMain frm, string strMsg)
        {
            FrmInsertSubcribe = frm;
            InitializeComponent();
        }

        BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ClientRegistrtion_NewClientRegistration.frmMarketManagement_ClientRegistrtion_NewClientRegistrationClient
    myfrmMarketManagement_ClientRegistrtion_NewClientRegistrationClient = new BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ClientRegistrtion_NewClientRegistration.frmMarketManagement_ClientRegistrtion_NewClientRegistrationClient();//实例化BLL

        private void btnNewClientRegistration_Click(object sender, EventArgs e)//新客登记
        {
            if (txtProjectName.Text != "")//判断,如果有没有已经选择项目,如果没有选择则提醒选择后才能继续
            {
                PublicStaticClass.blOpening = 4;
                frmMarketManagement_ClientRegistrtion_NewClientRegistration myfrmXiaoShouGuanLi_KeHuDengJi_XinKeDengJi = new frmMarketManagement_ClientRegistrtion_NewClientRegistration(this);//实例化新客登记的界面
                myfrmXiaoShouGuanLi_KeHuDengJi_XinKeDengJi.ShowDialog();
            }
            else
            {
                MessageBox.Show("请先选择项目再添加客户");
                button1_Click(null,null);
            }
        }

        private void btnOldClientRegistration_Click(object sender, EventArgs e)//老客户登记
        {
            if (txtProjectName.Text != "")
            {
                frmMarketManagement_ClientRegistration_OldClientRegistration myfrmXiaoShouGuanLi_KeHuDengJi_LaoKeHuDengJi = new frmMarketManagement_ClientRegistration_OldClientRegistration(intProjectID);//实例化
                myfrmXiaoShouGuanLi_KeHuDengJi_LaoKeHuDengJi.ShowDialog();//窗体跳出
            }
            else
            {
                MessageBox.Show("请先选择项目再添加客户");
                button1_Click(null, null);
            }
        }

        private void btnCallingRegistration_Click(object sender, EventArgs e)//来电登记
        {
            if (txtProjectName.Text != "")
            {
                PublicStaticClass.blOpening = 1;
                frmMarketManagement_ClientRegistrtion_NewClientRegistration myfrmXiaoShouGuanLi_KeHuDengJi_XinKeDengJi = new frmMarketManagement_ClientRegistrtion_NewClientRegistration(this);
                myfrmXiaoShouGuanLi_KeHuDengJi_XinKeDengJi.ShowDialog();
            }
            else
            {
                MessageBox.Show("请先选择项目再添加客户");
                button1_Click(null, null);
            }
        }

        private void btn_Click(object sender, EventArgs e)//线索登记
        {
            if (txtProjectName.Text != "")
            {
                PublicStaticClass.blOpening = 2;
                frmMarketManagement_ClientRegistrtion_NewClientRegistration myfrmXiaoShouGuanLi_KeHuDengJi_XinKeDengJi = new frmMarketManagement_ClientRegistrtion_NewClientRegistration(this);
                myfrmXiaoShouGuanLi_KeHuDengJi_XinKeDengJi.ShowDialog();
            }
            else
            {
                MessageBox.Show("请先选择项目再添加客户");
                button1_Click(null, null);
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            dgvProject.Visible = true;
        }

        int intProjectID = 0;
        private void dgvProject_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)//双击选择项目
        {
            txtProjectName.Text = dgvProject.CurrentRow.Cells["项目名称"].Value.ToString().Trim();
            intProjectID = (int)dgvProject.CurrentRow.Cells["ProjectID"].Value;
            dgvProject.Visible = false;
        }

        private void frmMarketManagement_ClientRegistration_Load(object sender, EventArgs e)
        {
            DataTable dtProject = myfrmMarketManagement_ClientRegistrtion_NewClientRegistrationClient.frmXiaoShouGuanLi_BindingProjectName().Tables[0];//绑定dgv项目
            dgvProject.DataSource = dtProject;
        }

        private void frmMarketManagement_ClientRegistration_FormClosing(object sender, FormClosingEventArgs e)
        {
            frmmain.RemoveTabPage();
        }

        private void button6_Click(object sender, EventArgs e)
        {
            this.Close();
        }

2.新客登记



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

控件名称

说明

标注(Label)

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

选项卡(TabControl)

复选框(CheckBox)

单选按钮(RadioButton)

文本(TextBox)

按钮(Button)

日期控件(DateTimePicker)

下拉框(ComboBox)

功能实现:

第一步:数据库

1、表与关系



表1: 项目信息表(dbo.SYS_ProjectInformation)

Primary Key(主键):  ProjectID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ProjectID

int - Identity

No

项目ID

SortNumber

int

Yes

排序号

ProjectAreaID

int

Yes

属性明细表,项目区域ID

Project_FatherlID

int

Yes

项目信息表,项目级别ID

ProjectName

nchar (20)

Yes

项目名称

PropertyRightProjectName

nchar (20)

Yes

产权项目名称

ProjectCompanyName

nchar (20)

Yes

项目公司名称

ProjectAddress

nchar (50)

Yes

项目座落地址

CaseWhether

bit

Yes

是否结案

CancelWhether

bit

((0))

Yes

有效否

 

表2:  客户信息 (dbo.PW_ClientInformation)

Primary Key(主键):  ClientID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ClientID

int - Identity

No

客户ID

ProjectID

int

Yes

项目信息表,项目ID

ClientNumber

nchar (10)

Yes

客户编号

ClientName

nchar (10)

Yes

客户名称

EarlyVisitIntention

nchar (10)

Yes

初访意向

Gender

nchar (10)

Yes

性别

MaritalStatus

nchar (10)

Yes

婚否

ClientRegistrationWayID

int

Yes

属性明细表,客户登记方式ID

RelationPhone

nchar (15)

Yes

联系电话

ElectronMail

nchar (30)

Yes

电子邮箱

HomeBuyerConsultantID

int

Yes

员工表,置业顾问ID

DateOfVisit

datetime

Yes

来访日期

CommunicationAddress

nchar (50)

Yes

通讯地址

Postcode

nchar (10)

Yes

邮编

IDentityCard

nchar (30)

Yes

身份证号

BirthDay

date

Yes

出生日期

Age

nchar (20)

Yes

年龄

Professional

nchar (20)

Yes

职业

NowLivingArea

nchar (20)

Yes

现居住区域

LearnTheWayToTheCase

nchar (20)

Yes

获取本案途径

VisitConstitute

nchar (20)

Yes

来客构成

Traffic

nchar (20)

Yes

交通

RealEstateSituation

nchar (20)

Yes

置业状况

ResidentialMortgageLoans

nchar (20)

Yes

住宅按揭贷款

HomesBuyersPurpose

nchar (20)

Yes

置业目的

PlanTorealEstatePrice

nchar (20)

Yes

计划置业价格

DemandArea

nchar (20)

Yes

需求面积

PaymentWay

nchar (20)

Yes

付款方式ID

BuyingConsideration

nchar (20)

Yes

买房考虑因素

IncalidOr

bit

((0))

Yes

作废否

表3: 员工表 (dbo. SYS_Staff)

Primary Key(主键):  StaffID

非主键ID值均是外键

列名

数据类型

Nulls?

说明

StaffID

int - Identity

No

员工ID

StaffNumber

nchar (10)

Yes

员工编号

StaffName

nchar (10)

Yes

员工姓名

DepartMentID

int

Yes

所属部门

GenderID

int

Yes

属性明细表,性别ID

Age

int

Yes

年龄

EducationBackgroundID

int

Yes

属性明细表,学历ID

MarryWhether

bit

Yes

婚否

Position

nchar (10)

Yes

职位

ContactPhoneNumber

nchar (15)

Yes

联系电话

ContactAddress

nchar (20)

Yes

联系地址

Notes

nchar (100)

Yes

备注

StaffImage

image

Yes

员工照片

表4: 属性明细表(dbo.SYS_AttributeDetails)

Primary Key(主键):  AttributeDetailsID

列名

数据类型

默认值

Nulls?

说明

AttributeDetailsID

int - Identity

No

属性明细ID

AuttributeSetID

int

Yes

属性集合表,属性集合ID

AuttributeDetailsName

nchar (10)

Yes

属性明细名称

EffectiveWhether

bit

((1))

Yes

有效否

2、具体代码实现

第一步:数据库存储过程

if(@type='frmXiaoShouGuanLi_XinKeDengJi_Load_BindingHomebuyersconsultant')--查询置业顾问
begin
SELECT     SYS_Staff.StaffID, RTRIM(SYS_Staff.StaffName) as StaffName, RTRIM(SYS_AttributeDetails.AuttributeDetailsName) as AuttributeDetailsName
FROM         SYS_Staff INNER JOIN
              SYS_AttributeDetails ON SYS_Staff.DepartMentID = SYS_AttributeDetails.AttributeDetailsID
WHERE      SYS_AttributeDetails.AttributeDetailsID=23   --只查是置业顾问的员工
end

if(@type='NewClientRegistration_btnSaveAndInsert_Click')--新增客户
begin
insert into    PW_ClientInformation(ClientNumber, ClientName, EarlyVisitIntention, Gender, MaritalStatus, 
ClientRegistrationWayID, RelationPhone, ElectronMail, HomeBuyerConsultantID, DateOfVisit, CommunicationAddress, 
              Postcode, IDentityCard, BirthDay,ProjectID,Age, Professional, NowLivingArea, LearnTheWayToTheCase, 
              VisitConstitute, Traffic, RealEstateSituation, ResidentialMortgageLoans, HomesBuyersPurpose, 
              PlanTorealEstatePrice, DemandArea,PaymentWay, BuyingConsideration)
values  (@ClientNumber,@ClientName,@EarlyVisitIntention,@Gender,@MaritalStatus,@ClientRegistrationWayID,
@RelationPhone,@ElectronMail,@HomeBuyerConsultantID,@DateOfVisit,@CommunicationAddress, 
              @Postcode,@IDentityCard,@BirthDay,@ProjectID,@Age,@Professional,@NowLivingArea,@LearnTheWayToTheCase,
              @VisitConstitute,@Traffic,@RealEstateSituation,@ResidentialMortgageLoans,@HomesBuyersPurpose,
              @PlanTorealEstatePrice,@DemandArea,@PaymentWay,@BuyingConsideration)
end

if @type='NewClientRegistration_Load_SelectSortNumber'--查询客户表里边的总行数,用来绑定序号
begin
SELECT     COUNT(*)
FROM         PW_ClientInformation           
end

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

         [OperationContract]
         #region 绑定下拉框置业顾问
         public DataSet frmXiaoShouGuanLi_XinKeDengJi_Load_BindingHomebuyersconsultant()
         {
             SqlParameter[] SQLCMDpas = { new SqlParameter("@type", SqlDbType.Char),
                                         
                                          };
             SQLCMDpas[0].Value = "frmXiaoShouGuanLi_XinKeDengJi_Load_BindingHomebuyersconsultant";
             DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ClientRegistrtion_NewClientRegistration", SQLCMDpas);
             DataSet myDataSet = new DataSet();
             myDataSet.Tables.Add(myDataTable);
             return myDataSet;
         }
         #endregion 

         [OperationContract]
         #region 查询总行数,用来绑定序号
         public DataSet NewClientRegistration_Load_SelectSortNumber()
         {
             SqlParameter[] SQLCMDpas = { new SqlParameter("@type", SqlDbType.Char),
                                         
                                          };
             SQLCMDpas[0].Value = "NewClientRegistration_Load_SelectSortNumber";
             DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ClientRegistrtion_NewClientRegistration", SQLCMDpas);
             DataSet myDataSet = new DataSet();
             myDataSet.Tables.Add(myDataTable);
             return myDataSet;
         }
         #endregion 

         [OperationContract]
         #region 新增客户
         public int NewClientRegistration_btnSaveAndInsert_Click(string strClientNumber, string strClientName, string strEarlyVisitIntention, string strGender, string strMaritalStatus, 
         int intClientRegistrationWayID,string strRelationPhone,string strElectronMail,int intHomeBuyerConsultantID,DateTime dtDateOfVisit,string strCommunicationAddress,
                      string strPostcode, string strIDentityCard, DateTime dtBirthDay, int intProjectID,
            string strAge,string  strProfessional, string strNowLivingArea, string strLearnTheWayToTheCase, 
            string strVisitConstitute, string strTraffic,string  strRealEstateSituation,string  strResidentialMortgageLoans, string strHomesBuyersPurpose,
            string strPlanTorealEstatePrice, string strDemandArea, string strPaymentWay, string strBuyingConsideration)
         {
             SqlParameter[] SQLCMDpas = { 
                                             new SqlParameter("@Type", SqlDbType.Char),
                                             new SqlParameter("@ClientNumber", SqlDbType.Char),
                                             new SqlParameter("@ClientName", SqlDbType.Char),
                                             new SqlParameter("@EarlyVisitIntention", SqlDbType.Char),
                                             new SqlParameter("@Gender", SqlDbType.Char),
                                             new SqlParameter("@MaritalStatus", SqlDbType.Char),
                                             new SqlParameter("@ClientRegistrationWayID", SqlDbType.Int),
                                             new SqlParameter("@RelationPhone", SqlDbType.Char),
                                             new SqlParameter("@ElectronMail", SqlDbType.Char),
                                             new SqlParameter("@HomeBuyerConsultantID", SqlDbType.Int),
                                             new SqlParameter("@DateOfVisit", SqlDbType.DateTime),
                                             new SqlParameter("@CommunicationAddress", SqlDbType.Char),
                                             new SqlParameter("@Postcode", SqlDbType.Char),
                                             new SqlParameter("@IDentityCard", SqlDbType.Char),
                                             new SqlParameter("@BirthDay", SqlDbType.DateTime),
                                             new SqlParameter("@ProjectID", SqlDbType.Int),
                                             
                                             new SqlParameter("@Age", SqlDbType.Char),
                                             new SqlParameter("@Professional", SqlDbType.Char),
                                             new SqlParameter("@NowLivingArea", SqlDbType.Char),
                                             new SqlParameter("@LearnTheWayToTheCase", SqlDbType.Char),
                                             new SqlParameter("@VisitConstitute", SqlDbType.Char),
                                             new SqlParameter("@Traffic", SqlDbType.Char),
                                             new SqlParameter("@RealEstateSituation", SqlDbType.Char),
                                             new SqlParameter("@ResidentialMortgageLoans", SqlDbType.Char),
                                             new SqlParameter("@HomesBuyersPurpose", SqlDbType.Char),
                                             new SqlParameter("@PlanTorealEstatePrice", SqlDbType.Char),
                                             new SqlParameter("@DemandArea", SqlDbType.Char),
                                             new SqlParameter("@PaymentWay", SqlDbType.Char),
                                             new SqlParameter("@BuyingConsideration", SqlDbType.Char),
                                          };
             SQLCMDpas[0].Value = "NewClientRegistration_btnSaveAndInsert_Click";
             SQLCMDpas[1].Value = strClientNumber;
             SQLCMDpas[2].Value = strClientName;
             SQLCMDpas[3].Value = strEarlyVisitIntention;
             SQLCMDpas[4].Value = strGender;
             SQLCMDpas[5].Value = strMaritalStatus;
             SQLCMDpas[6].Value = intClientRegistrationWayID;
             SQLCMDpas[7].Value = strRelationPhone;
             SQLCMDpas[8].Value = strElectronMail;
             SQLCMDpas[9].Value = intHomeBuyerConsultantID;
             SQLCMDpas[10].Value = dtDateOfVisit;
             SQLCMDpas[11].Value = strCommunicationAddress;
             SQLCMDpas[12].Value = strPostcode;
             SQLCMDpas[13].Value = strIDentityCard;
             SQLCMDpas[14].Value = dtBirthDay;
             SQLCMDpas[15].Value = intProjectID;

             SQLCMDpas[16].Value = strAge;
             SQLCMDpas[17].Value = strProfessional;
             SQLCMDpas[18].Value = strNowLivingArea;
             SQLCMDpas[19].Value = strLearnTheWayToTheCase;
             SQLCMDpas[20].Value = strVisitConstitute;
             SQLCMDpas[21].Value = strTraffic;
             SQLCMDpas[22].Value = strRealEstateSituation;
             SQLCMDpas[23].Value = strResidentialMortgageLoans;
             SQLCMDpas[24].Value = strHomesBuyersPurpose;
             SQLCMDpas[25].Value = strPlanTorealEstatePrice;
             SQLCMDpas[26].Value = strDemandArea;
             SQLCMDpas[27].Value = strPaymentWay;
             SQLCMDpas[28].Value = strBuyingConsideration;
             return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ClientRegistrtion_NewClientRegistration", SQLCMDpas);
         }
         #endregion

第三步:界面层(UIL)

#region  窗体之间的传值
        frmMarketManagement_CustomerRegistration Frm;
        public frmMarketManagement_ClientRegistrtion_NewClientRegistration(frmMarketManagement_CustomerRegistration frm)
        {
            Frm = frm;
            InitializeComponent();
        }
        frmMarketManagement_CustomerManagement FrmCustomerManagement;
        int intOldClientID = 0;
        public frmMarketManagement_ClientRegistrtion_NewClientRegistration(frmMarketManagement_CustomerManagement frm,int intClientID)
        {
            FrmCustomerManagement = frm;
            intOldClientID = intClientID;
            InitializeComponent();
        }
        #endregion


        BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ClientRegistrtion_NewClientRegistration.frmMarketManagement_ClientRegistrtion_NewClientRegistrationClient myfrmMarketManagement_ClientRegistrtion_NewClientRegistrationClient =
            new BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ClientRegistrtion_NewClientRegistration.frmMarketManagement_ClientRegistrtion_NewClientRegistrationClient();


        int intClientRegistrationWayID = 0;
        private void frmXiaoShouGuanLi_KeHuDengJi_XinKeDengJi_Load(object sender, EventArgs e)
        {
            if (PublicStaticClass.blOpening == 1)//根据公共变量来绑定客户登记方式
            {
                this.Text = "来电客户添加";
                PublicStaticClass.blOpening = 0;
                radCalling.Checked = true;
                intClientRegistrationWayID = 33;
            }
            else if (PublicStaticClass.blOpening == 2)
            {
                this.Text = "线索客户添加";
                PublicStaticClass.blOpening = 0;
                radClues.Checked = true;
                intClientRegistrationWayID = 34;
            }
            string[] strEarlyVisitIntention = { "弱", "中", "强" };//这里是直接声明一个用来绑定cbo初访意向的数组
            string[] strGender = { "男", "女" };//声明并且赋初始值,用来绑定cbo性别的数组
            string[] strMaritalstatus = { "未婚", "已婚" };//声明一个用来绑定婚否的数组
            if (PublicStaticClass.blOpening == 4)
            {
                radVisiting.Checked = true;
                intClientRegistrationWayID = 32;
            }
            cboEarlyVisitIntention.Items.AddRange(strEarlyVisitIntention);//把数组绑定给下拉框的项集合
            cboGender.Items.AddRange(strGender);//把数组绑定给下拉框的项集合
            cboMaritalstatus.Items.AddRange(strMaritalstatus);//把数组绑定给下拉框的项集合
            cboEarlyVisitIntention.SelectedIndex = 0;//指定下拉框选择的是第一项
            cboGender.SelectedIndex = 0;
            cboMaritalstatus.SelectedIndex = 0;
            DataTable dtHomebuyersconsultant = myfrmMarketManagement_ClientRegistrtion_NewClientRegistrationClient.frmXiaoShouGuanLi_XinKeDengJi_Load_BindingHomebuyersconsultant().Tables[0];//查询员工信息,用来绑定置业顾问
            PublicMethod.SettingComboBox(cboHomebuyersconsultant, dtHomebuyersconsultant, "StaffID", "StaffName", true);//调用自定义的公用方法来绑定下拉框

            int intSortNumber = Convert.ToInt32(myfrmMarketManagement_ClientRegistrtion_NewClientRegistrationClient.NewClientRegistration_Load_SelectSortNumber().Tables[0].Rows[0][0]);//获取客户信息的总行数,然后绑定将要添加的客户的序号
            txtSerialNumber.Text = Convert.ToString(intSortNumber + 1);//绑定将要新增客户的序号
            if (intOldClientID != 0)//如果全局变量的值不为0,即是修改的时候帮原来的客户详细的信息绑定上去
            {
                UpdateClient_Load(intOldClientID);//执行自定义的方法,绑定将要修改的客户的详细的信息
            }
        }

private void btnSaveAndInsert_Click(object sender, EventArgs e)//保存并新增事件
        {
            Judage();//自定义方法,用来判断
            string strClientNumber = txtSerialNumber.Text.ToString().Trim();//获取序号文本
            string strClientName = txtClientName.Text.ToString().Trim();
            if (txtClientName.Text == "")//判断
            {
                MessageBox.Show("请填写客户姓名后继续!","提示");
            }
            string strEarlyVisitIntention = cboEarlyVisitIntention.Text.ToString().Trim();
            string strGender = cboGender.Text.ToString().Trim();
            string strMaritalStatus = cboMaritalstatus.Text.ToString().Trim();
            string strRelationPhone = txtContactPhoneNumber.Text.ToString().Trim();
            if (txtContactPhoneNumber.Text == "")
            {
                MessageBox.Show("请填写联系电话后继续!", "提示");
            }
            string strElectronMail = txtEmail.Text.ToString().Trim();
            if (txtEmail.Text == "")
            {
                MessageBox.Show("请填写E-Mail后继续!", "提示");
            }
            int intHomeBuyerConsultantID = (int)cboHomebuyersconsultant.SelectedValue;
            DateTime dtDateOfVisit = Convert.ToDateTime(dtpVisitingDate.Text);
            string strCommunicationAddress = txtCorrspondenceAddress.Text.ToString().Trim();
            if (txtCorrspondenceAddress.Text == "")
            {
                MessageBox.Show("请填写通讯地址后继续!", "提示");
            }
            string strPostcode = txtZipCode.Text.ToString().Trim();
            if (txtCorrspondenceAddress.Text == "")
            {
                MessageBox.Show("请填写邮编后继续!", "提示");
            }
            string strIDentityCard = txtIDNumber.Text.ToString().Trim();
            if (txtCorrspondenceAddress.Text == "")
            {
                MessageBox.Show("请填写身份证号后继续!", "提示");
            }
            DateTime dtBirthDay = Convert.ToDateTime(dtpBirthDate.Text);
            int intProject = Convert.ToInt32(Frm.dgvProject.CurrentRow.Cells["ProjectID"].Value);
            int intSaveSuccess = myfrmMarketManagement_ClientRegistrtion_NewClientRegistrationClient.NewClientRegistration_btnSaveAndInsert_Click(strClientNumber, strClientName,
                strEarlyVisitIntention, strGender, strMaritalStatus, intClientRegistrationWayID, strRelationPhone, strElectronMail, intHomeBuyerConsultantID, dtDateOfVisit,
                strCommunicationAddress, strPostcode, strIDentityCard, dtBirthDay, intProject,
                strAge, strProfessional, strNowLivingArea, strLearnTheWayToTheCase,
                strVisitConstitute, strTraffic, strRealEstateSituation, strResidentialMortgageLoans, strHomesBuyersPurpose,
                strPlanTorealEstatePrice, strDemandArea, strPaymentWay, strBuyingConsideration);//执行新增的方法
            if (intSaveSuccess > 0)
            {
                MessageBox.Show("新增成功!!!");
                if (MessageBox.Show("新增成功,是否继续新增?\n点击'是继续新增',点击‘否’退出", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    ClearData();
                }
                else
                {
                    this.Dispose();
                }
            }
            else if (MessageBox.Show("很遗憾,新增失败,请正确录入数据后再新增数据", "是否退出界面", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.Yes)
            {
                this.Dispose();
            }
            else
            {
                return;
            }
        }

        void ClearData()//自定义方法,用来清空数据的
        {
            txtClientName.Text = "";
            cboEarlyVisitIntention.SelectedIndex = 0;
            cboGender.SelectedIndex = 0;
            cboMaritalstatus.SelectedIndex = 0;
            txtSerialNumber.Text = (Convert.ToInt32(txtSerialNumber.Text) + 1).ToString() ;
            txtContactPhoneNumber.Text = "";
            txtEmail.Text = "";
            cboHomebuyersconsultant.SelectedIndex = 0;
            txtCorrspondenceAddress.Text = "";
            txtZipCode.Text = "";
            txtIDNumber.Text = "";
            dtpVisitingDate.Value = DateTime.Now;
            dtpBirthDate.Value = DateTime.Now;
            strAge = ""; 
            strProfessional = "";
            strNowLivingArea = "";
            strLearnTheWayToTheCase = "";
            strVisitConstitute = "";
            strTraffic = "";
            strRealEstateSituation = "";
            strResidentialMortgageLoans = "";
            strHomesBuyersPurpose = "";
            strPlanTorealEstatePrice = "";
            strDemandArea = "";
            strPaymentWay = "";
            strBuyingConsideration = "";
            foreach (CheckBox chb in pnlAge.Controls)
            {
                chb.Checked = false;
            }
            foreach (CheckBox chb in pnlProfessional.Controls)
            {
                chb.Checked = false;
            }
            foreach (CheckBox chb in pnlNowLivingArea.Controls)
            {
                chb.Checked = false;
            }
            foreach (CheckBox chb in pnlLearnTheWayToTheCase.Controls)
            {
                chb.Checked = false;
            }
            foreach (CheckBox chb in pnlVisitConstitute.Controls)
            {
                chb.Checked = false;
            }
            foreach (CheckBox chb in pnlTraffic.Controls)
            {
                chb.Checked = false;
            }
            foreach (CheckBox chb in pnlRealEstateSituation.Controls)
            {
                chb.Checked = false;
            }
            foreach (CheckBox chb in pnlResidentialMortgageLoans.Controls)
            {
                chb.Checked = false;
            }
            foreach (CheckBox chb in pnlHomesBuyersPurpose.Controls)
            {
                chb.Checked = false;
            }
            foreach (CheckBox chb in pnlPlanTorealEstatePrice.Controls)
            {
                chb.Checked = false;
            }
            foreach (CheckBox chb in pnlDemandArea.Controls)
            {
                chb.Checked = false;
            }
            foreach (CheckBox chb in pnlPaymentWay.Controls)
            {
                chb.Checked = false;
            }
            foreach (CheckBox chb in pnlBuyingConsideration.Controls)
            {
                chb.Checked = false;
            }
        }

        void Judage()
        {
            if (strAge == "")//判断在年龄里边是否已经选择
            {
                MessageBox.Show("请在‘年龄’处勾上相应的信息!!!", "提示");
                return;
            }
            if (strProfessional == "")//判断在职业里边是否已经选择
            {
                MessageBox.Show("请在‘职业’处勾上相应的信息!!!", "提示");
                return;
            }
            if (strNowLivingArea == "")//判断在现居住区域里边是否已经选择
            {
                MessageBox.Show("请在‘现居住区域’处勾上相应的信息!!!", "提示");
                return;
            }
            if (strLearnTheWayToTheCase == "")//判断在获取本案途径里边是否已经选择
            {
                MessageBox.Show("请在‘获取本案途径’处勾上相应的信息!!!", "提示");
                return;
            }
            if (strVisitConstitute == "")//判断在来客登记里边是否已经选择
            {
                MessageBox.Show("请在‘来客登记’处勾上相应的信息!!!", "提示");
                return;
            }
            if (strTraffic == "")//判断在交通里边是否已经选择
            {
                MessageBox.Show("请在‘交通’处勾上相应的信息!!!", "提示");
                return;
            }
            if (strRealEstateSituation == "")//判断在置业状况里边是否已经选择
            {
                MessageBox.Show("请在‘置业状况’处勾上相应的信息!!!", "提示");
                return;
            }
            if (strResidentialMortgageLoans == "")//判断在住宅按揭贷款里边是否已经选择
            {
                MessageBox.Show("请在‘住宅按揭贷款’处勾上相应的信息!!!", "提示");
                return;
            }
            if (strHomesBuyersPurpose == "")//判断在置业目的里边是否已经选择
            {
                MessageBox.Show("请在‘置业目的’处勾上相应的信息!!!", "提示");
                return;
            }
            if (strPlanTorealEstatePrice == "")//判断在计划置业价格里边是否已经选择
            {
                MessageBox.Show("请在‘计划置业价格’处勾上相应的信息!!!", "提示");
                return;
            }
            if (strDemandArea == "")//判断在需求面积里边是否已经选择
            {
                MessageBox.Show("请在‘需求面积’处勾上相应的信息!!!", "提示");
                return;
            }
            if (strPaymentWay == "")//判断在付款方式里边是否已经选择
            {
                MessageBox.Show("请在‘付款方式’处勾上相应的信息!!!", "提示");
                return;
            }
            if (strBuyingConsideration == "")//判断在买房考虑因素里边是否已经选择
            {
                MessageBox.Show("请在‘买房考虑因素’处勾上相应的信息!!!", "提示");
                return;
            }

        }

        string strAge = "";
        string strProfessional = "";
        string strNowLivingArea = "";
        string strLearnTheWayToTheCase = "";
        string strVisitConstitute = "";
        string strTraffic = "";
        string strRealEstateSituation = "";
        string strResidentialMortgageLoans = "";
        string strHomesBuyersPurpose = "";
        string strPlanTorealEstatePrice = "";
        string strDemandArea = "";
        string strPaymentWay = "";
        string strBuyingConsideration = "";
        private void checkBox1_Click(object sender, EventArgs e)//一个自定义的公用方法,用来只能在一个panel里边只能有一个CheckBox是选定的
        {
            CheckBox ch1 = sender as CheckBox;
            Control cl = ch1.Parent;
            string strControlName = ch1.Parent.Name;
            foreach (CheckBox ch in cl.Controls)//循环一个容器里边的所有CheckBox控件
            {
                if (ch1.Checked == true)//如果某一个是已经选择,则其他的变为未选择
                {
                    if (ch != ch1)
                    {
                        ch.Checked = false;
                    }
                    else
                    {
                        switch (strControlName)
                        {
                            case "pnlAge":
                                strAge = ch1.Text.ToString();//获取选择的CheckBox的文本
                                break;
                            case "pnlProfessional":
                                strProfessional = ch1.Text.ToString();
                                break;
                            case "pnlNowLivingArea":
                                strNowLivingArea = ch1.Text.ToString();
                                break;
                            case "pnlLearnTheWayToTheCase":
                                strLearnTheWayToTheCase = ch1.Text.ToString();
                                break;
                            case "pnlVisitConstitute":
                                strVisitConstitute = ch1.Text.ToString();
                                break;
                            case "pnlTraffic":
                                strTraffic = ch1.Text.ToString();
                                break;
                            case "pnlRealEstateSituation":
                                strRealEstateSituation = ch1.Text.ToString();
                                break;
                            case "pnlResidentialMortgageLoans":
                                strResidentialMortgageLoans = ch1.Text.ToString();
                                break;
                            case "pnlHomesBuyersPurpose":
                                strHomesBuyersPurpose = ch1.Text.ToString();
                                break;
                            case "pnlPlanTorealEstatePrice":
                                strPlanTorealEstatePrice = ch1.Text.ToString();
                                break;
                            case "pnlDemandArea":
                                strDemandArea = ch1.Text.ToString();
                                break;
                            case "pnlPaymentWay":
                                strPaymentWay = ch1.Text.ToString();
                                break;
                            case "pnlBuyingConsideration":
                                strBuyingConsideration = ch1.Text.ToString();
                                break;
                        }
                    }
                }
            }
        }

        

3.老客登记



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

控件名称

说明

标注(Label)

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

富文本框(RichTextBox)

表格(DataGridView)

文本(TextBox)

按钮(Button)

组容器(GroupBox)

日期控件(DateTimePicker)

下拉框(ComboBox)

功能实现:

第一步:数据库

1、表与关系


表1: 项目信息表(dbo.SYS_ProjectInformation)

Primary Key(主键):  ProjectID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ProjectID

int - Identity

No

项目ID

SortNumber

int

Yes

排序号

ProjectAreaID

int

Yes

属性明细表,项目区域ID

Project_FatherlID

int

Yes

项目信息表,项目级别ID

ProjectName

nchar (20)

Yes

项目名称

PropertyRightProjectName

nchar (20)

Yes

产权项目名称

ProjectCompanyName

nchar (20)

Yes

项目公司名称

ProjectAddress

nchar (50)

Yes

项目座落地址

CaseWhether

bit

Yes

是否结案

CancelWhether

bit

((0))

Yes

有效否

 

表2:  客户信息 (dbo.PW_ClientInformation)

Primary Key(主键):  ClientID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ClientID

int - Identity

No

客户ID

ProjectID

int

Yes

项目信息表,项目ID

ClientNumber

nchar (10)

Yes

客户编号

ClientName

nchar (10)

Yes

客户名称

EarlyVisitIntention

nchar (10)

Yes

初访意向

Gender

nchar (10)

Yes

性别

MaritalStatus

nchar (10)

Yes

婚否

ClientRegistrationWayID

int

Yes

属性明细表,客户登记方式ID

RelationPhone

nchar (15)

Yes

联系电话

ElectronMail

nchar (30)

Yes

电子邮箱

HomeBuyerConsultantID

int

Yes

员工表,置业顾问ID

DateOfVisit

datetime

Yes

来访日期

CommunicationAddress

nchar (50)

Yes

通讯地址

Postcode

nchar (10)

Yes

邮编

IDentityCard

nchar (30)

Yes

身份证号

BirthDay

date

Yes

出生日期

Age

nchar (20)

Yes

年龄

Professional

nchar (20)

Yes

职业

NowLivingArea

nchar (20)

Yes

现居住区域

LearnTheWayToTheCase

nchar (20)

Yes

获取本案途径

VisitConstitute

nchar (20)

Yes

来客构成

Traffic

nchar (20)

Yes

交通

RealEstateSituation

nchar (20)

Yes

置业状况

ResidentialMortgageLoans

nchar (20)

Yes

住宅按揭贷款

HomesBuyersPurpose

nchar (20)

Yes

置业目的

PlanTorealEstatePrice

nchar (20)

Yes

计划置业价格

DemandArea

nchar (20)

Yes

需求面积

PaymentWay

nchar (20)

Yes

付款方式ID

BuyingConsideration

nchar (20)

Yes

买房考虑因素

IncalidOr

bit

((0))

Yes

作废否

表3: 员工表 (dbo. SYS_Staff)

Primary Key(主键):  StaffID

非主键ID值均是外键

列名

数据类型

Nulls?

说明

StaffID

int - Identity

No

员工ID

StaffNumber

nchar (10)

Yes

员工编号

StaffName

nchar (10)

Yes

员工姓名

DepartMentID

int

Yes

所属部门

GenderID

int

Yes

属性明细表,性别ID

Age

int

Yes

年龄

EducationBackgroundID

int

Yes

属性明细表,学历ID

MarryWhether

bit

Yes

婚否

Position

nchar (10)

Yes

职位

ContactPhoneNumber

nchar (15)

Yes

联系电话

ContactAddress

nchar (20)

Yes

联系地址

Notes

nchar (100)

Yes

备注

StaffImage

image

Yes

员工照片

表4: 属性明细表(dbo.SYS_AttributeDetails)

Primary Key(主键):  AttributeDetailsID

列名

数据类型

默认值

Nulls?

说明

AttributeDetailsID

int - Identity

No

属性明细ID

AuttributeSetID

int

Yes

属性集合表,属性集合ID

AuttributeDetailsName

nchar (10)

Yes

属性明细名称

EffectiveWhether

bit

((1))

Yes

有效否

表5:  客户事件记录表 (dbo.PW_ClientEventRecord)

Primary Key(主键):  EventRecordID

非主键ID值均是外键

列名

数据类型

Nulls?

说明

EventRecordID

int - Identity

No

事件记录ID

ClientID

int

Yes

客户信息表,客户ID

RecordDate

datetime

Yes

记录日期

Characteristic

nchar (200)

Yes

特征

explain

nchar (200)

Yes

说明

表6:  客户交往明细表 (dbo.PW_ClientContractDetails)

Primary Key(主键):  ClientContractDetailsID

非主键ID值均是外键

列名

数据类型

Nulls?

说明

ClientContractDetailsID

int - Identity

No

客户交往明细ID

ProjectID

int

Yes

项目信息表,项目ID

ClientID

int

Yes

客户表,客户ID

ContractTime

datetime

Yes

交往时间

DegreeOfInterest

char (10)

Yes

意向程度

InteractionsID

int

Yes

属性明细表,交往方式ID

VisitFormID

int

Yes

属性明细表,来访形态ID

HomeBuyerConsultantID

int

Yes

员工表,置业顾问ID

RecommendedHousingID

int

Yes

房间资源表,推荐房源ID

CommunicationContent

nchar (30)

Yes

交往内容

 

2、具体代码实现

第一步:数据库存储过程

if @type='NewClientRegistration_Load_SelectClient'--根据项目和作废否为假的客户
begin
SELECT     PW_ClientInformation.ClientID, RTRIM(PW_ClientInformation.ClientNumber) AS 序号, RTRIM(PW_ClientInformation.ClientName) AS 客户名称, 
					  RTRIM(PW_ClientInformation.EarlyVisitIntention) AS 初访意向, RTRIM(PW_ClientInformation.Gender) AS 性别, RTRIM(PW_ClientInformation.MaritalStatus) AS 婚否, 
					  PW_ClientInformation.ClientRegistrationWayID, RTRIM(PW_ClientInformation.RelationPhone) AS 联系电话, RTRIM(PW_ClientInformation.ElectronMail) AS Email, 
					  PW_ClientInformation.HomeBuyerConsultantID, RTRIM(PW_ClientInformation.DateOfVisit) AS 来访时间, RTRIM(PW_ClientInformation.CommunicationAddress) AS 通讯地址, 
					  RTRIM(PW_ClientInformation.Postcode) AS 邮编, RTRIM(PW_ClientInformation.IDentityCard) AS 身份证, RTRIM(PW_ClientInformation.BirthDay) AS 出生日期, 
					  RTRIM(SYS_Staff.StaffName) AS 置业顾问, RTRIM(SYS_AttributeDetails.AuttributeDetailsName) as 客户来访方式
FROM         PW_ClientInformation INNER JOIN
					  SYS_Staff ON PW_ClientInformation.HomeBuyerConsultantID = SYS_Staff.StaffID INNER JOIN
					  SYS_AttributeDetails ON PW_ClientInformation.ClientRegistrationWayID = SYS_AttributeDetails.AttributeDetailsID
where PW_ClientInformation.ProjectID=@ProjectID and PW_ClientInformation.IncalidOr=0 
end


if(@type='frmMarketManagement_LaoKeHuDengJi_Load_BindingContactWay')--绑定交往方式
begin
	SELECT     AttributeDetailsID, RTRIM(AuttributeDetailsName) as AuttributeDetailsName
	FROM         SYS_AttributeDetails
	where    AuttributeSetID=9
end

if(@type='frmMarketManagement_LaoKeHuDengJi_Load_BindingVisitForm')--绑定来访形态
begin
	SELECT     AttributeDetailsID, RTRIM(AuttributeDetailsName) as AuttributeDetailsName
	FROM         SYS_AttributeDetails
	where    AuttributeSetID=10
end

if(@type='frmMarketManagement_LaoKeHuDengJi_btnSave_Click')--新增老客记录
begin
	 insert into PW_ClientContractDetails(ClientID, ContractTime, DegreeOfInterest, InteractionsID,
	  VisitFormID, HomeBuyerConsultantID, RecommendedHousing, CommunicationContent)
	 values (@ClientID,@ContractTime,@DegreeOfInterest,@InteractionsID,
	  @VisitFormID,@HomeBuyerConsultantID,@RecommendedHousing,@CommunicationContent)        
end

if(@type='frmMarketManagement_LaoKeHuDengJi_SelectClientHistotyContactInformation')--查询已有记录的客户的具体交往记录
begin
	SELECT     RTRIM(SYS_AttributeDetails_1.AuttributeDetailsName) AS 交往方式, RTRIM(SYS_AttributeDetails.AuttributeDetailsName) AS 来访形态, 
						  PW_ClientContractDetails.ClientContractDetailsID, PW_ClientContractDetails.ClientID, PW_ClientContractDetails.ContractTime
						  AS 交往日期, RTRIM(PW_ClientContractDetails.DegreeOfInterest) AS 意向程度, PW_ClientContractDetails.InteractionsID, 
						  PW_ClientContractDetails.VisitFormID, PW_ClientContractDetails.HomeBuyerConsultantID, 
						  RTRIM(PW_ClientContractDetails.RecommendedHousing) as 推荐房源, RTRIM(PW_ClientContractDetails.CommunicationContent) AS 交往内容, RTRIM(SYS_Staff.StaffName) as 置业顾问
	FROM         PW_ClientContractDetails INNER JOIN
						  SYS_AttributeDetails AS SYS_AttributeDetails_1 ON PW_ClientContractDetails.InteractionsID = SYS_AttributeDetails_1.AttributeDetailsID INNER JOIN
						  SYS_AttributeDetails ON PW_ClientContractDetails.VisitFormID = SYS_AttributeDetails.AttributeDetailsID INNER JOIN
						  SYS_Staff ON PW_ClientContractDetails.HomeBuyerConsultantID = SYS_Staff.StaffID
  where    PW_ClientContractDetails.ClientID=@ClientID
end

 

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

         [OperationContract]
         #region 绑定交往方式
         public DataSet frmMarketManagement_LaoKeHuDengJi_Load_BindingContactWay()
         {
             SqlParameter[] SQLCMDpas = { new SqlParameter("@type", SqlDbType.Char),
                                         
                                          };
             SQLCMDpas[0].Value = "frmMarketManagement_LaoKeHuDengJi_Load_BindingContactWay";
             DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ClientRegistrtion_NewClientRegistration", SQLCMDpas);
             DataSet myDataSet = new DataSet();
             myDataSet.Tables.Add(myDataTable);
             return myDataSet;
         }
         #endregion 

         [OperationContract]
         #region 绑定来访形态
         public DataSet frmMarketManagement_LaoKeHuDengJi_Load_BindingVisitForm()
         {
             SqlParameter[] SQLCMDpas = { new SqlParameter("@type", SqlDbType.Char),
                                         
                                          };
             SQLCMDpas[0].Value = "frmMarketManagement_LaoKeHuDengJi_Load_BindingVisitForm";
             DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ClientRegistrtion_NewClientRegistration", SQLCMDpas);
             DataSet myDataSet = new DataSet();
             myDataSet.Tables.Add(myDataTable);
             return myDataSet;
         }
         #endregion 

         [OperationContract]
         #region 老客登记
         public int frmMarketManagement_LaoKeHuDengJi_btnSave_Click(int intClientID,DateTime dtContractTime,string strDegreeOfInterest,int intInteractionsID,
          int intVisitFormID,int intHomeBuyerConsultantID,string strRecommendedHousing,string strCommunicationContent)
         {
             SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),
                                         new SqlParameter("@ClientID", SqlDbType.Int),
                                         new SqlParameter("@ContractTime", SqlDbType.DateTime),
                                         new SqlParameter("@DegreeOfInterest", SqlDbType.Char),
                                         new SqlParameter("@InteractionsID", SqlDbType.Int),
                                         new SqlParameter("@VisitFormID", SqlDbType.Int),
                                         new SqlParameter("@HomeBuyerConsultantID", SqlDbType.Int),
                                         new SqlParameter("@RecommendedHousing", SqlDbType.NChar),
                                         new SqlParameter("@CommunicationContent", SqlDbType.Char),
                                          };
             SQLCMDpas[0].Value = "frmMarketManagement_LaoKeHuDengJi_btnSave_Click";
             SQLCMDpas[1].Value = intClientID;
             SQLCMDpas[2].Value = dtContractTime;
             SQLCMDpas[3].Value = strDegreeOfInterest;
             SQLCMDpas[4].Value = intInteractionsID;
             SQLCMDpas[5].Value = intVisitFormID;
             SQLCMDpas[6].Value = intHomeBuyerConsultantID;
             SQLCMDpas[7].Value = strRecommendedHousing;
             SQLCMDpas[8].Value = strCommunicationContent;
             return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ClientRegistrtion_NewClientRegistration", SQLCMDpas);
         }
         #endregion


         [OperationContract]
         #region 查询某一客户的交往信息
         public DataSet frmMarketManagement_LaoKeHuDengJi_SelectClientHistotyContactInformation(int intClientID)
         {
             SqlParameter[] SQLCMDpas = { 
                                            new SqlParameter("@type", SqlDbType.Char),
                                            new SqlParameter("@ClientID", SqlDbType.Int),
                                         
                                          };
             SQLCMDpas[0].Value = "frmMarketManagement_LaoKeHuDengJi_SelectClientHistotyContactInformation";
             SQLCMDpas[1].Value = intClientID;
             DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ClientRegistrtion_NewClientRegistration", SQLCMDpas);
             DataSet myDataSet = new DataSet();
             myDataSet.Tables.Add(myDataTable);
             return myDataSet;
         }
         #endregion

 

第三步:界面层(DAL)具体事件和相关代码

        int intProjectID = 0;//全局变量
        public frmMarketManagement_ClientRegistration_OldClientRegistration(int intprojectID)//窗体之间的传值
        {
            intProjectID = intprojectID;//将传过来的值赋给全局变量intProjectID
            InitializeComponent();
        }


        BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ClientRegistrtion_NewClientRegistration.frmMarketManagement_ClientRegistrtion_NewClientRegistrationClient myfrmMarketManagement_ClientRegistrtion_NewClientRegistrationClient =
                           new BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ClientRegistrtion_NewClientRegistration.frmMarketManagement_ClientRegistrtion_NewClientRegistrationClient();//实例化BLL ,以便下边的方法里边调用BLL里边的方法

        int intClientID = 0;//声明全局变量
        private void frmXiaoShouGuanLi_KeHuDengJi_LaoKeHuDengJi_Load(object sender, EventArgs e)
        {
            string[] strEarlyVisitIntention = { "弱", "中", "强" };//定义一个用来绑定cbo意向程度的数组
            cboDegreeOfInterest.Items.AddRange(strEarlyVisitIntention);//将数组添加到cboDegreeOfInterest的项集合里边
            cboDegreeOfInterest.SelectedIndex = 0;//指定cboDegreeOfInterest选择的索引为0,即第一项
            DataTable dtHomeBuyerConsultant = myfrmMarketManagement_ClientRegistrtion_NewClientRegistrationClient.frmXiaoShouGuanLi_XinKeDengJi_Load_BindingHomebuyersconsultant().Tables[0]; 
            DataTable dtContactWay=myfrmMarketManagement_ClientRegistrtion_NewClientRegistrationClient.frmMarketManagement_LaoKeHuDengJi_Load_BindingContactWay().Tables[0];
            DataTable dtVisitForm = myfrmMarketManagement_ClientRegistrtion_NewClientRegistrationClient.frmMarketManagement_LaoKeHuDengJi_Load_BindingVisitForm().Tables[0];
            PublicMethod.SettingComboBox(cboHomeBuyerConsultant, dtHomeBuyerConsultant, "StaffID", "StaffName", true);//调用自定义绑定方法绑定cboHomeBuyerConsultant
            PublicMethod.SettingComboBox(cboContactWay, dtContactWay, "AttributeDetailsID", "AuttributeDetailsName", true);//调用自定义绑定方法绑定cboHomeBuyerConsultant
            PublicMethod.SettingComboBox(cboVisitForm, dtVisitForm, "AttributeDetailsID", "AuttributeDetailsName", true);//调用自定义绑定方法绑定cboHomeBuyerConsultant
        }

        private void btnSave_Click(object sender, EventArgs e)//单击保存按钮的事件
        {
            DateTime dtContractTime=Convert.ToDateTime(dtpContactDate.Value);
            string strDegreeOfInterest=cboDegreeOfInterest.Text.ToString().Trim();//获取界面文本的信息
            int intInteractionsID=Convert.ToInt32(cboContactWay.SelectedValue);
            int intVisitFormID = Convert.ToInt32(cboVisitForm.SelectedValue);
            int intHomeBuyerConsultantID=Convert.ToInt32(cboHomeBuyerConsultant.SelectedValue);
            string strRecommendedHousing = txtRecommendedhousing.Text;
            string strCommunicationContent=rtxtCommunicationContent.Text.ToString().Trim();
            int intSaveSuccess = myfrmMarketManagement_ClientRegistrtion_NewClientRegistrationClient.frmMarketManagement_LaoKeHuDengJi_btnSave_Click(intClientID,dtContractTime,
                strDegreeOfInterest,intInteractionsID,intVisitFormID,intHomeBuyerConsultantID,strRecommendedHousing,strCommunicationContent);//执行新增交往信息
            if (intSaveSuccess > 0)//当成功新增的时候
            {
                DateTime dtmOperatingTime = DateTime.Now;
                PublicMethod.Pub_InsertClientEventRecord(intClientID, dtmOperatingTime, "客户交往", "老客户交往记录");//调用自定义公用方法,新增客户重要事件记录
                MessageBox.Show("新增成功!!");
                cboDegreeOfInterest.SelectedIndex = 0;
                cboContactWay.SelectedIndex = 0;
                cboVisitForm.SelectedIndex = 0;
                cboHomeBuyerConsultant.SelectedIndex = 0;
                txtRecommendedhousing.Text = "";
                rtxtCommunicationContent.Text = "";
            }
            else if (MessageBox.Show("很遗憾,新增失败,请正确录入数据后再新增数据", "是否退出界面", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
            {
                this.Dispose();
            }
            else
            {
                return;
            }
        }

        string strRowFilter = "";
        private void btnSelect_Click(object sender, EventArgs e)
        {
            strRowFilter = txtNameAndPhone.Text.ToString().Trim();
            DataView dvClient;
            DataTable dtClient = myfrmMarketManagement_ClientRegistrtion_NewClientRegistrationClient.NewClientRegistration_Load_SelectClient(intProjectID).Tables[0];
            dvClient = new DataView(dtClient);
            dvClient.RowFilter = "客户名称 like '%" + strRowFilter + "%'" +" or "+"联系电话 like '%" + strRowFilter + "%'";//根据字符串里边的信息过滤
            dtClient = dvClient.ToTable();
            dgvClientInformation.DataSource = dtClient;
            if (dgvClientInformation.Rows.Count>0)
            {
                dgvClientInformation.Visible = true;
            }
            else
            {
                if (MessageBox.Show("无法查询到此客户的信息,是否启用新增客户", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)//如果没有相关的客户的信息则提示是否新增
                {
                    frmMarketManagement_ClientRegistrtion_NewClientRegistration myfrmXiaoShouGuanLi_KeHuDengJi_XinKeDengJi = new frmMarketManagement_ClientRegistrtion_NewClientRegistration(null);//实例化新增客户的窗体
                    myfrmXiaoShouGuanLi_KeHuDengJi_XinKeDengJi.ShowDialog();
                }
                else
                {
                    return;
                }
            }
        }

        private void dgvClientInformation_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)//dgvClientInformation的双击事件,用来绑定某一个客户
        {
            txtClientName.Text=dgvClientInformation.CurrentRow.Cells["客户名称"].Value.ToString();//把选择的客户的信息绑定到文本框上面显示出来
            txtClientNumber.Text = dgvClientInformation.CurrentRow.Cells["序号"].Value.ToString();
            txtContactPhoneNumber.Text = dgvClientInformation.CurrentRow.Cells["联系电话"].Value.ToString();
            txtDegreeOfInterest.Text = dgvClientInformation.CurrentRow.Cells["初访意向"].Value.ToString();
            txtGender.Text = dgvClientInformation.CurrentRow.Cells["性别"].Value.ToString();
            txtHomebuyersconsultant.Text = dgvClientInformation.CurrentRow.Cells["置业顾问1"].Value.ToString();
            txtWay.Text = dgvClientInformation.CurrentRow.Cells["客户来访方式"].Value.ToString();
            dtpVisitingDate.Value =Convert.ToDateTime(dgvClientInformation.CurrentRow.Cells["来访时间"].Value);//绑定事件控件的值
            cboHomeBuyerConsultant.SelectedValue = (int)dgvClientInformation.CurrentRow.Cells["HomeBuyerConsultantID1"].Value;//绑定cboHomeBuyerConsultant选定的值
            intClientID = Convert.ToInt32(dgvClientInformation.CurrentRow.Cells["ClientID"].Value);
            dgvClientInformation.Visible = false;//设置dgvClientInformation的可见性为假
            DataTable dtClientHistotyContactInformation = myfrmMarketManagement_ClientRegistrtion_NewClientRegistrationClient.frmMarketManagement_LaoKeHuDengJi_SelectClientHistotyContactInformation(intClientID).Tables[0];
            dgvClientHistoryRecord.DataSource = dtClientHistotyContactInformation;//绑定dgvClientHistoryRecord的数据源
        }

        private void dgvClientInformation_MouseLeave(object sender, EventArgs e)//dgvClientInformation的鼠标离开的事件,当鼠标离开dgvClientInformation的时候执行
        {
            dgvClientInformation.Visible = false;//设置dgvClientInformation的可见性为假
        }

4.来电登记



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

控件名称

说明

标注(Label)

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

选项卡(TabControl)

复选框(CheckBox)

单选按钮(RadioButton)

文本(TextBox)

按钮(Button)

日期控件(DateTimePicker)

下拉框(ComboBox)

功能实现:

第一步:数据库

1、表与关系



在来电登记里边的大部分知识点都是和新客登记里边的差不多,在这里就没有过多的详细说明,来电登记里边除了登记方式不大一样之外,其他的代码和新客登记完全相同。

5.线索登记


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

控件名称

说明

标注(Label)

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

选项卡(TabControl)

复选框(CheckBox)

单选按钮(RadioButton)

文本(TextBox)

按钮(Button)

日期控件(DateTimePicker)

下拉框(ComboBox)

功能实现:

第一步:数据库

1、表与关系



在线索登记里边的大部分知识点都是和新客登记里边的差不多,在这里就没有过多的详细说明,线索登记里边除了登记方式不大一样之外,其他的代码和新客登记完全相同。


本文章只用于学习用途,如用于商业用途




后果自负














猜你喜欢

转载自blog.csdn.net/GX_BUG/article/details/46430859