⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bookform.h

📁 宾馆酒店管理系统,建议在简体中文版Microsoft Windows Server 2003(SP1)/Microsoft Office 2003(SP2)/Microsoft SQL Server
💻 H
📖 第 1 页 / 共 3 页
字号:
				static_cast<System::Int32>(static_cast<System::Byte>(192)));
			this->ClientSize = System::Drawing::Size(540, 414);
			this->Controls->Add(this->groupBox2);
			this->Controls->Add(this->保存Button);
			this->Controls->Add(this->groupBox1);
			this->Controls->Add(this->新增Button);
			this->Controls->Add(this->打印Button);
			this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::Fixed3D;
			this->MaximizeBox = false;
			this->MinimizeBox = false;
			this->Name = L"BookForm";
			this->StartPosition = System::Windows::Forms::FormStartPosition::CenterParent;
			this->Text = L"登记旅客预订信息";
			this->Load += gcnew System::EventHandler(this, &BookForm::BookForm_Load);
			this->groupBox2->ResumeLayout(false);
			this->groupBox2->PerformLayout();
			(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->酒店可用房间DataGridView))->EndInit();
			this->groupBox1->ResumeLayout(false);
			this->groupBox1->PerformLayout();
			this->ResumeLayout(false);

		}
#pragma endregion
		public: String^ MyOperator;
		public: String^ MyCompany;
		private: static String^ MyHotelConnectionString= L"Data Source=.;Initial Catalog=MyHotel;Integrated Security=True;Pooling=False";	
		private: System::Void BookForm_Load(System::Object^  sender, System::EventArgs^  e) {
			//添加酒店房间类别ComboBox控件的列表项
            SqlConnection^ MyConnection = gcnew SqlConnection();
            MyConnection->ConnectionString = MyHotelConnectionString;
            MyConnection->Open();
            SqlCommand^ MyCommand = gcnew SqlCommand("Select DISTINCT 类别  From 酒店房间", MyConnection);
            SqlDataReader^ MyReader = MyCommand->ExecuteReader();
            while (MyReader->Read())
            {
                this->酒店房间类别ComboBox->Items->Add(MyReader->GetString(0));
            }
            this->酒店房间类别ComboBox->Items->Add("所有房间");
            this->酒店房间类别ComboBox->Text = "所有房间";
            if (MyConnection->State == ConnectionState::Open)
            {
                MyConnection->Close();
            }
		}
		private: System::Void 酒店房间类别ComboBox_SelectedIndexChanged(System::Object^  sender, System::EventArgs^  e) {
			//获取未完全入住房间信息
            this->酒店可用房间DataGridView->GridColor = Color::Blue;
            String^ MySQLConnectionString = MyHotelConnectionString;
            String^ MySQL = "Select 房号,单价,可容纳人数-已入住人数 as 可入住人数,楼层,类别,说明,可容纳人数,已入住人数 From 酒店房间 Where 类别='" + this->酒店房间类别ComboBox->Text + "'";
            if (this->酒店房间类别ComboBox->Text == "所有房间")
            {
                MySQL = "Select 房号,单价,可容纳人数-已入住人数 as 可入住人数,楼层,类别,说明,可容纳人数,已入住人数 From 酒店房间 ";
            }
            SqlConnection^ MyConnection = gcnew SqlConnection(MySQLConnectionString);
            MyConnection->Open();
            System::Data::DataTable^ MyTable = gcnew System::Data::DataTable();
            SqlDataAdapter^ MyAdapter = gcnew SqlDataAdapter(MySQL, MyConnection);
            MyAdapter->Fill(MyTable);
            this->酒店可用房间DataGridView->DataSource = MyTable;
            if (MyConnection->State == ConnectionState::Open)
            {
                MyConnection->Close();
            }
		}
		private: System::Void 酒店可用房间DataGridView_Click(System::Object^  sender, System::EventArgs^  e) {
			//确定是否设置房号和住宿人数信息
            this->房号TextBox->Text = this->酒店可用房间DataGridView->CurrentRow->Cells[0]->Value->ToString();
            int MyCount = Convert::ToInt16(this->酒店可用房间DataGridView->CurrentRow->Cells[2]->Value->ToString());
            this->住宿人数ComboBox->Items->Clear();
            for (int i = 1; i <= MyCount; i++)
            {
                this->住宿人数ComboBox->Items->Add(i.ToString());
            }
            this->住宿人数ComboBox->Text = MyCount.ToString();
		 }
		private: System::Void 新增Button_Click(System::Object^  sender, System::EventArgs^  e) {
		    this->房号TextBox->Text = "";
            this->预收押金TextBox->Text = "";
            this->入住日期DateTimePicker->Value = DateTime::Now;
            this->离开日期DateTimePicker->Value = DateTime::Now;
            this->客人姓名TextBox->Text = "";
            this->住宿人数ComboBox->Text = "0";
            this->客人性别ComboBox->Text = "男";
            this->联系电话TextBox->Text = "";
            this->操作人员TextBox->Text = this->MyOperator;
            //自动计算预定编号
            String^ MySQLConnectionString = MyHotelConnectionString;
            SqlConnection^ MyConnection = gcnew SqlConnection(MySQLConnectionString);
            MyConnection->Open();
            SqlCommand^ MyCommand = MyConnection->CreateCommand();
            MyCommand->CommandText = "Select max(预约编号) 最大编号 From 客房预约单";
			System::Object^ MyResult = MyCommand->ExecuteScalar();
            Int64 MyID = 1;
			if (MyResult != System::DBNull::Value)
            {
                String^ MyMaxID = MyResult->ToString()->Trim();
                MyMaxID = MyMaxID->Substring(2, MyMaxID->Length - 2);
                MyID = Convert::ToInt64(MyMaxID) + 1;
            }
            int MyLength = MyID.ToString()->Length;
            String^ MyNewID = "";
            switch (MyLength)
            {
                case 1:
                    MyNewID = "YY0000000" + MyID.ToString();
                    break;
                case 2:
                    MyNewID = "YY000000" + MyID.ToString();
                    break;
                case 3:
                    MyNewID = "YY00000" + MyID.ToString();
                    break;
                case 4:
                    MyNewID = "YY0000" + MyID.ToString();
                    break;
                case 5:
                    MyNewID = "YY000" + MyID.ToString();
                    break;
                case 6:
                    MyNewID = "YY00" + MyID.ToString();
                    break;
                case 7:
                    MyNewID = "YY0" + MyID.ToString();
                    break;
            }
            if (MyConnection->State == ConnectionState::Open)
            {
                MyConnection->Close();
            }
            this->预约编号TextBox->Text = MyNewID;          
		 }
		private: System::Void 打印Button_Click(System::Object^  sender, System::EventArgs^  e) {
		    this->printPreviewDialog1->Document = this->printDocument1;
            this->printPreviewDialog1->ShowDialog();   
		 }
		private: System::Void printDocument1_PrintPage(System::Object^  sender, System::Drawing::Printing::PrintPageEventArgs^  e) {
		    //打印入住单
            e->Graphics->DrawString(this->MyCompany + "客房预约单", gcnew System::Drawing::Font("宋体", 20), Brushes::Black, 220, 80);
            e->Graphics->DrawString("预约编号:" + this->预约编号TextBox->Text, gcnew System::Drawing::Font("宋体", 12), Brushes::Black, 100, 150);
            DateTime MyPrintTime = DateTime::Now;
            e->Graphics->DrawString("打印日期:" + MyPrintTime.ToLongDateString() + MyPrintTime.ToLongTimeString(), gcnew System::Drawing::Font("宋体", 12), Brushes::Black, 450, 150);
            e->Graphics->DrawLine(gcnew Pen(Color::Black), 100, 180, 720, 180);
            e->Graphics->DrawLine(gcnew Pen(Color::Black), 100, 220, 720, 220);
            e->Graphics->DrawLine(gcnew Pen(Color::Black), 100, 260, 720, 260);
            e->Graphics->DrawLine(gcnew Pen(Color::Black), 100, 300, 720, 300);
            e->Graphics->DrawLine(gcnew Pen(Color::Black), 100, 180, 100, 300);
            e->Graphics->DrawLine(gcnew Pen(Color::Black), 220, 180, 220, 260);
            e->Graphics->DrawLine(gcnew Pen(Color::Black), 400, 180, 400, 300);
            e->Graphics->DrawLine(gcnew Pen(Color::Black), 720, 180, 720, 300);
            e->Graphics->DrawString("房号:" + this->房号TextBox->Text, gcnew System::Drawing::Font("宋体", 12), Brushes::Black, 105, 190);
            e->Graphics->DrawString("姓名:" + this->客人姓名TextBox->Text, gcnew System::Drawing::Font("宋体", 12), Brushes::Black, 105, 230);
            e->Graphics->DrawString("联系电话:" + this->联系电话TextBox->Text, gcnew System::Drawing::Font("宋体", 12), Brushes::Black, 405, 190);
            e->Graphics->DrawString("人数:" + this->住宿人数ComboBox->Text, gcnew System::Drawing::Font("宋体", 12), Brushes::Black, 405, 230);
            e->Graphics->DrawString("性别:" + this->客人性别ComboBox->Text, gcnew System::Drawing::Font("宋体", 12), Brushes::Black, 225, 190);
            e->Graphics->DrawString("预收押金:" + this->预收押金TextBox->Text, gcnew System::Drawing::Font("宋体", 12), Brushes::Black, 225, 230);
            if (this->入住日期DateTimePicker->Value.ToString()->Length > 0)
            {
                e->Graphics->DrawString("入住日期:" + this->入住日期DateTimePicker->Value.ToString()->Remove(10), gcnew System::Drawing::Font("宋体", 12), Brushes::Black, 105,270);
            }
            if (this->离开日期DateTimePicker->Value.ToString()->Length > 0)
            {
                e->Graphics->DrawString("离开日期:" + this->离开日期DateTimePicker->Value.ToString()->Remove(10), gcnew System::Drawing::Font("宋体", 12), Brushes::Black, 405,270);
            }        
            e->Graphics->DrawString("操作员:" + this->操作人员TextBox->Text, gcnew System::Drawing::Font("宋体", 12), Brushes::Black, 600, 310);
            e->Graphics->DrawString("温馨提示:为了维护您及他人的合法权益,请不要带未经登记的人员进出您的房间。", gcnew System::Drawing::Font("宋体", 12), Brushes::Black, 100, 330);
            e->Graphics->DrawString("警察提示:请保管好您的物品,重要物品请寄存于酒店寄存处,免费寄存!", gcnew System::Drawing::Font("宋体", 12), Brushes::Black, 100, 350);
            e->Graphics->DrawString("谢谢合作!", gcnew System::Drawing::Font("宋体", 20), Brushes::Black, 550, 380);
		 }
		 private: System::Void 保存Button_Click(System::Object^  sender, System::EventArgs^  e) {
		    if (MessageBox::Show("请检查旅客预约信息是否正确,一旦保存就无法修改,是否继续?", "信息提示", MessageBoxButtons::YesNo, MessageBoxIcon::Question) ==System::Windows::Forms::DialogResult::No)
            {
                return;
            }
            String^ MySQLConnectionString = MyHotelConnectionString;
            String^ MySQL = "INSERT INTO [客房预约单] ([预约编号], [房号], [预收押金], [入住日期], [离开日期], [客人姓名],[住宿人数], [客人性别], [联系电话], [操作人员]) VALUES (@预约编号, @房号, @预收押金, @入住日期, @离开日期, @客人姓名,@住宿人数, @客人性别, @联系电话, @操作人员)";
            SqlConnection^ MyConnection = gcnew SqlConnection(MySQLConnectionString);
            MyConnection->Open();
            SqlCommand^ MyCommand = MyConnection->CreateCommand();
            MyCommand->CommandText = MySQL;
            MyCommand->Parameters->Add(gcnew SqlParameter("@预约编号", SqlDbType::VarChar));
            MyCommand->Parameters->Add(gcnew SqlParameter("@房号", SqlDbType::VarChar));
            MyCommand->Parameters->Add(gcnew SqlParameter("@预收押金", SqlDbType::Float));
            MyCommand->Parameters->Add(gcnew SqlParameter("@入住日期", SqlDbType::DateTime));
            MyCommand->Parameters->Add(gcnew SqlParameter("@离开日期", SqlDbType::DateTime));
            MyCommand->Parameters->Add(gcnew SqlParameter("@客人姓名", SqlDbType::VarChar));
            MyCommand->Parameters->Add(gcnew SqlParameter("@住宿人数", SqlDbType::Int));
            MyCommand->Parameters->Add(gcnew SqlParameter("@客人性别", SqlDbType::VarChar));
            MyCommand->Parameters->Add(gcnew SqlParameter("@联系电话", SqlDbType::VarChar));
            MyCommand->Parameters->Add(gcnew SqlParameter("@操作人员", SqlDbType::VarChar));
            MyCommand->Parameters["@预约编号"]->Value = this->预约编号TextBox->Text;
            MyCommand->Parameters["@房号"]->Value = this->房号TextBox->Text;
            MyCommand->Parameters["@预收押金"]->Value = this->预收押金TextBox->Text;
            MyCommand->Parameters["@入住日期"]->Value = this->入住日期DateTimePicker->Value;
            MyCommand->Parameters["@离开日期"]->Value = this->离开日期DateTimePicker->Value;
            MyCommand->Parameters["@客人姓名"]->Value = this->客人姓名TextBox->Text;
            MyCommand->Parameters["@住宿人数"]->Value = this->住宿人数ComboBox->Text;
            MyCommand->Parameters["@客人性别"]->Value = this->客人性别ComboBox->Text;
            MyCommand->Parameters["@联系电话"]->Value = this->联系电话TextBox->Text;
            MyCommand->Parameters["@操作人员"]->Value = this->操作人员TextBox->Text;
            MyCommand->ExecuteNonQuery();
            MySQL = "Update 酒店房间 Set 已入住人数=已入住人数+" + this->住宿人数ComboBox->Text + " WHERE 房号='" + this->房号TextBox->Text + "'";
            MyCommand->CommandText = MySQL;
            MyCommand->ExecuteNonQuery();
            if (MyConnection->State == ConnectionState::Open)
            {
                MyConnection->Close();
            }
            酒店房间类别ComboBox_SelectedIndexChanged(nullptr, nullptr);
            新增Button_Click(nullptr, nullptr);
		 }
	};
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -