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

来源:互联网 发布:软件测试培训班学费 编辑:程序博客网 时间:2024/04/29 15:41

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'--查询项目信息beginSELECT     ProjectID,RTRIM( ProjectName) as ProjectNameFROM         SYS_ProjectInformationendif @Type='dgvProject_CellDoubleClick_BindtvwFloor'--查询楼栋信息beginSELECT     FloorID, RTRIM( FloorName) as FloorNameFROM         SYS_FloorInformationwhere   SYS_FloorInformation.ProjectID=@ProjectIDendif @Type='dgvProject_CellDoubleClick_BindtvwRoom'--条件查询房源信息beginSELECT     RoomResourcesID, RTRIM( Number) as NumberFROM         SYS_RoomResourceswhere SYS_RoomResources.FloorID=@FloorIDendif @Type='tvwFloor_NodeMouseClick_SelectMsg'--根据楼栋ID来查询相关信息beginSELECT     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.ClientIDFROM         PW_ReserveUnit INNER JOIN                      SYS_FloorInformation ON PW_ReserveUnit.FloorID = SYS_FloorInformation.FloorID INNER JOIN                      SYS_RoomResources ON PW_ReserveUnit.UnitNumberID = SYS_RoomResources.RoomResourcesID INNER JOIN                      PW_ClientInformation ON PW_ReserveUnit.ClientID = PW_ClientInformation.ClientID INNER JOIN                      SYS_ProjectInformation ON SYS_FloorInformation.ProjectID = SYS_ProjectInformation.ProjectIDwhere SYS_RoomResources.FloorID=@FloorID and PW_ReserveUnit.IncalidOr=0endif @Type='ReserveManagement_Load_SelectAllMsg'--查询所有未作废的信息beginSELECT     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.ClientIDFROM         PW_ReserveUnit INNER JOIN                      SYS_FloorInformation ON PW_ReserveUnit.FloorID = SYS_FloorInformation.FloorID INNER JOIN                      SYS_RoomResources ON PW_ReserveUnit.UnitNumberID = SYS_RoomResources.RoomResourcesID INNER JOIN                      PW_ClientInformation ON PW_ReserveUnit.ClientID = PW_ClientInformation.ClientID INNER JOIN                      SYS_ProjectInformation ON SYS_FloorInformation.ProjectID = SYS_ProjectInformation.ProjectIDwhere PW_ReserveUnit.IncalidOr=0end   if @Type='tsbtnDeleteReserve_Click_Update'--修改房源的状态beginUPDATE    PW_ReserveUnitSET              IncalidOr = 1where  PW_ReserveUnit.ReserveUnitID=@ReserveUnitIDUPDATE    SYS_RoomResourcesSET              SalesStatusID = 102where SYS_RoomResources.RoomResourcesID=@RoomResourcesIDend

 

