if (count == 0) { // 条码错误 lb_test_state.BackColor = Color.Red; lb_test_state.Text = "条码错误 "; { // 良品或不良品点检 if (goodBarcodeList.Contains(barcode)) { lb_test_state.BackColor = Color.Yellow; lb_test_state.Text = "请进行良品点检"; } else if (badBarcodeList.Contains(barcode)) { lb_test_state.BackColor = Color.Yellow; lb_test_state.Text = "请进行不良品点检"; }在此代码基础上修改,如果实时监控到文件夹有良品点检报告生成(良品条码的测试报告txt文件),则label状态栏变绿,并提示“良品点检完成”。如果实时监控到文件夹有不良品点检报告生成(不良品条码的测试报告txt文件,同良品点检报告在一个文件夹,只是文件后缀不同),则label状态栏变绿,并提示“不良品点检完成”。并将测试数据更新到数据库。当在数据库发现有这两条测试记录,表面点检完成。之后扫描到的条码不再受限制,不再提示条码错误
时间: 2024-02-25 17:55:43 浏览: 78
以下是修改后的代码:
```
private bool isGoodChecked = false; // 是否完成良品点检
private bool isBadChecked = false; // 是否完成不良品点检
// 监控文件夹的路径
private string folderPath = "文件夹路径";
private FileSystemWatcher watcher;
private void Form1_Load(object sender, EventArgs e)
{
// 创建文件夹监控实例
watcher = new FileSystemWatcher();
watcher.Path = folderPath;
watcher.Filter = "*.txt";
watcher.Created += new FileSystemEventHandler(OnFileCreated);
watcher.EnableRaisingEvents = true;
}
private void OnFileCreated(object source, FileSystemEventArgs e)
{
string fileName = e.Name;
string[] parts = fileName.Split('_');
string barcode = parts[1];
if (fileName.StartsWith("goodBarcode_"))
{
// 如果是良品点检报告
lb_test_state.BackColor = Color.Green;
lb_test_state.Text = "良品点检完成";
isGoodChecked = true;
UpdateDatabase(barcode);
}
else if (fileName.StartsWith("badBarcode_"))
{
// 如果是不良品点检报告
lb_test_state.BackColor = Color.Green;
lb_test_state.Text = "不良品点检完成";
isBadChecked = true;
UpdateDatabase(barcode);
}
CheckTestComplete();
}
private void CheckTestComplete()
{
// 如果两种点检都完成,则解除条码限制
if (isGoodChecked && isBadChecked)
{
goodBarcodeList.Clear();
badBarcodeList.Clear();
isGoodChecked = false;
isBadChecked = false;
}
}
private void UpdateDatabase(string barcode)
{
// 更新数据库
// ...
}
private void btn_test_Click(object sender, EventArgs e)
{
string barcode = tb_barcode.Text;
if (goodBarcodeList.Contains(barcode))
{
lb_test_state.BackColor = Color.Yellow;
lb_test_state.Text = "请进行良品点检";
}
else if (badBarcodeList.Contains(barcode))
{
lb_test_state.BackColor = Color.Yellow;
lb_test_state.Text = "请进行不良品点检";
}
else
{
lb_test_state.BackColor = Color.Red;
lb_test_state.Text = "条码错误";
}
}
```
在代码中添加了两个变量isGoodChecked和isBadChecked,用于记录良品点检和不良品点检是否完成。在文件夹监控事件中,如果发现良品点检或不良品点检报告生成,则更新label状态栏,并将对应的变量设置为true,同时更新数据库。在CheckTestComplete方法中检查两种点检是否都完成,如果都完成则解除条码限制。在btn_test_Click方法中,如果扫描到的是良品或不良品条码,则提示进行点检,否则提示条码错误。
阅读全文