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

📄 frmreception.cs

📁 酒店管理软件,c#版本可以选择不同的模式
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Hotel.Control;
using Hotel.Command;
using Hotel.Reception.Bll;
using Hotel.Guest.Bll;
using Hotel.GuestRoom.Bll;

namespace Hotel.Reception.Face
{
    public partial class FrmReception : Form
    {
        private Hotel.Control.RoomStateControl[] rs;
        private Hotel.Control.RoomStateControl[] roomSc;
        private StoreyManager _SM ;
        private bool selectStatues=false;
        private int roomIndex = 0;

        public FrmReception()
        {
            InitializeComponent();
            Init();
        }

        public void Init()
        {
            
            _SM = new StoreyManager();
            ShowStoryUnitOf();
          //  this.WindowState = FormWindowState.Maximized;

        }

        #region  显示楼区
        private void ShowStoryUnitOf()
        {
            int i = 0;
            ListViewItem lvItem;
            this.lvUnit.Clear();
            this.lvLayer.Clear();
            ListViewGroup lvGroup = new ListViewGroup("楼区",HorizontalAlignment.Left);
            lvGroup.Header = "楼区";
            lvGroup.Name = "ListViewUnit";
            this.lvUnit.Groups.AddRange(new ListViewGroup[] {lvGroup});

            String[] UnitStr = new string[_SM._mySU.Count];

            foreach (StoreyUnit var in _SM._mySU)
            {
               lvItem = new ListViewItem(new string[] {
                  var.Dm+"."+var.Memo}, 1, SystemColors.WindowText, Color.Silver, new Font("宋体", 9F));
               lvItem.Group = lvGroup;
               lvItem.StateImageIndex = 1;
               lvItem.ForeColor = Color.Blue;
               lvItem.Tag = "Checked";
               //ShowStoryLayerOf(var.Dm);
                
               UnitStr[i] = var.Dm;
               i++;
               this.lvUnit.Items.Add(lvItem);
            }
            CheckSelectUnitToLayer();

        }
        #endregion

        #region  显示楼层
        private void ShowStoryLayerOf(string UnitStr)
        {
            ListViewItem lvItem;
            ListViewGroup lvGroup = new ListViewGroup(UnitStr+".楼区"+"的楼层", HorizontalAlignment.Left);
            lvGroup.Header = UnitStr + ".楼区" + "的楼层";
            lvGroup.Name = "ListViewLayer";
            this.lvLayer.Groups.AddRange(new ListViewGroup[] { lvGroup });

            StoreyUnit su = new StoreyUnit();
            if (_SM.Find(UnitStr) == null)
            {
                return;
            }
            else
            {
                su = _SM.Find(UnitStr);
            }
            this.lvUnit.Groups.AddRange(new ListViewGroup[] { lvGroup });
            foreach (StoreyLayer var in su.MySL)
            {
                lvItem = new ListViewItem(new string[] {
                  var.Dm+"."+var.Memo}, 1, SystemColors.WindowText, Color.Silver, new Font("宋体", 9F));
                lvItem.Group = lvGroup;
                lvItem.StateImageIndex = 1;
                lvItem.ForeColor = Color.Blue;
                lvItem.Tag = "Checked";
                this.lvLayer.Items.Add(lvItem);
            }
        }
        #endregion

        #region 测试-倒入用户控件
        private void toolStripButton10_Click(object sender, EventArgs e)
        {
            lpAllRoom.Controls.Clear();
            roomSc = new RoomStateControl[12];
            for (int i = 0; i < 12; i++)
            {
                roomSc[i] = new RoomStateControl();
                roomSc[i].ID = i.ToString();
                roomSc[i].Name = i.ToString();

                roomSc[i].RoomNo = "200" + i.ToString();
                roomSc[i].ValueChanged += new RoomStateControl.ChangedHandle(ShowTile);
                roomSc[i].MsgCommand += new RoomStateControl.MenuHandle(MsgCommand);
                lpAllRoom.Controls.Add(roomSc[i]);
            }
        }
        #endregion

