1.预定管理主界面

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

控件名称

说明

标注(Label)

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

选项卡(TabControl)

树状图(TreeView)

文本(TextBox)

按钮(Button)

菜单(ToolStripMenuItem)

工具栏(ToolStrip)

图片列表(ImageList)

表格(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.SYS_ProjectInformation)

Primary Key(主键):  ProjectID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ProjectID

int - Identity

No

项目ID

SortNumber

int

Yes

排序号

ProjectAreaID

int

Yes

属性明细表,项目区域ID

Project_FatherlID

int

Yes

项目信息表,项目级别ID

ProjectName

nchar (20)

Yes

项目名称

PropertyRightProjectName

nchar (20)

Yes

产权项目名称

ProjectCompanyName

nchar (20)

Yes

项目公司名称

ProjectAddress

nchar (50)

Yes

项目座落地址

CaseWhether

bit

Yes

是否结案

CancelWhether

bit

((0))

Yes

有效否

 

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

作废否

表5:  预定表 (dbo.PW_ReserveUnit)

Primary Key(主键):  ReserveUnitID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ReserveUnitID

int - Identity

No

预订单元ID

ClientID

int

Yes

客户表,客户ID

FloorID

int

Yes

楼栋信息表,楼栋ID

UnitNumberID

int

Yes

单元表,单元ID

RoomNumeral

nchar (10)

Yes

房间排号

PresalseArea

nchar (10)

Yes

预售面积

ReservationPrice

money

Yes

预收单价

BookingReservationPrice

money

Yes

预定总价

AccountsReceivableBookingGoid

money

Yes

应收预约金

BookingDate

datetime

Yes

预定日期

ValidDate

datetime

Yes

有效日期

BriefNote

nchar (20)

Yes

简要备注

AuditDate

date

Yes

审核日期

NewReserveUnitID

int

Yes

预定表,新预定ID

ChangeReason

int

Yes

属性明细表,变更原因ID

IncalidOr

bit

((0))

Yes

作废否

