天天看點

根據已訂房客人資料快速登記

在平時做項目中,簡單快捷的操作小功能是必不可少的,既能簡化代碼量,又能友善快捷的上手操作。

根據已訂房客人資料快速登記

比如說:某酒店系統的客人登記頁面,你不可能說每來一個客戶都需要一個框一個框的填寫好,然後再訂房再儲存,一般項目需求會寫到: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);
            }
        }
           
根據已訂房客人資料快速登記

輸入完主客姓名移開後,自動綁定該客戶的相關資訊,如果是黑名單客戶,系統提示并關閉目前頁面。