        #region 测试-根据控件的操作发送回消息
        private void MsgCommand(object sender, String MsgType)
        {
            MessageBox.Show(MsgType);
        }
        #endregion 

        #region 测试-显示当前选中的控件
        private void ShowTile(object sender, GetRoomGuest e)
        {
            Customer cc=new Customer();
            Room rc=new Room();
            cc = e.CustomerClient;
            this.Text = "1" + cc.GuestMessage;
        }
        #endregion 

        #region 测试-改变控件的门状态
        private void toolStripButton8_Click(object sender, EventArgs e)
        {
            roomSc[1].UsedState = (int)EnumObj.UsedState.Customer;
        }
        #endregion

        #region 事件-选择楼区的效果
        private void lvUnit_ItemActivate(object sender, EventArgs e)
        {
            if (lvUnit.SelectedItems[0].SubItems[0].ForeColor == Color.Blue)
            {
               // Font readfont = new Font("宋体", 9, FontStyle.Regular);
                //lvUnit.SelectedItems[0].SubItems[0].Font = readfont;
                lvUnit.SelectedItems[0].SubItems[0].ForeColor = Color.Black;
                lvUnit.SelectedItems[0].Tag = "UnChecked";
                lvUnit.SelectedItems[0].ImageIndex = 0;
                //lvUnit.SelectedItems[0].SubItems[0].BackColor = Color.Transparent;
            }
            else
            {
                lvUnit.SelectedItems[0].SubItems[0].ForeColor = Color.Blue;
                lvUnit.SelectedItems[0].Tag = "Checked";
                lvUnit.SelectedItems[0].ImageIndex = 1;
            }
            CheckSelectUnitToLayer();
        }
        #endregion

        #region 事件-选择单个楼区的效果
        private void lvUnit_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
        {
            if (lvUnit.SelectedItems.Count>1)
            {
                e.Item.ImageIndex = 1;
                e.Item.ForeColor = Color.Blue;
                e.Item.Tag = "Checked";
            }
            CheckSelectUnitToLayer();

        }
        #endregion

        #region 事件-选择单个楼层的效果
        private void lvLayer_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
        {
            if (lvLayer.SelectedItems.Count > 1)
            {
                e.Item.ImageIndex = 1;
                e.Item.ForeColor = Color.Blue;
                e.Item.Tag = "Checked";
            }
            CheckSelectUnitToLayer();
        }
         #endregion

        #region 事件-选择楼层的效果
        private void lvLayer_ItemActivate(object sender, EventArgs e)
        {
           // if (lvLayer.SelectedItems.Count > 0)
            //{
                if (lvLayer.SelectedItems[0].SubItems[0].ForeColor == Color.Blue)
                {
                    lvLayer.SelectedItems[0].SubItems[0].ForeColor = Color.Black;
                    lvLayer.SelectedItems[0].Tag = "UnChecked";
                    lvLayer.SelectedItems[0].ImageIndex = 0;
                }
                else
                {
                    lvLayer.SelectedItems[0].SubItems[0].ForeColor = Color.Blue;
                    lvLayer.SelectedItems[0].Tag = "Checked";
                    lvLayer.SelectedItems[0].ImageIndex = 1;
                }
                CheckSelectLayerToRoom();
           // }
        }
         #endregion

        #region 根据选中的楼层显示房间
        private void CheckSelectLayerToRoom()
        {
 
            string UnitStr = "";
            string LayerStr = "";

            lpAllRoom.Controls.Clear();
            roomIndex = 0;
            for (int i = 0; i < this.lvLayer.Items.Count; i++)
            {
                if (lvLayer.Items[i].Tag == "Checked")
                {
                    UnitStr = lvLayer.Items[i].Group.Header;
                    UnitStr = UnitStr.Remove(UnitStr.IndexOf("."));
                    LayerStr = lvLayer.Items[i].Text;
                    LayerStr = LayerStr.Remove(LayerStr.IndexOf("."));

                    ShowRoom(UnitStr, LayerStr);
                }
            }
        }
                #endregion

        #region 楼区菜单-选择全部楼区
        private void allSelectToolStripMenuItem_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < lvUnit.Items.Count; i++)
			{
                lvUnit.Items[i].ForeColor = Color.Blue;
                lvUnit.Items[i].Tag = "Checked";
                lvUnit.Items[i].ImageIndex = 1;
			}
            CheckSelectUnitToLayer();
 

        }
        #endregion

        #region 选择全部楼区,并在楼层全部选中
        private void CheckSelectUnitToLayer()
        {
            this.lvLayer.Clear();

            lpAllRoom.Controls.Clear();
            roomSc = new RoomStateControl[120];
            string UnitStr = "";
            string LayerStr = "";

            roomIndex = 0;
            for (int i = 0; i < lvUnit.Items.Count; i++)
            {
                if (lvUnit.Items[i].Tag == "Checked")
                {
                    UnitStr = lvUnit.Items[i].Text;
                    UnitStr = UnitStr.Remove(UnitStr.IndexOf("."));
                    SelectUnitToLayer(UnitStr);

                    for (int j = 0; j < this.lvLayer.Items.Count; j++)
                    {
                        if (lvLayer.Items[j].Tag == "Checked")
                        {
                            StoreyLayer sl;
                            LayerStr = lvLayer.Items[j].Text;
                            LayerStr = LayerStr.Remove(LayerStr.IndexOf("."));

                            ShowRoom(UnitStr, LayerStr);
                        }
                    }

                }
            }
        }
        #endregion

        #region 根据楼区和楼层显示房间
        private void ShowRoom(string UnitStr, string str)
        {
            StoreyLayer sl;
            if (_SM.Find(UnitStr).Find(str) != null)
            {
                sl = new StoreyLayer();
                sl = _SM.Find(UnitStr).Find(str);

                foreach (Room var in sl.MyRoom)
                {
                    roomSc[roomIndex] = new RoomStateControl();
                    roomSc[roomIndex].ID = var.Id.ToString();
                    roomSc[roomIndex].Name = var.No;

                    roomSc[roomIndex].RoomNo = var.No;
                    roomSc[roomIndex].ValueChanged += new RoomStateControl.ChangedHandle(ShowTile);
                    roomSc[roomIndex].MsgCommand += new RoomStateControl.MenuHandle(MsgCommand);
                    lpAllRoom.Controls.Add(roomSc[roomIndex]);
                    roomIndex++; 
                }

            }
        }
        #endregion

        #region 根据楼区,并在楼层全部选中
        private void SelectUnitToLayer(string str)
        {
            ShowStoryLayerOf(str);
        }
        #endregion

        #region 楼区菜单-取消选择全部楼区
        private void noSelectUnitMenu_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < lvUnit.Items.Count; i++)
            {
                lvUnit.Items[i].ForeColor = Color.Black;
                lvUnit.Items[i].Tag = "UnChecked";
                lvUnit.Items[i].ImageIndex = 0;
            }
            CheckSelectUnitToLayer();
        }
        #endregion

        #region 楼层菜单-取消选择全部楼层
        private void NoSelectLayerMenu_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < lvLayer.Items.Count; i++)
            {
                lvLayer.Items[i].ForeColor = Color.Black;
                lvLayer.Items[i].Tag = "UnChecked";
                lvLayer.Items[i].ImageIndex = 0;
            }
            CheckSelectLayerToRoom();
        }
        #endregion

        #region 楼层菜单-选择全部楼层
        private void allSelectLayerMenu_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < lvLayer.Items.Count; i++)
            {
                lvLayer.Items[i].ForeColor = Color.Blue;
                lvLayer.Items[i].Tag = "Checked";
                lvLayer.Items[i].ImageIndex = 1;
            }
            CheckSelectLayerToRoom();
        }
        #endregion


    }
}

⌨️ 快捷键说明

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