利用条形码进行自动化处理

在自动化流程中,有时需要手动干预以处理特定情况。例如,当打印的条形码用于标记发出的信件、订单或发票时,如果收件人搬迁导致无法送达,工作人员需要手动打开信封并更新系统标记为无法送达。或者在准备寄出的邮件上打印了所有标签,但在交给邮递员之前需要进行最后的更新。本文介绍的工具可以帮助快速完成这些操作,只需扫描条形码即可检索数据库中的相应记录并进行更新。

设想一下,为发出的每一封信件、订单或发票都打印了条形码。现在,如果其中一些因为收件人搬迁而退回,员工需要费力地打开这些信封,进入系统并标记为退回。或者在准备寄出的邮件上打印了所有标签,但在交给邮递员之前需要进行最后的更新。这个工具可以帮助快速完成这些操作,只需扫描条形码即可检索数据库中的相应记录并进行更新。

如何使用代码

这个工具的app.config是使其工作的关键!可以添加一个或多个SQL连接字符串。配置表单标题、每条记录前的复选框列名、来自扫描条形码的键(用逗号分隔),这些键用于确定要查询的数据库,以及用于检索请求记录的SQL命令和提交按钮发出的更新命令。

<?xml version="1.0" encoding="utf-8"?> <configuration> <connectionStrings> <clear/> <add name="DB" connectionString="YourConnectionString" providerName="System.Data.SqlClient"/> <add name="DB1" connectionString="YourOptional2DatabaseConnectionString" providerName="System.Data.SqlClient"/> </connectionStrings> <appSettings> <add key="Title" value="Barcode Handler"/> <add key="CheckColumnName" value="Invalidate Address"/> <add key="DB" value="ORD,ORF"/> <add key="DB1" value="ORA,ORB"/> <add key="RetrieveCommand_ID_Column_No" value="1"/> <add key="RetrieveCommand" value="SELECT top 1 'ORA' as DB,'35295' ItemID,'2014-01-01 00:34:23' Orderdate , 'Sent' as Status, 'Peter' as [First name] ,'Pan' as [Last name] ,'Treehouse 1' as [Address],'Neverland' as [City],'Xmas Presents' as [Description] FROM orders where @ItemID=orderID"/> <add key="UpdateCommand" value="UPDATE ORDER_STATUS SET STATUS = 'Returned Mail (Undeliverable)' ,statusdate = getdate() ,updated_by = 'BarcodeHandler' , updated_date = getdate() WHERE OrderID = @ItemID ; UPDATE m SET incorrect_address_flag = 'Y' FROM customer m inner joine orders ......... orderid= @ItemID ; "/> </appSettings> </configuration>

代码实现

以下是C#代码示例,展示了如何使用扫描条形码来检索和更新数据库记录。

private void SetColumns() { // 设置列 } public class ScannerTextBox : TextBox { public event ChangedEventHandler BarCodeEntered; protected virtual void OnChanged(EventArgs e) { } public bool BarcodeOnly { get; set; } Timer timer; private void InitializeComponent() { this.SuspendLayout(); this.ResumeLayout(false); } void timer_Tick(object sender, EventArgs e) { if (BarcodeOnly == true) { Text = ""; timer.Enabled = false; } } protected override void OnKeyPress(KeyPressEventArgs e) { base.OnKeyPress(e); if (BarcodeOnly == true) { if (timer == null || !timer.Enabled) Text = ""; if (timer == null) { timer = new Timer(); timer.Interval = 200; timer.Tick += new EventHandler(timer_Tick); timer.Enabled = false; } timer.Enabled = true; } if (e.KeyChar == '\r') { if (BarcodeOnly == true && timer != null) { timer.Enabled = false; if (BarCodeEntered != null) { if (this.Text.Length > 3 && !String.IsNullOrEmpty(this.Text)) { BarCodeEnteredEventArgs e1 = new BarCodeEnteredEventArgs(this.Text); BarCodeEntered(this, e1); } } } } } }
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485