c#窗体应用程序实现当软件开启,就在数据库扫描是否有设置的良品和不良品条码的当天ICT测试记录(ICT_test表中Barcode,Date,Result),良品和不良品条码在本地文件夹txt文件中获取。如果数据库中有良品和不良品测试记录存在,lable状态栏变绿并提示“已点检,请进行ICT测试”,然后进行别的条码的ICT测试。就将扫到的条码通过模拟键盘发送到ICT测试软件进行测试。如果没有,别的条码发送时会被拦截,label状态栏变红,并提示“请进行测试前点检”,然后就先进行设置条码的ICT测试,判断扫描到txt_Barcode中条码是否为获取到设置的良品或不良品条码,如输入的条码不符合,label状态栏变红,并提示“条码错误”,如输入的条码正确并为设置的良品条码,label状态栏变绿,并提示“请进行良品点检”,就将良品条码发送到ICT测试软件进行ICT测试,当发现某一文件夹中有良品测试报告生成,表示良品测试完成,测试完成后就提示“良品点检完成”。如扫描的是设置的不良品条码,则label状态栏变绿,并提示“请进行不良品点检”,进行ICT测试。当发现某一文件夹中有不良品测试报告生成,表示不良品测试完成。(所有条码先扫描到c#窗体软件txt_barcode中,在通过模拟键盘定位发送到ICT测试软件条码框中,然后进行ICT测试)代码实现

时间: 2023-11-27 11:06:19 浏览: 201
以下是实现上述功能的示例代码: ``` using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace ICTTestApplication { public partial class MainForm : Form { private string[] goodBarcodes; //存储良品条码的数组 private string[] badBarcodes; //存储不良品条码的数组 private bool isInspected = false; //是否已点检的标识 private bool isTesting = false; //是否正在测试的标识 public MainForm() { InitializeComponent(); } private void MainForm_Load(object sender, EventArgs e) { //从本地文件夹中读取良品和不良品条码 goodBarcodes = File.ReadAllLines("good_barcodes.txt"); badBarcodes = File.ReadAllLines("bad_barcodes.txt"); //启动时检查数据库中是否有当天的ICT测试记录 if (CheckICTRecords()) { //如果有记录,则标识已点检并提示进行ICT测试 isInspected = true; statusLabel.ForeColor = Color.Green; statusLabel.Text = "已点检,请进行ICT测试"; } else { //如果没有记录,则标识未点检并提示进行点检 isInspected = false; statusLabel.ForeColor = Color.Red; statusLabel.Text = "请进行测试前点检"; } } private bool CheckICTRecords() { //连接数据库,查询当天的ICT测试记录 string connectionString = "your_connection_string_here"; string query = "SELECT * FROM ICT_test WHERE Date = '" + DateTime.Now.ToString("yyyy-MM-dd") + "'"; DataTable dt = new DataTable(); using (var connection = new SqlConnection(connectionString)) using (var command = new SqlCommand(query, connection)) using (var adapter = new SqlDataAdapter(command)) { adapter.Fill(dt); } //判断是否有记录 if (dt.Rows.Count > 0) { return true; } else { return false; } } private void barcodeTextBox_KeyDown(object sender, KeyEventArgs e) { //按下回车键时发送条码进行测试 if (e.KeyCode == Keys.Enter) { e.Handled = true; //防止系统发出响铃声 string barcode = barcodeTextBox.Text.Trim(); //如果未点检,则进行点检 if (!isInspected) { if (goodBarcodes.Contains(barcode)) { //如果是良品条码,则标识已点检并提示进行良品点检 isInspected = true; statusLabel.ForeColor = Color.Green; statusLabel.Text = "请进行良品点检"; } else if (badBarcodes.Contains(barcode)) { //如果是不良品条码,则标识已点检并提示进行不良品点检 isInspected = true; statusLabel.ForeColor = Color.Green; statusLabel.Text = "请进行不良品点检"; } else { //如果是错误的条码,则提示条码错误 statusLabel.ForeColor = Color.Red; statusLabel.Text = "条码错误"; } } //如果已点检,则进行测试 else { if (isTesting) { //如果正在测试,则忽略条码输入 return; } if (goodBarcodes.Contains(barcode)) { //如果是良品条码,则发送至ICT测试软件进行测试 SendBarcodeToICT(barcode); isTesting = true; } else if (badBarcodes.Contains(barcode)) { //如果是不良品条码,则发送至ICT测试软件进行测试 SendBarcodeToICT(barcode); isTesting = true; } else { //如果是错误的条码,则提示条码错误 statusLabel.ForeColor = Color.Red; statusLabel.Text = "条码错误"; } } } } private void SendBarcodeToICT(string barcode) { //将条码发送至ICT测试软件进行测试 SendKeys.Send(barcode); } private void timer_Tick(object sender, EventArgs e) { //定时检查ICT测试结果 if (isTesting) { //如果正在测试,则检查测试结果 if (CheckTestResult()) { //如果测试完成,则标识测试完成并提示 isTesting = false; statusLabel.ForeColor = Color.Green; statusLabel.Text = "良品点检完成"; } } } private bool CheckTestResult() { //检查测试结果是否已生成 //TODO: 实现检查测试结果的代码 return true; } } } ``` 以上代码中,`MainForm_Load` 方法在窗体启动时检查数据库中是否有当天的ICT测试记录,并根据结果设置状态栏的颜色和文本。`barcodeTextBox_KeyDown` 方法在用户输入条码后进行处理,如果未点检则进行点检,如果已点检则发送条码至ICT测试软件进行测试。`SendBarcodeToICT` 方法将条码发送至ICT测试软件进行测试。`timer_Tick` 方法定时检查测试结果是否已生成。`CheckICTRecords` 方法用于检查数据库中是否有当天的ICT测试记录,`CheckTestResult` 方法用于检查测试结果是否已生成。需要根据实际情况进行具体的实现。

相关推荐

最新推荐

recommend-type

六首页数字藏品NFT交易网React NextJS网站模板 六首页数字藏品nft交易网反应NextJS网站模板

六首页数字藏品NFT交易网React NextJS网站模板 六首页数字藏品nft交易网反应NextJS网站模板
recommend-type

wireshark安装教程入门

wireshark安装教程入门
recommend-type

基于C++负数据库的隐私保护在线医疗诊断系统

【作品名称】:基于C++负数据库的隐私保护在线医疗诊断系统 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: 基于负数据库的隐私保护在线医疗诊断系统 NDBMedicalSystem 客户端及服务器端 本项目是在保护用户隐私的前提下,完成了对新冠肺炎、乳腺癌、眼疾等多种疾病的智能诊断。
recommend-type

基本的嵌入式操作系统给

任务管理
recommend-type

3-10.py

3-10
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

2. 通过python绘制y=e-xsin(2πx)图像

可以使用matplotlib库来绘制这个函数的图像。以下是一段示例代码: ```python import numpy as np import matplotlib.pyplot as plt def func(x): return np.exp(-x) * np.sin(2 * np.pi * x) x = np.linspace(0, 5, 500) y = func(x) plt.plot(x, y) plt.xlabel('x') plt.ylabel('y') plt.title('y = e^{-x} sin(2πx)') plt.show() ``` 运行这段
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。