此主题相关图片如下:下拉列表窗口报错.png
在输入文字时自动打开下拉窗口会报错,通过小箭头下拉的不会报错
下拉表数据没有绑定副本表,是通过Fill生成的
If e.Selected Then '如果选择了值
Dim tbl As Table = Tables("氧化产品名称录入项目列表_Table1")
Dim r As DataRow = tbl.Current.DataRow
If R IsNot Nothing Then
'Dim r As DataRow = tbl.Current.DataRow
e.Form.DropDownBox.Value = r("产品名称")
Tables("材料收货表.氧化收货表").Current("委外单号") = r("委外流水号")
Tables("材料收货表.氧化收货表").Current("订单表序号") = r("订单表序号")
If Tables("材料收货表.氧化收货表").Current.IsNull("工艺内容") Then
Tables("材料收货表.氧化收货表").Current("工艺内容") = r("要求")
End If
If e.Form.DropTable IsNot Nothing Then '如果是通过表下拉的
e.Form.DropTable.FinishEditing()
Else '如果是通过窗口下拉的
PopMessage("ti", "tis", PopiconEnum.Question, 2)
e.Form.DropDownBox.WriteValue()
End If
End If
End If
Dim txt As String = e.Form.DropDownBox.Text
Dim tbl As Table = Tables("氧化产品名称录入项目列表_Table1")
Dim filter As String
filter = "[完成] = 0 And 加工商= '" & Tables("材料收货表.氧化收货表").Current("供应商") & "'"
tbl.Fill("Se-le-ct * From {外发出货单} Where " & Filter , "rx", True)
'tbl.DataTable.LoadFilter = filter
'tbl.DataTable.Load
If txt = "" Then
tbl.Filter = filter
Else
txt = "'%" & txt & "%'"
filter="[完成] = 0 And 加工商= '" & Tables("材料收货表.氧化收货表").Current("供应商") & "' And (产品名称 Like " & txt & " Or 订单表序号 Like " & txt & ")"
tbl.Filter = filter
tbl.Sort = "日期 DESC"
End If
e.Form.DropDownBox.Select() '将输入焦点返回下拉列表框
试试
If e.Selected Then '如果选择了值
Dim tbl As Table = Tables("氧化产品名称录入项目列表_Table1")
Dim r As Row = tbl.Current
If R IsNot Nothing Then
e.Form.DropDownBox.Value = r("产品名称")
dim r2 as row = Tables("材料收货表.氧化收货表").Current
r2("委外单号") = r("委外流水号")
r2t("订单表序号") = r("订单表序号")
If r2.IsNull("工艺内容") Then
r2("工艺内容") = r("要求")
End If
End If
End If