第二步:逻辑层(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'--查询客户信息beginSELECT     ClientID, RTRIM(ClientName) AS ClientName, RTRIM(RelationPhone) AS RelationPhone, Gender AS 性别,            CommunicationAddress, ClientNumber, IDentityCard, Postcode,                       HomeBuyerConsultantIDFROM         PW_ClientInformationwhere   PW_ClientInformation.IncalidOr=0  and  PW_ClientInformation.ProjectID=@ProjectIDendif @Type='InsertReserve_Load_BindingcboFloorNumber'--查询楼栋信息beginSELECT     FloorID, rtrim(FloorName) as FloorNameFROM         SYS_FloorInformationwhere  SYS_FloorInformation.ProjectID=@ProjectIDendif @Type='InsertReserve_Load_BindingcboUnitNumber'--查询房源信息beginSELECT     RoomResourcesID, rtrim(Number) as NumberFROM         SYS_RoomResourceswhere  SYS_RoomResources.FloorID=@FloorID   and  SYS_RoomResources.SalesStatusID=102endif @Type='InsertReserve_Load_BindingcboHomeBuyersConsultant'--查询置业顾问beginSELECT     StaffID, rtrim(StaffName) as  StaffNameFROM         SYS_Staffendif @Type='cboUnitNumber_SelectionChangeCommitted_SelectPrivateArea'--查询某一房源的面积beginSELECT      rtrim(PricateArea) PricateAreaFROM         SYS_RoomResourceswhere SYS_RoomResources.RoomResourcesID=@RoomResourcesIDendif @Type='btnSaveAndInsert_Click_Insert'--新增预定beginINSERT 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'--修改房源的销售状态beginUPDATE    SYS_RoomResourcesSET              SalesStatusID =99where   SYS_RoomResources.RoomResourcesID=@RoomResourcesIDend

 

第二步:逻辑层(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;            }            else                dgvCustomer.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'--查询预留信息beginSELECT     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 StaffNameFROM         PW_ReserveUnit INNER JOIN                      PW_ClientInformation ON PW_ReserveUnit.ClientID = PW_ClientInformation.ClientID INNER JOIN                      SYS_FloorInformation ON PW_ReserveUnit.FloorID = SYS_FloorInformation.FloorID INNER JOIN                      SYS_Staff ON PW_ClientInformation.HomeBuyerConsultantID = SYS_Staff.StaffIDwhere    PW_ReserveUnit.ReserveUnitID=@ReserveUnitIDendif @Type='ChangeReserve_Load_SelectFloor'--查询楼栋beginSELECT     FloorID, rtrim(FloorName) as FloorNameFROM         SYS_FloorInformationwhere    SYS_FloorInformation.ProjectID=@ProjectIDendif @Type='ChangeReserve_Load_SelectOldRoom'--查询旧的房源beginSELECT     RoomResourcesID, RTRIM(Number) AS Number, FloorIDFROM         SYS_RoomResourceswhere SYS_RoomResources.FloorID=@FloorID and SYS_RoomResources.SalesStatusID=99endif @Type='ChangeReserve_Load_BindingcboChangeReason'--查询变更原因beginSELECT     AttributeDetailsID, RTRIM(AuttributeDetailsName) AS AuttributeDetailsNameFROM         SYS_AttributeDetailswhere SYS_AttributeDetails.AuttributeSetID=37endif @Type='ChangeReserve_Load_SelectNewRoom'--查询新的房源beginSELECT     RoomResourcesID,rtrim(Number) as  NumberFROM         SYS_RoomResourceswhere  SYS_RoomResources.FloorID=@FloorID and SYS_RoomResources.SalesStatusID=102endif @Type='ChangeReserve_Load_SelectHomeBuyerConsultant'--查询置业顾问beginSELECT     StaffID,  rtrim(StaffName)  AS HomeBuyerConsultantFROM         SYS_Staffendif @Type='btnSaveAndInsert_Click_Insert'--新增预定beginbegin tranINSERT 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 @@IDENTITYcommit tranendif @Type='btnSaveAndInsert_Click_UpdateRoomStatus'--修改所预定的房源的销售状态beginUPDATE    SYS_RoomResourcesSET              SalesStatusID =99where   SYS_RoomResources.RoomResourcesID=@RoomResourcesIDendif @Type='btnSaveAndInsert_Click_UpdateOldMsg'--查询旧的预定信息beginUPDATE    PW_ReserveUnitSET       NewReserveUnitID = @NewReserveUnitID, ChangeReason = @ChangeReason, IncalidOr =1where  PW_ReserveUnit.ReserveUnitID=@ReserveUnitIDendif @Type='btnSaveAndInsert_Click_UpdateOldRoomStatus'--修改旧的房源的销售状态beginUPDATE    SYS_RoomResourcesSET              SalesStatusID =102where   SYS_RoomResources.RoomResourcesID=@RoomResourcesIDendif @Type='cboUnitNumber_SelectionChangeCommitted_SelectPrivateArea'--查询房源的销售面积beginSELECT     rtrim(PricateArea)  AS PricateAreaFROM         SYS_RoomResourceswhere SYS_RoomResources.RoomResourcesID=@RoomResourcesIDend

 

第二步:逻辑层(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 条件绑定cboFloor        public 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 条件绑定cboRoom        public 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 绑定cboChangeReason        public 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'--查询客户信息beginSELECT     ClientID, RTRIM(ClientName) AS ClientName, RTRIM(RelationPhone) AS RelationPhone, Gender AS 性别,            CommunicationAddress, ClientNumber, IDentityCard, Postcode,                       HomeBuyerConsultantIDFROM         PW_ClientInformationwhere   PW_ClientInformation.IncalidOr=0endif @Type='ReserveToSubscribe_Load_BindingcboFloorNumber'--查询楼栋信息beginSELECT     FloorID, rtrim(FloorName) as FloorNameFROM         SYS_FloorInformationwhere  SYS_FloorInformation.ProjectID=@ProjectIDendif @Type='ReserveToSubscribe_Load_BindingcboUnitNumber'--查询房源信息beginSELECT     RoomResourcesID, rtrim(Number) as NumberFROM         SYS_RoomResourceswhere  SYS_RoomResources.FloorID=@FloorIDendif @Type='ReserveToSubscribe_Load_SelectedAllUnitNumber'----查询房源信息beginSELECT     RoomResourcesID, rtrim(Number) as NumberFROM         SYS_RoomResourceswhere   SYS_RoomResources.FloorID=@FloorID and SYS_RoomResources.SalesStatusID=99endif @Type='ReserveToSubscribe_Load_BindingcboPaymentWay'--查询付款方式beginSELECT     PayTypeID, rtrim(PayTypementName) as PayTypementNameFROM         SYS_TypeOfPaymentendif @Type='ReserveToSubscribe_Load_BindingcboPaymentDetailsOfName'--查询付款方式明细beginSELECT     AttributeDetailsID, rtrim(AuttributeDetailsName) as AuttributeDetailsNameFROM         SYS_AttributeDetailswhere  SYS_AttributeDetails.AuttributeSetID=31endif @Type='ReserveToSubscribe_Load_BindingcboDiscount'--查询折扣beginSELECT     DiscountDetailID, rtrim(Discount) as DiscountFROM         SYS_DiscountDetailendif @Type='ReserveToSubscribe_Load_BindingcboHomeBuyersConsultant'--查询置业顾问beginSELECT     StaffID, rtrim(StaffName) as  StaffNameFROM         SYS_Staffendif @Type='cboUnitNumber_SelectionChangeCommitted'--条件查询预订信息beginSELECT     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 BookingReservationPriceFROM         SYS_RoomResources LEFT OUTER JOIN                      PW_ReserveUnit ON SYS_RoomResources.RoomResourcesID = PW_ReserveUnit.UnitNumberIDwhere   SYS_RoomResources.RoomResourcesID=@RoomResourcesIDendif @Type='cboUnitNumber_SelectionChangeCommitted_SelectPreferential'--查询优惠折扣明细beginSELECT     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.RoomResourceIDFROM         SYS_AttributeDetails AS SYS_AttributeDetails_1 INNER JOIN                      SYS_AttributeDetails INNER JOIN                      SYS_DiscountOfPreferential ON SYS_AttributeDetails.AttributeDetailsID = SYS_DiscountOfPreferential.PreferentialTyoeID ON                       SYS_AttributeDetails_1.AttributeDetailsID = SYS_DiscountOfPreferential.CaluculationID INNER JOIN                      SYS_AttributeDetails AS SYS_AttributeDetails_2 ON SYS_DiscountOfPreferential.CaluculationTypeID = SYS_AttributeDetails_2.AttributeDetailsID LEFT OUTER JOIN                      SYS_DiscountOfPreferentialDetail ON SYS_DiscountOfPreferential.DiscountID = SYS_DiscountOfPreferentialDetail.DiscountID                      where SYS_DiscountOfPreferentialDetail.RoomResourceID = @RoomResourceIDgroup 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'--新增预定beginINSERT 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'--修改预定,修改房源销售状态beginUPDATE    SYS_RoomResourcesSET              SalesStatusID =97where   SYS_RoomResources.RoomResourcesID=@RoomResourcesIDUPDATE    PW_ReserveUnitSET              IncalidOr =1where   PW_ReserveUnit.UnitNumberID=@RoomResourcesID  endif @Type='ReserveToSubscribe_Load_SelectReserveMsg'--查询预定信息beginSELECT     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.ReserveUnitIDFROM         PW_ReserveUnit INNER JOIN                      PW_ClientInformation ON PW_ReserveUnit.ClientID = PW_ClientInformation.ClientID INNER JOIN                      SYS_FloorInformation ON PW_ReserveUnit.FloorID = SYS_FloorInformation.FloorID INNER JOIN                      SYS_Staff ON PW_ClientInformation.HomeBuyerConsultantID = SYS_Staff.StaffID INNER JOIN                      SYS_RoomResources ON PW_ReserveUnit.UnitNumberID = SYS_RoomResources.RoomResourcesID                           where    PW_ReserveUnit.ReserveUnitID=@ReserveUnitIDendif @Type='SelectSubscribeMaximunNumber'--查询最大认购数beginSELECT     rtrim(Subscribe) as  SubscribeFROM         EverydayMaximumNumberendif @Type='btnSaveAndInsert_Click_UpdateReserve'--修改预定beginUPDATE    PW_ReserveUnitSET              IncalidOr = 1where PW_ReserveUnit.ReserveUnitID=@ReserveUnitIDend

 

第二步:逻辑层(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;            }            else                dgvCustomer.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();        }    }
































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





















0 0
原创粉丝点击