📄 frmroomstate.cs
字号:
dtData.Rows.Clear();
DataBase db = new DataBase();
DataView dvFloor = db.RunSelectSQL( "select 楼层编号 from 楼层信息" );
string strSQL = "";
for ( int i = 0; i < dvFloor.Count; i ++ )
{
strSQL = "select 楼层编号,状态 from 客房信息 ";
string strTmp = "";
if ( strFilter.Trim() != "" )
{
strTmp = " and " + strFilter;
}
strSQL += " where 楼层编号 = ";
strSQL += dvFloor[ i ][ 0 ].ToString().Trim() + strTmp;
// 查询出每个楼层的房间信息
DataView dvTmp = db.RunSelectSQL( strSQL );
// 新建数据行
DataRow dr = dtData.NewRow();
// 将楼层房间信息添加到数据行中
dr[ 0 ] = dvFloor[ i ][ 0 ].ToString().Trim() + "/F";
for ( int j = 0; j < iMaxRoomNumber; j ++ )
{
// 设置房间的状态信息
if ( j < dvTmp.Count )
{
dr[ j + 1 ] = GetStateNumber( dvTmp[ j ][ "状态" ].ToString() );
}
else
{
dr[ j + 1 ] = "6";
}
}
dtData.Rows.Add( dr );
}
}
private String GetStateNumber( string state )
{
switch ( state.Trim() )
{
case "将到" :
return "0";
case "将离" :
return "1";
// break;
case "空房" :
return "2";
// break;
case "维修" :
return "3";
// break;
case "住房" :
return "4";
// break;
case "自用" :
return "5";
// break;
default :
return "";
}
}
public string GetStateText( string state )
{
switch ( state.Trim() )
{
case "0" :
return "将到";
// break;
case "1" :
return "将离";
// break;
case "2" :
return "空房";
// break;
case "3" :
return "维修";
// break;
case "4" :
return "住房";
// break;
case "5" :
return "自用";
// break;
default :
return "";
}
}
private void dgdList_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
DateTime tm = DateTime.Now;
if ( !bClose )
return;
if ( dgdList.CurrentCell.ColumnNumber == 0 )
return;
// 判断连词单击时间是否小于双击的时间间隔
if ( tm < gridMouseDownTime.AddMilliseconds( SystemInformation.DoubleClickTime ) )
{
DoReserve();
this.Close();
}
gridMouseDownTime = tm;
}
private void InitMaps()
{
bitMaps = new ArrayList();
// 读取位图
Stream strm = GetType().Assembly.GetManifestResourceStream( "酒店管理系统.房态之将到.bmp" );
bitMaps.Add( new Bitmap( strm ) );
strm = GetType().Assembly.GetManifestResourceStream( "酒店管理系统.房态之将离.bmp" );
bitMaps.Add( new Bitmap( strm ) );
strm = GetType().Assembly.GetManifestResourceStream( "酒店管理系统.房态之空房.bmp" );
bitMaps.Add( new Bitmap( strm ) );
strm = GetType().Assembly.GetManifestResourceStream( "酒店管理系统.房态之维修房.bmp" );
bitMaps.Add( new Bitmap( strm ) );
strm = GetType().Assembly.GetManifestResourceStream( "酒店管理系统.房态之住房.bmp" );
bitMaps.Add( new Bitmap( strm ) );
strm = GetType().Assembly.GetManifestResourceStream( "酒店管理系统.房态之自用房" );
bitMaps.Add( new Bitmap( strm ) );
strm = GetType().Assembly.GetManifestResourceStream( "酒店管理系统.房态之空.bmp" );
bitMaps.Add( new Bitmap( strm ) );
}
private void InitDataTable()
{
if ( dtData != null )
{
return;
}
string strTmp = "";
if ( strFilter.Trim() != "" )
strTmp = " where " + strFilter;
// 查询各楼层的房间数
DataBase db = new DataBase();
string strSQL = "select count(*) as total from 客房信息 ";
strSQL += strTmp + " group by 楼层编号";
DataView dv = db.RunSelectSQL( strSQL );
if ( dv.Count != 0 )
{
// 获得房间最多的那一层的房间数
for( int i = 0 ; i < dv.Count; i ++ )
{
if ( iMaxRoomNumber < Int32.Parse( dv[ i ][ 0].ToString() ) )
{
iMaxRoomNumber = Int32.Parse( dv[ i ][ 0 ].ToString() );
}
}
}
strSQL = "select 客房编号,楼层编号 from 客房信息 " + strTmp;
dtRoom = db.RunSelectSQL(strSQL).Table;
db.Dispose();
dtData = new DataTable();
dtData.Columns.Add( "楼层" );
for ( int j = 0; j < iMaxRoomNumber; j ++ )
{
dtData.Columns.Add( j.ToString() );
}
}
private void SetDataGrid()
{
LoadData();
// 定义一个DataGrid表样式
DataGridTableStyle ts = new DataGridTableStyle();
DataGridTextBoxColumn aCol;
int numCols = dtData.Columns.Count;
for ( int i = 0; i < numCols; i ++ )
{
if ( i == 0 )
{
aCol = new DataGridTextBoxColumn();
aCol.MappingName = dtData.Columns[ i ].ColumnName;
aCol.HeaderText = dtData.Columns[ i ].ColumnName;
aCol.NullText = "";
aCol.ReadOnly = true;
aCol.Width = 32;
ts.GridColumnStyles.Add( aCol );
}
else
{
// 添加DataGridImageCell
DataGridImageCell tbc = new DataGridImageCell();
tbc.MappingName = dtData.Columns[ i ].ColumnName;
tbc.HeaderText = dtData.Columns[ i ].ColumnName;
tbc.TheImages = bitMaps;
tbc.Width = 32;
ts.GridColumnStyles.Add( tbc );
}
}
ts.AlternatingBackColor = Color.LightGray;
ts.AllowSorting = false;
ts.MappingName = dtData.TableName;
ts.PreferredRowHeight = 32;
dgdList.TableStyles .Clear();
dgdList.TableStyles.Add( ts );
DataView dv = dtData.DefaultView;
dv.AllowNew = false;
dv.AllowDelete = false;
dv.AllowEdit = false;
// 设置数据源
dgdList.DataSource = dv;
}
private void dgdList_CurrentCellChanged(object sender, System.EventArgs e)
{
// int iRow, iCol;
int iRow = dgdList.CurrentCell.RowNumber;
int iCol = dgdList.CurrentCell.ColumnNumber;
if ( iCol != 0 )
{
DataView dv = dtRoom.Copy().DefaultView;
dv.RowFilter = "楼层编号" + dgdList[ iRow , 0].ToString().Split( '/' )[ 0 ].ToString();
try
{
strRoomCode = dv[ iCol - 1 ][ 0 ].ToString().Trim();
}
catch ( Exception ex )
{
MessageBox.Show( ex.ToString() );
lblRoom.Text = "";
return;
}
// 根据选择的房间设置RadioButton
switch ( Convert.ToString( dgdList[ iRow , iCol ] ) )
{
case "0" :
rbnArrive.Checked = true;
break;
case "1" :
rbnLeave.Checked = true;
break;
case "2" :
rbnEmpty.Checked = true;
break;
case "3" :
rbnRepair.Checked = true;
break;
case "4" :
rbnFull.Checked = true;
break;
case "5" :
rbnSelf.Checked = true;
break;
case "6" :
lblRoom.Text = "";
break;
}
}
if ( dgdList.CurrentCell.ColumnNumber == 0 )
return;
DataGridImageCell cs = ( DataGridImageCell )dgdList.TableStyles[ 0 ].GridColumnStyles[ dgdList.CurrentCell.ColumnNumber ];
// cs的属性
cs.BRect = true;
cs.RowNumber = dgdList.CurrentCell.RowNumber;
cs.PaintRect();
}
private void btnUpate_Click(object sender, System.EventArgs e)
{
LoadData();
DataView dv = dtData.DefaultView;
dv.AllowEdit = false;
dv.AllowDelete = false;
dv.AllowNew = false;
// 设置数据源
dgdList.DataSource = dv;
}
private void btnSet_Click(object sender, System.EventArgs e)
{
int iRow = dgdList.CurrentCell.RowNumber;
int iCol = dgdList.CurrentCell.ColumnNumber;
string strState = dgdList[ iRow, iCol ].ToString();
string strTmpState;
if ( iCol != 0 )
{
if ( rbnArrive.Checked )
strTmpState = "0";
else if ( rbnEmpty.Checked )
strTmpState = "2";
else if ( rbnFull.Checked )
strTmpState = "4";
else if ( rbnLeave.Checked )
strTmpState = "1";
else if ( rbnRepair.Checked )
strTmpState = "3";
else if ( rbnSelf.Checked )
strTmpState = "5";
else
strTmpState = "";
}
else
return;
// 如果状态已经更新
if ( strTmpState != strState )
{
DataBase db = new DataBase();
DataView dv = dtRoom.Copy().DefaultView;
dv.RowFilter = "楼层编号" + Convert.ToString( dgdList[ iRow , 0 ] ).Split( '/' )[ 0 ].ToString();
string strSQL = " update 客房信息 set 状态='";
strSQL += GetStateText( strTmpState ) + "'";
strSQL += "where 客房编号='";
strSQL += dv[ iCol - 1 ][ 0 ].ToString().Trim() + "'";
db.RunDelOrInsSQL( strSQL );
db.Dispose();
}
LoadData();
DataView dvTmp = dtData.DefaultView;
dvTmp.AllowNew = false;
dvTmp.AllowEdit = false;
dvTmp.AllowDelete = false;
// 设置数据源
dgdList.DataSource = dtData.DefaultView;
}
private void DoReserve()
{
int iRow = dgdList.CurrentCell.RowNumber;
int iCol = dgdList.CurrentCell.ColumnNumber;
if ( dgdList[ iRow, iCol ].ToString() == "2" )
{
// 空房则可以预订
DataBase db = new DataBase();
DataView dv = dtRoom.Copy().DefaultView;
dv.RowFilter = "楼层编号" + Convert.ToString( dgdList[ iRow, 0 ] ).Split( '/')[ 0 ].ToString();
strRoomCode = dv[ iCol - 1 ][ 0 ].ToString().Trim();
}
else
{
MessageBox.Show( "选择的房间不是空房间!" );
}
}
private void dgdList_DoubleClick(object sender, System.EventArgs e)
{
if ( !bClose )
return;
if ( dgdList.CurrentCell.ColumnNumber == 0 )
return;
DoReserve();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -