Beispiel #1
0
 //钩子事件处理
 private void ListenerScanerEvent(ScanerHook.ScanerCodes codes)
 {
     //设置能效编号
     if (Auto_MenuItem.IsChecked)
     {
         picturesPage.SetNumber(codes.Result);
         AutoPrint(codes.Result);
     }
 }
Beispiel #2
0
 //钩子事件处理
 private void ListenerScanerEvent(ScanerHook.ScanerCodes codes)
 {
     //设置能效编号
     if (Auto_MenuItem.IsChecked == true)
     {
         //将钩子捕获到的结果集展示在界面框里,但扫描时已经扫过一次在了,会导致显示两次信息。
         //0112,将自动打印的标签码输入框改成readonly就不会出现上面说的这个问题了。
         PNumber = codes.Result;
         AutoPrint(codes.Result);
     }
 }
        private void ShowInfo(ScanerHook.ScanerCodes scanerCodes)
        {
            textBox1.Text = scanerCodes.CurrentChar;
            textBox2.Text = scanerCodes.KeyDownCount.ToString();


            StringBuilder sb = new StringBuilder();

            for (int i = 0; i < scanerCodes.KeyboardState.Length; i++)
            {
                sb.Append(scanerCodes.KeyboardState[i].ToString("X2"));
            }

            textBox3.Text = sb.ToString();

            textBox3.Text = System.Text.Encoding.ASCII.GetString(scanerCodes.KeyboardState);
            textBox4.Text = scanerCodes.isShift.ToString();
            textBox5.Text = scanerCodes.CurrentKey.ToString();
            //textBox6.Text = scanerCodes.IsValid ? barCode.BarCode : "";//是否为扫描枪输入,如果为true则是 否则为键盘输入
            textBox7.Text = scanerCodes.Result;
        }
        private void Listener_ScanerEvent(ScanerHook.ScanerCodes codes)
        {
            string[] content = codes.Result.ToString().Split(',');
            try
            {
                DateTime dateTime;
                if (!DateTime.TryParseExact(content[5], "yyyy/M/ddHH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
                {
                    DateTime.TryParseExact(content[5], "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime);
                }

                InputInvoice invoice = new InputInvoice()
                {
                    InvoiceCode      = content[2],
                    InvoiceNumber    = content[3],
                    Date             = dateTime,
                    RecDate          = DateTime.Now,
                    Verification     = content[6],
                    AcctId           = Information.AccountantId,
                    PersonId         = Properties.Settings.Default.PersonId,
                    VerificationCode = (content.Length == 8)?content[7] : null
                };
                decimal amount = 0;
                //invoice.AcctId = Information.AccountantId;
                //invoice.PersonId = Properties.Settings.Default.PersonId;
                using (var db = new DataModel())
                {
                    invoice.PersonName = db.Persons.Where(p => p.PersonId == invoice.PersonId).FirstOrDefault().PersonName;
                }
                if (decimal.TryParse(content[4], out amount))
                {
                    invoice.Amount = amount;
                }
                if (Invoices.Any(i => i.InvoiceNumber == invoice.InvoiceNumber && i.InvoiceCode == invoice.InvoiceCode))
                {
                    string time = DateTime.Now.ToString("HH:mm:ss");
                    ScanMessage = time + "  该发票已扫描,等待入库!";

                    //MessageBox.Show("该发票已经扫描等待入库", "信息", MessageBoxButton.OK, MessageBoxImage.Information);
                }
                else
                {
                    using (var db = new DataModel())
                    {
                        if (db.Invoices.Any(a => a.InvoiceNumber == invoice.InvoiceNumber && a.InvoiceCode == invoice.InvoiceCode))
                        {
                            string time = DateTime.Now.ToString("HH:mm:ss");
                            ScanMessage = time + "  该发票已经报销过!";
                            //MessageBox.Show("该发票已经报销过", "警告", MessageBoxButton.OK, MessageBoxImage.Warning);
                        }
                        else
                        {
                            string time = DateTime.Now.ToString("HH:mm:ss");
                            ScanMessage = time + "  发票扫描成功!";
                            Message     = $"发票代码: {invoice.InvoiceCode} 发票号码: {invoice.InvoiceNumber} 税前金额: {invoice.Amount} " +
                                          $"发票日期: {invoice.Date.ToString("yyyy年MM月dd日")}";
                            invoice.AcctName    = db.Accountants.Where(o => o.AccountantId == Information.AccountantId).FirstOrDefault().Person.PersonName;
                            invoice.VerifyState = "未校验";
                            Invoices.Add(invoice);
                            InputCount = Invoices.Count;
                            BtnEnableJudgement();
                        }
                    }
                }
            }
            catch (Exception e)
            {
                ScanMessage = "非正常发票数据";
            }
        }
 private void ScanerHook_BarCodeEvent(ScanerHook.ScanerCodes scanerCodes)
 {
     ShowInfo(scanerCodes);
 }