表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.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='ReserveManagement_Load_BindingdgvProject'--查询项目信息
begin
SELECT     ProjectID,RTRIM( ProjectName) as ProjectName
FROM         SYS_ProjectInformation
endif @Type='dgvProject_CellDoubleClick_BindtvwFloor'--查询楼栋信息
begin
SELECT     FloorID, RTRIM( FloorName) as FloorName
FROM         SYS_FloorInformation
where   SYS_FloorInformation.ProjectID=@ProjectID
endif @Type='dgvProject_CellDoubleClick_BindtvwRoom'--条件查询房源信息
begin
SELECT     RoomResourcesID, RTRIM( Number) as Number
FROM         SYS_RoomResources
where SYS_RoomResources.FloorID=@FloorID
endif @Type='tvwFloor_NodeMouseClick_SelectMsg'--根据楼栋ID来查询相关信息
begin
SELECT     RTRIM(SYS_FloorInformation.FloorName) AS FloorName, RTRIM(SYS_RoomResources.Number) AS Number, RTRIM(PW_ClientInformation.ClientName) AS ClientName, RTRIM(PW_ClientInformation.Gender) AS Gender, RTRIM(PW_ClientInformation.RelationPhone) AS RelationPhone, RTRIM(PW_ClientInformation.CommunicationAddress) AS CommunicationAddress, RTRIM(PW_ReserveUnit.PresalseArea) AS PresalseArea, RTRIM(PW_ReserveUnit.ReservationPrice) AS ReservationPrice, RTRIM(PW_ReserveUnit.BookingReservationPrice) AS BookingReservationPrice, RTRIM(PW_ReserveUnit.AccountsReceivableBookingGoid) AS AccountsReceivableBookingGoid, PW_ReserveUnit.BookingDate, PW_ReserveUnit.ValidDate, RTRIM(PW_ReserveUnit.BriefNote) AS BriefNote, RTRIM(PW_ClientInformation.Age) AS Age, PW_ReserveUnit.ReserveUnitID, SYS_RoomResources.RoomResourcesID, SYS_ProjectInformation.ProjectID, SYS_FloorInformation.FloorID, PW_ReserveUnit.ClientID
FROM         PW_ReserveUnit INNER JOINSYS_FloorInformation ON PW_ReserveUnit.FloorID = SYS_FloorInformation.FloorID INNER JOINSYS_RoomResources ON PW_ReserveUnit.UnitNumberID = SYS_RoomResources.RoomResourcesID INNER JOINPW_ClientInformation ON PW_ReserveUnit.ClientID = PW_ClientInformation.ClientID INNER JOINSYS_ProjectInformation ON SYS_FloorInformation.ProjectID = SYS_ProjectInformation.ProjectIDwhere SYS_RoomResources.FloorID=@FloorID and PW_ReserveUnit.IncalidOr=0
endif @Type='ReserveManagement_Load_SelectAllMsg'--查询所有未作废的信息
begin
SELECT     RTRIM(SYS_FloorInformation.FloorName) AS FloorName, RTRIM(SYS_RoomResources.Number) AS Number, RTRIM(PW_ClientInformation.ClientName) AS ClientName, RTRIM(PW_ClientInformation.Gender) AS Gender, RTRIM(PW_ClientInformation.RelationPhone) AS RelationPhone, RTRIM(PW_ClientInformation.CommunicationAddress) AS CommunicationAddress, RTRIM(PW_ReserveUnit.PresalseArea) AS PresalseArea, RTRIM(PW_ReserveUnit.ReservationPrice) AS ReservationPrice, RTRIM(PW_ReserveUnit.BookingReservationPrice) AS BookingReservationPrice, RTRIM(PW_ReserveUnit.AccountsReceivableBookingGoid) AS AccountsReceivableBookingGoid, PW_ReserveUnit.BookingDate, PW_ReserveUnit.ValidDate, RTRIM(PW_ReserveUnit.BriefNote) AS BriefNote, RTRIM(PW_ClientInformation.Age) AS Age, PW_ReserveUnit.ReserveUnitID, SYS_RoomResources.RoomResourcesID, SYS_ProjectInformation.ProjectID, SYS_FloorInformation.FloorID, PW_ReserveUnit.ClientID
FROM         PW_ReserveUnit INNER JOINSYS_FloorInformation ON PW_ReserveUnit.FloorID = SYS_FloorInformation.FloorID INNER JOINSYS_RoomResources ON PW_ReserveUnit.UnitNumberID = SYS_RoomResources.RoomResourcesID INNER JOINPW_ClientInformation ON PW_ReserveUnit.ClientID = PW_ClientInformation.ClientID INNER JOINSYS_ProjectInformation ON SYS_FloorInformation.ProjectID = SYS_ProjectInformation.ProjectID
where PW_ReserveUnit.IncalidOr=0
end   if @Type='tsbtnDeleteReserve_Click_Update'--修改房源的状态
begin
UPDATE    PW_ReserveUnit
SET              IncalidOr = 1
where  PW_ReserveUnit.ReserveUnitID=@ReserveUnitIDUPDATE    SYS_RoomResources
SET              SalesStatusID = 102
where SYS_RoomResources.RoomResourcesID=@RoomResourcesID
end

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

    [ServiceContract]public class frmMarketManagement_ReserveManagement{DALPublic.DALPublic myDALPublic = new DALPublic.DALPublic();[OperationContract]#region 绑㨮定¡§dgv项?目?public DataSet ReserveManagement_Load_BindingdgvProject(){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),};SQLCMDpas[0].Value = "ReserveManagement_Load_BindingdgvProject";DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 绑㨮定¡§树º¡Â状Á¡ä图ª?楼£¤栋¡ãpublic DataSet dgvProject_CellDoubleClick_BindtvwFloor(int intProjectID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@ProjectID", SqlDbType.Int),};SQLCMDpas[0].Value = "dgvProject_CellDoubleClick_BindtvwFloor";SQLCMDpas[1].Value = intProjectID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 绑㨮定¡§树º¡Â状Á¡ä图ª?房¤?间?public DataSet dgvProject_CellDoubleClick_BindtvwRoom(int intFloorID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@FloorID", SqlDbType.Int),};SQLCMDpas[0].Value = "dgvProject_CellDoubleClick_BindtvwRoom";SQLCMDpas[1].Value = intFloorID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 绑㨮定¡§dgv预¡è订?信?息¡épublic DataSet tvwFloor_NodeMouseClick_SelectMsg(int intFloorID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@FloorID", SqlDbType.Int),};SQLCMDpas[0].Value = "tvwFloor_NodeMouseClick_SelectMsg";SQLCMDpas[1].Value = intFloorID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 绑㨮定¡§dgv预¡è订?信?息¡épublic int tsbtnDeleteReserve_Click_Update(int intReserveUnitID, int intRoomResourcesID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@ReserveUnitID", SqlDbType.Int),new SqlParameter("@RoomResourcesID", SqlDbType.Int),};SQLCMDpas[0].Value = "tsbtnDeleteReserve_Click_Update";SQLCMDpas[1].Value = intReserveUnitID;SQLCMDpas[2].Value = intRoomResourcesID;return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ReserveManagement", SQLCMDpas);}#endregion [OperationContract]#region 查¨¦询¡¥所¨´有®D的Ì?预¡è定¡§信?息¡épublic DataSet ReserveManagement_Load_SelectAllMsg(){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),};SQLCMDpas[0].Value = "ReserveManagement_Load_SelectAllMsg";DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion }

第三步:界面层(UIL)相关代码及说明

    public partial class frmMarketManagement_ReserveManagement : Form{frmMain frmmain;public frmMarketManagement_ReserveManagement(frmMain frm)//窗体传值{frmmain = frm;InitializeComponent();}BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ReserveManagement.frmMarketManagement_ReserveManagementClient myfrmMarketManagement_ReserveManagementClient = new BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ReserveManagement.frmMarketManagement_ReserveManagementClient();//实例化逻辑层private void tsbtnClose_Click(object sender, EventArgs e){this.Close();//关闭窗体}private void frmMarketManagement_ReserveManagement_Load(object sender, EventArgs e)//窗体的加载事件{tvwFloor.Nodes.Clear();//所有的树节点都清空dgvProject.DataSource = myfrmMarketManagement_ReserveManagementClient.ReserveManagement_Load_BindingdgvProject().Tables[0];DataTable dtReserved = myfrmMarketManagement_ReserveManagementClient.ReserveManagement_Load_SelectAllMsg().Tables[0];dgvReserveUnit.DataSource = dtReserved;//绑定dgvReserveUnit数据源}private void frmMarketManagement_ReserveManagement_FormClosing(object sender, FormClosingEventArgs e)//在窗体关闭时发生的事件{frmmain.RemoveTabPage();//调用主界面里边的构造函数}private void tsbtnInsertReserve_Click(object sender, EventArgs e)//新增预定的单击事件{if (intProjectID == 0){MessageBox.Show("请选择一个项目后继续!!!");return;}frmMarketManagement_ReserveManagement_InsertReserve myfrmMarketManagement_ReserveManagement_InsertReserve = new frmMarketManagement_ReserveManagement_InsertReserve(this);myfrmMarketManagement_ReserveManagement_InsertReserve.ShowDialog();//新增预定界面的弹出}private void btnSelect_Click(object sender, EventArgs e){dgvProject.Visible = true;//设置dgvProject的可见性为真}private void dgvProject_MouseLeave(object sender, EventArgs e){dgvProject.Visible = false;//是指dgvProject的可见性未假}public int intProjectID = 0;private void dgvProject_CellDoubleClick(object sender, DataGridViewCellEventArgs e)//dgvProject单元格的双击双击事件{intFloorID = 0;txtProjectName.Text = dgvProject.CurrentRow.Cells["项目名称"].Value.ToString().Trim();intProjectID = Convert.ToInt32( dgvProject.CurrentRow.Cells["项目ID"].Value);dgvProject.Visible = false;DataTable dtFloor = myfrmMarketManagement_ReserveManagementClient.dgvProject_CellDoubleClick_BindtvwFloor(intProjectID).Tables[0];BindtvwFloor_FullProject(dtFloor);//调用执行绑定树状图的构造函数MultSelect( intProjectID, intFloorID);//调用不定条件查询的构造函数}public void MultSelect(int intProjectID, int intFloorID)//不定条件查询的构造函数{string strCondition = " 1=1 ";DataTable dtMsg = myfrmMarketManagement_ReserveManagementClient.ReserveManagement_Load_SelectAllMsg().Tables[0];DataView dv = new DataView(dtMsg);if (intProjectID != 0){strCondition += " and ProjectID = " + intProjectID;}if (intFloorID != 0){strCondition += " and FloorID = " + intFloorID;}dv.RowFilter = strCondition;DataTable dt = dv.ToTable();dgvReserveUnit.DataSource = dt;}void BindtvwFloor_FullProject(DataTable dt)//执行绑定树状图的构造函数{tvwFloor.Nodes.Clear();for (int i = 0; i < dt.Rows.Count; i++)//遍历绑定顶级节点{TreeNode tn = new TreeNode();//实例化节点tn.Text = dt.Rows[i]["FloorName"].ToString();//指定节点文本tn.Tag = dt.Rows[i]["FloorID"];//绑定节点数据tvwFloor.Nodes.Add(tn);//将节点添加到树控件}}public int intFloorID = 0;private void tvwFloor_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e){intFloorID = (int)e.Node.Tag;MultSelect(intProjectID, intFloorID);}private void tsbtnChangeReserve_Click(object sender, EventArgs e)//换定预定的单击事件{            if (intReserveUnitID == 0){MessageBox.Show("请选择一条预订信息后继续!!!");return;}frmMarketManagement_ReserveManagement_ChangeReserve myfrmMarketManagement_ReserveManagement_ChangeReserve = new frmMarketManagement_ReserveManagement_ChangeReserve(this);myfrmMarketManagement_ReserveManagement_ChangeReserve.Show();//窗体的跳转}public int intReserveUnitID = 0;public int intRoomResourceID = 0;public int intfloorID = 0;public int intCustomerID = 0;private void dgvReserveUnit_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)//dgvReserveUnit的单击事件{if (dgvReserveUnit.CurrentRow != null && dgvReserveUnit.CurrentCell != null){intReserveUnitID = Convert.ToInt32(dgvReserveUnit.CurrentRow.Cells["预订单元ID"].Value);intProjectID = Convert.ToInt32(dgvReserveUnit.CurrentRow.Cells["ProjectID"].Value);intRoomResourceID = Convert.ToInt32(dgvReserveUnit.CurrentRow.Cells["RoomResourcesID"].Value);intfloorID = Convert.ToInt32(dgvReserveUnit.CurrentRow.Cells["FloorID"].Value);intCustomerID = Convert.ToInt32(dgvReserveUnit.CurrentRow.Cells["ClientID"].Value);}}private void tsbtnReserveToSubscribe_Click(object sender, EventArgs e)//预定转认购的单击事件{if (intProjectID == 0){MessageBox.Show("请选择一个项目后才能继续此操作!!!");return;}if (intReserveUnitID == 0){MessageBox.Show("请选择一条预订信息后才能继续此操作!!!");return;}frmMarketManagement_ReserveManagement_ReserveToSubscribe myfrmMarketManagement_ReserveManagement_ReserveToSubscribe = new frmMarketManagement_ReserveManagement_ReserveToSubscribe(this);myfrmMarketManagement_ReserveManagement_ReserveToSubscribe.ShowDialog();//窗体弹出}private void tsbtnDeleteReserve_Click(object sender, EventArgs e)//删除预留{int intSelectedNumber = 0;int intSuccessNumber = 0;dgvReserveUnit.EndEdit();foreach (DataGridViewRow dgvr in dgvReserveUnit.Rows)//循环遍历{if (Convert.ToBoolean(dgvr.Cells["选择"].FormattedValue)){intSelectedNumber++;int intReservedUnitID = (int)dgvr.Cells["预订单元ID"].Value;int intRoomResourceID = (int)dgvr.Cells["RoomResourcesID"].Value;int myop = myfrmMarketManagement_ReserveManagementClient.tsbtnDeleteReserve_Click_Update(intReservedUnitID, intRoomResourceID);if (myop > 0){intSuccessNumber++;}}}MessageBox.Show("已选择" + intSelectedNumber + "条数据,\n" + "已删除" + intSuccessNumber + "条数据,\n" + (intSelectedNumber - intSuccessNumber) + "删除失败!", "提示");MultSelect(intProjectID,intfloorID);}public void tsbtnRefresh_Click(object sender, EventArgs e)//刷新单击事件{frmMarketManagement_ReserveManagement_Load(null,null);}}

2.添加预定信息

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

控件名称

说明

标注(Label)

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

下拉框(ComboBox)

文本(TextBox)

按钮(Button)

日期控件(DateTimePicker)

分组容器(GroupBox)

图片列表(ImageList)

表格(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_ReserveUnit)

Primary Key(主键):  ReserveUnitID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ReserveUnitID

int - Identity

No

预订单元ID

ClientID

int

Yes

客户表,客户ID

FloorID

int

Yes

楼栋信息表,楼栋ID

UnitNumberID

int

Yes

单元表,单元ID

RoomNumeral

nchar (10)

Yes

房间排号

PresalseArea

nchar (10)

Yes

预售面积

ReservationPrice

money

Yes

预收单价

BookingReservationPrice

money

Yes

预定总价

AccountsReceivableBookingGoid

money

Yes

应收预约金

BookingDate

datetime

Yes

预定日期

ValidDate

datetime

Yes

有效日期

BriefNote

nchar (20)

Yes

简要备注

AuditDate

date

Yes

审核日期

NewReserveUnitID

int

Yes

预定表,新预定ID

ChangeReason

int

Yes

属性明细表,变更原因ID

IncalidOr

bit

((0))

Yes

作废否

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

员工照片

2、具体的代码实现

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

if @Type='InsertReserve_Load_BindingdgvCustomer'--查询客户信息
begin
SELECT     ClientID, RTRIM(ClientName) AS ClientName, RTRIM(RelationPhone) AS RelationPhone, Gender AS 性别, CommunicationAddress, ClientNumber, IDentityCard, Postcode, HomeBuyerConsultantID
FROM         PW_ClientInformation
where   PW_ClientInformation.IncalidOr=0  and  PW_ClientInformation.ProjectID=@ProjectID
endif @Type='InsertReserve_Load_BindingcboFloorNumber'--查询楼栋信息
begin
SELECT     FloorID, rtrim(FloorName) as FloorName
FROM         SYS_FloorInformation
where  SYS_FloorInformation.ProjectID=@ProjectID
endif @Type='InsertReserve_Load_BindingcboUnitNumber'--查询房源信息
begin
SELECT     RoomResourcesID, rtrim(Number) as Number
FROM         SYS_RoomResources
where  SYS_RoomResources.FloorID=@FloorID   and  SYS_RoomResources.SalesStatusID=102
endif @Type='InsertReserve_Load_BindingcboHomeBuyersConsultant'--查询置业顾问
begin
SELECT     StaffID, rtrim(StaffName) as  StaffName
FROM         SYS_Staff
endif @Type='cboUnitNumber_SelectionChangeCommitted_SelectPrivateArea'--查询某一房源的面积
begin
SELECT      rtrim(PricateArea) PricateArea
FROM         SYS_RoomResources
where SYS_RoomResources.RoomResourcesID=@RoomResourcesID
endif @Type='btnSaveAndInsert_Click_Insert'--新增预定
begin
INSERT INTO PW_ReserveUnit(ClientID, FloorID, UnitNumberID, RoomNumeral, PresalseArea, ReservationPrice, BookingReservationPrice, AccountsReceivableBookingGoid, BookingDate, ValidDate, BriefNote)
VALUES     (@ClientID, @FloorID, @UnitNumberID, @RoomNumeral, @PresalseArea, @ReservationPrice, @BookingReservationPrice, @AccountsReceivableBookingGoid, @BookingDate, @ValidDate, @BriefNote)
endif @Type='btnSaveAndInsert_Click_UpdateRoomStatus'--修改房源的销售状态
begin
UPDATE    SYS_RoomResources
SET              SalesStatusID =99
where   SYS_RoomResources.RoomResourcesID=@RoomResourcesID
end

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

    [ServiceContract]public class frmMarketManagement_ReserveManagement_InsertReserve{DALPublic.DALPublic myDALPublic = new DALPublic.DALPublic();[OperationContract]#region 绑定dgv客户public DataSet InsertReserve_Load_BindingdgvCustomer(int intProjectID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@ProjectID", SqlDbType.Int),};SQLCMDpas[0].Value = "InsertReserve_Load_BindingdgvCustomer";SQLCMDpas[1].Value = intProjectID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_InsertReserve", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 条件绑定cbo楼栋public DataSet InsertReserve_Load_BindingcboFloorNumber(int intProjectID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@ProjectID", SqlDbType.Int),};SQLCMDpas[0].Value = "InsertReserve_Load_BindingcboFloorNumber";SQLCMDpas[1].Value = intProjectID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_InsertReserve", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 条件绑定cbo单元public DataSet InsertReserve_Load_BindingcboUnitNumber(int intFloorID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@FloorID", SqlDbType.Int),};SQLCMDpas[0].Value = "InsertReserve_Load_BindingcboUnitNumber";SQLCMDpas[1].Value = intFloorID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_InsertReserve", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 条件绑定cbo置业顾问public DataSet InsertReserve_Load_BindingcboHomeBuyersConsultant(){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),};SQLCMDpas[0].Value = "InsertReserve_Load_BindingcboHomeBuyersConsultant";DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_InsertReserve", 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_ReserveManagement_InsertReserve", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 新增预订public int btnSaveAndInsert_Click_Insert(int intClientID, int intFloorID, int intUnitNumberID, string strRoomNumeral, decimal decPresalseArea, decimal decReservationPrice, decimal decBookingReservationPrice, decimal decAccountsReceivableBookingGoid, DateTime dtmBookingDate, 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("@ReservationPrice", SqlDbType.Decimal),new SqlParameter("@BookingReservationPrice", SqlDbType.Decimal),new SqlParameter("@AccountsReceivableBookingGoid", SqlDbType.Decimal),new SqlParameter("@BookingDate", 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 = decReservationPrice;SQLCMDpas[7].Value = decBookingReservationPrice;SQLCMDpas[8].Value = decAccountsReceivableBookingGoid;SQLCMDpas[9].Value = dtmBookingDate;SQLCMDpas[10].Value = dtmValidDate;SQLCMDpas[11].Value = strBriefNote;return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ReserveManagement_InsertReserve", SQLCMDpas);           }#endregion [OperationContract]#region 修改房间状态public int btnSaveAndInsert_Click_UpdateRoomStatus(int intRoomResourcesID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@RoomResourcesID", SqlDbType.Int),};SQLCMDpas[0].Value = "btnSaveAndInsert_Click_UpdateRoomStatus";SQLCMDpas[1].Value = intRoomResourcesID;return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ReserveManagement_InsertReserve", SQLCMDpas);}#endregion }

第三步:界面层(UIL)相关代码及说明

    public partial class frmMarketManagement_ReserveManagement_InsertReserve : Form{frmMarketManagement_ReserveManagement Frm;public frmMarketManagement_ReserveManagement_InsertReserve(frmMarketManagement_ReserveManagement frm)//窗体传值{Frm = frm;InitializeComponent();}frmMarketManagement_HousingQuery FrmHousingQuery;int intprojectID = 0;public frmMarketManagement_ReserveManagement_InsertReserve(frmMarketManagement_HousingQuery frm,int intProjectID)//新增预留{intprojectID = intProjectID;FrmHousingQuery = frm;InitializeComponent();}BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ReserveManagement_InsertReserve.frmMarketManagement_ReserveManagement_InsertReserveClient myfrmMarketManagement_ReserveManagement_InsertReserveClient = new BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ReserveManagement_InsertReserve.frmMarketManagement_ReserveManagement_InsertReserveClient();//实例化逻辑层int intProjectID = 0;DataTable dtCustom = new DataTable();private void frmMarketManagement_ReserveManagement_InsertReserve_Load(object sender, EventArgs e)//窗体的加载事件{if (intprojectID != 0){intProjectID = intprojectID;}else{intProjectID = Frm.intProjectID;}dtCustom = myfrmMarketManagement_ReserveManagement_InsertReserveClient.InsertReserve_Load_BindingdgvCustomer(intProjectID).Tables[0];dgvCustomer.DataSource = dtCustom;cboFloorNumber.DataSource = myfrmMarketManagement_ReserveManagement_InsertReserveClient.InsertReserve_Load_BindingcboFloorNumber(intProjectID).Tables[0];cboFloorNumber.DisplayMember = "FloorName";cboFloorNumber.ValueMember = "FloorID";cboHomeBuyersConsultant.DataSource = myfrmMarketManagement_ReserveManagement_InsertReserveClient.InsertReserve_Load_BindingcboHomeBuyersConsultant().Tables[0];cboHomeBuyersConsultant.DisplayMember = "StaffName";cboHomeBuyersConsultant.ValueMember = "StaffID";if (intprojectID != 0){HousingQuery_To_InsertReserve_Load();}}void HousingQuery_To_InsertReserve_Load()//构造函数{cboFloorNumber.Enabled = false;cboUnitNumber.Enabled = false;cboFloorNumber.SelectedValue = FrmHousingQuery.intFloorID;cboFloorNumber_SelectionChangeCommitted(null,null);cboUnitNumber.SelectedValue = FrmHousingQuery.intRoomResourceID;cboUnitNumber_SelectionChangeCommitted(null,null);}private void btnSelect_Click(object sender, EventArgs e)//查询客户{dtCustom = myfrmMarketManagement_ReserveManagement_InsertReserveClient.InsertReserve_Load_BindingdgvCustomer(intProjectID).Tables[0];dgvCustomer.DataSource = dtCustom;if (txtNameAndClient.Text != ""){string strCondition = "ClientName like '%" + txtNameAndClient.Text.ToString().Trim() + "%'" + " Or " + " RelationPhone like '%" + txtNameAndClient.Text.ToString().Trim() + "%'";DataView dv = new DataView(dtCustom);dv.RowFilter = strCondition;DataTable dt = dv.ToTable();dgvCustomer.DataSource = dt;}elsedgvCustomer.DataSource = dtCustom;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){intCustomID = (int)dgvCustomer.CurrentRow.Cells["CustomerID"].Value;txtClientName.Text = dgvCustomer.CurrentRow.Cells["CustomName"].Value.ToString().Trim();txtTelephoneNumber.Text = dgvCustomer.CurrentRow.Cells["CustomerPhoneNumber"].Value.ToString().Trim();txtCorrespondenceAddress.Text = dgvCustomer.CurrentRow.Cells["通讯地址"].Value.ToString().Trim();txtClientNumber.Text = dgvCustomer.CurrentRow.Cells["客户编号"].Value.ToString().Trim();txtIDNumber.Text = dgvCustomer.CurrentRow.Cells["身份证号"].Value.ToString().Trim();txtZipCode.Text = dgvCustomer.CurrentRow.Cells["邮政编码"].Value.ToString().Trim();cboHomeBuyersConsultant.SelectedValue = Convert.ToInt32(dgvCustomer.CurrentRow.Cells["HomeBuyerConsultantID"].Value.ToString().Trim());dgvCustomer.Visible = false;}private void cboFloorNumber_SelectionChangeCommitted(object sender, EventArgs e){int intFloorID = (int)cboFloorNumber.SelectedValue;cboUnitNumber.DataSource = myfrmMarketManagement_ReserveManagement_InsertReserveClient.InsertReserve_Load_BindingcboUnitNumber(intFloorID).Tables[0];cboUnitNumber.DisplayMember = "Number";cboUnitNumber.ValueMember = "RoomResourcesID";}private void cboUnitNumber_SelectionChangeCommitted(object sender, EventArgs e){int intRoomID = (int)cboUnitNumber.SelectedValue;txtPresaleArea.Text = myfrmMarketManagement_ReserveManagement_InsertReserveClient.cboUnitNumber_SelectionChangeCommitted_SelectPrivateArea(intRoomID).Tables[0].Rows[0]["PricateArea"].ToString();}private void btnSaveAndInsert_Click(object sender, EventArgs e){InsertReserve();if (MessageBox.Show("是否退出?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes){this.Close();}else{ClearData();return;}}void InsertReserve(){if (intCustomID == 0){MessageBox.Show("请添加客户后继续!!!");return;}int intUnitNumberID = 0;decimal decPresalseArea = 0;decimal decReservationPrice = 0;decimal decBookingReservationPrice = 0;decimal decAccountsReceivableBookingGoid = 0;int intFloorID = (int)cboFloorNumber.SelectedValue;try{intUnitNumberID = (int)cboUnitNumber.SelectedValue;}catch{MessageBox.Show("请选择单元后继续!", "提示");return;}string strRoomNumeral = txtRoomNumeral1.Text.ToString();try{decPresalseArea = Convert.ToDecimal(txtPresaleArea.Text.ToString());decReservationPrice = Convert.ToDecimal(txtDuetotheunitprice.Text.ToString());decBookingReservationPrice = Convert.ToDecimal(txtDuetothetotalprice.Text.ToString());decAccountsReceivableBookingGoid = Convert.ToDecimal(txtAccountsreceivablebookinggold.Text.ToString());}catch{                MessageBox.Show(" 预定单价、预定总价、应收预约金后继续!", "提示");txtDuetotheunitprice.Text = "";txtDuetothetotalprice.Text = "";txtAccountsreceivablebookinggold.Text = "";txtDuetotheunitprice.Focus();return;}DateTime dtmBookingDate = dtpPrediteDate.Value;DateTime dtmValidDate = dtpEffectivedate.Value;string strBriefNote = txtBriefNotes.Text.ToString().Trim();int myop = myfrmMarketManagement_ReserveManagement_InsertReserveClient.btnSaveAndInsert_Click_Insert(intCustomID, intFloorID, intUnitNumberID, strRoomNumeral, decPresalseArea, decReservationPrice, decBookingReservationPrice, decAccountsReceivableBookingGoid, dtmBookingDate, dtmValidDate, strBriefNote);if (myop > 0){myfrmMarketManagement_ReserveManagement_InsertReserveClient.btnSaveAndInsert_Click_UpdateRoomStatus(intUnitNumberID);DateTime dtmOperatingTime = DateTime.Now;int intOperatingPerson = 1;int intOperatingType = 147;PublicMethod.Pub_InsertClientEventRecord(intCustomID, dtmOperatingTime, "添加预定", "预定单元添加");PublicMethod.Pub_InsertSalesOfServiceFloowDetail("添加预定单元", intUnitNumberID, 0, 0, 0, 0, 0, dtmOperatingTime, intOperatingPerson, intOperatingType);//添加操作记录MessageBox.Show("添加预定成功!!!");}}void ClearData(){cboFloorNumber.SelectedIndex = 0;cboUnitNumber.DataSource = null;intCustomID = 0;txtClientName.Text = "";txtTelephoneNumber.Text = "";txtCorrespondenceAddress.Text = "";txtClientNumber.Text = "";txtIDNumber.Text = "";txtZipCode.Text = "";cboHomeBuyersConsultant.SelectedIndex = 0;dgvCustomer.Visible = false;txtRoomNumeral1.Text = "";txtPresaleArea.Text = "";txtDuetotheunitprice.Text = "";txtDuetothetotalprice.Text = "";txtAccountsreceivablebookinggold.Text = "";txtBriefNotes.Text = "";dtpPrediteDate.Value = DateTime.Now;dtpEffectivedate.Value = DateTime.Now;}private void pubPrice_KeyPress(object sender, KeyPressEventArgs e){PublicMethod.pubPriceOrRate_KeyPress(sender, e);}private void btnSaveAndReturn_Click(object sender, EventArgs e){btnSaveAndInsert_Click(null,null);this.Close();}private void btnReturn_Click(object sender, EventArgs e){this.Close();}private void btnAdd_Click(object sender, EventArgs e){frmMarketManagement_ClientRegistrtion_PubRegistration myfrmMarketManagement_ClientRegistrtion_PubRegistration = new frmMarketManagement_ClientRegistrtion_PubRegistration(this, intProjectID);myfrmMarketManagement_ClientRegistrtion_PubRegistration.ShowDialog();}}

3.换订预定信息

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

控件名称

说明

标注(Label)

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

下拉框(ComboBox)

文本(TextBox)

按钮(Button)

日期控件(DateTimePicker)

分组容器(GroupBox)

图片列表(ImageList)

表格(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_ReserveUnit)

Primary Key(主键):  ReserveUnitID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ReserveUnitID

int - Identity

No

预订单元ID

ClientID

int

Yes

客户表,客户ID

FloorID

int

Yes

楼栋信息表,楼栋ID

UnitNumberID

int

Yes

单元表,单元ID

RoomNumeral

nchar (10)

Yes

房间排号

PresalseArea

nchar (10)

Yes

预售面积

ReservationPrice

money

Yes

预收单价

BookingReservationPrice

money

Yes

预定总价

AccountsReceivableBookingGoid

money

Yes

应收预约金

BookingDate

datetime

Yes

预定日期

ValidDate

datetime

Yes

有效日期

BriefNote

nchar (20)

Yes

简要备注

AuditDate

date

Yes

审核日期

NewReserveUnitID

int

Yes

预定表,新预定ID

ChangeReason

int

Yes

属性明细表,变更原因ID

IncalidOr

bit

((0))

Yes

作废否

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

员工照片

2、具体的代码实现

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

if @Type='ChangeReserve_Load_SelectReserveMsg'--查询预留信息
begin
SELECT     PW_ReserveUnit.ClientID, PW_ReserveUnit.UnitNumberID,  rtrim(PW_ReserveUnit.RoomNumeral) as RoomNumeral,  rtrim(PW_ReserveUnit.PresalseArea) as PresalseArea,  rtrim(PW_ReserveUnit.ReservationPrice) as ReservationPrice, rtrim(PW_ReserveUnit.BookingReservationPrice) as BookingReservationPrice,  rtrim(PW_ReserveUnit.AccountsReceivableBookingGoid) as AccountsReceivableBookingGoid, PW_ReserveUnit.BookingDate, PW_ReserveUnit.ValidDate,  rtrim(PW_ReserveUnit.BriefNote) as BriefNote, rtrim(PW_ClientInformation.ClientName) as ClientName, SYS_FloorInformation.FloorID,  rtrim(SYS_FloorInformation.FloorName) as FloorName, PW_ClientInformation.HomeBuyerConsultantID,  rtrim(SYS_Staff.StaffName) as StaffName
FROM         PW_ReserveUnit INNER JOINPW_ClientInformation ON PW_ReserveUnit.ClientID = PW_ClientInformation.ClientID INNER JOINSYS_FloorInformation ON PW_ReserveUnit.FloorID = SYS_FloorInformation.FloorID INNER JOINSYS_Staff ON PW_ClientInformation.HomeBuyerConsultantID = SYS_Staff.StaffID
where    PW_ReserveUnit.ReserveUnitID=@ReserveUnitID
endif @Type='ChangeReserve_Load_SelectFloor'--查询楼栋
begin
SELECT     FloorID, rtrim(FloorName) as FloorName
FROM         SYS_FloorInformation
where    SYS_FloorInformation.ProjectID=@ProjectID
endif @Type='ChangeReserve_Load_SelectOldRoom'--查询旧的房源
begin
SELECT     RoomResourcesID, RTRIM(Number) AS Number, FloorID
FROM         SYS_RoomResources
where SYS_RoomResources.FloorID=@FloorID and SYS_RoomResources.SalesStatusID=99
endif @Type='ChangeReserve_Load_BindingcboChangeReason'--查询变更原因
begin
SELECT     AttributeDetailsID, RTRIM(AuttributeDetailsName) AS AuttributeDetailsName
FROM         SYS_AttributeDetails
where SYS_AttributeDetails.AuttributeSetID=37
endif @Type='ChangeReserve_Load_SelectNewRoom'--查询新的房源
begin
SELECT     RoomResourcesID,rtrim(Number) as  Number
FROM         SYS_RoomResources
where  SYS_RoomResources.FloorID=@FloorID and SYS_RoomResources.SalesStatusID=102
endif @Type='ChangeReserve_Load_SelectHomeBuyerConsultant'--查询置业顾问
begin
SELECT     StaffID,  rtrim(StaffName)  AS HomeBuyerConsultant
FROM         SYS_Staff
endif @Type='btnSaveAndInsert_Click_Insert'--新增预定
begin
begin tran
INSERT INTO PW_ReserveUnit(ClientID, FloorID, UnitNumberID, RoomNumeral, PresalseArea, ReservationPrice, BookingReservationPrice, AccountsReceivableBookingGoid, BookingDate, ValidDate, BriefNote)
VALUES     (@ClientID, @FloorID, @UnitNumberID, @RoomNumeral, @PresalseArea, @ReservationPrice, @BookingReservationPrice, @AccountsReceivableBookingGoid, @BookingDate, @ValidDate, @BriefNote)
select @@IDENTITY
commit tran
endif @Type='btnSaveAndInsert_Click_UpdateRoomStatus'--修改所预定的房源的销售状态
begin
UPDATE    SYS_RoomResources
SET              SalesStatusID =99
where   SYS_RoomResources.RoomResourcesID=@RoomResourcesID
endif @Type='btnSaveAndInsert_Click_UpdateOldMsg'--查询旧的预定信息
begin
UPDATE    PW_ReserveUnit
SET       NewReserveUnitID = @NewReserveUnitID, ChangeReason = @ChangeReason, IncalidOr =1
where  PW_ReserveUnit.ReserveUnitID=@ReserveUnitID
endif @Type='btnSaveAndInsert_Click_UpdateOldRoomStatus'--修改旧的房源的销售状态
begin
UPDATE    SYS_RoomResources
SET              SalesStatusID =102
where   SYS_RoomResources.RoomResourcesID=@RoomResourcesID
endif @Type='cboUnitNumber_SelectionChangeCommitted_SelectPrivateArea'--查询房源的销售面积
begin
SELECT     rtrim(PricateArea)  AS PricateArea
FROM         SYS_RoomResources
where SYS_RoomResources.RoomResourcesID=@RoomResourcesID
end

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

    [ServiceContract]public  class frmMarketManagement_ReserveManagement_ChangeReserve{DALPublic.DALPublic myDALPublic = new DALPublic.DALPublic();[OperationContract]#region 条件绑定dgv预订信息public DataSet ChangeReserve_Load_SelectReserveMsg(int intReserveUnitID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@ReserveUnitID", SqlDbType.Char),};SQLCMDpas[0].Value = "ChangeReserve_Load_SelectReserveMsg";SQLCMDpas[1].Value = intReserveUnitID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ChangeReserve", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 条件绑定cboFloorpublic DataSet ChangeReserve_Load_SelectFloor(int intProjectID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@ProjectID", SqlDbType.Char),};SQLCMDpas[0].Value = "ChangeReserve_Load_SelectFloor";SQLCMDpas[1].Value = intProjectID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ChangeReserve", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 条件绑定cboRoompublic DataSet ChangeReserve_Load_SelectNewRoom(int intBuildingAMovieTheatherID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@FloorID", SqlDbType.Char),};SQLCMDpas[0].Value = "ChangeReserve_Load_SelectNewRoom";SQLCMDpas[1].Value = intBuildingAMovieTheatherID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ChangeReserve", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 绑定已预订cbo房间public DataSet ChangeReserve_Load_SelectOldRoom(int intBuildingAMovieTheatherID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@FloorID", SqlDbType.Char),};SQLCMDpas[0].Value = "ChangeReserve_Load_SelectOldRoom";SQLCMDpas[1].Value = intBuildingAMovieTheatherID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ChangeReserve", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 绑定cbo置业顾问public DataSet ChangeReserve_Load_SelectHomeBuyerConsultant(){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),};SQLCMDpas[0].Value = "ChangeReserve_Load_SelectHomeBuyerConsultant";DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ChangeReserve", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 绑定cboChangeReasonpublic DataSet ChangeReserve_Load_BindingcboChangeReason(){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),};SQLCMDpas[0].Value = "ChangeReserve_Load_BindingcboChangeReason";DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ChangeReserve", 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 decReservationPrice, decimal decBookingReservationPrice, decimal decAccountsReceivableBookingGoid, DateTime dtmBookingDate, 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("@ReservationPrice", SqlDbType.Decimal),new SqlParameter("@BookingReservationPrice", SqlDbType.Decimal),new SqlParameter("@AccountsReceivableBookingGoid", SqlDbType.Decimal),new SqlParameter("@BookingDate", 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 = decReservationPrice;SQLCMDpas[7].Value = decBookingReservationPrice;SQLCMDpas[8].Value = decAccountsReceivableBookingGoid;SQLCMDpas[9].Value = dtmBookingDate;SQLCMDpas[10].Value = dtmValidDate;SQLCMDpas[11].Value = strBriefNote;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ChangeReserve", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 修改房间状态public int btnSaveAndInsert_Click_UpdateRoomStatus(int intRoomResourcesID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@RoomResourcesID", SqlDbType.Int),};SQLCMDpas[0].Value = "btnSaveAndInsert_Click_UpdateRoomStatus";SQLCMDpas[1].Value = intRoomResourcesID;return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ReserveManagement_ChangeReserve", SQLCMDpas);}#endregion [OperationContract]#region 修改旧的房间状态public int btnSaveAndInsert_Click_UpdateOldRoomStatus(int intRoomResourcesID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@RoomResourcesID", SqlDbType.Int),};SQLCMDpas[0].Value = "btnSaveAndInsert_Click_UpdateOldRoomStatus";SQLCMDpas[1].Value = intRoomResourcesID;return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ReserveManagement_ChangeReserve", SQLCMDpas);}#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_ReserveManagement_ChangeReserve", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 修改旧的预订信息,以便记录public int btnSaveAndInsert_Click_UpdateOldMsg(int NewReserveUnitID,int ChangeReason,int ReserveUnitID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@NewReserveUnitID", SqlDbType.Int),new SqlParameter("@ChangeReason", SqlDbType.Int),new SqlParameter("@ReserveUnitID", SqlDbType.Int),};SQLCMDpas[0].Value = "btnSaveAndInsert_Click_UpdateOldMsg";SQLCMDpas[1].Value = NewReserveUnitID;SQLCMDpas[2].Value = ChangeReason;SQLCMDpas[3].Value = ReserveUnitID;return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ReserveManagement_ChangeReserve", SQLCMDpas);}#endregion }

第三步:界面层(UIL)相关代码及说明

    public partial class frmMarketManagement_ReserveManagement_ChangeReserve : Form{frmMarketManagement_ReserveManagement Frm;public frmMarketManagement_ReserveManagement_ChangeReserve(frmMarketManagement_ReserveManagement frm)//窗体传值{Frm = frm;InitializeComponent();}BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ReserveManagement_ChangeReserve.frmMarketManagement_ReserveManagement_ChangeReserveClient myfrmMarketManagement_ReserveManagement_ChangeReserveClient = new BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ReserveManagement_ChangeReserve.frmMarketManagement_ReserveManagement_ChangeReserveClient();//实例化逻辑层int intProjectID = 0;int intReserveUnitID = 0;int intCustomID = 0;int intOldRoomID = 0;private void frmMarketManagement_ReserveManagement_ChangeReserve_Load(object sender, EventArgs e)//窗体的加载事件{intProjectID = Frm.intProjectID;intReserveUnitID = Frm.intReserveUnitID;DataTable dtFloor = myfrmMarketManagement_ReserveManagement_ChangeReserveClient.ChangeReserve_Load_SelectFloor(intProjectID).Tables[0];PublicMethod.SettingComboBox(cboFloorNumber, dtFloor, "FloorID", "FloorName", false);DataTable dtFloor1 = myfrmMarketManagement_ReserveManagement_ChangeReserveClient.ChangeReserve_Load_SelectFloor(intProjectID).Tables[0];PublicMethod.SettingComboBox(cboFloorNumber1, dtFloor1, "FloorID", "FloorName", false);cboFloorNumber.SelectedValue = Frm.intfloorID;DataTable dtOldRoom = myfrmMarketManagement_ReserveManagement_ChangeReserveClient.ChangeReserve_Load_SelectOldRoom((int)cboFloorNumber.SelectedValue).Tables[0];PublicMethod.SettingComboBox(cboUnitNumber, dtOldRoom, "RoomResourcesID", "Number", false);int RoomID = Frm.intRoomResourceID;cboUnitNumber.SelectedValue = RoomID;DataTable dtNewRoom = myfrmMarketManagement_ReserveManagement_ChangeReserveClient.ChangeReserve_Load_SelectNewRoom((int)cboFloorNumber1.SelectedValue).Tables[0];PublicMethod.SettingComboBox(cboUnitNumber1, dtNewRoom, "RoomResourcesID", "Number", false);DataTable dtChangeReason = myfrmMarketManagement_ReserveManagement_ChangeReserveClient.ChangeReserve_Load_BindingcboChangeReason().Tables[0];PublicMethod.SettingComboBox(cboChangeReason, dtChangeReason, "AttributeDetailsID", "AuttributeDetailsName", false);DataTable dtcboHomeBuyersConsultant = myfrmMarketManagement_ReserveManagement_ChangeReserveClient.ChangeReserve_Load_SelectHomeBuyerConsultant().Tables[0];PublicMethod.SettingComboBox(cboHomeBuyersConsultant, dtcboHomeBuyersConsultant, "StaffID", "HomeBuyerConsultant", false);DataTable dtReserveMsg = myfrmMarketManagement_ReserveManagement_ChangeReserveClient.ChangeReserve_Load_SelectReserveMsg(intReserveUnitID).Tables[0];cboFloorNumber.SelectedValue = Convert.ToInt32(dtReserveMsg.Rows[0]["FloorID"]);cboUnitNumber.SelectedValue = Convert.ToInt32(dtReserveMsg.Rows[0]["UnitNumberID"]);txtClientName.Text = dtReserveMsg.Rows[0]["ClientName"].ToString().Trim();txtArea.Text = dtReserveMsg.Rows[0]["PresalseArea"].ToString().Trim();txtUnitPrice.Text = dtReserveMsg.Rows[0]["ReservationPrice"].ToString().Trim();txtTotalPrice.Text = dtReserveMsg.Rows[0]["BookingReservationPrice"].ToString().Trim();txtSortNumber.Text = dtReserveMsg.Rows[0]["RoomNumeral"].ToString().Trim();dtpDueDate.Value = Convert.ToDateTime(dtReserveMsg.Rows[0]["BookingDate"]);cboHomeBuyersConsultant.SelectedValue = Convert.ToInt32(dtReserveMsg.Rows[0]["HomeBuyerConsultantID"]);intCustomID = Convert.ToInt32(dtReserveMsg.Rows[0]["ClientID"]);intOldRoomID = Convert.ToInt32(dtReserveMsg.Rows[0]["UnitNumberID"]);   }private void cboFloorNumber1_SelectionChangeCommitted(object sender, EventArgs e){DataTable dtRoom = myfrmMarketManagement_ReserveManagement_ChangeReserveClient.ChangeReserve_Load_SelectNewRoom((int)cboFloorNumber1.SelectedValue).Tables[0];PublicMethod.SettingComboBox(cboUnitNumber1, dtRoom, "RoomResourcesID", "Number", false);}private void cboFloorNumber_SelectionChangeCommitted(object sender, EventArgs e){DataTable dtOldRoom = myfrmMarketManagement_ReserveManagement_ChangeReserveClient.ChangeReserve_Load_SelectOldRoom((int)cboFloorNumber.SelectedValue).Tables[0];PublicMethod.SettingComboBox(cboUnitNumber, dtOldRoom, "RoomResourcesID", "Number", false);}private void btnSaveAndInsert_Click(object sender, EventArgs e)//保存新增{if (intCustomID == 0){MessageBox.Show("请添加客户后继续!!!");return;}int intBuildingAMovieTheatherID = (int)cboFloorNumber1.SelectedValue;int intUnitNumberID = (int)cboUnitNumber1.SelectedValue;string strRoomNumeral = txtRoomNumeral.Text.ToString();decimal decPresalseArea = Convert.ToDecimal(txtPresaleArea.Text.ToString());decimal decReservationPrice = Convert.ToDecimal(txtDuetotheunitprice.Text.ToString());decimal decBookingReservationPrice = Convert.ToDecimal(txtDuetothetotalprice.Text.ToString());decimal decAccountsReceivableBookingGoid = Convert.ToDecimal(txtDuetothetotalprice1.Text.ToString());DateTime dtmBookingDate = dtpPrediteDate1.Value;DateTime dtmValidDate = dtpEffectivedate.Value;string strBriefNote = txtBriefNote.Text.ToString().Trim();DataTable dt = myfrmMarketManagement_ReserveManagement_ChangeReserveClient.btnSaveAndInsert_Click_Insert(intCustomID, intBuildingAMovieTheatherID, intUnitNumberID, strRoomNumeral, decPresalseArea, decReservationPrice, decBookingReservationPrice, decAccountsReceivableBookingGoid, dtmBookingDate, dtmValidDate, strBriefNote).Tables[0]; ;if (dt.Rows.Count > 0)//如果新增成功{int intNewReserveRoomID =Convert.ToInt32( dt.Rows[0][0]);int intChangeReasonID = (int)cboChangeReason.SelectedValue;DateTime dtmOperatingTime = DateTime.Now;int intOperatingPerson = 1;int intOperatingType = 148;if (intOldRoomID != intUnitNumberID){myfrmMarketManagement_ReserveManagement_ChangeReserveClient.btnSaveAndInsert_Click_UpdateOldRoomStatus(intOldRoomID);myfrmMarketManagement_ReserveManagement_ChangeReserveClient.btnSaveAndInsert_Click_UpdateOldMsg(intNewReserveRoomID, intChangeReasonID, intReserveUnitID);PublicMethod.Pub_InsertSalesOfServiceFloowDetail("预定单元换定", intOldRoomID, 0, 0, 0, 0, 0, dtmOperatingTime, intOperatingPerson, intOperatingType);//添加操作记录}myfrmMarketManagement_ReserveManagement_ChangeReserveClient.btnSaveAndInsert_Click_UpdateRoomStatus(intUnitNumberID);PublicMethod.Pub_InsertClientEventRecord(intCustomID, dtmOperatingTime, "换定预定单元", "更换预定单元房源");PublicMethod.Pub_InsertSalesOfServiceFloowDetail("预定单元换定", intUnitNumberID, 0, 0, 0, 0, 0, dtmOperatingTime, intOperatingPerson, intOperatingType);//添加操作记录MessageBox.Show("换定预定成功!!!");this.Close();}}private void cboUnitNumber1_SelectionChangeCommitted(object sender, EventArgs e){int intRoomID = (int)cboUnitNumber.SelectedValue;txtPresaleArea.Text = myfrmMarketManagement_ReserveManagement_ChangeReserveClient.cboUnitNumber_SelectionChangeCommitted_SelectPrivateArea(intRoomID).Tables[0].Rows[0]["PricateArea"].ToString();}private void btnReturn_Click(object sender, EventArgs e){this.Close();}private void btnSaveAndReturn_Click(object sender, EventArgs e)//返回事件{btnSaveAndInsert_Click(null,null);}}

4.转购预定信息

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

控件名称

说明

标注(Label)

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

下拉框(ComboBox)

文本(TextBox)

按钮(Button)

日期控件(DateTimePicker)

分组容器(GroupBox)

图片列表(ImageList)

表格(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_ReserveUnit)

Primary Key(主键):  ReserveUnitID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ReserveUnitID

int - Identity

No

预订单元ID

ClientID

int

Yes

客户表,客户ID

FloorID

int

Yes

楼栋信息表,楼栋ID

UnitNumberID

int

Yes

单元表,单元ID

RoomNumeral

nchar (10)

Yes

房间排号

PresalseArea

nchar (10)

Yes

预售面积

ReservationPrice

money

Yes

预收单价

BookingReservationPrice

money

Yes

预定总价

AccountsReceivableBookingGoid

money

Yes

应收预约金

BookingDate

datetime

Yes

预定日期

ValidDate

datetime

Yes

有效日期

BriefNote

nchar (20)

Yes

简要备注

AuditDate

date

Yes

审核日期

NewReserveUnitID

int

Yes

预定表,新预定ID

ChangeReason

int

Yes

属性明细表,变更原因ID

IncalidOr

bit

((0))

Yes

作废否

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

员工照片

表6: 认购表 (dbo. PW_SubscribeUnit)

Primary Key(主键):  SubscribeUnitID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

SubscribeUnitID

int - Identity

No

认购单元ID

SalesChangeID

int

Yes

销售便更表,销售变更ID

SubscriptioNumber

nchar (20)

Yes

认购单编号

SubscribeToDate

datetime

Yes

认购日期

AnticipatedDateSigned

datetime

Yes

预计签约日期

ContractArea

nchar (10)

Yes

合同面积

TypeOfPanymentID

int

Yes

付款方式表,付款方式ID

PaymentDetailsOfNameID

int

Yes

付款方式明细表,付款名称细目ID

SalesAreaOfWayID

int

Yes

属性明细表,销售面积方式ID

FsvorableDiscount

decimal (18, 2)

Yes

优惠折扣

ClinchADealUnitPrice

money

Yes

成交单价

ClinchADealThePrice

money

Yes

成交总价

ClientID

int

Yes

客户信息表,客户ID

AgentID

int

Yes

员工表,经办人ID

BriefNote

nchar (20)

Yes

简要备注

ReviewWhether

bit

((0))

Yes

审核否

CancelWhether

bit

((0))

Yes

作废否

ChangeOfAuditStatusID

int

Yes

属性明细表,变更审核状态ID

RoomResourcesID

int

Yes

房间资源表,房源ID

AfterUpdateID

int

Yes

认购表,修改后的认购ID

表7: 折扣优惠表 (dbo. SYS_DiscountOfPreferential)

Primary Key(主键):  DiscountID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

DiscountID

int - Identity

No

ProjectID

int

Yes

BuildingNumberIDGather

nvarchar (4000)

Yes

UnitNumberIDGather

nvarchar (4000)

Yes

DiscountName

nchar (50)

Yes

SerialNumber

nchar (20)

Yes

EffectiveDate

datetime

Yes

ExpiryDate

datetime

Yes

PreferentialTyoeID

int

Yes

CaluculationID

int

Yes

CaluculationTypeID

int

Yes

Discount

decimal (18, 2)

Yes

DiscountSum

decimal (18, 2)

Yes

ASingleSetOfHighestDiscountAmount

decimal (18, 2)

Yes

TotalDiscount

decimal (18, 2)

Yes

UsingRangeID

int

Yes

Privilege

nchar (100)

Yes

WhetherenableManagerPermissions

bit

No

CancelWhether

bit

((0))

Yes

表8: 折扣优惠明细表 (dbo. SYS_DiscountOfPreferentialDetail)

Primary Key(主键):  DiscountOfPreferentialDetailID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

DiscountOfPreferentialDetailID

int - Identity

No

DiscountID

int

Yes

FloorID

int

Yes

RoomResourceID

int

Yes

RecordDate

datetime

Yes

IncalidOr

bit

((0))

Yes

2、具体的代码实现

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

if @Type='ReserveToSubscribe_Load_BindingdgvCustomer'--查询客户信息
begin
SELECT     ClientID, RTRIM(ClientName) AS ClientName, RTRIM(RelationPhone) AS RelationPhone, Gender AS 性别, CommunicationAddress, ClientNumber, IDentityCard, Postcode, HomeBuyerConsultantID
FROM         PW_ClientInformation
where   PW_ClientInformation.IncalidOr=0
endif @Type='ReserveToSubscribe_Load_BindingcboFloorNumber'--查询楼栋信息
begin
SELECT     FloorID, rtrim(FloorName) as FloorName
FROM         SYS_FloorInformation
where  SYS_FloorInformation.ProjectID=@ProjectID
endif @Type='ReserveToSubscribe_Load_BindingcboUnitNumber'--查询房源信息
begin
SELECT     RoomResourcesID, rtrim(Number) as Number
FROM         SYS_RoomResources
where  SYS_RoomResources.FloorID=@FloorID
endif @Type='ReserveToSubscribe_Load_SelectedAllUnitNumber'----查询房源信息
begin
SELECT     RoomResourcesID, rtrim(Number) as Number
FROM         SYS_RoomResources
where   SYS_RoomResources.FloorID=@FloorID and SYS_RoomResources.SalesStatusID=99
endif @Type='ReserveToSubscribe_Load_BindingcboPaymentWay'--查询付款方式
begin
SELECT     PayTypeID, rtrim(PayTypementName) as PayTypementName
FROM         SYS_TypeOfPayment
endif @Type='ReserveToSubscribe_Load_BindingcboPaymentDetailsOfName'--查询付款方式明细
begin
SELECT     AttributeDetailsID, rtrim(AuttributeDetailsName) as AuttributeDetailsName
FROM         SYS_AttributeDetails
where  SYS_AttributeDetails.AuttributeSetID=31
endif @Type='ReserveToSubscribe_Load_BindingcboDiscount'--查询折扣
begin
SELECT     DiscountDetailID, rtrim(Discount) as Discount
FROM         SYS_DiscountDetail
endif @Type='ReserveToSubscribe_Load_BindingcboHomeBuyersConsultant'--查询置业顾问
begin
SELECT     StaffID, rtrim(StaffName) as  StaffName
FROM         SYS_Staff
endif @Type='cboUnitNumber_SelectionChangeCommitted'--条件查询预订信息
begin
SELECT     rtrim(SYS_RoomResources.ConstructionArea) as ConstructionArea, rtrim(SYS_RoomResources.PricateArea) as PricateArea, rtrim(SYS_RoomResources.PublicArea) as PublicArea, rtrim(SYS_RoomResources.TheUnitPrice) as TheUnitPrice, rtrim(SYS_RoomResources.BidPrice) as BidPrice, PW_ReserveUnit.BookingDate, PW_ReserveUnit.ValidDate, rtrim(PW_ReserveUnit.PresalseArea) as PresalseArea, rtrim(PW_ReserveUnit.ReservationPrice) as ReservationPrice, rtrim(PW_ReserveUnit.BookingReservationPrice) as BookingReservationPrice
FROM         SYS_RoomResources LEFT OUTER JOINPW_ReserveUnit ON SYS_RoomResources.RoomResourcesID = PW_ReserveUnit.UnitNumberID
where   SYS_RoomResources.RoomResourcesID=@RoomResourcesID
endif @Type='cboUnitNumber_SelectionChangeCommitted_SelectPreferential'--查询优惠折扣明细
begin
SELECT     SYS_DiscountOfPreferentialDetail.DiscountID, SYS_DiscountOfPreferentialDetail.FloorID, rtrim(SYS_DiscountOfPreferential.DiscountName) as DiscountName, rtrim(SYS_AttributeDetails.AuttributeDetailsName) AS PreferentialType, rtrim(SYS_AttributeDetails_1.AuttributeDetailsName) AS Caluculation, rtrim(SYS_AttributeDetails_2.AuttributeDetailsName) AS CaluculationType, rtrim(SYS_DiscountOfPreferential.Discount) as Discount, rtrim(SYS_DiscountOfPreferential.DiscountSum) as DiscountSum, rtrim(SYS_DiscountOfPreferential.Privilege) as Privilege, SYS_DiscountOfPreferentialDetail.RoomResourceID
FROM         SYS_AttributeDetails AS SYS_AttributeDetails_1 INNER JOINSYS_AttributeDetails INNER JOINSYS_DiscountOfPreferential ON SYS_AttributeDetails.AttributeDetailsID = SYS_DiscountOfPreferential.PreferentialTyoeID ON SYS_AttributeDetails_1.AttributeDetailsID = SYS_DiscountOfPreferential.CaluculationID INNER JOINSYS_AttributeDetails AS SYS_AttributeDetails_2 ON SYS_DiscountOfPreferential.CaluculationTypeID = SYS_AttributeDetails_2.AttributeDetailsID LEFT OUTER JOINSYS_DiscountOfPreferentialDetail ON SYS_DiscountOfPreferential.DiscountID = SYS_DiscountOfPreferentialDetail.DiscountIDwhere SYS_DiscountOfPreferentialDetail.RoomResourceID = @RoomResourceID
group by SYS_DiscountOfPreferentialDetail.DiscountID, SYS_DiscountOfPreferentialDetail.FloorID, SYS_DiscountOfPreferential.DiscountName, SYS_AttributeDetails.AuttributeDetailsName , SYS_AttributeDetails_1.AuttributeDetailsName , SYS_AttributeDetails_2.AuttributeDetailsName , SYS_DiscountOfPreferential.Discount, SYS_DiscountOfPreferential.DiscountSum, SYS_DiscountOfPreferential.Privilege, SYS_DiscountOfPreferentialDetail.RoomResourceIDendif @Type='btnSaveAndInsert_Click_Insert'--新增预定
begin
INSERT INTO PW_SubscribeUnit(RoomResourcesID, SalesChangeID, SubscriptioNumber, SubscribeToDate, AnticipatedDateSigned, ContractArea, TypeOfPanymentID, PaymentDetailsOfNameID, SalesAreaOfWayID, FsvorableDiscount, ClinchADealUnitPrice, ClinchADealThePrice, ClientID, AgentID, BriefNote)
VALUES     (@RoomResourcesID, @SalesChangeID, @SubscriptioNumber, @SubscribeToDate, @AnticipatedDateSigned, @ContractArea, @TypeOfPanymentID, @PaymentDetailsOfNameID, @SalesAreaOfWayID, @FsvorableDiscount, @ClinchADealUnitPrice, @ClinchADealThePrice, @ClientID, @AgentID, @BriefNote)
endif @Type='btnSaveAndInsert_Click_UpdateRoomStatus'--修改预定,修改房源销售状态
begin
UPDATE    SYS_RoomResources
SET              SalesStatusID =97
where   SYS_RoomResources.RoomResourcesID=@RoomResourcesIDUPDATE    PW_ReserveUnit
SET              IncalidOr =1
where   PW_ReserveUnit.UnitNumberID=@RoomResourcesID
endif @Type='ReserveToSubscribe_Load_SelectReserveMsg'--查询预定信息
begin
SELECT     PW_ReserveUnit.ClientID, PW_ReserveUnit.FloorID,  rtrim(PW_ClientInformation.ClientName) as  ClientName,  rtrim(PW_ClientInformation.RelationPhone) as  RelationPhone,  rtrim(PW_ClientInformation.ClientNumber) as  ClientNumber, rtrim(PW_ClientInformation.IDentityCard) as  IDentityCard,  rtrim(PW_ClientInformation.CommunicationAddress) as  CommunicationAddress,  rtrim(PW_ClientInformation.Postcode) as  Postcode, PW_ReserveUnit.UnitNumberID,  rtrim(SYS_RoomResources.ConstructionArea) as  ConstructionArea, rtrim(SYS_RoomResources.PricateArea) as  PricateArea,  rtrim( SYS_RoomResources.PublicArea) as  PublicArea,  rtrim(SYS_RoomResources.TheUnitPrice) as  TheUnitPrice,  rtrim(SYS_RoomResources.BidPrice) as  BidPrice,  rtrim(SYS_RoomResources.NumberOfPrice) as  NumberOfPrice, PW_ClientInformation.HomeBuyerConsultantID,  rtrim(SYS_Staff.StaffName) as  StaffName,  rtrim(PW_ReserveUnit.PresalseArea) as  PresalseArea, PW_ReserveUnit.BookingDate, PW_ReserveUnit.ValidDate, SYS_RoomResources.SalesStatusID, PW_ReserveUnit.ReserveUnitID
FROM         PW_ReserveUnit INNER JOINPW_ClientInformation ON PW_ReserveUnit.ClientID = PW_ClientInformation.ClientID INNER JOINSYS_FloorInformation ON PW_ReserveUnit.FloorID = SYS_FloorInformation.FloorID INNER JOINSYS_Staff ON PW_ClientInformation.HomeBuyerConsultantID = SYS_Staff.StaffID INNER JOINSYS_RoomResources ON PW_ReserveUnit.UnitNumberID = SYS_RoomResources.RoomResourcesIDwhere    PW_ReserveUnit.ReserveUnitID=@ReserveUnitID
endif @Type='SelectSubscribeMaximunNumber'--查询最大认购数
begin
SELECT     rtrim(Subscribe) as  Subscribe
FROM         EverydayMaximumNumber
endif @Type='btnSaveAndInsert_Click_UpdateReserve'--修改预定
begin
UPDATE    PW_ReserveUnit
SET              IncalidOr = 1
where PW_ReserveUnit.ReserveUnitID=@ReserveUnitID
end

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

    [ServiceContract]public class frmMarketManagement_ReserveManagement_ReserveToSubscribe{DALPublic.DALPublic myDALPublic = new DALPublic.DALPublic();[OperationContract]#region 绑定dgv客户public DataSet ReserveToSubscribe_Load_BindingdgvCustomer(){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),};SQLCMDpas[0].Value = "ReserveToSubscribe_Load_BindingdgvCustomer";DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 条件绑定cbo楼栋public DataSet ReserveToSubscribe_Load_BindingcboFloorNumber(int intProjectID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@ProjectID", SqlDbType.Int),};SQLCMDpas[0].Value = "ReserveToSubscribe_Load_BindingcboFloorNumber";SQLCMDpas[1].Value = intProjectID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 条件绑定cbo单元public DataSet ReserveToSubscribe_Load_BindingcboUnitNumber(int intFloorID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@FloorID", SqlDbType.Int),};SQLCMDpas[0].Value = "ReserveToSubscribe_Load_BindingcboUnitNumber";SQLCMDpas[1].Value = intFloorID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 查询某一楼栋里边的预定房间public DataSet ReserveToSubscribe_Load_SelectedAllUnitNumber(int intFloorID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@FloorID", SqlDbType.Int),};SQLCMDpas[0].Value = "ReserveToSubscribe_Load_SelectedAllUnitNumber";SQLCMDpas[1].Value = intFloorID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 绑定优惠折扣列表public DataSet cboUnitNumber_SelectionChangeCommitted_SelectPreferential(int intRoomResourcesID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@RoomResourceID", SqlDbType.Int),};SQLCMDpas[0].Value = "cboUnitNumber_SelectionChangeCommitted_SelectPreferential";SQLCMDpas[1].Value = intRoomResourcesID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 条件绑定cbo置业顾问public DataSet ReserveToSubscribe_Load_BindingcboHomeBuyersConsultant(){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),};SQLCMDpas[0].Value = "ReserveToSubscribe_Load_BindingcboHomeBuyersConsultant";DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 条件绑定cbo折扣public DataSet ReserveToSubscribe_Load_BindingcboDiscount(){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),};SQLCMDpas[0].Value = "ReserveToSubscribe_Load_BindingcboDiscount";DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 绑定付款方式public DataSet ReserveToSubscribe_Load_BindingcboPaymentWay(){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),};SQLCMDpas[0].Value = "ReserveToSubscribe_Load_BindingcboPaymentWay";DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 绑定付款方式明细public DataSet ReserveToSubscribe_Load_BindingcboPaymentDetailsOfName(){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),};SQLCMDpas[0].Value = "ReserveToSubscribe_Load_BindingcboPaymentDetailsOfName";DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 绑定房间信息public DataSet cboUnitNumber_SelectionChangeCommitted(int intRoomResourcesID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@RoomResourcesID", SqlDbType.Int),};SQLCMDpas[0].Value = "cboUnitNumber_SelectionChangeCommitted";SQLCMDpas[1].Value = intRoomResourcesID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 添加认购public int btnSaveAndInsert_Click_Insert(int intRoomResourcesID, int intSalesChangeID, string strSubscriptioNumber, DateTime dtmSubscribeToDate,DateTime dtmAnticipatedDateSigned, string strContractArea, int intTypeOfPanymentID, int intPaymentDetailsOfNameID, int intSalesAreaOfWayID,decimal decFsvorableDiscount, decimal decClinchADealUnitPrice, decimal decClinchADealThePrice, int intClientID, int intAgentID, string strBriefNote){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@RoomResourcesID", SqlDbType.Int),new SqlParameter("@SalesChangeID", SqlDbType.Int),new SqlParameter("@SubscriptioNumber", SqlDbType.Char),new SqlParameter("@SubscribeToDate", SqlDbType.DateTime),new SqlParameter("@AnticipatedDateSigned", SqlDbType.DateTime),new SqlParameter("@ContractArea", SqlDbType.Char),new SqlParameter("@TypeOfPanymentID", SqlDbType.Int),new SqlParameter("@PaymentDetailsOfNameID", SqlDbType.Int),new SqlParameter("@SalesAreaOfWayID", SqlDbType.Int),new SqlParameter("@FsvorableDiscount", SqlDbType.Decimal),new SqlParameter("@ClinchADealUnitPrice", SqlDbType.Decimal),new SqlParameter("@ClinchADealThePrice", SqlDbType.Decimal),new SqlParameter("@ClientID", SqlDbType.Int),new SqlParameter("@AgentID", SqlDbType.Int),new SqlParameter("@BriefNote", SqlDbType.Char),};SQLCMDpas[0].Value = "btnSaveAndInsert_Click_Insert";SQLCMDpas[1].Value = intRoomResourcesID;SQLCMDpas[2].Value = intSalesChangeID;SQLCMDpas[3].Value = strSubscriptioNumber;SQLCMDpas[4].Value = dtmSubscribeToDate;SQLCMDpas[5].Value = dtmAnticipatedDateSigned;SQLCMDpas[6].Value = strContractArea;SQLCMDpas[7].Value = intTypeOfPanymentID;SQLCMDpas[8].Value = intPaymentDetailsOfNameID;SQLCMDpas[9].Value = intSalesAreaOfWayID;SQLCMDpas[10].Value = decFsvorableDiscount;SQLCMDpas[11].Value = decClinchADealUnitPrice;SQLCMDpas[12].Value = decClinchADealThePrice;SQLCMDpas[13].Value = intClientID;SQLCMDpas[14].Value = intAgentID;SQLCMDpas[15].Value = strBriefNote;return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);}#endregion[OperationContract]#region 修改房间状态public int btnSaveAndInsert_Click_UpdateRoomStatus(int intRoomResourcesID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@RoomResourcesID", SqlDbType.Int),};SQLCMDpas[0].Value = "btnSaveAndInsert_Click_UpdateRoomStatus";SQLCMDpas[1].Value = intRoomResourcesID;return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);}#endregion[OperationContract]#region 条件绑定预定信息public DataSet ReserveToSubscribe_Load_SelectReserveMsg(int intReserveUnitID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@ReserveUnitID", SqlDbType.Int),};SQLCMDpas[0].Value = "ReserveToSubscribe_Load_SelectReserveMsg";SQLCMDpas[1].Value = intReserveUnitID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 查询当日最大认购数public DataSet SelectSubscribeMaximunNumber(){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),};SQLCMDpas[0].Value = "SelectSubscribeMaximunNumber";DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 修改原预定数据的有效否public int btnSaveAndInsert_Click_UpdateReserve(int intReserveUnitID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@ReserveUnitID", SqlDbType.Int),};SQLCMDpas[0].Value = "btnSaveAndInsert_Click_UpdateReserve";SQLCMDpas[1].Value = intReserveUnitID;return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);}#endregion}

第三步:界面层(UIL)相关代码及说明

    public partial class frmMarketManagement_ReserveManagement_ReserveToSubscribe : Form{frmMarketManagement_ReserveManagement Frm;public frmMarketManagement_ReserveManagement_ReserveToSubscribe(frmMarketManagement_ReserveManagement frm){Frm = frm;InitializeComponent();}BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ReserveManagement_ReserveToSubscribe.frmMarketManagement_ReserveManagement_ReserveToSubscribeClient myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient = new BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ReserveManagement_ReserveToSubscribe.frmMarketManagement_ReserveManagement_ReserveToSubscribeClient();DataTable dtCustom = new DataTable();int intReserveID = 0;private void frmMarketManagement_ReserveManagement_ReserveToSubscribe_Load(object sender, EventArgs e){dtCustom = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.ReserveToSubscribe_Load_BindingdgvCustomer().Tables[0];dgvCustomer.DataSource = dtCustom;int intProjectID = Frm.intProjectID;cboFloorNumber.DataSource = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.ReserveToSubscribe_Load_BindingcboFloorNumber(intProjectID).Tables[0];cboFloorNumber.DisplayMember = "FloorName";cboFloorNumber.ValueMember = "FloorID";cboFloorNumber.SelectedValue = Frm.intfloorID;cboHomeBuyersConsultant.DataSource = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.ReserveToSubscribe_Load_BindingcboHomeBuyersConsultant().Tables[0];cboHomeBuyersConsultant.DisplayMember = "StaffName";cboHomeBuyersConsultant.ValueMember = "StaffID";cboAgent.DataSource = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.ReserveToSubscribe_Load_BindingcboHomeBuyersConsultant().Tables[0];cboAgent.DisplayMember = "StaffName";cboAgent.ValueMember = "StaffID";cboPaymentWay.DataSource = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.ReserveToSubscribe_Load_BindingcboPaymentWay().Tables[0];cboPaymentWay.DisplayMember = "PayTypementName";cboPaymentWay.ValueMember = "PayTypeID";cboPaymentDetailsOfName.DataSource = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.ReserveToSubscribe_Load_BindingcboPaymentDetailsOfName().Tables[0];cboPaymentDetailsOfName.DisplayMember = "AuttributeDetailsName";cboPaymentDetailsOfName.ValueMember = "AttributeDetailsID";cboUnitNumber.DataSource = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.ReserveToSubscribe_Load_SelectedAllUnitNumber(Frm.intfloorID).Tables[0];cboUnitNumber.DisplayMember = "Number";cboUnitNumber.ValueMember = "RoomResourcesID";cboUnitNumber.SelectedValue = Frm.intRoomResourceID;string strSubscribeMaximumNumber = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.SelectSubscribeMaximunNumber().Tables[0].Rows[0][0].ToString();BingdigPreferentialList(Frm.intRoomResourceID);switch (strSubscribeMaximumNumber.Length){case 1:strSubscribeMaximumNumber = "000" + strSubscribeMaximumNumber;break;case 2:strSubscribeMaximumNumber = "00" + strSubscribeMaximumNumber;break;case 3:strSubscribeMaximumNumber = "0" + strSubscribeMaximumNumber;break;default:break;}txtSubscriptionNumber.Text = DateTime.Now.Year.ToString() + (DateTime.Now.Month > 10 ? DateTime.Now.Month.ToString() : "0" + DateTime.Now.Month) + (DateTime.Now.Day > 10 ? DateTime.Now.Day.ToString() : "0" + DateTime.Now.Day) +strSubscribeMaximumNumber;cboFloorNumber.SelectedIndex = 0;//cboFloorNumber_SelectionChangeCommitted(null,null);intReserveID = Frm.intReserveUnitID;DataTable dtReserveMsg = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.ReserveToSubscribe_Load_SelectReserveMsg(intReserveID).Tables[0];BindingDate(dtReserveMsg);intCustomID = Frm.intCustomerID;intRoomID = Frm.intRoomResourceID;}void BingdigPreferentialList(int intRoomResourceID){DataTable dtPreferential = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.cboUnitNumber_SelectionChangeCommitted_SelectPreferential(intRoomResourceID).Tables[0];dgvDiscountList.DataSource = dtPreferential;}void BindingDate(DataTable dtMsg){txtClientName.Text = dtMsg.Rows[0]["ClientName"].ToString().Trim();txtTelephoneNumber.Text = dtMsg.Rows[0]["RelationPhone"].ToString().Trim();txtClientNumber.Text = dtMsg.Rows[0]["ClientNumber"].ToString().Trim();txtIDNumber.Text = dtMsg.Rows[0]["IDentityCard"].ToString().Trim();txtCorrespondenceAddress.Text = dtMsg.Rows[0]["CommunicationAddress"].ToString().Trim();txtZipCode.Text = dtMsg.Rows[0]["Postcode"].ToString().Trim();cboFloorNumber.SelectedValue = (int)dtMsg.Rows[0]["FloorID"];txtBuildingPresaleArea.Text = dtMsg.Rows[0]["ConstructionArea"].ToString().Trim();txtOpenToBookingAPrivateArea.Text = dtMsg.Rows[0]["PricateArea"].ToString().Trim();txtBookingpublicbetaarea.Text = (Convert.ToDecimal(dtMsg.Rows[0]["ConstructionArea"].ToString().Trim()) - Convert.ToDecimal(dtMsg.Rows[0]["PricateArea"].ToString().Trim())).ToString();txtApprovedconstructionareaof.Text = dtMsg.Rows[0]["PresalseArea"].ToString().Trim();txtOpentobookingaTatolPrice.Text = dtMsg.Rows[0]["TheUnitPrice"].ToString().Trim();txtBidPrice.Text = dtMsg.Rows[0]["BidPrice"].ToString().Trim();txtNumberOfPrice.Text = dtMsg.Rows[0]["NumberOfPrice"].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(dtCustom);dv.RowFilter = strCondition;DataTable dt = dv.ToTable();dgvCustomer.DataSource = dt;}elsedgvCustomer.DataSource = dtCustom;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){intCustomID = (int)dgvCustomer.CurrentRow.Cells["CustomerID"].Value;txtClientName.Text = dgvCustomer.CurrentRow.Cells["CustomName"].Value.ToString().Trim();txtTelephoneNumber.Text = dgvCustomer.CurrentRow.Cells["CustomerPhoneNumber"].Value.ToString().Trim();txtCorrespondenceAddress.Text = dgvCustomer.CurrentRow.Cells["通讯地址"].Value.ToString().Trim();txtClientNumber.Text = dgvCustomer.CurrentRow.Cells["客户编号"].Value.ToString().Trim();txtIDNumber.Text = dgvCustomer.CurrentRow.Cells["身份证号"].Value.ToString().Trim();txtZipCode.Text = dgvCustomer.CurrentRow.Cells["邮政编码"].Value.ToString().Trim();cboHomeBuyersConsultant.SelectedValue = Convert.ToInt32(dgvCustomer.CurrentRow.Cells["HomeBuyerConsultantID"].Value.ToString().Trim());dgvCustomer.Visible = false;}private void cboFloorNumber_SelectionChangeCommitted(object sender, EventArgs e){int intFloorID = (int)cboFloorNumber.SelectedValue;cboUnitNumber.DataSource = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.ReserveToSubscribe_Load_BindingcboUnitNumber(intFloorID).Tables[0];cboUnitNumber.DisplayMember = "Number";cboUnitNumber.ValueMember = "RoomResourcesID";}int intRoomID = 0;private void cboUnitNumber_SelectionChangeCommitted(object sender, EventArgs e){intRoomID = (int)cboUnitNumber.SelectedValue;DataTable dtRoomResource = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.cboUnitNumber_SelectionChangeCommitted(intRoomID).Tables[0];txtBuildingPresaleArea.Text = dtRoomResource.Rows[0]["ConstructionArea"].ToString().Trim();txtOpenToBookingAPrivateArea.Text = dtRoomResource.Rows[0]["PricateArea"].ToString().Trim();txtBookingpublicbetaarea.Text = dtRoomResource.Rows[0]["PublicArea"].ToString().Trim();txtApprovedconstructionareaof.Text = dtRoomResource.Rows[0]["PresalseArea"].ToString().Trim();txtOpentobookingaTatolPrice.Text = dtRoomResource.Rows[0]["ReservationPrice"].ToString().Trim();txtBidPrice.Text = dtRoomResource.Rows[0]["BidPrice"].ToString().Trim();txtNumberOfPrice.Text = dtRoomResource.Rows[0]["NumberOfPrice"].ToString().Trim();}private void btnSaveAndInsert_Click(object sender, EventArgs e){string strSubscriptioNumber = txtSubscriptionNumber.Text.ToString();DateTime dtmSubscribeToDate = dtpSubscriptionDate.Value;DateTime dtmAnticipatedDateSigned = dtpAnticipatedDateSigned.Value;string strContractArea = txtContractArea.Text.ToString();int intTypeOfPanymentID = (int)cboPaymentWay.SelectedValue;int intPaymentDetailsOfNameID = (int)cboPaymentDetailsOfName.SelectedValue;decimal decFsvorableDiscount = Convert.ToDecimal(txtDiscount.Text);decimal decClinchADealUnitPrice = 0;decimal decClinchADealThePrice = 0;try{decClinchADealUnitPrice = Convert.ToDecimal(txtClinchADealUnitPrice.Text);decClinchADealThePrice = Convert.ToDecimal(txtClinchADealThePrice.Text);}catch{MessageBox.Show("请完善所有的信息后继续!!!");return;}int intAgentID = (int)cboAgent.SelectedValue;string strBriefNote = txtBriefNote.Text.ToString();int myop = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.btnSaveAndInsert_Click_Insert(intRoomID, 0, strSubscriptioNumber, dtmSubscribeToDate,dtmAnticipatedDateSigned, strContractArea, intTypeOfPanymentID, intPaymentDetailsOfNameID, intSalesAreaOfWayID,decFsvorableDiscount, decClinchADealUnitPrice, decClinchADealThePrice, intCustomID, intAgentID, strBriefNote);if (myop > 0){myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.btnSaveAndInsert_Click_UpdateRoomStatus(intRoomID);DateTime dtmOperatingTime = DateTime.Now;int intOperatingPerson = 1;int intOperatingType = 159;myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.btnSaveAndInsert_Click_UpdateReserve(Frm.intReserveUnitID);  //添加认购成功后,把原来预定的信息修改为作废PublicMethod.Pub_UpdateEverydayMaximumSubscribeNumber();PublicMethod.Pub_InsertClientEventRecord(intCustomID, dtmOperatingTime, "预订单元转购", "预定转认购");PublicMethod.Pub_InsertSalesOfServiceFloowDetail("预定单元转购", intRoomID, 0, 0, 0, 0, 0, dtmOperatingTime, intOperatingPerson, intOperatingType);//添加操作记录MessageBox.Show("新增认购成功!!!");Frm.MultSelect(Frm.intProjectID,Frm.intFloorID);this.Close();}}int intSalesAreaOfWayID = 0;private void radBuildingArea_CheckedChanged(object sender, EventArgs e)    {intSalesAreaOfWayID = 137;}private void radUnitArea_CheckedChanged(object sender, EventArgs e){intSalesAreaOfWayID = 138;}private void radUnit_CheckedChanged(object sender, EventArgs e){intSalesAreaOfWayID = 139;}private void radOhterArea_CheckedChanged(object sender, EventArgs e){intSalesAreaOfWayID = 140;}private void pubPrice_KeyPress(object sender, KeyPressEventArgs e){PublicMethod.pubPriceOrRate_KeyPress(sender, e);            }private void txtDiscount_KeyPress(object sender, KeyPressEventArgs e){PublicMethod.pubPriceOrRate_KeyPress(sender, e);}private void btnRenturn_Click(object sender, EventArgs e){this.Close();}}
以上内容仅用于学习用途,如用于商业用途,后果自负!!!!!

新锐房地产销售管理系统(部分流程)技术解析(八) 销售管理_预定管理相关推荐

  1. 新锐房地产销售管理系统(部分流程)技术解析(二) 新建数据库和构建服务

    1.建立数据库 1.1.新建数据库 第一步:登陆数据库 第二步:新建数据库 第三步:新建完数据库,就到了新建数据库所要用到的表 第四步:新建存储过程 2.搭建服务 2.1.首先要编辑好DAL 第一步: ...

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

    1.认筹管理主界面 具体视图如下: 从界面上可以看到我们这里用到的控件有 控件名称 说明 标注(Label) 控件可以在工具箱直接拖动至窗体,拖至窗体后右击属性可以修改控件的样式和各种属性,还可以编辑 ...

  3. 新锐房地产销售管理系统(部分流程)技术解析(十) 销售管理_销售优惠设置

    1.销售优惠设置主界面 从界面上可以看到我们这里用到的控件有 控件名称 说明 标注(Label) 控件可以在工具箱直接拖动至窗体,拖至窗体后右击属性可以修改控件的样式和各种属性,还可以编辑事件. 选项 ...

  4. 新锐房地产销售管理系统(部分流程)技术解释(三)销售管理_房源查询

    1.查询房源 房源查询这个模块,可以根据 所选择的项目和楼栋来把房源的信息查询出来,具体体现如下.右边显示的是这个房源的具体信息,销售信息是某一个房源的重要操作记录(例如预定.预留之类的记录).主界面 ...

  5. 新锐房地产销售管理系统 (部分流程)技术解析(一)用三层架构搭建项目

    一.新建项目客户端(UIL) 第一步:打开Vs2010界面,点击左上角文件,点击新建,选择项目 第二步:点击Windows类型,选择Windows窗体应用程序,在名称中输入项目名称(解决方案名称),位 ...

  6. 房地产销售管理系统商业项目视频课程-赖国荣-专题视频课程

    房地产销售管理系统商业项目视频课程-585人已学习 课程介绍         课程60讲左右,购买后,可以下载项目源代码及课程资料,本系统采用WEB架构开发,针对中大型房地产公司定制开发的CRM营销管 ...

  7. 视频教程-房地产销售管理系统商业项目视频课程-Java

    房地产销售管理系统商业项目视频课程 19年软件开发经验,设计开发40多个大型软件,10年从事高等教育,主要为java系列课程,带你轻松进入java生涯. 赖国荣 ¥1299.00 立即订阅 扫码下载「 ...

  8. 【计算机毕业设计】289房地产销售管理系统

    一.系统截图(需要演示视频可以私聊) 摘  要 社会和科技的不断进步带来更便利的生活,计算机技术也越来越平民化.二十一世纪是数据时代,各种信息经过统计分析都可以得到想要的结果,所以也可以更好的为人们工 ...

  9. 海马汽车经销商管理系统技术解析(三)应收管理

    海马汽车经销商管理系统技术解析(三)应收管理 应收管理这个模块可以查看所有欠款的客户和每个客户的欠款明细信息,还可以新建欠账单和删除欠账单.可以通过客户姓名.发生日期等条件对欠账单进行筛选查询.还可以 ...

最新文章

  1. Docker构建Nginx+Tomcat动静分离架构
  2. 3分钟把区块链的技术与应用彻底讲清楚
  3. HDU 6064 RXD and numbers
  4. python绘制动态心形_python绘制动态爱心
  5. 开发一个自己的 CSS 框架(二) 1
  6. 均方根误差有没有单位_mse均方误差是否有单位
  7. 深度森林:常见Warning及解决方案
  8. 【零售知识】商品库存成本计算的几种方式
  9. 《东周列国志》第九十二回 赛举鼎秦武王绝胫 莽赴会楚怀王陷秦
  10. 谷歌广告联盟怎么收款?google AdSense 广告款收取流程!(转载)
  11. 【有奖倒计时】带你走进AI应用创新大赛十强背后的故事!
  12. 揭秘玛雅预言--根本没这回事
  13. 中国国产十大著名户外运动品牌全球最顶级碳纤维自行车品牌排行榜
  14. 入门UVM验证方法学
  15. Unity3D学习笔记(十二)预制
  16. win10 无法删除 注册表 蓝牙_编辑设置Win10删除蓝牙设备后无法重新添加的修复办法...
  17. linux系统换硬件要重装,换cpu要重装系统吗?电脑更换cpu需要重装系统吗
  18. Scrapy框架爬虫项目:京东商城笔记本电脑信息爬取
  19. Spring @Configuration和@Component的区别(enhancer的原因)
  20. 基于STC15W408AS蓝牙智能小车

热门文章

  1. 互联网大厂的会员“陷阱”
  2. 关于拿鸡蛋数学题的解法
  3. 《人力资源视角下的企业数字化转型》高峰圆桌论坛圆满闭幕
  4. android 图片气泡,关于实现微信聊天气泡里显示图片解决方案
  5. 辽宁大学广播影视学院电影专硕考研上岸经验分享
  6. (加入显示电量功能)模仿魅族、华为、小米电池续航管理软件, 动态水波纹滚动的圆形小球View
  7. 74HC245引脚定义 使用方法
  8. 判断7张扑克牌是否含有同花顺(5张同花顺子)
  9. 前端初学,记下标签以后参考
  10. Python小技巧:将 1M 图片优化压缩到 1024kb,简单到手到擒来