/// <summary> /// 后台断开工作 /// </summary> private void breakBackgroundWorker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e) { breakBackgroundWorker.ReportProgress(1, "磁盘断开中...");// 进度传出 DataTable dataTable = e.Argument as DataTable; string[] logs = new string[dataTable.Rows.Count]; for (int i = 0; i < dataTable.Rows.Count; i++) { if (breakBackgroundWorker.CancellationPending)// 取消检测 { e.Cancel = true; return; } breakBackgroundWorker.ReportProgress(Percents.Get(1, dataTable.Rows.Count), "正在断开:" + dataTable.Rows[i][0].ToString());// 进度传出 string localPath = dataTable.Rows[i][2].ToString(); if (!Directory.Exists(localPath)) { logs[i] = "盘符不存在,跳过断开 - " + DateTime.Now.ToString(); continue; } logs[i] = Disconnect(localPath);// 断开 } e.Result = logs; }
private void mappingBackgroundWorker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e) { mappingBackgroundWorker.ReportProgress(1, "磁盘映射中...");// 进度传出 DataTable dataTable = e.Argument as DataTable; string[] logs = new string[dataTable.Rows.Count]; for (int i = 0; i < dataTable.Rows.Count; i++) { if (mappingBackgroundWorker.CancellationPending)// 取消检测 { e.Cancel = true; return; } mappingBackgroundWorker.ReportProgress(Percents.Get(1, dataTable.Rows.Count), "正在映射:" + dataTable.Rows[i][0].ToString());// 进度传出 string autoMapping = dataTable.Rows[i][3].ToString(); if (autoMapping == "否") { logs[i] = "未启用自动映射 - " + DateTime.Now.ToString(); continue; } string autoCheck = dataTable.Rows[i][6].ToString(); if (autoCheck == "否") { logs[i] = "未启用断开检测 - " + DateTime.Now.ToString(); continue; } string localPath = dataTable.Rows[i][2].ToString(); if (Directory.Exists(localPath)) { logs[i] = "盘符已存在,跳过映射 - " + DateTime.Now.ToString(); continue; } string netPath = dataTable.Rows[i][1].ToString(); if (!Directory.Exists(netPath)) { logs[i] = "网络位置无法访问,跳过映射 - " + DateTime.Now.ToString(); continue; } string userName = dataTable.Rows[i][8].ToString(); string password = dataTable.Rows[i][9].ToString(); uint constflags = userName == "" ? (uint)0 : (uint)0; logs[i] = Mapping(localPath, netPath, userName, password, constflags);// 映射 } e.Result = logs; }
/// <summary> /// /// </summary> private void statisticsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { statisticsBackgroundWorker.ReportProgress(1, "查找中...");// 进度传出 DataTable sqlTable = SqlFunction.Select(e.Argument as string); if (sqlTable == null || sqlTable.Rows.Count == 0) { return; // 无结果 } DataTable dataTable = new DataTable(); dataTable.Columns.Add("打版师"); dataTable.Columns.Add("已分带子数"); dataTable.Columns.Add("完成带子数"); dataTable.Columns.Add("已分针数"); dataTable.Columns.Add("完成针数"); dataTable.Columns.Add("完成针数"); dataTable.Columns.Add("预计完成时间"); dataTable.Columns.Add("历史效率"); dataTable.Columns.Add("当天效率"); dataTable.Columns.Add("历史出错率"); /// bool existZ; for (int i = 0; i < sqlTable.Rows.Count; i++) { statisticsBackgroundWorker.ReportProgress(Percents.Get(i, sqlTable.Rows.Count), "数据处理中...");// 进度传出 existZ = false; foreach (DataRow row in dataTable.Rows) { if (row["打版师"].ToString().ToUpper() == sqlTable.Rows[i]["打版师"].ToString().ToUpper())// 已有此打版师数据行 { row["已分带子数"] = Convert.ToInt32(row["已分带子数"]) + 1; 做到这里,完成带子娄和完成针数没做完 int statr = sqlTable.Rows[i]["估针数始"].ToString() == "" ? 0 : Convert.ToInt32(sqlTable.Rows[i]["估针数始"]); int end = sqlTable.Rows[i]["估针数终"].ToString() == "" ? 0 : Convert.ToInt32(sqlTable.Rows[i]["估针数终"]); row["已分针数"] = Convert.ToInt32(row["已分针数"]) + (statr + end) / 2; existZ = true; break; } } if (!existZ)/// 没有此打版师数据行 { DataRow rows = dataTable.NewRow(); rows["打版师"] = sqlTable.Rows[i]["打版师"].ToString().ToUpper(); rows["已分带子数"] = 1; 做到这里,完成带子娄和完成针数没做完 rows["完成带子数"] = "未设定"; int statr = sqlTable.Rows[i]["估针数始"].ToString() == "" ? 0 : Convert.ToInt32(sqlTable.Rows[i]["估针数始"]); int end = sqlTable.Rows[i]["估针数终"].ToString() == "" ? 0 : Convert.ToInt32(sqlTable.Rows[i]["估针数终"]); rows["已分针数"] = (statr + end) / 2; rows["完成针数"] = "未设定"; rows["预计完成时间"] = "未设定"; rows["历史效率"] = "未设定"; rows["当天效率"] = "未设定"; rows["历史出错率"] = "未设定"; dataTable.Rows.Add(rows); } } /// e.Result = dataTable; }