在数据窗口中读取条形码(powerbuilder)

问题描述 投票:0回答:1

我就像工作的POS应用程序一样,我添加了新代码以读取数据窗口中的条形码,但是在正确使用它时遇到了一些问题。该过程需要读取条形码并自动搜索产品,然后将其插入到另一个包含有关产品信息的数据窗口中。问题是我的代码在editchanged事件中,条形码的长度不同;因此,每次读取许多条形码时,都会调用搜索功能,以下是该功能的代码:

ll_rtn = dw_search.Retrieve()

If ll_rtn = 1 Then
    is_code = dw_search.GetItemString(1,'barcode')
    wf_insert(False)
End If

例如,如果读取的是10位数字的产品,并且找到长度为5的产品,则将其插入,但是由于条形码的长度为10,并且取决于搜索,可能会在最后一次找到它时,editchanged仍在运行。数字并再次插入。找到产品后,我不知道如何停止阅读。希望我能正确解释。

barcode powerbuilder pos
1个回答
0
投票

为控件中的每个击键触发一个editchanged事件。您可能想要将代码移至itemchanged事件或移至与itemchanged事件一起发布的完全独立的事件。

如果绝对必须在editchanged事件中包含代码,则需要在窗口上设置一个布尔实例变量,一旦找到产品,该变量就设置为TRUE。如果是真的,那就不要搜索。在进行任何新搜索之前,请记住将变量重置为FALSE。

© www.soinside.com 2019 - 2024. All rights reserved.