public StartProgram(int[] t, StartPrg prgType, bool two)
        {
            InitializeComponent();
            this.prgType = prgType;
            this.two     = two;
            Owner        = Win.mainWindow;
            this.t.AddRange(t);
            if (prgType == StartPrg.Calling)
            {
                for (int i = 0; i < t.Length; i++)
                {
                    PanelX.Children.Add(new StartTaga(Win.program.listTables[t[i]].НомерЗаказа));
                    ((StartTaga)PanelX.Children[i]).MouseLeftButtonUp += new MouseButtonEventHandler(Ci);
                }
            }
            else
            {
                Lab.Content = "Вам следует удалить клиентов:";
                Lab.ToolTip = "Что бы удалить клиента из списка нажмите на его ПКМ";
                Ok.Click   -= new RoutedEventHandler(Button_Click);
                Ok.Click   += new RoutedEventHandler(Remove);
                Ok.Content  = "Удалить всех";

                for (int i = 0; i < t.Length; i++)
                {
                    PanelX.Children.Add(new StartTaga(Win.program.listTables[t[i]].НомерЗаказа));
                    ((StartTaga)PanelX.Children[i]).MouseLeftButtonUp  += new MouseButtonEventHandler(LKM);
                    ((StartTaga)PanelX.Children[i]).MouseRightButtonUp += new MouseButtonEventHandler(PKM);
                }
            }
        }
Exemple #2
0
        public void getDateTable()
        {
            //初始化记录变量
            string sdwEnrollNumber = ""; //考勤记录的用户ID
            int    idwVerifyMode   = 0;  //验证方式,0代表密码,1代表指纹,2代表ID卡
            int    idwInOutMode    = 0;  //考勤状态,255代表无考勤状态
            int    idwYear         = 0;  //年
            int    idwMonth        = 0;  //月
            int    idwDay          = 0;  //日
            int    idwHour         = 0;  //时
            int    idwMinute       = 0;  //分
            int    idwSecond       = 0;  //秒
            int    idwWorkcode     = 0;  //记录的Workcode值

            //实例化委托
            objUpdataLbl = new UpdataLbl(LblState);
            objStartPrg  = startPrg;//实例Prg委托

            #region 创建DataTable表

            //创建一个名为"AttLogTable"的DataTable表
            DataTable AttLogTable = new DataTable();

            //设定列数据
            AttLogTable.Columns.Add("ClockId", typeof(int));
            AttLogTable.Columns.Add("MachineId", typeof(int));
            AttLogTable.Columns.Add("VerifyMode", typeof(int));
            AttLogTable.Columns.Add("InOutMode", typeof(int));
            AttLogTable.Columns.Add("ClockRecord", typeof(string));
            //清空DataTable行数据
            AttLogTable.Rows.Clear();

            #endregion

            //异步修改lbl值
            BeginInvoke(objUpdataLbl, "正在下载记录……");

            while (axCZKEM1.SSR_GetGeneralLogData(iMachineNumber, out sdwEnrollNumber, out idwVerifyMode,
                                                  out idwInOutMode, out idwYear, out idwMonth, out idwDay, out idwHour, out idwMinute,
                                                  out idwSecond, ref idwWorkcode)) //从内存取得记录
            {
                cNumber++;                                                         //循环记数,当前开写入的记录进度数
                BeginInvoke(objStartPrg, cNumber);                                 //异步执行,实现进度条更新进度

                BeginInvoke(objUpdataLbl, cNumber + "/" + iValue);                 //异步修改lbl值

                //把记录循环写入DataTable表
                DataRow dr = AttLogTable.NewRow();
                dr[0] = sdwEnrollNumber;
                dr[1] = iMachineNumber;
                dr[2] = idwVerifyMode;
                dr[3] = idwInOutMode;
                dr[4] = idwYear.ToString() + "-" + idwMonth.ToString() + "-" + idwDay.ToString() + " " + idwHour.ToString()
                        + ":" + idwMinute.ToString() + ":" + idwSecond.ToString();
                AttLogTable.Rows.Add(dr);
            }
            objSetDataSource = dgvDataSource;           //实例委托
            BeginInvoke(objSetDataSource, AttLogTable); //更新dgvAttLog

            //异步修改lbl值
            BeginInvoke(objUpdataLbl, "下载完毕!正在筛选记录……");

            #region 数据批量对比去重

            //读取数据库已有数据
            DataTable PastLogTable = objAttRecordService.GetAllOriginalLog().Tables[0];

            //求差集结果,
            IEnumerable <DataRow> drResult = AttLogTable.AsEnumerable().Except(PastLogTable.AsEnumerable(), DataRowComparer.Default);

            //处理空结果的异常
            if (drResult.Count() > 0)//如果序列元素的个数>0,则写入数据,否则跳过
            {
                //接收不重复的数据
                DataTable dtResult = drResult.CopyToDataTable();
                //批量写入原始记录表
                SQLHelper.UpdataByBulk(dtResult, "OriginalLog");
                //批量写入记录备份表
                SQLHelper.UpdataByBulk(dtResult, "OriginalLog_Bak");

                //异步修改lbl值
                BeginInvoke(objUpdataLbl, "数据保存成功!");
            }

            #endregion

            //清空dt对象
            AttLogTable  = null;
            PastLogTable = null;
            //异步修改lbl值
            BeginInvoke(objUpdataLbl, "数据保存成功!");
        }