新锐房地产销售管理系统(部分流程)技术解析(七) 销售管理_认筹管理

1.认筹管理主界面

     具体视图如下:


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

控件名称

说明

标注(Label)

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

选项卡(TabControl)

复选框(CheckBox)

单选按钮(RadioButton)

文本(TextBox)

按钮(Button)

菜单(ToolStripMenuItem)

工具栏(ToolStrip)

组容器(GroupBox)

表格(DataGridView)

功能实现:

第一步:数据库

1、表与关系



表1: 房间资源表(dbo.SYS_RoomResource)

Primary Key(主键):  RoomResourcesID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

RoomResourcesID

int - Identity

No

房间资源ID

FloorID

int

Yes

楼栋信息表,楼栋ID

TheCodeModelID

int

Yes

属性明细表,代码模式ID

Number

nchar (10)

Yes

编号

UnitNumberID

int

Yes

单元表,单元ID

FloorStotey

nchar (10)

Yes

楼层

RoomCategoryID

int

Yes

属性明细表,房间类别ID

TowardID

int

Yes

属性明细表,朝向ID

DoorModelID

int

Yes

属性明细表,户型ID

RoomTypeID

int

Yes

属性明细表,房间类型ID

RoomLandScapeID

int

Yes

属性明细表,房间景观ID

RoomSpecialID

int

Yes

属性明细表,房间特殊ID

ConstructionArea

decimal (18, 2)

Yes

建筑面积

PricateArea

decimal (18, 2)

Yes

私有面积

PublicArea

decimal (18, 2)

Yes

公摊面积

Usage

decimal (18, 2)

Yes

使用率

TheUnitPrice

decimal (18, 2)

Yes

标价单价

BidPrice

decimal (18, 2)

Yes

标价总价

NumberOfPrice

nchar (10)

Yes

价格次数

SalesStatusID

int

((102))

Yes

属性明细表,销售状态ID

BriefNote

nchar (30)

Yes

简要备注

SchematicDiagram

image

Yes

示意图

Chart

image

Yes

效果图

表2: 楼栋信息表(dbo.SYS_FloorInformation)

Primary Key(主键):  FloorID

非主键ID值均是外键

(这里因为在这个表里边没有设置有默认值,所以没有默认值的那一列)

列名

数据类型

Nulls?

说明

FloorID

int - Identity

No

楼栋ID

ProjectID

int

Yes

项目信息表,项目ID

FloorStructureID

int

Yes

属性明细表,楼栋结构ID

OpenBatchID

int

Yes

属性明细表,开盘批次ID

LaunchSituationID

int

Yes

属性明细表,推出情况ID

OpeningSituationID

int

Yes

属性明细表,开盘情况ID

FloorLevelID

int

Yes

楼栋级别ID

SortNumber

nchar (10)

Yes

序号

FloorName

nchar (20)

Yes

楼栋名称

PropertyRightFloorName

nchar (20)

Yes

产权楼栋名称

FloorStorey

nchar (10)

Yes

楼栋层数

LaunchDate

datetime

Yes

推出日期

DoMortgageDate

datetime

Yes

具备办按揭日期

CapsDate

datetime

Yes

封顶日期

AccumulationFundDate

datetime

Yes

具备办公积金日期

ExpectedPayDate

datetime

Yes

预计交房日期

PropertyRightDate

datetime

Yes

具备办产权日期

MakingRoomDate

datetime

Yes

交房日期

表3:  客户信息 (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

作废否

表4: 预留表 (dbo. PW_SeserveUnit)

Primary Key(主键):  SeserveUnitID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

SeserveUnitID

int - Identity

No

预留单元ID

ClientID

int

Yes

客户信息表,客户ID

FloorID

int

Yes

楼栋信息表,楼栋ID

UnitNumberID

int

Yes

房间资源表,房间单元ID

RoomNumeral

nchar (10)

Yes

房间排号

PresalseArea

decimal (18, 2)

Yes

预售面积

SeservationUnitPrice

decimal (18, 2)

Yes

预留单价

BookingSeservationPrice

decimal (18, 2)

Yes

预留总价

AccountsReceivableBookingGoid

money

Yes

应收预约金

SeservatingDate

datetime

Yes

预留日期

ValidDate

datetime

Yes

有效日期

BriefNote

nchar (100)

Yes

简要备注

AuditDate

datetime

Yes

审核日期

NewSeserveUnitID

int

Yes

预留表,新的预留ID

ChangeReason

int

Yes

变更原因

IncalidOr

bit

((0))

Yes

作废否

表5: 认筹表 (dbo. PW_ClientConfessToRaise)

Primary Key(主键):  ClientConfessToRaiseID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ClientConfessToRaiseID

int - Identity

No

客户认筹ID

ClientID

int

Yes

客户信息表,客户ID

RaiseNumeralRecognition

nchar (10)

Yes

认筹排号

TheOrderNumber

nchar (10)

Yes

订单号

ConfessToRaiseClassificationID

int

Yes

属性明细表,筹卡分类ID

AccountsReceivableAppointmentGold

money

Yes

应收预约金

ConfesstoraiseDate

datetime

Yes

认筹日期

EffectiveDate

datetime

Yes

有效日期

IntentionUnitInstructions

nchar (10)

Yes

意向单元说明

Note

nchar (30)

Yes

备注

ToSeserve

bit

((0))

Yes

转预留否

SeserveID

int

Yes

预留表,预留ID

AuditWhether

bit

((0))

Yes

审核否

IncalidWhether

bit

((0))

Yes

作废否

AfterUpdateID

int

Yes

认筹表,修改后ID

表6: 员工表 (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

员工照片

表7:  客户事件记录表 (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

说明

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

Primary Key(主键):  AttributeDetailsID

列名

数据类型

默认值

Nulls?

说明

AttributeDetailsID

int - Identity

No

属性明细ID

AuttributeSetID

int

Yes

属性集合表,属性集合ID

AuttributeDetailsName

nchar (10)

Yes

属性明细名称

EffectiveWhether

bit

((1))

Yes

有效否

表9: 销售服务关键流程明细表(dbo. PW_SalesOfServiceFloowDetail)

Primary Key(主键):  FloowDetailID

列名

数据类型

默认值

Nulls?

说明

FloowDetailID

int - Identity

No

销售服务流程明细

BriefNote

nchar (200)

Yes

简要备注

RoomResourceID

int

Yes

房间资源表,房源ID

OperatingType

int

Yes

操作类型

ReserveID

int

Yes

预定表,预定ID

KeepID

int

Yes

保留表,保留ID

ClientConfessToRaiseID

int

Yes

认筹表,认筹ID

Confiscated

int

Yes

没收房源表,没收ID

Signing

int

Yes

签约表,签约ID

OperatingTime

datetime

Yes

操作时间

OperatingPeople

int

Yes

操作人

EffectiveWeather

bit

((1))

Yes

有效否

2、具体的代码实现

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

 

IF @Type='ConfessToRaiseManagement_Load_SelectConfessToRaiseMsg'  --Load事件查询认筹信息
BEGIN
SELECT     PW_ClientConfessToRaise.ClientConfessToRaiseID, PW_ClientConfessToRaise.ClientID, RTRIM(PW_ClientConfessToRaise.RaiseNumeralRecognition) AS RaiseNumeralRecognition, 
                      RTRIM(PW_ClientConfessToRaise.TheOrderNumber) AS TheOrderNumber, RTRIM(PW_ClientConfessToRaise.AccountsReceivableAppointmentGold) AS AccountsReceivableAppointmentGold, 
                      RTRIM(PW_ClientConfessToRaise.ConfesstoraiseDate) AS ConfesstoraiseDate, RTRIM(PW_ClientConfessToRaise.EffectiveDate) AS EffectiveDate, 
                      RTRIM(PW_ClientConfessToRaise.IntentionUnitInstructions) AS IntentionUnitInstructions, RTRIM(PW_ClientConfessToRaise.Note) AS Note, RTRIM(SYS_AttributeDetails.AuttributeDetailsName) 
                      AS ConfessToRaiseClassification, PW_ClientConfessToRaise.ConfessToRaiseClassificationID, RTRIM(PW_ClientInformation.ClientName) AS ClientName, 
                      RTRIM(PW_ClientInformation.ClientNumber) AS ClientNumber, RTRIM(PW_ClientInformation.RelationPhone) AS RelationPhone, RTRIM(PW_ClientInformation.CommunicationAddress) 
                      AS CommunicationAddress, RTRIM(PW_ClientInformation.Postcode) AS Postcode, RTRIM(SYS_Staff.StaffName) AS HomeBuyerConsultant, PW_ClientInformation.HomeBuyerConsultantID, 
                      (CASE WHEN PW_ClientConfessToRaise.AuditWhether = 0 THEN '未审核' WHEN PW_ClientConfessToRaise.AuditWhether = 1 THEN '已审核' END) AS 审核否, 
                      (CASE WHEN PW_ClientConfessToRaise.ToSeserve = 0 THEN '未转预留' WHEN PW_ClientConfessToRaise.ToSeserve = 1 THEN '已转预留' END) AS 转预留否, 
                      PW_ClientInformation.ProjectID
FROM         PW_ClientConfessToRaise INNER JOIN
                      PW_ClientInformation ON PW_ClientConfessToRaise.ClientID = PW_ClientInformation.ClientID INNER JOIN
                      SYS_AttributeDetails ON PW_ClientConfessToRaise.ConfessToRaiseClassificationID = SYS_AttributeDetails.AttributeDetailsID INNER JOIN
                      SYS_Staff ON PW_ClientInformation.HomeBuyerConsultantID = SYS_Staff.StaffID
where PW_ClientConfessToRaise.IncalidWhether=0
END

if @Type='tsbtnAudit_Click_UpdateConfessToRaise'  --审核认筹
begin
UPDATE    PW_ClientConfessToRaise
SET              AuditWhether = 1
WHERE     (ClientConfessToRaiseID = @ClientConfessToRaiseID)
end

if @Type='ConfessToRaiseManagement_Load_BindingdgvProject'  --绑定dgvProject
begin 
SELECT     ProjectID, rtrim(SortNumber) as SortNumber, rtrim(ProjectName) as ProjectName
FROM         SYS_ProjectInformation
end

if @Type='dgvProject_CellMouseClick_BindingtscboFloor'  --根据项目查询楼栋
begin
SELECT     FloorID, rtrim(FloorName) as FloorName
FROM         SYS_FloorInformation
where   SYS_FloorInformation.ProjectID=@ProjectID
end

IF @Type='ConfessToRaiseManagement_Load_SelectSeserveMsg_MultiSelect' --  不定条件查询预留信息
begin
declare @sql nvarchar(1000)='',@row int=0
IF 1=1
  SET   @sql=(@PageNumber - 1) * @PageRowNumber
  SET		@row=@PageNumber*@PageRowNumber
if @sqlProjectID != ''
  set  @sql = @sql + ' AND ProjectID='''+rtrim(@sqlProjectID)+ ''''   --条件的拼接
if @sqlFloorID != ''
  set  @sql = @sql + ' AND FloorID='''+rtrim(@sqlFloorID)+ ''''
if @sqlAuditWeather !=''
  set  @sql = @sql + ' AND 审核否='''+rtrim(@sqlAuditWeather)+''''

EXEC (
'with CTE as (
SELECT TOP '+@row+
        'SYS_ProjectInformation.ProjectID, SYS_ProjectInformation.ProjectName, SYS_FloorInformation.FloorID, SYS_FloorInformation.FloorName, SYS_RoomResources.RoomResourcesID, 
                      SYS_RoomResources.Number, PW_ClientInformation.ClientID, PW_ClientInformation.ClientName, PW_ClientInformation.RelationPhone, PW_ClientInformation.CommunicationAddress, 
                      PW_ClientInformation.IDentityCard, PW_ClientInformation.Postcode, PW_ClientInformation.HomeBuyerConsultantID, SYS_Staff.StaffName AS HomeBuyerConsultant, 
                      PW_SeserveUnit.RoomNumeral, PW_SeserveUnit.PresalseArea, PW_SeserveUnit.SeservationUnitPrice, PW_SeserveUnit.BookingSeservationPrice, 
                      PW_SeserveUnit.AccountsReceivableBookingGoid, PW_SeserveUnit.SeservatingDate, PW_SeserveUnit.ValidDate, PW_SeserveUnit.BriefNote, PW_SeserveUnit.AuditDate, 
                      PW_ClientInformation.Gender, (CASE WHEN PW_SeserveUnit.AuditDate IS NULL THEN '+ '''未审核''' + ' WHEN PW_SeserveUnit.AuditDate IS NOT NULL THEN '+''' 已审核''' +'END) AS 审核否, 
                      PW_ClientConfessToRaise.ClientConfessToRaiseID,
                      PW_SeserveUnit.SeserveUnitID,
                      ROW_NUMBER () Over (Order by PW_SeserveUnit.SeserveUnitID) as _Row_Number
FROM         PW_ClientInformation INNER JOIN
                      PW_SeserveUnit ON PW_ClientInformation.ClientID = PW_SeserveUnit.ClientID INNER JOIN
                      SYS_Staff ON PW_ClientInformation.HomeBuyerConsultantID = SYS_Staff.StaffID LEFT OUTER JOIN
                      PW_ClientConfessToRaise ON PW_SeserveUnit.SeserveUnitID = PW_ClientConfessToRaise.SeserveID LEFT OUTER JOIN
                      SYS_RoomResources ON PW_SeserveUnit.UnitNumberID = SYS_RoomResources.RoomResourcesID LEFT OUTER JOIN
                      SYS_ProjectInformation INNER JOIN
                      SYS_FloorInformation ON SYS_ProjectInformation.ProjectID = SYS_FloorInformation.ProjectID ON PW_SeserveUnit.FloorID = SYS_FloorInformation.FloorID
WHERE     (PW_SeserveUnit.IncalidOr = 0)
)
select ProjectID,rtrim(ProjectName) as ProjectName,FloorID,rtrim(FloorName) as FloorName,RoomResourcesID,rtrim(Number) as Number,ClientID,rtrim(ClientName) as ClientName,rtrim(RelationPhone) as RelationPhone,rtrim(CommunicationAddress) as CommunicationAddress,rtrim(IDentityCard) as IDentityCard,
       rtrim(Postcode) as Postcode,HomeBuyerConsultantID,rtrim(HomeBuyerConsultant) as HomeBuyerConsultant,rtrim(RoomNumeral) as RoomNumeral,rtrim(PresalseArea) as PresalseArea, rtrim(SeservationUnitPrice) as SeservationUnitPrice,rtrim(BookingSeservationPrice) as BookingSeservationPrice, rtrim(Gender) as Gender,       
       rtrim(AccountsReceivableBookingGoid) as AccountsReceivableBookingGoid,rtrim(SeservatingDate) as SeservatingDate,ValidDate, rtrim(BriefNote) as BriefNote, rtrim(AuditDate) as AuditDate, 审核否,SeserveUnitID,_Row_Number,ClientConfessToRaiseID
from CTE
 ' +  ' where _ROW_NUMBER >'+ @sql 
 )
return
end

IF @Type='ConfessToRaiseManagement_Load_SelectSeserve_getTotalRowsCount'  --查询相应的行数
begin
declare @sql1 nvarchar(1000)='',@row1 int=0
IF 1=1 
  --SET   @sql1=(@PageNumber - 1) * @PageRowNumber
  SET		@row1=@PageNumber*@PageRowNumber
if @sqlProjectID != ''
  set  @sql1 = @sql1 + ' AND ProjectID=''' + rtrim(@sqlProjectID) + ''''
if @sqlFloorID != ''
  set  @sql1 = @sql1 + ' AND FloorID=''' + rtrim(@sqlFloorID) + ''''
if @sqlAuditWeather !=''
  set  @sql1 = @sql1 + ' AND 审核否=''' + rtrim(@sqlAuditWeather) + ''''
EXEC (
'with CTE as (
SELECT SYS_ProjectInformation.ProjectID, SYS_ProjectInformation.ProjectName, SYS_FloorInformation.FloorID, SYS_FloorInformation.FloorName, SYS_RoomResources.RoomResourcesID, 
                      SYS_RoomResources.Number, PW_ClientInformation.ClientID, PW_ClientInformation.ClientName, PW_ClientInformation.RelationPhone, PW_ClientInformation.CommunicationAddress, 
                      PW_ClientInformation.IDentityCard, PW_ClientInformation.Postcode, PW_ClientInformation.HomeBuyerConsultantID, SYS_Staff.StaffName AS HomeBuyerConsultant, 
                      PW_SeserveUnit.RoomNumeral, PW_SeserveUnit.PresalseArea, PW_SeserveUnit.SeservationUnitPrice, PW_SeserveUnit.BookingSeservationPrice, 
                      PW_SeserveUnit.AccountsReceivableBookingGoid, PW_SeserveUnit.SeservatingDate, PW_SeserveUnit.ValidDate, PW_SeserveUnit.BriefNote, PW_SeserveUnit.AuditDate, 
                      PW_ClientInformation.Gender, (CASE WHEN PW_SeserveUnit.AuditDate IS NULL THEN '+ '''未审核''' + ' WHEN PW_SeserveUnit.AuditDate IS NOT NULL THEN '+''' 已审核''' +'END) AS 审核否, 
                      PW_ClientConfessToRaise.ClientConfessToRaiseID,
                      PW_SeserveUnit.SeserveUnitID,
                      ROW_NUMBER () Over (Order by PW_SeserveUnit.SeserveUnitID) as _Row_Number
FROM         PW_ClientInformation INNER JOIN
                      PW_SeserveUnit ON PW_ClientInformation.ClientID = PW_SeserveUnit.ClientID INNER JOIN
                      SYS_Staff ON PW_ClientInformation.HomeBuyerConsultantID = SYS_Staff.StaffID LEFT OUTER JOIN
                      PW_ClientConfessToRaise ON PW_SeserveUnit.SeserveUnitID = PW_ClientConfessToRaise.SeserveID LEFT OUTER JOIN
                      SYS_RoomResources ON PW_SeserveUnit.UnitNumberID = SYS_RoomResources.RoomResourcesID LEFT OUTER JOIN
                      SYS_ProjectInformation INNER JOIN
                      SYS_FloorInformation ON SYS_ProjectInformation.ProjectID = SYS_FloorInformation.ProjectID ON PW_SeserveUnit.FloorID = SYS_FloorInformation.FloorID
WHERE     (PW_SeserveUnit.IncalidOr = 0)
)
select COUNT(*)  as  行数
from CTE
 ' +  ' where 1=1   '+ @sql1
 )
return
end

IF @Type='ConfessToRaiseManagement_Load_MultiSelectConfessToRaiseMsg'  --不定条件查询认筹信息
BEGIN
IF 1=1
  SET   @sql=(@PageNumber - 1) * @PageRowNumber
  SET		@row=@PageNumber*@PageRowNumber
if @sqlAuditWeather !=''
  set  @sql = @sql + ' AND 审核否='''+rtrim(@sqlAuditWeather)+''''
if @sqlToSeserveWeather !=''
  set  @sql = @sql + ' AND 转预留否='''+rtrim(@sqlToSeserveWeather)+''''

EXEC (
'with CTE as (
SELECT TOP '+@row+
        'PW_ClientConfessToRaise.ClientConfessToRaiseID, PW_ClientConfessToRaise.ClientID, PW_ClientConfessToRaise.RaiseNumeralRecognition, PW_ClientConfessToRaise.TheOrderNumber, 
                      PW_ClientConfessToRaise.AccountsReceivableAppointmentGold, PW_ClientConfessToRaise.ConfesstoraiseDate, PW_ClientConfessToRaise.EffectiveDate, 
                      PW_ClientConfessToRaise.IntentionUnitInstructions, PW_ClientConfessToRaise.Note, SYS_AttributeDetails.AuttributeDetailsName AS ConfessToRaiseClassification, 
                      PW_ClientConfessToRaise.ConfessToRaiseClassificationID, PW_ClientInformation.ClientName, PW_ClientInformation.ClientNumber, PW_ClientInformation.RelationPhone, 
                      PW_ClientInformation.CommunicationAddress, PW_ClientInformation.Postcode, SYS_Staff.StaffName AS HomeBuyerConsultant, PW_ClientInformation.HomeBuyerConsultantID, 
                      (CASE WHEN PW_ClientConfessToRaise.AuditWhether = 0 THEN '+'''未审核'''+' WHEN PW_ClientConfessToRaise.AuditWhether = 1 THEN '+'''已审核'''+' END) AS 审核否, 
                      (CASE WHEN PW_ClientConfessToRaise.ToSeserve = 0 THEN '+'''未转预留'''+' WHEN PW_ClientConfessToRaise.ToSeserve = 1 THEN '+'''已转预留'''+' END) AS 转预留否, 
                      PW_ClientInformation.ProjectID,
                      ROW_NUMBER () Over (Order by PW_ClientConfessToRaise.ClientConfessToRaiseID) as _Row_Number
FROM         PW_ClientConfessToRaise INNER JOIN
                      PW_ClientInformation ON PW_ClientConfessToRaise.ClientID = PW_ClientInformation.ClientID INNER JOIN
                      SYS_AttributeDetails ON PW_ClientConfessToRaise.ConfessToRaiseClassificationID = SYS_AttributeDetails.AttributeDetailsID INNER JOIN
                      SYS_Staff ON PW_ClientInformation.HomeBuyerConsultantID = SYS_Staff.StaffID
where (PW_ClientConfessToRaise.IncalidWhether=0)
)
select   ClientConfessToRaiseID,ClientID,rtrim(RaiseNumeralRecognition) as RaiseNumeralRecognition,rtrim(TheOrderNumber) as TheOrderNumber,rtrim(AccountsReceivableAppointmentGold) as AccountsReceivableAppointmentGold,  ConfesstoraiseDate, EffectiveDate,
         rtrim(IntentionUnitInstructions) as IntentionUnitInstructions,rtrim(Note) as Note,rtrim(ConfessToRaiseClassification) as ConfessToRaiseClassification,ConfessToRaiseClassificationID,rtrim(ClientName) as ClientName,rtrim(ClientNumber) as ClientNumber,rtrim(RelationPhone) as RelationPhone, 
         rtrim(CommunicationAddress) as CommunicationAddress,rtrim(Postcode) as Postcode, rtrim(HomeBuyerConsultant) as HomeBuyerConsultant,HomeBuyerConsultantID,审核否, 转预留否,ProjectID
from CTE
 ' +  ' where _ROW_NUMBER >'+ @sql 
 )
return
END

IF @Type='ConfessToRaiseManagement_Load_ConfessToRaiseMsg_getTotalRowsCount'  --查询认筹总行数
BEGIN
IF 1=1
  --SET   @sql=(@PageNumber - 1) * @PageRowNumber
  SET		@row=@PageNumber*@PageRowNumber
if @sqlAuditWeather !=''
  set  @sql = @sql + ' AND 审核否='''+rtrim(@sqlAuditWeather)+''''
if @sqlToSeserveWeather !=''
  set  @sql = @sql + ' AND 转预留否='''+rtrim(@sqlToSeserveWeather)+''''
EXEC (
'with CTE as (
SELECT PW_ClientConfessToRaise.ClientConfessToRaiseID, PW_ClientConfessToRaise.ClientID, PW_ClientConfessToRaise.RaiseNumeralRecognition, PW_ClientConfessToRaise.TheOrderNumber, 
                      PW_ClientConfessToRaise.AccountsReceivableAppointmentGold, PW_ClientConfessToRaise.ConfesstoraiseDate, PW_ClientConfessToRaise.EffectiveDate, 
                      PW_ClientConfessToRaise.IntentionUnitInstructions, PW_ClientConfessToRaise.Note, SYS_AttributeDetails.AuttributeDetailsName AS ConfessToRaiseClassification, 
                      PW_ClientConfessToRaise.ConfessToRaiseClassificationID, PW_ClientInformation.ClientName, PW_ClientInformation.ClientNumber, PW_ClientInformation.RelationPhone, 
                      PW_ClientInformation.CommunicationAddress, PW_ClientInformation.Postcode, SYS_Staff.StaffName AS HomeBuyerConsultant, PW_ClientInformation.HomeBuyerConsultantID, 
                      (CASE WHEN PW_ClientConfessToRaise.AuditWhether = 0 THEN '+'''未审核'''+' WHEN PW_ClientConfessToRaise.AuditWhether = 1 THEN '+'''已审核'''+' END) AS 审核否, 
                      (CASE WHEN PW_ClientConfessToRaise.ToSeserve = 0 THEN '+'''未转预留'''+' WHEN PW_ClientConfessToRaise.ToSeserve = 1 THEN '+'''已转预留'''+' END) AS 转预留否, 
                      PW_ClientInformation.ProjectID,
                      ROW_NUMBER () Over (Order by PW_ClientConfessToRaise.ClientConfessToRaiseID) as _Row_Number
FROM         PW_ClientConfessToRaise INNER JOIN
                      PW_ClientInformation ON PW_ClientConfessToRaise.ClientID = PW_ClientInformation.ClientID INNER JOIN
                      SYS_AttributeDetails ON PW_ClientConfessToRaise.ConfessToRaiseClassificationID = SYS_AttributeDetails.AttributeDetailsID INNER JOIN
                      SYS_Staff ON PW_ClientInformation.HomeBuyerConsultantID = SYS_Staff.StaffID
where (PW_ClientConfessToRaise.IncalidWhether=0)
)
select    COUNT(*) as  行数
from CTE
 ' +  ' where 1=1  '+ @sql 
 )
return
END

if @Type='tsbtnAuditSeserve_Click_UpdateSeserve'  --审核预留
begin
UPDATE    PW_SeserveUnit
SET              AuditDate = @AuditDate
where   PW_SeserveUnit.SeserveUnitID=@SeserveUnitID
end

if @Type='tsbtnReturnConfessToRaise_Click_UpdateConfessToRaise' --退筹
begin
UPDATE    PW_ClientConfessToRaise
SET              IncalidWhether = 1
where  PW_ClientConfessToRaise.ClientConfessToRaiseID=@ClientConfessToRaiseID
end

if @Type='tsbtnDeleteSeserve_Click_Update' --删除预留
begin
UPDATE    PW_SeserveUnit
SET              IncalidOr = 1
where  PW_SeserveUnit.SeserveUnitID=@SeserveUnitID
end

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

         DALPublic.DALPublic myDALPublic = new DALPublic.DALPublic();
        
         
         [OperationContract]
         #region 绑定认筹信息
         public DataSet ConfessToRaiseManagement_Load_SelectConfessToRaiseMsg()
         {
             SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),
                                          };
             SQLCMDpas[0].Value = "ConfessToRaiseManagement_Load_SelectConfessToRaiseMsg";
             DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ConfessToRaiseManagement", SQLCMDpas);
             DataSet myDataSet = new DataSet();
             myDataSet.Tables.Add(myDataTable);
             return myDataSet;
         }
         #endregion 
        
         [OperationContract]
         #region 修改某条认筹信息审核否
         public int tsbtnAudit_Click_UpdateConfessToRaise(int intClientConfessToRaiseID)
         {
             SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                           new SqlParameter("@ClientConfessToRaiseID", SqlDbType.Int),
                                          };
             SQLCMDpas[0].Value = "tsbtnAudit_Click_UpdateConfessToRaise";
             SQLCMDpas[1].Value = intClientConfessToRaiseID;
             return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ConfessToRaiseManagement", SQLCMDpas);

         }
         #endregion 
        
      
        
         [OperationContract]
         #region 绑定dgvProject
         public DataSet ConfessToRaiseManagement_Load_BindingdgvProject()
         {
             SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),
                                          };
             SQLCMDpas[0].Value = "ConfessToRaiseManagement_Load_BindingdgvProject";
             DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ConfessToRaiseManagement", SQLCMDpas);
             DataSet myDataSet = new DataSet();
             myDataSet.Tables.Add(myDataTable);
             return myDataSet;
         }
         #endregion 
        
         [OperationContract]
         #region 条件bandingtscboFloor
         public DataSet dgvProject_CellMouseClick_BindingtscboFloor(int intProjectID)
         {
             SqlParameter[] SQLCMDpas = { 
                                            new SqlParameter("@Type", SqlDbType.Char),
                                            new SqlParameter("@ProjectID", SqlDbType.Int),
                                          };
             SQLCMDpas[0].Value = "dgvProject_CellMouseClick_BindingtscboFloor";
             SQLCMDpas[1].Value = intProjectID;
             DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ConfessToRaiseManagement", SQLCMDpas);
             DataSet myDataSet = new DataSet();
             myDataSet.Tables.Add(myDataTable);
             return myDataSet;
         }
         #endregion 
                 
         [OperationContract]
         #region  不定条件绑定预留信息
         public DataSet ConfessToRaiseManagement_Load_SelectSeserveMsg_MultiSelect(string strPageNumber, string strPageRowNumber, string strsqlProjectID, string  strsqlFloorID, string strsqlAuditWeather)
         {
             SqlParameter[] SQLCMDpas = { 
                                            new SqlParameter("@Type", SqlDbType.Char),
                                            new SqlParameter("@PageNumber", SqlDbType.Char),
                                            new SqlParameter("@PageRowNumber", SqlDbType.Char),
                                            new SqlParameter("@sqlProjectID", SqlDbType.Char),
                                            new SqlParameter("@sqlFloorID", SqlDbType.Char),
                                            new SqlParameter("@sqlAuditWeather", SqlDbType.Char),
                                          };
             SQLCMDpas[0].Value = "ConfessToRaiseManagement_Load_SelectSeserveMsg_MultiSelect";
             SQLCMDpas[1].Value = strPageNumber;
             SQLCMDpas[2].Value = strPageRowNumber;
             SQLCMDpas[3].Value = strsqlProjectID;
             SQLCMDpas[4].Value = strsqlFloorID;
             SQLCMDpas[5].Value = strsqlAuditWeather;
             DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ConfessToRaiseManagement", SQLCMDpas);
             DataSet myDataSet = new DataSet();
             myDataSet.Tables.Add(myDataTable);
             return myDataSet;
         }
         #endregion 
         
         [OperationContract]
         #region  查询要查询信息的总数
         public DataSet ConfessToRaiseManagement_Load_SelectSeserve_getTotalRowsCount(string strPageNumber, string strPageRowNumber, string strsqlProjectID, string strsqlFloorID, string strsqlAuditWeather)
         {
             SqlParameter[] SQLCMDpas = { 
                                            new SqlParameter("@Type", SqlDbType.Char),
                                            new SqlParameter("@PageNumber", SqlDbType.Char),
                                            new SqlParameter("@PageRowNumber", SqlDbType.Char),
                                            new SqlParameter("@sqlProjectID", SqlDbType.Char),
                                            new SqlParameter("@sqlFloorID", SqlDbType.Char),
                                            new SqlParameter("@sqlAuditWeather", SqlDbType.Char),
                                          };
             SQLCMDpas[0].Value = "ConfessToRaiseManagement_Load_SelectSeserve_getTotalRowsCount";
             SQLCMDpas[1].Value = strPageNumber;
             SQLCMDpas[2].Value = strPageRowNumber;
             SQLCMDpas[3].Value = strsqlProjectID;
             SQLCMDpas[4].Value = strsqlFloorID;
             SQLCMDpas[5].Value = strsqlAuditWeather;
             DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ConfessToRaiseManagement", SQLCMDpas);
             DataSet myDataSet = new DataSet();
             myDataSet.Tables.Add(myDataTable);
             return myDataSet;
         }
         #endregion 
         
         [OperationContract]
         #region  不定条件查询认筹信息
         public DataSet ConfessToRaiseManagement_Load_MultiSelectConfessToRaiseMsg(string strPageNumber, string strPageRowNumber, string strsqlAuditWeather, string strsqlToSeserveWeather)
         {
             SqlParameter[] SQLCMDpas = { 
                                            new SqlParameter("@Type", SqlDbType.Char),
                                            new SqlParameter("@PageNumber", SqlDbType.Char),
                                            new SqlParameter("@PageRowNumber", SqlDbType.Char),
                                            new SqlParameter("@sqlAuditWeather", SqlDbType.Char),
                                            new SqlParameter("@sqlToSeserveWeather", SqlDbType.Char),
                                          };
             SQLCMDpas[0].Value = "ConfessToRaiseManagement_Load_MultiSelectConfessToRaiseMsg";
             SQLCMDpas[1].Value = strPageNumber;
             SQLCMDpas[2].Value = strPageRowNumber;
             SQLCMDpas[3].Value = strsqlAuditWeather;
             SQLCMDpas[4].Value = strsqlToSeserveWeather;
             DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ConfessToRaiseManagement", SQLCMDpas);
             DataSet myDataSet = new DataSet();
             myDataSet.Tables.Add(myDataTable);
             return myDataSet;
         }
         #endregion 
         
         [OperationContract]
         #region   查询认筹信息的总数
         public DataSet ConfessToRaiseManagement_Load_ConfessToRaiseMsg_getTotalRowsCount(string strPageNumber, string strPageRowNumber, string strsqlAuditWeather, string strsqlToSeserveWeather)
         {
             SqlParameter[] SQLCMDpas = { 
                                            new SqlParameter("@Type", SqlDbType.Char),
                                            new SqlParameter("@PageNumber", SqlDbType.Char),
                                            new SqlParameter("@PageRowNumber", SqlDbType.Char),
                                            new SqlParameter("@sqlAuditWeather", SqlDbType.Char),
                                            new SqlParameter("@sqlToSeserveWeather", SqlDbType.Char),
                                          };
             SQLCMDpas[0].Value = "ConfessToRaiseManagement_Load_ConfessToRaiseMsg_getTotalRowsCount";
             SQLCMDpas[1].Value = strPageNumber;
             SQLCMDpas[2].Value = strPageRowNumber;
             SQLCMDpas[3].Value = strsqlAuditWeather;
             SQLCMDpas[4].Value = strsqlToSeserveWeather;
             DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ConfessToRaiseManagement", SQLCMDpas);
             DataSet myDataSet = new DataSet();
             myDataSet.Tables.Add(myDataTable);
             return myDataSet;
         }
         #endregion 
         
         [OperationContract]
         #region 审核预留
         public int tsbtnAuditSeserve_Click_UpdateSeserve(DateTime dtmAuditDate, int intSeserveUnitID)
         {
             SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                           new SqlParameter("@AuditDate", SqlDbType.DateTime),
                                           new SqlParameter("@SeserveUnitID", SqlDbType.Int),
                                          };
             SQLCMDpas[0].Value = "tsbtnAuditSeserve_Click_UpdateSeserve";
             SQLCMDpas[1].Value = dtmAuditDate;
             SQLCMDpas[2].Value = intSeserveUnitID;
             return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ConfessToRaiseManagement", SQLCMDpas);
         }
         #endregion 
        
         [OperationContract]
         #region 退筹
         public int tsbtnReturnConfessToRaise_Click_UpdateConfessToRaise(int intClientConfessToRaiseID)
         {
             SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                           new SqlParameter("@ClientConfessToRaiseID", SqlDbType.Int),
                                          };
             SQLCMDpas[0].Value = "tsbtnReturnConfessToRaise_Click_UpdateConfessToRaise";
             SQLCMDpas[1].Value = intClientConfessToRaiseID;
             return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ConfessToRaiseManagement", SQLCMDpas);
         }
         #endregion 
        
         [OperationContract]
         #region 删除预留
         public int tsbtnDeleteSeserve_Click_Update(int intSeserveUnitID)
         {
             SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                           new SqlParameter("@SeserveUnitID", SqlDbType.Int),
                                          };
             SQLCMDpas[0].Value = "tsbtnDeleteSeserve_Click_Update";
             SQLCMDpas[1].Value = intSeserveUnitID;
             return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ConfessToRaiseManagement", SQLCMDpas);
         }
         #endregion 
        

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

public partial class frmMarketManagement_ConfessToRaiseManagement : Form
    {
        frmMain frmmain;
        public frmMarketManagement_ConfessToRaiseManagement(frmMain frm)//窗体传值
        {
            frmmain = frm;
            InitializeComponent();
        }

        BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ConfessToRaiseManagement.frmMarketManagement_ConfessToRaiseManagementClient myfrmMarketManagement_ConfessToRaiseManagementClient = new BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ConfessToRaiseManagement.frmMarketManagement_ConfessToRaiseManagementClient();//实例化逻辑层

        private void tsbtnExit_Click(object sender, EventArgs e)//退出按钮单击事件
        {
            this.Close();
        }

        private void frmMarketManagement_ConfessToRaiseManagement_FormClosing(object sender, FormClosingEventArgs e)//窗体关闭时发生的事件
        {
            frmmain.RemoveTabPage();//调用主界面的函数
        }
               
        private void frmMarketManagement_ConfessToRaiseManagement_Load(object sender, EventArgs e)//窗体的加载事件
        {
            dgvConfessToRaise.AutoGenerateColumns = false;//设置dgv的自动生成列为否
            dgvSeserveRoomResource.AutoGenerateColumns = false;//设置自动生成列为假
            DataTable dtConfessToRaise = myfrmMarketManagement_ConfessToRaiseManagementClient.ConfessToRaiseManagement_Load_SelectConfessToRaiseMsg().Tables[0];
            dgvConfessToRaise.DataSource = dtConfessToRaise;     //指定dgvConfessToRaise的数据源       
            dgvProject.DataSource = myfrmMarketManagement_ConfessToRaiseManagementClient.ConfessToRaiseManagement_Load_BindingdgvProject().Tables[0];
            BindingdgvSeserveRoomResource("1","15","","","");//执行构造函数,绑定预留房源的数据源
            BinddgvConfessToRaise("1", "18", "", "");//同上,绑定dgvConfessToRaise的数据源
        }

        int intAllowPageNumber = 0;
        void BindingdgvSeserveRoomResource(string strPageNumber, string strPageRowNumber, string strsqlProjectID, string strsqlFloorID, string strsqlAuditWeather)//构造函数
        {
            DataTable dtSeserve = myfrmMarketManagement_ConfessToRaiseManagementClient.ConfessToRaiseManagement_Load_SelectSeserveMsg_MultiSelect(strPageNumber, strPageRowNumber, strsqlProjectID, strsqlFloorID, strsqlAuditWeather).Tables[0];
            dgvSeserveRoomResource.DataSource = dtSeserve;//指定预留房源的数据源
            int intRowNumber = (int)myfrmMarketManagement_ConfessToRaiseManagementClient.ConfessToRaiseManagement_Load_SelectSeserve_getTotalRowsCount(strPageNumber, strPageRowNumber, strsqlProjectID, strsqlFloorID, strsqlAuditWeather).Tables[0].Rows[0][0];//查询总行数
            int intPageRowNumber = Convert.ToInt32(strPageRowNumber);//每页的行数
            intAllowPageNumber = intRowNumber / intPageRowNumber ;//计算总页数
            if (intRowNumber % intPageRowNumber > 0)
            {
                intAllowPageNumber++;
            }
            lblCount.Text = intAllowPageNumber.ToString();
        }

        int intConfessToRaiseCount = 0;
        void BinddgvConfessToRaise(string strPageNumber, string strPageRowNumber, string strsqlAuditWeather, string strsqlToSeserveWeather)//构造函数
        {
            DataTable dtComfessToRaise = myfrmMarketManagement_ConfessToRaiseManagementClient.ConfessToRaiseManagement_Load_MultiSelectConfessToRaiseMsg(strPageNumber, strPageRowNumber, strsqlAuditWeather, strsqlToSeserveWeather).Tables[0];
            dgvConfessToRaise.DataSource = dtComfessToRaise;
            int intRowNumber =(int) myfrmMarketManagement_ConfessToRaiseManagementClient.ConfessToRaiseManagement_Load_ConfessToRaiseMsg_getTotalRowsCount(strPageNumber, strPageRowNumber, strsqlAuditWeather, strsqlToSeserveWeather).Tables[0].Rows[0][0];
            int intPageRowNumber = Convert.ToInt32(strPageRowNumber);//页行数
            intConfessToRaiseCount = intRowNumber / intPageRowNumber;//页数
            if (intRowNumber % intPageRowNumber > 0)
            {
                intConfessToRaiseCount++;
            }
            lblCountPage.Text = intConfessToRaiseCount.ToString();
        }


        private void tsbtnInsertConfessToRaiseData_Click(object sender, EventArgs e)//新增认筹单击事件
        {            
            frmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEdit myfrmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEdit = new frmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEdit(this);
            myfrmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEdit.ShowDialog();
        }

        private void tsbtnUpdateConfessToRaiseData_Click(object sender, EventArgs e)//修改认筹的单击事件
        {
            if (strAuditWesther == "已审核")
            {
                MessageBox.Show("已审核的数据无法修改!!!","提示");
                return;
            }
            frmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEdit myfrmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEdit = new frmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEdit(this, intConfessToRaiseID);
            myfrmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEdit.ShowDialog();
        }
    
        public void frmMarketManagement_ConfessToRaiseManagement_Activated(object sender, EventArgs e)
        {
            frmMarketManagement_ConfessToRaiseManagement_Load(null,null);
        }

        public int intConfessToRaiseID = 0;
        public int intCustomerID = 0;
        string strAuditWesther = "";
        public string strIntentionUnitInstructions = "";
        public string strConfessToRaiseNote = "";
        string strToSeserve = "";
        public int intConditionProjectID = 0;
        private void dgvConfessToRaise_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)//dgvConfessToRaise的鼠标的单击事件
        {
            intConfessToRaiseID = (int)dgvConfessToRaise.CurrentRow.Cells["ClientConfessToRaiseID"].Value;//获取当前行的认筹ID
            intCustomerID = (int)dgvConfessToRaise.CurrentRow.Cells["ClientID"].Value;//获取当前行的客户ID
            strAuditWesther = dgvConfessToRaise.CurrentRow.Cells["审核否"].Value.ToString().Trim();//获取审核否
            strIntentionUnitInstructions = dgvConfessToRaise.CurrentRow.Cells["意向单元说明"].Value.ToString().Trim();//获取当前行的意向单元说明
            strConfessToRaiseNote = dgvConfessToRaise.CurrentRow.Cells["备注"].Value.ToString().Trim();//获取当前行的备注
            strToSeserve = dgvConfessToRaise.CurrentRow.Cells["转预留否"].Value.ToString().Trim();//获取当前行的信息的转预留否
            intConditionProjectID = (int)dgvConfessToRaise.CurrentRow.Cells["ProjectID1"].Value;
        }

        private void tsbtnAudit_Click(object sender, EventArgs e)//审核按钮的单击事件
        {
            int intAllDateNumber = 0;
            int intAuditNumber = 0;
            int intAuditedNumber = 0;
            dgvConfessToRaise.EndEdit();
            foreach (DataGridViewRow dgvr in dgvConfessToRaise.Rows)//循环遍历dgvConfessToRaise
            {
                if (Convert.ToBoolean(dgvr.Cells["选择"].FormattedValue))
                {
                    intAllDateNumber++;
                    string strAuditWeather = dgvr.Cells["审核否"].Value.ToString().Trim();
                    if (strAuditWeather == "未审核")
                    {
                        int intconfesstoraiseID = (int)dgvr.Cells["ClientConfessToRaiseID"].Value;
                        myfrmMarketManagement_ConfessToRaiseManagementClient.tsbtnAudit_Click_UpdateConfessToRaise(intconfesstoraiseID);
                        intAuditNumber++;
                    }
                    else
                    {
                        intAuditedNumber++;
                    }
                }
            }
            MessageBox.Show("已选择" + intAllDateNumber + "条数据,\n" + "已审核" + intAuditNumber + "条数据,\n" + intAuditedNumber + "条数据不需要重新审核!", "提示");
            frmMarketManagement_ConfessToRaiseManagement_Load(null,null);
        }

        private void tsbtnInsertServe_Click(object sender, EventArgs e)//新增预留的单击事件
        {
            if (intConfessToRaiseID > 0)
            {
                if (strAuditWesther == "已审核")//判断是否已经审核
                {
                    if (strToSeserve == "未转预留")
                    {
                        frmMarketManagement_ConfessToRaiseManagement_SeserveEdit myfrmMarketManagement_ConfessToRaiseManagement_SeserveEdit = new frmMarketManagement_ConfessToRaiseManagement_SeserveEdit(this);
                        myfrmMarketManagement_ConfessToRaiseManagement_SeserveEdit.ShowDialog();
                    }
                    if (strToSeserve == "已转预留")
                    {
                        MessageBox.Show("该认筹信息已转预留,无法再添加预留。\n如需修改,请对某一预留信息修改!!!", "提示");
                    }
                }
                if (strAuditWesther == "未审核")
                {
                    MessageBox.Show("该数据尚未审核,请先审核后继续,\n或者选择其他数据后继续此操作!!!","提示");
                }
            }
            else
            {
                MessageBox.Show("请点击一条数据后继续!","提示");
            } 
        }

        private void tsbtnSelectProject_Click(object sender, EventArgs e)//tsbtnSelectProject单击事件
        {
            dgvProject.Visible = true;//设置dgvProject的可见性
        }

        private void dgvProject_MouseLeave(object sender, EventArgs e)//鼠标离开事件
        {
            dgvProject.Visible = false;//设置dgvProject的可见性为假
        }

        string strProjectID = "";
        string strFloorID = "";
        string strAuditWeather = "";
        private void ckbConditionSelect_CheckedChanged(object sender, EventArgs e)
        {
            if (ckbConditionSelect.Checked)//判断ckbConditionSelect是否勾着
            {
                tstxtProjectName.Enabled = true;
                tsbtnSelectProject.Enabled = true;
                cboFloor.Enabled = true;
            }
            else//如果没有勾着
            {
                tstxtProjectName.Enabled = false;
                tsbtnSelectProject.Enabled = false;
                cboFloor.Enabled = false;
                strProjectID = "";
                strFloorID = "";
                BindingdgvSeserveRoomResource("1", "15", strProjectID, strFloorID, strAuditWeather);
            }
        }

        private void dgvProject_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)//双击事件选择项目
        {
            int intProjectID = (int)dgvProject.CurrentRow.Cells["项目ID"].Value;//获取相应的项目ID
            tstxtProjectName.Text = dgvProject.CurrentRow.Cells["ProjectName"].Value.ToString().Trim();//获取选定的项目名称
            DataTable dtFloor = myfrmMarketManagement_ConfessToRaiseManagementClient.dgvProject_CellMouseClick_BindingtscboFloor(intProjectID).Tables[0];
            PublicMethod.SettingComboBox(cboFloor, dtFloor, "FloorID", "FloorName");
            strProjectID = intProjectID.ToString();
            BindingdgvSeserveRoomResource("1", "15", strProjectID, strFloorID, strAuditWeather);//执行绑定dgvSeserveRoomResource的数据源的构造函数
        }

        private void cboFloor_SelectionChangeCommitted(object sender, EventArgs e)
        {
            strFloorID = cboFloor.SelectedValue.ToString();
            BindingdgvSeserveRoomResource("1", "15", strProjectID, strFloorID, strAuditWeather);
        }

        private void Public_Click(object sender, EventArgs e)//一个公用Radiobutton的单击事件
        {
            if (radAudited.Checked)
            {
                strAuditWeather = "已审核";
                BindingdgvSeserveRoomResource("1", "15", strProjectID, strFloorID, strAuditWeather);
            }
            if (radNotAudit.Checked)
            {
                strAuditWeather = "未审核";
                BindingdgvSeserveRoomResource("1", "15", strProjectID, strFloorID, strAuditWeather);
            }
            if (radAll.Checked)
            {
                strAuditWeather = "";
                BindingdgvSeserveRoomResource("1", "15", strProjectID, strFloorID, strAuditWeather);
            }
        }

        private void btnUpPage_Click(object sender, EventArgs e)//上一页的点击事件
        {
            tmrOne.Stop();
            int intcount = Convert.ToInt32(lblPageCount.Text);
            if (intcount == 1)//判断当前的页数是否等于1
            {                
                lblPrompting.Text = "亲,这已是第一页,无法上一页";
                tmrOne.Start();
                lblPrompting.Visible = true;
                return;
            }
            int intCurrentPageNumber = Convert.ToInt32(lblPageCount.Text);
            intCurrentPageNumber--;
            BindingdgvSeserveRoomResource(intCurrentPageNumber.ToString(), "15", strProjectID, strFloorID, strAuditWeather);
        }

        private void btnNextPage_Click(object sender, EventArgs e)//下一页的点击事件
        {
            tmrOne.Stop();
            int intcount = Convert.ToInt32(lblPageCount.Text);
            if (intcount == intAllowPageNumber)
            {
                lblPrompting.Text = "亲,这已是最后一页,无法下一页";
                tmrOne.Start();
                lblPrompting.Visible = true;
                return;
            }
            int intCurrentPageNumber = Convert.ToInt32(lblPageCount.Text);
            intCurrentPageNumber++;
            BindingdgvSeserveRoomResource(intCurrentPageNumber.ToString(), "15", strProjectID, strFloorID, strAuditWeather);
        }

        private void tmrOne_Tick(object sender, EventArgs e)
        {
            tmrOne.Stop();
            lblPrompting.Visible = false;
        }


        string strCAuditWeather = "";
        string strCToSeserve = "";
        private void Pub_ConfessToRaise_Click(object sender, EventArgs e)//公用Radiobutton的点击事件
        {
            if (radCAudited.Checked)
            {
                strCAuditWeather = "已审核";
                BinddgvConfessToRaise("1", "18", strCAuditWeather, strCToSeserve);
            }
            if (radCNotAudit.Checked)
            {
                strCAuditWeather = "未审核";
                BinddgvConfessToRaise("1", "18", strCAuditWeather, strCToSeserve);
            }
            if (radCAll.Checked)
            {
                strCAuditWeather = "";
                BinddgvConfessToRaise("1", "18", strCAuditWeather, strCToSeserve);
            }


            if (radToSeserved.Checked)
            {
                strCToSeserve = "已转预留";
                BinddgvConfessToRaise("1", "18", strCAuditWeather, strCToSeserve);
            }
            if (radNotSeserve.Checked)
            {
                strCToSeserve = "未转预留";
                BinddgvConfessToRaise("1", "18", strCAuditWeather, strCToSeserve);
            }
            if (radAllSeserve.Checked)
            {
                strCToSeserve = "";
                BinddgvConfessToRaise("1", "18", strCAuditWeather, strCToSeserve);
            }
        }

        private void btnLeftPage_Click(object sender, EventArgs e)//上一页的单击事件
        {
            tmrTwo.Stop();
            int intcount = Convert.ToInt32(lblCurrentPage.Text);
            if (intcount == 1)
            {
                lblPresentation.Text = "亲,这已是第一页,无法上一页";
                tmrTwo.Start();
                lblPresentation.Visible = true;
                return;
            }
            int intCurrentPageNumber = Convert.ToInt32(lblCurrentPage.Text);
            intCurrentPageNumber--;
            BinddgvConfessToRaise(intCurrentPageNumber.ToString(), "18", strCAuditWeather, strCToSeserve);
        }

        private void btnRightPage_Click(object sender, EventArgs e)//下一页的单击事件
        {
            tmrTwo.Stop();//停止事件间隔事件
            int intcount = Convert.ToInt32(lblCurrentPage.Text);
            if (intcount == intConfessToRaiseCount)
            {
                lblPresentation.Text = "亲,这已是最后一页,无法下一页";
                tmrTwo.Start();//开始事件间隔事件
                lblPresentation.Visible = true;
                return;
            }
            int intCurrentPageNumber = Convert.ToInt32(lblCurrentPage.Text);
            intCurrentPageNumber++;
            BinddgvConfessToRaise(intCurrentPageNumber.ToString(), "18", strCAuditWeather, strCToSeserve);
        }

        private void tmrTwo_Tick(object sender, EventArgs e)//事件间隔事件
        {
            tmrTwo.Stop();
            lblPresentation.Visible = false;
        }

        private void tsbtnUpdateServe_Click(object sender, EventArgs e)//修改预留单击事件
        {
            if (intSeserveID == 0)//判断
            {
                MessageBox.Show("请单击预留房源列表里选择你需要修改的数据!!!","提示");
                return;
            }
            if (strSeserveAudit == "已审核")
            {
                MessageBox.Show("该数据已经审核,无法修改!!!", "提示");
                return;
            }
            frmMarketManagement_ConfessToRaiseManagement_SeserveEdit myfrmMarketManagement_ConfessToRaiseManagement_SeserveEdit = new frmMarketManagement_ConfessToRaiseManagement_SeserveEdit(this, intSeserveID);
            myfrmMarketManagement_ConfessToRaiseManagement_SeserveEdit.ShowDialog();//跳转修改预留的界面
        }

        int intSeserveID = 0;
        string strSeserveAudit = "";
        private void dgvSeserveRoomResource_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)//鼠标的单击事件
        {
            intSeserveID = (int)dgvSeserveRoomResource.CurrentRow.Cells["SeserveUnitID"].Value;//获取当前行的预留信息的预留ID
            strSeserveAudit = dgvSeserveRoomResource.CurrentRow.Cells["AuditWeather"].Value.ToString().Trim();//获取当前行的预留信息审核否
        }

        private void tsbtnAuditSeserve_Click(object sender, EventArgs e)//审核预留的事件
        {
            int intSelectNumber = 0;
            int intAuditNumber = 0;
            int intAuditedNumber = 0;
            dgvSeserveRoomResource.EndEdit();
            foreach (DataGridViewRow dgvr in dgvSeserveRoomResource.Rows)//遍历循环
            {
                if (Convert.ToBoolean(dgvr.Cells["Select"].FormattedValue))
                {
                    intSelectNumber++;
                    string strAuditWeather = dgvr.Cells["AuditWeather"].Value.ToString().Trim();
                    if (strAuditWeather == "未审核")//判断审核否
                    {
                        int intSeserveUnitID = (int)dgvr.Cells["SeserveUnitID"].Value;
                        DateTime dtmAuditTime = DateTime.Now;
                        myfrmMarketManagement_ConfessToRaiseManagementClient.tsbtnAuditSeserve_Click_UpdateSeserve(dtmAuditTime, intSeserveUnitID);
                        intAuditNumber++;
                    }
                    else
                    {
                        intAuditedNumber++;
                    }
                }
            }
            MessageBox.Show("已选择" + intSelectNumber + "条数据,\n" + "已审核" + intAuditNumber + "条数据,\n" + intAuditedNumber + "条数据不需要重新审核!", "提示");
            frmMarketManagement_ConfessToRaiseManagement_Load(null, null);
        }

        private void tsbtnReturnConfessToRaise_Click(object sender, EventArgs e)//退审
        {
            int intAllSelectNumber = 0;
            int intIncalidNumber = 0;
            int intAuditedNumber = 0;
            dgvConfessToRaise.EndEdit();
            foreach (DataGridViewRow dgvr in dgvConfessToRaise.Rows)
            {
                if (Convert.ToBoolean(dgvr.Cells["选择"].FormattedValue))
                {
                    intAllSelectNumber++;
                    string strAuditWeather = dgvr.Cells["审核否"].Value.ToString().Trim();
                    if (strAuditWeather == "未审核")
                    {
                        int intconfesstoraiseID = (int)dgvr.Cells["ClientConfessToRaiseID"].Value;
                        myfrmMarketManagement_ConfessToRaiseManagementClient.tsbtnReturnConfessToRaise_Click_UpdateConfessToRaise(intconfesstoraiseID);
                        intIncalidNumber++;
                    }
                    else
                    {
                        intAuditedNumber++;
                    }
                }
            }
            MessageBox.Show("已选择" + intAllSelectNumber + "条数据,\n" + "已退筹" + intIncalidNumber + "条数据,\n" + intAuditedNumber + "已审核无法退筹!!!", "提示");
            frmMarketManagement_ConfessToRaiseManagement_Load(null,null);
        
        }

        private void tsbtnDeleteSeserve_Click(object sender, EventArgs e)//删除预留信息
        {
            int intSelectNumber = 0;
            int intDeleteNumber = 0;
            int intAuditedNumber = 0;
            dgvSeserveRoomResource.EndEdit();
            foreach (DataGridViewRow dgvr in dgvSeserveRoomResource.Rows)
            {
                if (Convert.ToBoolean(dgvr.Cells["Select"].FormattedValue))
                {
                    intSelectNumber++;
                    string strAuditWeather = dgvr.Cells["AuditWeather"].Value.ToString().Trim();
                    if (strAuditWeather == "未审核")
                    {
                        int intSeserveUnitID = (int)dgvr.Cells["SeserveUnitID"].Value;//获取某一行的预留ID
                        int intClientConfessToRaiseID = (int)dgvr.Cells["ClientConfessToRaiseID1"].Value;//获取某一行的认筹ID
                        myfrmMarketManagement_ConfessToRaiseManagementClient.tsbtnReturnConfessToRaise_Click_UpdateConfessToRaise(intClientConfessToRaiseID);
                        myfrmMarketManagement_ConfessToRaiseManagementClient.tsbtnDeleteSeserve_Click_Update(intSeserveUnitID);
                        intDeleteNumber++;
                    }
                    else
                    {
                        intAuditedNumber++;
                    }
                }
            }
            MessageBox.Show("已选择" + intSelectNumber + "条数据,\n" + "删除" + intDeleteNumber + "条数据,\n" + intAuditedNumber + "条数据已审核,无法删除!", "提示");
            frmMarketManagement_ConfessToRaiseManagement_Load(null, null);
        }
    }


2.添加认筹资料



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

控件名称

说明

标注(Label)

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

文本(TextBox)

按钮(Button)

菜单(ToolStripMenuItem)

工具栏(ToolStrip)

组容器(GroupBox)

功能实现:

第一步:数据库

1、表与关系



表1:  客户信息 (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: 认筹表 (dbo. PW_ClientConfessToRaise)

Primary Key(主键):  ClientConfessToRaiseID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ClientConfessToRaiseID

int - Identity

No

客户认筹ID

ClientID

int

Yes

客户信息表,客户ID

RaiseNumeralRecognition

nchar (10)

Yes

认筹排号

TheOrderNumber

nchar (10)

Yes

订单号

ConfessToRaiseClassificationID

int

Yes

属性明细表,筹卡分类ID

AccountsReceivableAppointmentGold

money

Yes

应收预约金

ConfesstoraiseDate

datetime

Yes

认筹日期

EffectiveDate

datetime

Yes

有效日期

IntentionUnitInstructions

nchar (10)

Yes

意向单元说明

Note

nchar (30)

Yes

备注

ToSeserve

bit

((0))

Yes

转预留否

SeserveID

int

Yes

预留表,预留ID

AuditWhether

bit

((0))

Yes

审核否

IncalidWhether

bit

((0))

Yes

作废否

AfterUpdateID

int

Yes

认筹表,修改后ID

表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.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

说明

表5: 属性明细表(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='RenChouBianJi_Load_BindingcboConfessToRaiseClasses'--查询筹卡分类
begin
SELECT     AttributeDetailsID, rtrim(AuttributeDetailsName) as 筹卡分类
FROM         SYS_AttributeDetails
where   SYS_AttributeDetails.AuttributeSetID=22
end

if @Type='RenChouBianJi_Load_BindingcboHomeBuyersConsultant'--查询置业顾问
begin
SELECT     StaffID, rtrim(StaffName) as 置业顾问
FROM         SYS_Staff
where  SYS_Staff.DepartMentID=23
end

if @Type='RenChouBianJi_Load_BindingdgvCustomer'--查询客户
begin
SELECT     ClientID, RTRIM(ClientName) AS ClientName, RTRIM(RelationPhone) AS RelationPhone, Gender AS 性别
FROM         PW_ClientInformation
where   PW_ClientInformation.IncalidOr=0
end

if @Type='RenChouBianJi_Load_BindingCustomDetails'--查询客户明细
begin
SELECT     RTRIM(CommunicationAddress) AS CommunicationAddress, RTRIM(RelationPhone) AS RelationPhone, RTRIM(ClientNumber) AS ClientNumber, RTRIM(Postcode) AS Postcode, RTRIM(ClientName) AS ClientName, HomeBuyerConsultantID, RTRIM(IDentityCard) AS IDentityCard
FROM         PW_ClientInformation
where    PW_ClientInformation.ClientID=@ClientID 
end

if @Type='btnSaveAndAdd_Click_Insert'--新增
begin
begin tran
INSERT INTO PW_ClientConfessToRaise
           (ClientID, RaiseNumeralRecognition, TheOrderNumber, ConfessToRaiseClassificationID, 
                      AccountsReceivableAppointmentGold, ConfesstoraiseDate, EffectiveDate, IntentionUnitInstructions, Note )
VALUES     (@ClientID, @RaiseNumeralRecognition, @TheOrderNumber, @ConfessToRaiseClassificationID, 
             @AccountsReceivableAppointmentGold, @ConfesstoraiseDate, @EffectiveDate, @IntentionUnitInstructions, @Note  )
select @@IDENTITY
commit tran
end

if @Type='RenChouBianJi_SelectRaiseNumeralRecognition'--查询认筹排号
begin
SELECT     ClientConfessToRaiseID,  RTRIM(RaiseNumeralRecognition) AS RaiseNumeralRecognition
FROM         PW_ClientConfessToRaise
end

if @Type='ConfessToRaiseEdit_SelectWillUpdateMsg'--查询修改信息
begin
SELECT     PW_ClientConfessToRaise.ClientID, RTRIM(PW_ClientConfessToRaise.RaiseNumeralRecognition) AS RaiseNumeralRecognition, RTRIM(PW_ClientConfessToRaise.TheOrderNumber) AS TheOrderNumber, 
                      PW_ClientConfessToRaise.ConfessToRaiseClassificationID, RTRIM(PW_ClientConfessToRaise.AccountsReceivableAppointmentGold) AS AccountsReceivableAppointmentGold, PW_ClientConfessToRaise.ConfesstoraiseDate, 
                      PW_ClientConfessToRaise.EffectiveDate, RTRIM(PW_ClientConfessToRaise.IntentionUnitInstructions) AS IntentionUnitInstructions, RTRIM(PW_ClientConfessToRaise.Note) AS Note, PW_ClientInformation.HomeBuyerConsultantID
FROM         PW_ClientConfessToRaise INNER JOIN
                      PW_ClientInformation ON PW_ClientConfessToRaise.ClientID = PW_ClientInformation.ClientID
where PW_ClientConfessToRaise.ClientConfessToRaiseID=@ClientConfessToRaiseID
end

if @Type='btnSaveAndUpdate_Click_UpdateOldMsg'--修改
begin
begin tran
UPDATE    PW_ClientConfessToRaise
SET              AfterUpdateID = @AfterUpdateID, IncalidWhether =1
where PW_ClientConfessToRaise.ClientConfessToRaiseID=@ClientConfessToRaiseID
end

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

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

        [OperationContract]
        #region 绑定下拉框筹卡分类
        public DataSet RenChouBianJi_Load_BindingcboConfessToRaiseClasses()
        {
            SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),
                                          };
            SQLCMDpas[0].Value = "RenChouBianJi_Load_BindingcboConfessToRaiseClasses";
            DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEdit", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion 
        
        [OperationContract]
        #region 绑定下拉框置业顾问
        public DataSet RenChouBianJi_Load_BindingcboHomeBuyersConsultant()
        {
            SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),
                                          };
            SQLCMDpas[0].Value = "RenChouBianJi_Load_BindingcboHomeBuyersConsultant";
            DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEdit", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion 
        
        [OperationContract]
        #region 绑定dgv客户表
        public DataSet RenChouBianJi_Load_BindingdgvCustomer()
        {
            SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),
                                          };
            SQLCMDpas[0].Value = "RenChouBianJi_Load_BindingdgvCustomer";
            DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEdit", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion 
        
        [OperationContract]
        #region 根据客户ID查询客户信息
        public DataSet RenChouBianJi_Load_BindingCustomDetails(int intCustomID)
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                           new SqlParameter("@ClientID", SqlDbType.Int),
                                          };
            SQLCMDpas[0].Value = "RenChouBianJi_Load_BindingCustomDetails";
            SQLCMDpas[1].Value = intCustomID;
            DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEdit", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion 
        
        [OperationContract]
        #region 新增认筹资料
        public DataSet btnSaveAndAdd_Click_Insert(int ClientID, string RaiseNumeralRecognition, string TheOrderNumber, int ConfessToRaiseClassificationID,
                     decimal AccountsReceivableAppointmentGold, DateTime ConfesstoraiseDate, DateTime EffectiveDate, string IntentionUnitInstructions, string Note)
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                           new SqlParameter("@ClientID", SqlDbType.Int),
                                           new SqlParameter("@RaiseNumeralRecognition", SqlDbType.Char),
                                           new SqlParameter("@TheOrderNumber", SqlDbType.Char),
                                           new SqlParameter("@ConfessToRaiseClassificationID", SqlDbType.Int),
                                           new SqlParameter("@AccountsReceivableAppointmentGold", SqlDbType.Money),
                                           new SqlParameter("@ConfesstoraiseDate", SqlDbType.DateTime),
                                           new SqlParameter("@EffectiveDate", SqlDbType.DateTime),
                                           new SqlParameter("@IntentionUnitInstructions", SqlDbType.Char),
                                           new SqlParameter("@Note", SqlDbType.Char),
                                          };
            SQLCMDpas[0].Value = "btnSaveAndAdd_Click_Insert";
            SQLCMDpas[1].Value = ClientID;
            SQLCMDpas[2].Value = RaiseNumeralRecognition;
            SQLCMDpas[3].Value = TheOrderNumber;
            SQLCMDpas[4].Value = ConfessToRaiseClassificationID;
            SQLCMDpas[5].Value = AccountsReceivableAppointmentGold;
            SQLCMDpas[6].Value = ConfesstoraiseDate;
            SQLCMDpas[7].Value = EffectiveDate;
            SQLCMDpas[8].Value = IntentionUnitInstructions;
            SQLCMDpas[9].Value = Note;
            DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEdit", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion 
                
        [OperationContract]
        #region 查询认筹排号
        public DataSet RenChouBianJi_SelectRaiseNumeralRecognition()
        {
            SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),
                                          };
            SQLCMDpas[0].Value = "RenChouBianJi_SelectRaiseNumeralRecognition";
            DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEdit", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion 
            
        [OperationContract]
        #region 修改房间状态
        public int btnSaveAndAdd_Click_UpdateRoomStatus(int intRoomID)
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                           new SqlParameter("@RoomResourcesID", SqlDbType.Int),
                                          };
            SQLCMDpas[0].Value = "btnSaveAndAdd_Click_UpdateRoomStatus";
            SQLCMDpas[1].Value = intRoomID;
            return  myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEdit", SQLCMDpas);
            
        }
        #endregion 
        
        [OperationContract]
        #region 修改认筹信息时候,绑定相应的信息
        public DataSet ConfessToRaiseEdit_SelectWillUpdateMsg(int intClientConfessToRaiseID)
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                           new SqlParameter("@ClientConfessToRaiseID", SqlDbType.Int),
                                          };
            SQLCMDpas[0].Value = "ConfessToRaiseEdit_SelectWillUpdateMsg";
            SQLCMDpas[1].Value = intClientConfessToRaiseID;
            DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEdit", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion 
        
        [OperationContract]
        #region 修改房间状态
        public int btnSaveAndUpdate_Click_UpdateOldMsg(int intAfterUpdateID, int intClientConfessToRaiseID)
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                           new SqlParameter("@AfterUpdateID", SqlDbType.Int),
                                           new SqlParameter("@ClientConfessToRaiseID", SqlDbType.Int),
                                          };
            SQLCMDpas[0].Value = "btnSaveAndUpdate_Click_UpdateOldMsg";
            SQLCMDpas[1].Value = intAfterUpdateID;
            SQLCMDpas[2].Value = intClientConfessToRaiseID;
            return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEdit", SQLCMDpas);

        }
        #endregion 
        

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

        frmMarketManagement_ConfessToRaiseManagement Frm;
        public frmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEdit(frmMarketManagement_ConfessToRaiseManagement frm)//窗体传值
        {
            Frm = frm;
            InitializeComponent();
        }

        int intOldConfessToRaiseID = 0;
        public frmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEdit(frmMarketManagement_ConfessToRaiseManagement frm, int intConfessToRaiseID)//窗体传值
        {
            intOldConfessToRaiseID = intConfessToRaiseID;
            Frm = frm;
            InitializeComponent();
        }

        BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ConfessToRaiseEdit.frmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEditClient myfrmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEditClient = new BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ConfessToRaiseEdit.frmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEditClient();//实例化逻辑层
        DataTable dtcustomer = new DataTable();
        private void frmXiaoShouGuanLi_RenChouGuanLi_RenChouBianJi_Load(object sender, EventArgs e)//窗体加载事件
        {
            cboConfessToRaiseClasses.DataSource = myfrmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEditClient.RenChouBianJi_Load_BindingcboConfessToRaiseClasses().Tables[0];
            cboConfessToRaiseClasses.DisplayMember = "筹卡分类";
            cboConfessToRaiseClasses.ValueMember = "AttributeDetailsID";

            cboHomeBuyersConsultant.DataSource = myfrmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEditClient.RenChouBianJi_Load_BindingcboHomeBuyersConsultant().Tables[0];
            cboHomeBuyersConsultant.DisplayMember = "置业顾问";
            cboHomeBuyersConsultant.ValueMember = "StaffID";

            dtcustomer = myfrmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEditClient.RenChouBianJi_Load_BindingdgvCustomer().Tables[0];
            dgvCustomer.DataSource = dtcustomer;

            DataTable dtRaiseNumeralRecognition = myfrmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEditClient.RenChouBianJi_SelectRaiseNumeralRecognition().Tables[0];//查询忍受排号
            if (dtRaiseNumeralRecognition.Rows.Count > 0)//判断
                txtRaiseNumeralRecognition.Text = (Convert.ToInt32( dtRaiseNumeralRecognition.Rows[dtRaiseNumeralRecognition.Rows.Count - 1]["RaiseNumeralRecognition"].ToString().Trim())+1).ToString();
            else
                txtRaiseNumeralRecognition.Text = "1";
            if (intOldConfessToRaiseID > 0)
            {
                Update_Load_Binding(intOldConfessToRaiseID);
            }
        }

        void Update_Load_Binding(int intConfessToRaiseID)//构造函数,用于绑定将要修改的信息
        {
            btnSaveAndAdd.Enabled = false;
            btnSaveAndUpdate.Enabled = true;
            DataTable dtOldConfessToRaiseMsg = myfrmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEditClient.ConfessToRaiseEdit_SelectWillUpdateMsg(intConfessToRaiseID).Tables[0];
            int intClientID = (int)dtOldConfessToRaiseMsg.Rows[0]["ClientID"];
            BindingCustomerMsg(intClientID);
            txtRaiseNumeralRecognition.Text = dtOldConfessToRaiseMsg.Rows[0]["RaiseNumeralRecognition"].ToString().Trim();
            txtTheOrderNumber.Text = dtOldConfessToRaiseMsg.Rows[0]["TheOrderNumber"].ToString().Trim();
            cboConfessToRaiseClasses.SelectedValue = (int)dtOldConfessToRaiseMsg.Rows[0]["ConfessToRaiseClassificationID"];
            txtAccountsReceivableAppointmentGold.Text = dtOldConfessToRaiseMsg.Rows[0]["AccountsReceivableAppointmentGold"].ToString().Trim();
            dtpConfessToRaiseDate.Value = Convert.ToDateTime(dtOldConfessToRaiseMsg.Rows[0]["ConfesstoraiseDate"]);
            dtpEffectiveDate.Value = Convert.ToDateTime(dtOldConfessToRaiseMsg.Rows[0]["EffectiveDate"]);
            txtIntentionUnitInstructions.Text = dtOldConfessToRaiseMsg.Rows[0]["IntentionUnitInstructions"].ToString().Trim();
            cboHomeBuyersConsultant.SelectedValue = (int)dtOldConfessToRaiseMsg.Rows[0]["HomeBuyerConsultantID"];
            txtNote.Text = dtOldConfessToRaiseMsg.Rows[0]["Note"].ToString().Trim();
        }




        private void btnSelect_Click(object sender, EventArgs e)
        {
            if (txtNameAndPhone.Text != "")
            {
                string strCondition = "ClientName like '%" + txtNameAndPhone.Text.ToString().Trim() + "%'" + " Or " + " RelationPhone like '%" + txtNameAndPhone.Text.ToString().Trim() + "%'";
                DataView dv = new DataView(dtcustomer);//将表放进数据视图里边
                dv.RowFilter = strCondition;//根据字符串条件来过滤数据视图里边的数据
                DataTable dt = dv.ToTable();
                dgvCustomer.DataSource = dt;
            }
            else
                dgvCustomer.DataSource = dtcustomer;
            dgvCustomer.Visible = true;
        }

        private void dgvCustomer_MouseLeave(object sender, EventArgs e)//鼠标离开事件
        {
            dgvCustomer.Visible = false;
        }

        int intCustomID = 0;
        private void dgvCustomer_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)//dgvCustomer的单元格鼠标双击事件
        {
            intCustomID = (int)dgvCustomer.CurrentRow.Cells["CustomerID"].Value;
            BindingCustomerMsg(intCustomID);
            dgvCustomer.Visible = false;
        }
        void BindingCustomerMsg(int intCustomerID)//绑定客户信息
        {
            DataTable dtCustomDetails = myfrmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEditClient.RenChouBianJi_Load_BindingCustomDetails(intCustomerID).Tables[0];
            txtClientName.Text = dtCustomDetails.Rows[0]["ClientName"].ToString().Trim();
            txtContactPhoneNumber.Text = dtCustomDetails.Rows[0]["RelationPhone"].ToString().Trim();
            txtCorrespondenceAddress.Text = dtCustomDetails.Rows[0]["CommunicationAddress"].ToString().Trim();
            txtClientNumber.Text = dtCustomDetails.Rows[0]["ClientNumber"].ToString().Trim();
            txtIDNumber.Text = dtCustomDetails.Rows[0]["IDentityCard"].ToString().Trim();
            txtPostalZipCode.Text = dtCustomDetails.Rows[0]["Postcode"].ToString().Trim();
            cboHomeBuyersConsultant.SelectedValue = Convert.ToInt32(dtCustomDetails.Rows[0]["HomeBuyerConsultantID"].ToString());
        }



        private void btnSaveAndAdd_Click(object sender, EventArgs e)//保存添加的单击事件
        {
            try
            {
                string strRaiseNumeralRecognition = Convert.ToInt32(txtRaiseNumeralRecognition.Text).ToString();
                string strTheOrderNumber = txtTheOrderNumber.Text.ToString();
                int intConfessToRaiseClassificationID = (int)cboConfessToRaiseClasses.SelectedValue;
                decimal decAccountsReceivableAppointmentGold = Convert.ToDecimal(txtAccountsReceivableAppointmentGold.Text.ToString());
                DateTime dtmConfesstoraiseDate = dtpConfessToRaiseDate.Value;
                DateTime dtmEffectiveDate = dtpEffectiveDate.Value;
                string strIntentionUnitInstructions = txtIntentionUnitInstructions.Text.ToString();
                string strNote = txtNote.Text.ToString();
                DataTable dt = myfrmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEditClient.btnSaveAndAdd_Click_Insert(intCustomID, strRaiseNumeralRecognition, strTheOrderNumber, intConfessToRaiseClassificationID,
                         decAccountsReceivableAppointmentGold, dtmConfesstoraiseDate, dtmEffectiveDate, strIntentionUnitInstructions, strNote).Tables[0];//新增
                if (dt.Rows.Count > 0)
                {
                    DateTime dtmOperatingTime = DateTime.Now;
                    PublicMethod.Pub_InsertClientEventRecord(intCustomID, dtmOperatingTime, "客户添加认筹", "添加认筹");
                    MessageBox.Show("添加认筹成功!");
                    frmXiaoShouGuanLi_RenChouGuanLi_RenChouBianJi_Load(null,null);
                    Frm.frmMarketManagement_ConfessToRaiseManagement_Activated(null,null);
                }
            }
            catch { MessageBox.Show("请完善所有信息!"); }
        }

        private void txtTheOrderNumber_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (char.IsDigit(e.KeyChar) || e.KeyChar==(char)Keys.Back )
            {
                e.Handled = false ;
            }
            else
                e.Handled = true;
        }

        private void btnReturn_Click(object sender, EventArgs e)
        {
            Frm.frmMarketManagement_ConfessToRaiseManagement_Activated(null, null);
            this.Close();//关闭窗体
        }

        private void txtAccountsReceivableAppointmentGold_KeyPress(object sender, KeyPressEventArgs e)//txtAccountsReceivableAppointmentGold的键按下放开事件
        {
            PublicMethod.pubPriceOrRate_KeyPress(sender, e);
        }

        private void btnSaveAndUpdate_Click(object sender, EventArgs e)//修改按钮的单击事件
        {
            try
            {
                string strRaiseNumeralRecognition = Convert.ToInt32(txtRaiseNumeralRecognition.Text).ToString();
                string strTheOrderNumber = txtTheOrderNumber.Text.ToString();
                int intConfessToRaiseClassificationID = (int)cboConfessToRaiseClasses.SelectedValue;
                decimal decAccountsReceivableAppointmentGold = Convert.ToDecimal(txtAccountsReceivableAppointmentGold.Text.ToString());
                DateTime dtmConfesstoraiseDate = dtpConfessToRaiseDate.Value;
                DateTime dtmEffectiveDate = dtpEffectiveDate.Value;
                string strIntentionUnitInstructions = txtIntentionUnitInstructions.Text.ToString();
                string strNote = txtNote.Text.ToString();
                int intNewConfessToRaiseID = (int)myfrmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEditClient.btnSaveAndAdd_Click_Insert(intCustomID, strRaiseNumeralRecognition, strTheOrderNumber, intConfessToRaiseClassificationID,
                         decAccountsReceivableAppointmentGold, dtmConfesstoraiseDate, dtmEffectiveDate, strIntentionUnitInstructions, strNote).Tables[0].Rows[0][0];
                if (intNewConfessToRaiseID > 0)
                {
                    DateTime dtmOperatingTime = DateTime.Now;
                    PublicMethod.Pub_InsertClientEventRecord(intCustomID, dtmOperatingTime, "客户修改认筹", "修改认筹");
                    myfrmMarketManagement_ConfessToRaiseManagement_ConfessToRaiseEditClient.btnSaveAndUpdate_Click_UpdateOldMsg(intNewConfessToRaiseID,intOldConfessToRaiseID);
                    MessageBox.Show("修改认筹成功!");
                    frmXiaoShouGuanLi_RenChouGuanLi_RenChouBianJi_Load(null, null);
                    Frm.frmMarketManagement_ConfessToRaiseManagement_Activated(null, null);
                }
            }
            catch { MessageBox.Show("请完善所有信息!"); }
        }

        private void btnAdd_Click(object sender, EventArgs e)//添加客户单击事件,跳转界面
        {
            frmMarketManagement_ClientRegistrtion_PubRegistration myfrmMarketManagement_ClientRegistrtion_PubRegistration = new frmMarketManagement_ClientRegistrtion_PubRegistration(this);
            myfrmMarketManagement_ClientRegistrtion_PubRegistration.ShowDialog();
        }
    }

3.认筹转预留



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

控件名称

说明

标注(Label)

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

日期控件(DateTimePicker)

文本(TextBox)

按钮(Button)

下拉框(ComboBox)

组容器(GroupBox)

表格(DataGridView)

功能实现:

第一步:数据库

1、表与关系



表1: 房间资源表(dbo.SYS_RoomResource)

Primary Key(主键):  RoomResourcesID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

RoomResourcesID

int - Identity

No

房间资源ID

FloorID

int

Yes

楼栋信息表,楼栋ID

TheCodeModelID

int

Yes

属性明细表,代码模式ID

Number

nchar (10)

Yes

编号

UnitNumberID

int

Yes

单元表,单元ID

FloorStotey

nchar (10)

Yes

楼层

RoomCategoryID

int

Yes

属性明细表,房间类别ID

TowardID

int

Yes

属性明细表,朝向ID

DoorModelID

int

Yes

属性明细表,户型ID

RoomTypeID

int

Yes

属性明细表,房间类型ID

RoomLandScapeID

int

Yes

属性明细表,房间景观ID

RoomSpecialID

int

Yes

属性明细表,房间特殊ID

ConstructionArea

decimal (18, 2)

Yes

建筑面积

PricateArea

decimal (18, 2)

Yes

私有面积

PublicArea

decimal (18, 2)

Yes

公摊面积

Usage

decimal (18, 2)

Yes

使用率

TheUnitPrice

decimal (18, 2)

Yes

标价单价

BidPrice

decimal (18, 2)

Yes

标价总价

NumberOfPrice

nchar (10)

Yes

价格次数

SalesStatusID

int

((102))

Yes

属性明细表,销售状态ID

BriefNote

nchar (30)

Yes

简要备注

SchematicDiagram

image

Yes

示意图

Chart

image

Yes

效果图

表2: 楼栋信息表(dbo.SYS_FloorInformation)

Primary Key(主键):  FloorID

非主键ID值均是外键

(这里因为在这个表里边没有设置有默认值,所以没有默认值的那一列)

列名

数据类型

Nulls?

说明

FloorID

int - Identity

No

楼栋ID

ProjectID

int

Yes

项目信息表,项目ID

FloorStructureID

int

Yes

属性明细表,楼栋结构ID

OpenBatchID

int

Yes

属性明细表,开盘批次ID

LaunchSituationID

int

Yes

属性明细表,推出情况ID

OpeningSituationID

int

Yes

属性明细表,开盘情况ID

FloorLevelID

int

Yes

楼栋级别ID

SortNumber

nchar (10)

Yes

序号

FloorName

nchar (20)

Yes

楼栋名称

PropertyRightFloorName

nchar (20)

Yes

产权楼栋名称

FloorStorey

nchar (10)

Yes

楼栋层数

LaunchDate

datetime

Yes

推出日期

DoMortgageDate

datetime

Yes

具备办按揭日期

CapsDate

datetime

Yes

封顶日期

AccumulationFundDate

datetime

Yes

具备办公积金日期

ExpectedPayDate

datetime

Yes

预计交房日期

PropertyRightDate

datetime

Yes

具备办产权日期

MakingRoomDate

datetime

Yes

交房日期

表3:  客户信息 (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

作废否

表4:  客户事件记录表 (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

说明

表5: 预留表 (dbo. PW_SeserveUnit)

Primary Key(主键):  SeserveUnitID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

SeserveUnitID

int - Identity

No

预留单元ID

ClientID

int

Yes

客户信息表,客户ID

FloorID

int

Yes

楼栋信息表,楼栋ID

UnitNumberID

int

Yes

房间资源表,房间单元ID

RoomNumeral

nchar (10)

Yes

房间排号

PresalseArea

decimal (18, 2)

Yes

预售面积

SeservationUnitPrice

decimal (18, 2)

Yes

预留单价

BookingSeservationPrice

decimal (18, 2)

Yes

预留总价

AccountsReceivableBookingGoid

money

Yes

应收预约金

SeservatingDate

datetime

Yes

预留日期

ValidDate

datetime

Yes

有效日期

BriefNote

nchar (100)

Yes

简要备注

AuditDate

datetime

Yes

审核日期

NewSeserveUnitID

int

Yes

预留表,新的预留ID

ChangeReason

int

Yes

变更原因

IncalidOr

bit

((0))

Yes

作废否

表6: 认筹表 (dbo. PW_ClientConfessToRaise)

Primary Key(主键):  ClientConfessToRaiseID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ClientConfessToRaiseID

int - Identity

No

客户认筹ID

ClientID

int

Yes

客户信息表,客户ID

RaiseNumeralRecognition

nchar (10)

Yes

认筹排号

TheOrderNumber

nchar (10)

Yes

订单号

ConfessToRaiseClassificationID

int

Yes

属性明细表,筹卡分类ID

AccountsReceivableAppointmentGold

money

Yes

应收预约金

ConfesstoraiseDate

datetime

Yes

认筹日期

EffectiveDate

datetime

Yes

有效日期

IntentionUnitInstructions

nchar (10)

Yes

意向单元说明

Note

nchar (30)

Yes

备注

ToSeserve

bit

((0))

Yes

转预留否

SeserveID

int

Yes

预留表,预留ID

AuditWhether

bit

((0))

Yes

审核否

IncalidWhether

bit

((0))

Yes

作废否

AfterUpdateID

int

Yes

认筹表,修改后ID

表7: 员工表 (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

员工照片

表8: 属性明细表(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='SeserveEdit_Load_BindingdgvProject'--预留窗体的加载事件里边查询项目信息
begin
SELECT     ProjectID, RTRIM(SortNumber) AS SortNumber, RTRIM(ProjectName) AS ProjectName
FROM         SYS_ProjectInformation
end

if @Type='SeserveEdit_Load_BindingdgvCustomer'--预留窗体的加载事件里边查询客户信息
begin
SELECT     ClientID, RTRIM(ClientName) AS ClientName, RTRIM(RelationPhone) AS RelationPhone, Gender AS 性别, 
           CommunicationAddress, ClientNumber, IDentityCard, Postcode, 
                      HomeBuyerConsultantID
FROM         PW_ClientInformation
where  ClientID=@ClientID
end

if @Type='dgvProject_CellMouseDoubleClick_BindingcboFloorNumber'--查询某一项目的楼栋信息
begin
SELECT     FloorID, rtrim(FloorName) as FloorName
FROM         SYS_FloorInformation
where  SYS_FloorInformation.ProjectID=@ProjectID
end

if @Type='cboFloorNumber_SelectionChangeCommitted_BindingcboUnitNumber'--查询房源
begin
SELECT     RoomResourcesID, rtrim(Number) as Number
FROM         SYS_RoomResources
where  SYS_RoomResources.FloorID=@FloorID and SYS_RoomResources.SalesStatusID=102
end

if @Type='SeserveEdit_Load_BindingcboHomeBuyersConsultant'--查询置业顾问
begin
SELECT     StaffID, rtrim(StaffName) as  StaffName
FROM         SYS_Staff
end

if @Type='cboUnitNumber_SelectionChangeCommitted_SelectPrivateArea'--查询某一个房源的面积
begin
SELECT     rtrim(PricateArea) as  PricateArea
FROM         SYS_RoomResources
where SYS_RoomResources.RoomResourcesID=@RoomResourcesID
end

if @Type='btnSaveAndInsert_Click_Insert'--新增方法
begin
begin tran
INSERT INTO PW_SeserveUnit
           (ClientID, FloorID, UnitNumberID, RoomNumeral, PresalseArea, SeservationUnitPrice, BookingSeservationPrice, AccountsReceivableBookingGoid, SeservatingDate, ValidDate, BriefNote)
VALUES     (@ClientID, @FloorID, @UnitNumberID, @RoomNumeral, @PresalseArea, @SeservationUnitPrice, @BookingSeservationPrice, @AccountsReceivableBookingGoid, @SeservatingDate, @ValidDate, @BriefNote)
select @@IDENTITY
commit tran
end

if @Type='btnSaveAndInsert_Click_UpdateRoomStatus'--修改房源的状态
begin
UPDATE    SYS_RoomResources
SET              SalesStatusID = 98
where  SYS_RoomResources.RoomResourcesID=@RoomResourcesID

UPDATE    PW_ClientConfessToRaise
SET              ToSeserve = 1 , SeserveID =@SeserveID
where PW_ClientConfessToRaise.ClientConfessToRaiseID=@ClientConfessToRaiseID
end

if @Type='SeserveEdit_Load_UpdateLoad'--修改界面加载的时候查询要绑定的相关数据
begin
SELECT     PW_SeserveUnit.SeserveUnitID, PW_ClientInformation.ClientID, PW_ClientInformation.HomeBuyerConsultantID, PW_SeserveUnit.FloorID, PW_SeserveUnit.UnitNumberID, 
                      rtrim(PW_SeserveUnit.RoomNumeral) as  RoomNumeral, rtrim(PW_SeserveUnit.PresalseArea) as  PresalseArea, rtrim(PW_SeserveUnit.SeservationUnitPrice) as  SeservationUnitPrice, rtrim(PW_SeserveUnit.BookingSeservationPrice) as  BookingSeservationPrice, 
                      rtrim(PW_SeserveUnit.AccountsReceivableBookingGoid) as  AccountsReceivableBookingGoid, PW_SeserveUnit.SeservatingDate, PW_SeserveUnit.ValidDate, rtrim(PW_SeserveUnit.BriefNote) as  BriefNote, SYS_RoomResources.RoomResourcesID, 
                      SYS_FloorInformation.ProjectID, rtrim(SYS_ProjectInformation.ProjectName) as  ProjectName, rtrim(PW_ClientConfessToRaise.Note) as  Note, rtrim(PW_ClientConfessToRaise.IntentionUnitInstructions) as  IntentionUnitInstructions, 
                      PW_ClientConfessToRaise.ClientConfessToRaiseID
FROM         PW_SeserveUnit INNER JOIN
                      PW_ClientConfessToRaise ON PW_SeserveUnit.SeserveUnitID = PW_ClientConfessToRaise.SeserveID INNER JOIN
                      PW_ClientInformation ON PW_SeserveUnit.ClientID = PW_ClientInformation.ClientID INNER JOIN
                      SYS_RoomResources ON PW_SeserveUnit.UnitNumberID = SYS_RoomResources.RoomResourcesID INNER JOIN
                      SYS_FloorInformation ON PW_SeserveUnit.FloorID = SYS_FloorInformation.FloorID INNER JOIN
                      SYS_ProjectInformation ON SYS_FloorInformation.ProjectID = SYS_ProjectInformation.ProjectID

where   PW_SeserveUnit.SeserveUnitID=@SeserveUnitID
end

if @Type='btnSaveAndUpdate_Click_UpdateOldSeserve'--修改预留的房源
begin
UPDATE    PW_SeserveUnit
SET              NewSeserveUnitID = @NewSeserveUnitID , IncalidOr =1
where  PW_SeserveUnit.SeserveUnitID=@SeserveUnitID
end

if @Type='btnSaveAndUpdate_Click_UpdateOldRoomStatus'--修改原房源的销售状态
begin
UPDATE    SYS_RoomResources
SET              SalesStatusID = 102
where  SYS_RoomResources.RoomResourcesID=@RoomResourcesID

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

 

    [ServiceContract]
    public class frmMarketManagement_ConfessToRaiseManagement_SeserveEdit
    {
        DALPublic.DALPublic myDALPublic = new DALPublic.DALPublic();

        [OperationContract]
        #region 绑定dgvProject
        public DataSet SeserveEdit_Load_BindingdgvProject()
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                          };
            SQLCMDpas[0].Value = "SeserveEdit_Load_BindingdgvProject";
            DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ConfessToRaiseManagement_SeserveEdit", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion

        [OperationContract]
        #region 条件绑定客户信息
        public DataSet SeserveEdit_Load_BindingdgvCustomer(int intClientID)
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                           new SqlParameter("@ClientID", SqlDbType.Char),
                                          };
            SQLCMDpas[0].Value = "SeserveEdit_Load_BindingdgvCustomer";
            SQLCMDpas[1].Value = intClientID;
            DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ConfessToRaiseManagement_SeserveEdit", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion

        [OperationContract]
        #region 条件绑定cbo楼栋
        public DataSet dgvProject_CellMouseDoubleClick_BindingcboFloorNumber(int intProjectID)
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                           new SqlParameter("@ProjectID", SqlDbType.Int),
                                          };
            SQLCMDpas[0].Value = "dgvProject_CellMouseDoubleClick_BindingcboFloorNumber";
            SQLCMDpas[1].Value = intProjectID;
            DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ConfessToRaiseManagement_SeserveEdit", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion

        [OperationContract]
        #region 条件绑定cbo单元
        public DataSet cboFloorNumber_SelectionChangeCommitted_BindingcboUnitNumber(int intFloorID)
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                           new SqlParameter("@FloorID", SqlDbType.Int),
                                          };
            SQLCMDpas[0].Value = "cboFloorNumber_SelectionChangeCommitted_BindingcboUnitNumber";
            SQLCMDpas[1].Value = intFloorID;
            DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ConfessToRaiseManagement_SeserveEdit", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion

        [OperationContract]
        #region 条件绑定cbo置业顾问
        public DataSet SeserveEdit_Load_BindingcboHomeBuyersConsultant()
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                          };
            SQLCMDpas[0].Value = "SeserveEdit_Load_BindingcboHomeBuyersConsultant";
            DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ConfessToRaiseManagement_SeserveEdit", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion

        [OperationContract]
        #region 绑定预售面积
        public DataSet cboUnitNumber_SelectionChangeCommitted_SelectPrivateArea(int intRoomResourcesID)
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                           new SqlParameter("@RoomResourcesID", SqlDbType.Int),
                                          };
            SQLCMDpas[0].Value = "cboUnitNumber_SelectionChangeCommitted_SelectPrivateArea";
            SQLCMDpas[1].Value = intRoomResourcesID;
            DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ConfessToRaiseManagement_SeserveEdit", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion 
        
        [OperationContract]
        #region 新增预留信息
        public DataSet btnSaveAndInsert_Click_Insert(int intClientID, int intFloorID, int intUnitNumberID, string strRoomNumeral, decimal decPresalseArea, decimal decSeservationUnitPrice, decimal decBookingSeservationPrice, decimal decAccountsReceivableBookingGoid, DateTime dtmSeservatingDate,DateTime dtmValidDate, string strBriefNote)
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                           new SqlParameter("@ClientID", SqlDbType.Int),
                                           new SqlParameter("@FloorID", SqlDbType.Int),
                                           new SqlParameter("@UnitNumberID", SqlDbType.Int),
                                           new SqlParameter("@RoomNumeral", SqlDbType.Char),
                                           new SqlParameter("@PresalseArea", SqlDbType.Decimal),
                                           new SqlParameter("@SeservationUnitPrice", SqlDbType.Decimal),
                                           new SqlParameter("@BookingSeservationPrice", SqlDbType.Decimal),
                                           new SqlParameter("@AccountsReceivableBookingGoid", SqlDbType.Decimal),
                                           new SqlParameter("@SeservatingDate", SqlDbType.DateTime),
                                           new SqlParameter("@ValidDate", SqlDbType.DateTime),
                                           new SqlParameter("@BriefNote", SqlDbType.Char),
                                          };
            SQLCMDpas[0].Value = "btnSaveAndInsert_Click_Insert";
            SQLCMDpas[1].Value = intClientID;
            SQLCMDpas[2].Value = intFloorID;
            SQLCMDpas[3].Value = intUnitNumberID;
            SQLCMDpas[4].Value = strRoomNumeral;
            SQLCMDpas[5].Value = decPresalseArea;
            SQLCMDpas[6].Value = decSeservationUnitPrice;
            SQLCMDpas[7].Value = decBookingSeservationPrice;
            SQLCMDpas[8].Value = decAccountsReceivableBookingGoid;
            SQLCMDpas[9].Value = dtmSeservatingDate;
            SQLCMDpas[10].Value = dtmValidDate;
            SQLCMDpas[11].Value = strBriefNote;
            DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ConfessToRaiseManagement_SeserveEdit", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion

        [OperationContract]
        #region 修改房间状态
        public int btnSaveAndInsert_Click_UpdateRoomStatus(int intRoomResourcesID,int intSeserveID,int intClientConfessToRaiseID)
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                           new SqlParameter("@RoomResourcesID", SqlDbType.Int),
                                           new SqlParameter("@SeserveID", SqlDbType.Int),
                                           new SqlParameter("@ClientConfessToRaiseID", SqlDbType.Int),
                                          };
            SQLCMDpas[0].Value = "btnSaveAndInsert_Click_UpdateRoomStatus";
            SQLCMDpas[1].Value = intRoomResourcesID;
            SQLCMDpas[2].Value = intSeserveID;
            SQLCMDpas[3].Value = intClientConfessToRaiseID;
            return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ConfessToRaiseManagement_SeserveEdit", SQLCMDpas);

        }
        #endregion 
        
        [OperationContract]
        #region 修改时绑定预留信息
        public DataSet SeserveEdit_Load_UpdateLoad(int intSeserveUnitID)
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                           new SqlParameter("@SeserveUnitID", SqlDbType.Int),
                                          };
            SQLCMDpas[0].Value = "SeserveEdit_Load_UpdateLoad";
            SQLCMDpas[1].Value = intSeserveUnitID;
            DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ConfessToRaiseManagement_SeserveEdit", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion 
        
        [OperationContract]
        #region 修改旧的预留信息
        public int btnSaveAndUpdate_Click_UpdateOldSeserve(int intNewSeserveUnitID, int intSeserveUnitID)
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                           new SqlParameter("@NewSeserveUnitID", SqlDbType.Int),
                                           new SqlParameter("@SeserveUnitID", SqlDbType.Int),
                                          };
            SQLCMDpas[0].Value = "btnSaveAndUpdate_Click_UpdateOldSeserve";
            SQLCMDpas[1].Value = intNewSeserveUnitID;
            SQLCMDpas[2].Value = intSeserveUnitID;
            return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ConfessToRaiseManagement_SeserveEdit", SQLCMDpas);
        }
        #endregion 
        
        [OperationContract]
        #region 修改旧预留房间的状态
        public int btnSaveAndUpdate_Click_UpdateOldRoomStatus(int intRoomResourcesID)
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                           new SqlParameter("@RoomResourcesID", SqlDbType.Int),
                                          };
            SQLCMDpas[0].Value = "btnSaveAndUpdate_Click_UpdateOldRoomStatus";
            SQLCMDpas[1].Value = intRoomResourcesID;
            return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ConfessToRaiseManagement_SeserveEdit", SQLCMDpas);
        }
        #endregion 
        
    }


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


    public partial class frmMarketManagement_ConfessToRaiseManagement_SeserveEdit : Form
    {
        frmMarketManagement_ConfessToRaiseManagement Frm;
        public frmMarketManagement_ConfessToRaiseManagement_SeserveEdit(frmMarketManagement_ConfessToRaiseManagement frm)//窗体传值
        {
            Frm = frm;
            InitializeComponent();
        }

        int intOldID = 0;
        public frmMarketManagement_ConfessToRaiseManagement_SeserveEdit(frmMarketManagement_ConfessToRaiseManagement frm,int intOldSeserveID)
        {
            Frm = frm;
            intOldID = intOldSeserveID;
            InitializeComponent();
        }

        BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ConfessToRaiseManagement_SeserveEdit.frmMarketManagement_ConfessToRaiseManagement_SeserveEditClient myfrmMarketManagement_ConfessToRaiseManagement_SeserveEditClient = new BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ConfessToRaiseManagement_SeserveEdit.frmMarketManagement_ConfessToRaiseManagement_SeserveEditClient();

        int intCustomID = 0;
        int intCustomerConfessToRaiseID = 0;
        private void frmMarketManagement_ConfessToRaiseManagement_SeserveEdit_Load(object sender, EventArgs e)//窗体加载的事件
        {
            DataTable dtProject = myfrmMarketManagement_ConfessToRaiseManagement_SeserveEditClient.SeserveEdit_Load_BindingdgvProject().Tables[0];
            dgvProject.DataSource = dtProject;
            DataView dv = new DataView(dtProject);
            dv.RowFilter = " ProjectID = " + Frm.intConditionProjectID;
            DataTable dt = dv.ToTable();
            txtProjectName.Text = dt.Rows[0]["ProjectName"].ToString().Trim();
            BindingcboFloorNumber(Frm.intConditionProjectID);
            DataTable dtHomeBuyersConsultant = myfrmMarketManagement_ConfessToRaiseManagement_SeserveEditClient.SeserveEdit_Load_BindingcboHomeBuyersConsultant().Tables[0];
            PublicMethod.SettingComboBox(cboHomeBuyersConsultant, dtHomeBuyersConsultant, "StaffID", "StaffName");
            txtIntentionUnitInstructions.Text = Frm.strIntentionUnitInstructions;
            txtConfessToRaiseNote.Text = Frm.strConfessToRaiseNote;
            intCustomID = Frm.intCustomerID;
            
            txtProjectName.Focus();
            if (intOldID != 0)
            {
                SeserveUpdate_Load(intOldID);
            }
            else
            {
                intCustomerConfessToRaiseID = Frm.intConfessToRaiseID;
                DataTable dtCustomer = myfrmMarketManagement_ConfessToRaiseManagement_SeserveEditClient.SeserveEdit_Load_BindingdgvCustomer(intCustomID).Tables[0];
                BinddingCustomerMsg(dtCustomer);
            }
        }

        int intOldRoomResourceID = 0;
        void SeserveUpdate_Load(int intSeserveID)//预留修改的加载事件
        {
            btnSaveAndInsert.Enabled = false;
            btnSaveAndUpdate.Enabled = true;
            DataTable dtOldSeserve = myfrmMarketManagement_ConfessToRaiseManagement_SeserveEditClient.SeserveEdit_Load_UpdateLoad(intSeserveID).Tables[0];
            intCustomID = (int)dtOldSeserve.Rows[0]["ClientID"];
            intCustomerConfessToRaiseID = (int)dtOldSeserve.Rows[0]["ClientConfessToRaiseID"];
            DataTable dtCustomer = myfrmMarketManagement_ConfessToRaiseManagement_SeserveEditClient.SeserveEdit_Load_BindingdgvCustomer(intCustomID).Tables[0];
            BinddingCustomerMsg(dtCustomer);
            intProjectID = (int)dtOldSeserve.Rows[0]["ProjectID"];
            txtProjectName.Text = dtOldSeserve.Rows[0]["ProjectName"].ToString().Trim();
            DataTable dtFloor = myfrmMarketManagement_ConfessToRaiseManagement_SeserveEditClient.dgvProject_CellMouseDoubleClick_BindingcboFloorNumber(intProjectID).Tables[0];
            PublicMethod.SettingComboBox(cboFloorNumber, dtFloor, "FloorID", "FloorName");
            intFloorID = (int)dtOldSeserve.Rows[0]["FloorID"];
            DataTable dtUnit = myfrmMarketManagement_ConfessToRaiseManagement_SeserveEditClient.cboFloorNumber_SelectionChangeCommitted_BindingcboUnitNumber(intFloorID).Tables[0];
            PublicMethod.SettingComboBox(cboUnitNumber, dtUnit, "RoomResourcesID", "Number");
            intOldRoomResourceID = (int)dtOldSeserve.Rows[0]["RoomResourcesID"];
            DataTable dtRoomMsg = myfrmMarketManagement_ConfessToRaiseManagement_SeserveEditClient.cboUnitNumber_SelectionChangeCommitted_SelectPrivateArea(intOldRoomResourceID).Tables[0];
            txtPresaleArea.Text = dtRoomMsg.Rows[0][0].ToString().Trim();
            txtRoomNumeral.Text = dtOldSeserve.Rows[0]["RoomNumeral"].ToString().Trim();
            txtSeserveUnitPrice.Text = dtOldSeserve.Rows[0]["SeservationUnitPrice"].ToString().Trim();
            txtSeservePrice.Text = dtOldSeserve.Rows[0]["BookingSeservationPrice"].ToString().Trim();
            txtAccountsreceivablebookinggold.Text = dtOldSeserve.Rows[0]["AccountsReceivableBookingGoid"].ToString().Trim();
            dtpSeserveDate.Value = Convert.ToDateTime(dtOldSeserve.Rows[0]["SeservatingDate"]);
            dtpEffectivedate.Value = Convert.ToDateTime(dtOldSeserve.Rows[0]["ValidDate"]);
            cboHomeBuyersConsultant.SelectedValue = (int)dtOldSeserve.Rows[0]["HomeBuyerConsultantID"];
            txtBriefNotes.Text = dtOldSeserve.Rows[0]["BriefNote"].ToString().Trim();
            txtConfessToRaiseNote.Text = dtOldSeserve.Rows[0]["Note"].ToString().Trim();
            txtIntentionUnitInstructions.Text = dtOldSeserve.Rows[0]["IntentionUnitInstructions"].ToString().Trim();
        }

        void BinddingCustomerMsg(DataTable dt)//绑定客户信息的构造函数
        {
            txtClientName.Text = dt.Rows[0]["ClientName"].ToString().Trim();
            txtTelephoneNumber.Text = dt.Rows[0]["RelationPhone"].ToString().Trim();
            txtCorrespondenceAddress.Text = dt.Rows[0]["CommunicationAddress"].ToString().Trim();
            txtClientNumber.Text = dt.Rows[0]["ClientNumber"].ToString().Trim();
            txtIDNumber.Text = dt.Rows[0]["IDentityCard"].ToString().Trim();
            txtZipCode.Text = dt.Rows[0]["Postcode"].ToString().Trim();
            cboHomeBuyersConsultant.SelectedValue = Convert.ToInt32(dt.Rows[0]["HomeBuyerConsultantID"].ToString().Trim());
        }

        private void dgvProject_MouseLeave(object sender, EventArgs e)//dgvProject的鼠标离开事件
        {
            dgvProject.Visible = false;
        }

        private void btnSelectProject_Click(object sender, EventArgs e)//按钮选择的点击事件
        {
            dgvProject.Visible = true;//设置dgvProject的可见性
        }

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

        void BindingcboFloorNumber(int ProjectID)//绑定楼栋编号的构造函数
        {
            DataTable dtFloor = myfrmMarketManagement_ConfessToRaiseManagement_SeserveEditClient.dgvProject_CellMouseDoubleClick_BindingcboFloorNumber(ProjectID).Tables[0];
            PublicMethod.SettingComboBox(cboFloorNumber, dtFloor, "FloorID", "FloorName");
        }

        int intFloorID = 0;
        private void cboFloorNumber_SelectionChangeCommitted(object sender, EventArgs e)//当cbo选定某项后下拉框列表关闭后发生
        {
            intFloorID = (int)cboFloorNumber.SelectedValue;
            DataTable dtUnit = myfrmMarketManagement_ConfessToRaiseManagement_SeserveEditClient.cboFloorNumber_SelectionChangeCommitted_BindingcboUnitNumber(intFloorID).Tables[0];
            PublicMethod.SettingComboBox(cboUnitNumber, dtUnit, "RoomResourcesID", "Number");//绑定cboUnitNumber
        }

        int intRoomResourceID = 0;
        private void cboUnitNumber_SelectionChangeCommitted(object sender, EventArgs e)
        {
            intRoomResourceID = (int)cboUnitNumber.SelectedValue;
            DataTable dtRoomMsg = myfrmMarketManagement_ConfessToRaiseManagement_SeserveEditClient.cboUnitNumber_SelectionChangeCommitted_SelectPrivateArea(intRoomResourceID).Tables[0];
            txtPresaleArea.Text = dtRoomMsg.Rows[0][0].ToString().Trim();
        }

        private void btnSaveAndInsert_Click(object sender, EventArgs e)//保存新增的按钮事件
        {
            string strRoomNumeral = txtRoomNumeral.Text.ToString();
            decimal decPresalseArea = Convert.ToDecimal(txtPresaleArea.Text);
            decimal decSeservationUnitPrice = Convert.ToDecimal(txtSeserveUnitPrice.Text);
            decimal decBookingSeservationPrice = Convert.ToDecimal(txtSeservePrice.Text);
            decimal decAccountsReceivableBookingGoid = Convert.ToDecimal(txtAccountsreceivablebookinggold.Text);
            DateTime dtmSeservatingDate = dtpSeserveDate.Value;
            DateTime dtmValidDate = dtpEffectivedate.Value;
            string strBriefNote = txtBriefNotes.Text.ToString();
            int intSeserve =Convert.ToInt32(myfrmMarketManagement_ConfessToRaiseManagement_SeserveEditClient.btnSaveAndInsert_Click_Insert(intCustomID, intFloorID, intRoomResourceID, strRoomNumeral, decPresalseArea, decSeservationUnitPrice, decBookingSeservationPrice, decAccountsReceivableBookingGoid, dtmSeservatingDate, dtmValidDate, strBriefNote).Tables[0].Rows[0][0]);
            if (intSeserve > 0)
            {
                DateTime dtmOperatingTime = DateTime.Now;
                PublicMethod.Pub_InsertSalesOfServiceFloowDetail("添加预留信息", intRoomResourceID, 0, 0, 0, 0, 0, dtmOperatingTime, 1, 150);
                myfrmMarketManagement_ConfessToRaiseManagement_SeserveEditClient.btnSaveAndInsert_Click_UpdateRoomStatus(intRoomResourceID, intSeserve, intCustomerConfessToRaiseID);//修改房间状态
                MessageBox.Show("添加预留成功!!!","提示");
                this.Close();
            }
        }

        private void txtSeserveUnitPrice_KeyPress(object sender, KeyPressEventArgs e)
        {
            PublicMethod.pubPriceOrRate_KeyPress(sender, e);//写在静态类里边的限制输入方法,在这里是直接调用
        }

        private void txtSeservePrice_KeyPress(object sender, KeyPressEventArgs e)
        {
            PublicMethod.pubPriceOrRate_KeyPress(sender, e);
        }

        private void txtAccountsreceivablebookinggold_KeyPress(object sender, KeyPressEventArgs e)
        {
            PublicMethod.pubPriceOrRate_KeyPress(sender, e);
        }

        private void btnSaveAndUpdate_Click(object sender, EventArgs e)//保存修改单击事件
        {
            intRoomResourceID = (int)cboUnitNumber.SelectedValue;
            string strRoomNumeral = txtRoomNumeral.Text.ToString();
            decimal decPresalseArea = Convert.ToDecimal(txtPresaleArea.Text);
            decimal decSeservationUnitPrice = Convert.ToDecimal(txtSeserveUnitPrice.Text);
            decimal decBookingSeservationPrice = Convert.ToDecimal(txtSeservePrice.Text);
            decimal decAccountsReceivableBookingGoid = Convert.ToDecimal(txtAccountsreceivablebookinggold.Text);
            DateTime dtmSeservatingDate = dtpSeserveDate.Value;
            DateTime dtmValidDate = dtpEffectivedate.Value;
            string strBriefNote = txtBriefNotes.Text.ToString();
            int intSeserve = Convert.ToInt32(myfrmMarketManagement_ConfessToRaiseManagement_SeserveEditClient.btnSaveAndInsert_Click_Insert(intCustomID, intFloorID, intRoomResourceID, strRoomNumeral, decPresalseArea, decSeservationUnitPrice, decBookingSeservationPrice, decAccountsReceivableBookingGoid, dtmSeservatingDate, dtmValidDate, strBriefNote).Tables[0].Rows[0][0]);
            if (intSeserve > 0)
            {
                DateTime dtmOperatingTime = DateTime.Now;
                if (intRoomResourceID != intOldRoomResourceID)
                {
                    myfrmMarketManagement_ConfessToRaiseManagement_SeserveEditClient.btnSaveAndUpdate_Click_UpdateOldRoomStatus(intOldRoomResourceID);
                    PublicMethod.Pub_InsertSalesOfServiceFloowDetail("修改预留信息--被更换", intOldRoomResourceID, 0, 0, 0, 0, 0, dtmOperatingTime, 1, 151);//新增销售关键记录
                }
                PublicMethod.Pub_InsertClientEventRecord(intCustomID, dtmOperatingTime, "修改预留", "修改预留房源信息");//在修改成功后新增操作记录
                PublicMethod.Pub_InsertSalesOfServiceFloowDetail("修改预留信息", intRoomResourceID, 0, 0, 0, 0, 0, dtmOperatingTime, 1, 151);//新增销售关键步骤的记录
                myfrmMarketManagement_ConfessToRaiseManagement_SeserveEditClient.btnSaveAndUpdate_Click_UpdateOldSeserve(intSeserve,intOldID);
                myfrmMarketManagement_ConfessToRaiseManagement_SeserveEditClient.btnSaveAndInsert_Click_UpdateRoomStatus(intRoomResourceID, intSeserve, intCustomerConfessToRaiseID);//修改房间状态
                MessageBox.Show("修改预留成功!!!", "提示");//提示框
                this.Close();
            }
        }





















































以上内容仅供学习内容,如用于商业用途,后果自负!!!
























































猜你喜欢

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