Пример #1
0
        /// <summary>
        /// Bind Record Type To Combobox.
        /// </summary>
        private void BindRecTypeToCombobox()
        {
            var zckm = "刷卡开门记录;键入用户ID及个人密码开门的记录;正常开门(刷卡)";
            var ffkm = "报警记录:非正常开门;手动开门记录;非法开门";
            var yckm = "远程(由SU)开门记录;按钮开门";
            var qtjl = String.Format("{0};{1};{2}", zckm, ffkm, yckm);

            var data = new List <IDValuePair <String, String> >();

            data.Add(new IDValuePair <String, String>(zckm, "正常开门"));
            data.Add(new IDValuePair <String, String>(ffkm, "非法开门"));
            data.Add(new IDValuePair <String, String>(yckm, "远程开门"));
            data.Add(new IDValuePair <String, String>(qtjl, "其他记录"));

            RecTypeCL.DataSource    = data;
            RecTypeCL.ValueMember   = "ID";
            RecTypeCL.DisplayMember = "Value";

            for (var i = 0; i < RecTypeCL.Items.Count; i++)
            {
                RecTypeCL.SetItemCheckState(i, CheckState.Checked);
            }
        }
Пример #2
0
        /// <summary>
        /// Query Button Click Event.
        /// </summary>
        private void QueryBtn_Click(object sender, EventArgs e)
        {
            try {
                CurRecords.Clear();
                HisCardGridView.Rows.Clear();

                var area2Index = Area2NameCB.SelectedIndex;
                var area2Text  = Area2NameCB.Text.ToLower().Trim();
                var area2Value = Area2NameCB.SelectedValue != null ? (Int32)Area2NameCB.SelectedValue : -1;

                var area3Index = Area3NameCB.SelectedIndex;
                var area3Text  = Area3NameCB.Text.ToLower().Trim();
                var area3Value = Area3NameCB.SelectedValue != null ? (Int32)Area3NameCB.SelectedValue : -1;

                var staIndex = StaNameCB.SelectedIndex;
                var staText  = StaNameCB.Text.ToLower().Trim();
                var staValue = StaNameCB.SelectedValue != null ? (Int32)StaNameCB.SelectedValue : -1;

                var devIndex = DevNameCB.SelectedIndex;
                var devText  = DevNameCB.Text.ToLower().Trim();
                var devValue = DevNameCB.SelectedValue != null ? (Int32)DevNameCB.SelectedValue : -1;

                var beginTime = BeginFromTime.Value;
                var endTime   = BeginToTime.Value;

                var queryIndex = (Int32)QueryTypeCB.SelectedValue;
                var queryText  = QueryTypeTB.Text;

                var recUnChecked = new List <IDValuePair <String, String> >();
                for (var i = 0; i < RecTypeCL.Items.Count; i++)
                {
                    if (!RecTypeCL.GetItemChecked(i))
                    {
                        recUnChecked.Add((IDValuePair <String, String>)RecTypeCL.Items[i]);
                    }
                }

                var result = Common.ShowWait(() => {
                    CurRecords = new Card().GetHisCardRecords(beginTime, endTime);
                    if (CurRecords != null && CurRecords.Count > 0)
                    {
                        CurRecords = (from tr in CurRecords
                                      join dev in Common.CurUser.Role.Devices on tr.DevID equals dev.Key
                                      join cd in Common.CurUser.Role.Cards on tr.CardSn equals cd.CardSn into tp
                                      from td in tp.DefaultIfEmpty()
                                      orderby tr.CardTime descending
                                      select new CardRecordInfo {
                            Card = td,
                            Device = dev.Value,
                            DevID = tr.DevID,
                            CardSn = tr.CardSn,
                            CardTime = tr.CardTime,
                            Status = tr.Status,
                            Remark = tr.Remark,
                            Direction = tr.Direction,
                            GrantPunch = tr.GrantPunch
                        }).ToList();

                        if (area2Index == -1)
                        {
                            CurRecords = CurRecords.FindAll(rec => rec.Device.Area2Name.ToLower().Contains(area2Text));
                        }

                        if (area2Index > 0)
                        {
                            CurRecords = CurRecords.FindAll(rec => rec.Device.Area2ID == area2Value);
                        }

                        if (area3Index == -1)
                        {
                            CurRecords = CurRecords.FindAll(rec => rec.Device.Area3Name.ToLower().Contains(area3Text));
                        }

                        if (area3Index > 0)
                        {
                            CurRecords = CurRecords.FindAll(rec => rec.Device.Area3ID == area3Value);
                        }

                        if (staIndex == -1)
                        {
                            CurRecords = CurRecords.FindAll(rec => rec.Device.StaName.ToLower().Contains(staText));
                        }

                        if (staIndex > 0)
                        {
                            CurRecords = CurRecords.FindAll(rec => rec.Device.StaID == staValue);
                        }

                        if (devIndex == -1)
                        {
                            CurRecords = CurRecords.FindAll(rec => rec.Device.DevName.ToLower().Contains(devText));
                        }

                        if (devIndex > 0)
                        {
                            CurRecords = CurRecords.FindAll(rec => rec.Device.DevID == devValue);
                        }

                        if (!String.IsNullOrWhiteSpace(queryText))
                        {
                            var filters = queryText.Split(new String[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
                            switch (queryIndex)
                            {
                            case 0:
                                CurRecords = CurRecords.FindAll(rec => {
                                    if (String.IsNullOrWhiteSpace(rec.CardSn))
                                    {
                                        return(false);
                                    }
                                    foreach (var f in filters)
                                    {
                                        if (rec.CardSn.Contains(f.Trim()))
                                        {
                                            return(true);
                                        }
                                    }
                                    return(false);
                                });
                                break;

                            case 1:
                                CurRecords = CurRecords.FindAll(rec => {
                                    if (rec.Card == null || String.IsNullOrWhiteSpace(rec.Card.WorkerId))
                                    {
                                        return(false);
                                    }
                                    foreach (var f in filters)
                                    {
                                        if (rec.Card.WorkerId.Contains(f.Trim()))
                                        {
                                            return(true);
                                        }
                                    }
                                    return(false);
                                });
                                break;

                            case 2:
                                CurRecords = CurRecords.FindAll(rec => {
                                    if (rec.Card == null || String.IsNullOrWhiteSpace(rec.Card.WorkerName))
                                    {
                                        return(false);
                                    }
                                    foreach (var f in filters)
                                    {
                                        if (rec.Card.WorkerName.Equals(f.Trim(), StringComparison.CurrentCultureIgnoreCase))
                                        {
                                            return(true);
                                        }
                                    }
                                    return(false);
                                });
                                break;

                            default:
                                break;
                            }
                        }

                        foreach (var rc in recUnChecked)
                        {
                            var filters = rc.ID.Split(new char[] { ';' });
                            var flag    = rc.Value.Equals("其他记录");
                            CurRecords.RemoveAll(rec => {
                                foreach (var f in filters)
                                {
                                    if (rec.Remark.Equals(f))
                                    {
                                        return(!flag);
                                    }
                                }
                                return(flag);
                            });
                        }
                    }
                }, default(string), "正在查询,请稍后...", default(int), default(int));

                if (result == DialogResult.OK)
                {
                    HisCardGridView.RowCount = CurRecords.Count;
                }
            } catch (Exception err) {
                Common.WriteLog(DateTime.Now, EnmMsgType.Error, "System", "Delta.MPS.AccessSystem.HisCardRecordsForm.QueryBtn.Click", err.Message, err.StackTrace);
                MessageBox.Show(err.Message, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }