天天看点

根据已订房客人资料快速登记

在平时做项目中,简单快捷的操作小功能是必不可少的,既能简化代码量,又能方便快捷的上手操作。

根据已订房客人资料快速登记

比如说:某酒店系统的客人登记页面,你不可能说每来一个客户都需要一个框一个框的填写好,然后再订房再保存,一般项目需求会写到:1. 根据已订房客人资料进行快速登记;2. 按客人姓名系统可自动查出是否是黑名单客人。这是最基本的两个小要点。

代码实现:View层(鼠标移开事件)

<TextBlock Grid.Row="1" Grid.Column="1" Text="主客姓名:" Foreground="Crimson" VerticalAlignment="Center"/>
                <TextBox Grid.Row="1" Grid.Column="2" Height="23" Text="{Binding CurrentRoomTableEntity.guestName,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" IsEnabled="False" BorderBrush="Crimson" >
                    <!--MouseLeave事件-->
                    <i:Interaction.Triggers>
                        <i:EventTrigger EventName="MouseLeave">
                            <i:InvokeCommandAction Command="{Binding TxtGuestMouseLeaveCommand}" CommandParameter="{Binding ElementName=WGuest}"/>
                        </i:EventTrigger>
                    </i:Interaction.Triggers>
                </TextBox>
           

页面上用的是鼠标移开事件,输入完后立马执行。

ViewModel层:

//客人姓名查询操作
        public void TxtGuestMouseLeave(Window window)
        {
            try
            {
                name = CurrentRoomTableEntity.guestName.Trim();
                //判断客人姓名长度
                if (CurrentRoomTableEntity.guestName != null)
                {
                    var guestDetail = (from tbGuest in myModels.t_guest
                                       where tbGuest.g_name == name
                                       select new RoomVo
                                       {
                                           //客人基本信息
                                           agreement_id = tbGuest.agreement_id,
                                           g_number = tbGuest.g_number,
                                           g_name = tbGuest.g_name,
                                           gender = tbGuest.gender,
                                           g_phone = tbGuest.g_phone,
                                           zjType = tbGuest.zjType,
                                           g_zjNumber = tbGuest.g_zjNumber,
                                           g_address = tbGuest.g_address,
                                           blackOrNo = tbGuest.blackOrNo,
                                           g_type = tbGuest.g_type,
                                           g_note = tbGuest.g_note
                                       }).ToList();
                    dataTable = ListToDataTable.ListToDataTablen(guestDetail);
                    if (dataTable.Rows[0]["blackOrNo"].ToString() != "True")
                    {
                        RoomVo guestEntity = new RoomVo()
                        {
                            agreement_id = Convert.ToInt32(dataTable.Rows[0]["agreement_id"]),
                            g_number = dataTable.Rows[0]["g_number"].ToString(),
                            guestName = dataTable.Rows[0]["g_name"].ToString(),
                            g_phone = dataTable.Rows[0]["g_phone"].ToString(),
                            gender = dataTable.Rows[0]["gender"].ToString(),
                            zjType = dataTable.Rows[0]["zjType"].ToString(),
                            g_zjNumber = dataTable.Rows[0]["g_zjNumber"].ToString(),
                            g_address = dataTable.Rows[0]["g_address"].ToString(),
                            g_type = dataTable.Rows[0]["g_type"].ToString(),
                            g_note = dataTable.Rows[0]["g_note"].ToString(),
                            blackOrNo = Convert.ToBoolean(dataTable.Rows[0]["blackOrNo"].ToString()),
                        };
                        CurrentRoomTableEntity = guestEntity;
                    }
                    else
                    {
                        MessageBoxResult mr = MessageBox.Show("该客户是黑名单客人", "系统提示!", MessageBoxButton.OKCancel, MessageBoxImage.Stop);
                        if (mr == MessageBoxResult.OK)
                            Close(window);
                    }
                }
            }
            catch (Exception e)
            {
                //输出
                Debug.WriteLine(e);
            }
        }
           
根据已订房客人资料快速登记

输入完主客姓名移开后,自动绑定该客户的相关信息,如果是黑名单客户,系统提示并关闭当前页面。