提问人:Jean-marc Blanchet 提问时间:10/19/2023 最后编辑:Jean-marc Blanchet 更新时间:10/30/2023 访问量:72
如何获取 GS1 数据矩阵代码(带分隔符)到 C# winforms 应用程序
How can I get a GS1 datamatrix code (with separators) to a C# winforms application
问:
我使用条形码扫描仪读取 medecine GS1 数据矩阵码。我需要整个数据序列,包括组分隔符来解析代码,以便查找应用程序标识符 (AI) 并相应地获取数据。 目标是 winforms C# 应用程序,它将调用 NMVS 服务来检查 medecines 状态。 实际上,我将TextBox作为目标控件,但其内容不再包含GS。
谢谢你的帮助
如果我用0x1D (ASCII 29) 字符作为分隔符手动填充文本框,它就像一个魅力。GS1 解析器找到 AI,我可以提取数据。 如果我打开Notepad ++并专注于它并扫描代码,则会出现特殊字符。我设置了我的扫描仪 NETUM C750 型号来映射功能键,以便将分隔符包含在缓冲区中。
答:
0赞
Jean-marc Blanchet
10/30/2023
#1
由于条码扫描器被认为是键盘,我发现可以捕获按键事件,因此我填写了一个字符列表。
List<char> charList = new List<char>();
private void textEditCode_KeyPress(object sender, KeyPressEventArgs e)
{
charList.Add(e.KeyChar);
}
string datamatrix = new string(charList.ToArray()); //charList is filled by pressing the keys, or when receiving data from the scanner
Aii = gS1.Parse(datamatrix); // Aii = new Dictionary<string, string>();
之后,我将 char 列表解析为 GS1 内容,我可以调用 NMVS 服务:
string Batch = gS1.GetValue(EGS1AI.Batch);
string ProductCode = gS1.GetValue(EGS1AI.GTIN);
System.DateTime ExpDate = gS1.GetValue(EGS1AI.ExpirationDate);
string SerialNumber = gS1.GetValue(EGS1AI.SerialNumber);
string dat = ExpDate.ToString("yyMMdd");
Log log = new Log(App.LogFolder(), App.AppName);
G110Response response = G110.G110Verify(ProductCode, Batch, dat,
SerialNumber, log);
然后处理响应
评论