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

📄 roomstatus.h

📁 我新买的书 光盘里有一个很好的教务管理系统的VC.net的按例
💻 H
📖 第 1 页 / 共 2 页
字号:
			this->ClientSize = System::Drawing::Size(688, 382);
			this->Controls->Add(this->dgrdRoom);
			this->Controls->Add(this->groupBox1);
			this->Name = S"RoomStatus";
			this->Text = S"房态管理";
			this->Activated += new System::EventHandler(this, RoomStatus_Activated);
			this->groupBox1->ResumeLayout(false);
			(__try_cast<System::ComponentModel::ISupportInitialize *  >(this->dgrdRoom))->EndInit();
			this->ResumeLayout(false);

		}						
		//-----------------------设置表格各列的属性-----------------------
		void DataGridStateControl()
		{
			//组建房间状态表

			//确定房间状态表的列数
			int ColumnNum = 0;
			for(int i = 0;i < this->FloorNum;i++)
			{ 				
				if(ColumnNum <= System::Convert::ToInt32(this->RoomNumPerFloor->Item[i]))
				{
					ColumnNum = System::Convert::ToInt32(this->RoomNumPerFloor->Item[i]);
				}
			}
			//向房间状态表添加列
			String* temp = S"";
			for(int i = 0;i < ColumnNum;i++)
			{				
				this->RoomTable->Columns->Add(i.ToString(),__typeof(System::Windows::Forms::Label));//temp->GetType());
			}
			//向房间状态表添加行
			for(int i = 0;i < this->FloorNum;i++)
			{ 
				String* FloorID;
				String* Filter;
				DataRow* rows[];
				DataRow* row;
				
				FloorID = this->ds->Tables->Item[S"楼层信息"]->Rows->Item[i]->Item[S"楼层编号"]->ToString();
				Filter = String::Format(S"楼层编号 = {0}",FloorID);
				rows = this->ds->Tables->Item[S"客房信息"]->Select(Filter);
				row = this->RoomTable->NewRow();
				for(int j = 0;j < rows->Length;j++)
				{	
					System::Windows::Forms::Label* GridLabel = new System::Windows::Forms::Label();
					
					// 
					// GridLabel
					// 
					GridLabel->ImageList = this->imageList1;				
					GridLabel->Text = rows[j]->Item[S"客房编号"]->ToString();					
					GridLabel->Width = 48;
					GridLabel->Height = 48;
					GridLabel->ImageAlign = System::Drawing::ContentAlignment::MiddleCenter;
					GridLabel->TextAlign = System::Drawing::ContentAlignment::BottomCenter;
					//GridLabel->BorderStyle = BorderStyle::Fixed3D;
					GridLabel->Enabled = false;
					GridLabel->Hide();
					String* _text = rows[j]->Item[S"状态"]->ToString();
					if(String::Compare(_text,S"空房") == 0)
					{
						GridLabel->ImageIndex = 2;
					}
					if(String::Compare(_text,S"将到") == 0)
					{
						GridLabel->ImageIndex = 0;
					}
					if(String::Compare(_text,S"将离") == 0)
					{
						GridLabel->ImageIndex = 1;
					}
					if(String::Compare(_text,S"住房") == 0)
					{
						GridLabel->ImageIndex = 4;
					}
					if(String::Compare(_text,S"自用") == 0)
					{
						GridLabel->ImageIndex = 5;
					}
					if(String::Compare(_text,S"维修") == 0)
					{
						GridLabel->ImageIndex = 3;
					}
					row->Item[j] = GridLabel;										
				}
				this->RoomTable->Rows->Add(row);
			}
			this->dgrdRoom->DataSource = this->RoomTable;

			DataGridTableStyle* ts = new DataGridTableStyle();			
			ts->MappingName = this->RoomTable->TableName;
			
			DataGridImageColumn* aImageColumn;
			ts->AllowSorting = false;
			ts->AlternatingBackColor = Color::LightGray;

			int numCols = this->RoomTable->Columns->Count;
			for(int i = 0;i < numCols;i++)
			{
				aImageColumn = new DataGridImageColumn(this->RoomTable->Columns->Item[i]->ColumnName,this->RoomTable,this->dgrdRoom,this->imageList1);				
				aImageColumn->MappingName = this->RoomTable->Columns->Item[i]->ColumnName;
				aImageColumn->HeaderText = this->RoomTable->Columns->Item[i]->ColumnName;
				aImageColumn->NullText = S"";
				ts->GridColumnStyles->Add(aImageColumn);				
			}

			this->dgrdRoom->TableStyles->Add(ts);
  		 }


private: System::Void btnRefresh_Click(System::Object *  sender, System::EventArgs *  e)
		 {
			 System::Windows::Forms::Label* label;
			 //清理原有数据
			 this->ds->Clear();	

			 for(int i = 0;i < this->RoomTable->Rows->Count;i++)
			 {
				 for(int j = 0;j < this->RoomTable->Columns->Count;j++)
				 {
					 Object* val = this->RoomTable->Rows->Item[i]->Item[j];
					 if(val != System::DBNull::Value)
					 {
						 label = __try_cast<System::Windows::Forms::Label*>(val);
						 label->Dispose();
					 }
				 }
			 }
			 this->RoomTable->Clear();
			 this->RoomTable->Dispose();
			 this->RoomTable = new DataTable();

			 this->RoomNumPerFloor->Clear();
			 //查询客房信息
			this->strSQL = S"Select * from 客房信息";
			this->strTableName = S"客房信息";
			this->MyDataBase->SelectDataBase(this->RoomAdapter,this->ds,this->strSQL,this->strTableName);					

			//填充[客房类型]的选项			
			String* tempSQL = S"Select distinct 类型名称,类型编号 from 客房类型";
			this->MyDataBase->SelectDataBase(this->ds,tempSQL,S"客房类型");

			//添加"全部"选项
			DataRow* row = this->ds->Tables->Item[S"客房类型"]->NewRow();
			row->Item[S"类型名称"] = S"全部类型";
			row->Item[S"类型编号"] = S"All";
			this->ds->Tables->Item[S"客房类型"]->Rows->Add(row);
			
			this->cmbRoomType->DataSource = this->ds->Tables->Item[S"客房类型"];
			this->cmbRoomType->DisplayMember = S"类型名称";
			this->cmbRoomType->ValueMember = S"类型编号";

			//填充[楼层]的选项
			tempSQL = S"Select 楼层名称,楼层编号 from 楼层信息 Order By 楼层编号";			
			this->MyDataBase->SelectDataBase(this->ds,tempSQL,S"楼层信息");
			//计算每层楼的房间数
			this->FloorNum = this->ds->Tables->Item[S"楼层信息"]->Rows->Count;
			String* FloorID;
			String* Filter;
			DataRow* rows[];
			for(int i = 0;i < this->FloorNum;i++)
			{ 
				FloorID = this->ds->Tables->Item[S"楼层信息"]->Rows->Item[i]->Item[S"楼层编号"]->ToString();
				Filter = String::Format(S"楼层编号 = {0}",FloorID);
				rows = this->ds->Tables->Item[S"客房信息"]->Select(Filter);
				this->RoomNumPerFloor->Add(__box(rows->Length));
			}
			this->DataGridStateControl();
			this->dgrdRoom->Invalidate();
		 }
		 //更改客房状态
private: System::Void btnChangeStatus_Click(System::Object *  sender, System::EventArgs *  e)
		 {
			 int row = this->dgrdRoom->CurrentRowIndex;
			 int col = this->dgrdRoom->CurrentCell.ColumnNumber;
			 if(row > this->RoomTable->Rows->Count - 1)
				 return;
			 Object* val = this->RoomTable->Rows->Item[row]->Item[col];
			 if(val == System::DBNull::Value)
				 return;
			 System::Windows::Forms::Label* label = __try_cast<System::Windows::Forms::Label*>(val);
			 String* Filter = String::Format(S"客房编号 = '{0}'",label->Text);
			 DataRow* rows[] = this->ds->Tables->Item[S"客房信息"]->Select(Filter);
			 if(rows->Length > 0)
			 {
				 if(this->radioAboard->Checked == true)
				 {
					 rows[0]->Item[S"状态"] = this->radioAboard->Text;
				 }
				 else if(this->radioAbort->Checked == true)
				 {
					 rows[0]->Item[S"状态"] = this->radioAbort->Text;
				 }
				 else if(this->radioBlank->Checked == true)
				 {
					 rows[0]->Item[S"状态"] = this->radioBlank->Text;
				 }
				 else if(this->radioFixing->Checked == true)
				 {
					 rows[0]->Item[S"状态"] = this->radioFixing->Text;
				 }
				 else if(this->radioRent->Checked == true)
				 {
					 rows[0]->Item[S"状态"] = this->radioRent->Text;
				 }
				 else if(this->radioSelfUse->Checked == true)
				 {
					 rows[0]->Item[S"状态"] = this->radioSelfUse->Text;
				 }
				 //更新数据库
				 this->MyDataBase->UpdateDataBase(this->RoomAdapter,this->ds,S"客房信息");

				 btnRefresh_Click(sender,e);
			 }
		 }
		 //显示选中单元的房态信息
private: System::Void dgrdRoom_Click(System::Object *  sender, System::EventArgs *  e)
		 {
			 int row = this->dgrdRoom->CurrentRowIndex;
			 int col = this->dgrdRoom->CurrentCell.ColumnNumber;
			 if(row > this->RoomTable->Rows->Count - 1)
				 return;
			 Object* val = this->RoomTable->Rows->Item[row]->Item[col];
			 if(val == System::DBNull::Value)
				 return;
			 System::Windows::Forms::Label* label = __try_cast<System::Windows::Forms::Label*>(val);
			 switch(label->ImageIndex)
			 {
			 case 0:
				 this->radioAboard->Checked = true;
				 break;
			 case 1:
				 this->radioAbort->Checked = true;
				 break;
			 case 2:
				 this->radioBlank->Checked = true;
				 break;
			 case 3:
				 this->radioFixing->Checked = true;
				 break;
			 case 4:
				 this->radioRent->Checked = true;
				 break;
			 case 5:
				 this->radioSelfUse->Checked = true;
				 break;
			 }
			 //显示客房编号
			 this->tBoxRoomID->Text = label->Text;
			 //显示客房类型
			 String* Filter = String::Format(S"客房编号 = '{0}'",label->Text);
			 DataRow* rows[] = this->ds->Tables->Item[S"客房信息"]->Select(Filter);
			 if(rows->Length > 0)
			 {
				 this->cmbRoomType->SelectedValue = rows[0]->Item[S"类型编号"];			 
			 }
		 }
		 //选择客房信息
private: System::Void dgrdRoom_DoubleClick(System::Object *  sender, System::EventArgs *  e)
		 {
			 if(IsCallByOther)
			 {
				 //如果有其他窗口调用,则返回客房信息
				 int row = this->dgrdRoom->CurrentRowIndex;
				 int col = this->dgrdRoom->CurrentCell.ColumnNumber;
				 if(row > this->RoomTable->Rows->Count - 1)
					 return;
				 Object* val = this->RoomTable->Rows->Item[row]->Item[col];
				 if(val == System::DBNull::Value)
					 return;
				 System::Windows::Forms::Label* label = __try_cast<System::Windows::Forms::Label*>(val);

				 this->strRoomID = label->Text;
				 String* Filter = String::Format(S"客房编号 = '{0}'",label->Text);
				 DataRow* rows[] = this->ds->Tables->Item[S"客房信息"]->Select(Filter);
				 if(rows->Length > 0)
				 {
					 this->cmbRoomType->SelectedValue = rows[0]->Item[S"类型编号"];			 
				 }
				 this->strRoomType = this->cmbRoomType->Text;
				 switch(label->ImageIndex)
				 {
				 case 0:
					 this->strRoomStatus = this->radioAboard->Text;
					 break;
				 case 1:
					 this->strRoomStatus = this->radioAbort->Text;
					 break;
				 case 2:
					 this->strRoomStatus = this->radioBlank->Text;
					 break;
				 case 3:
					 this->strRoomStatus = this->radioFixing->Text;
					 break;
				 case 4:
					 this->strRoomStatus = this->radioRent->Text;
					 break;
				 case 5:
					 this->strRoomStatus = this->radioSelfUse->Text;
					 break;
				 }

				 this->DialogResult = DialogResult::OK;
			 }
		 }
		 //当窗体被激活时更新客房状态
private: System::Void RoomStatus_Activated(System::Object *  sender, System::EventArgs *  e)
		 {
			 btnChangeStatus_Click(sender,e);
		 }

};
}

⌨️ 快捷键说明

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