Foxtable(狐表)用户栏目专家坐堂 → 自定义下拉列表窗口的报错


  共有1387人关注过本帖树形打印复制链接

主题:自定义下拉列表窗口的报错

帅哥哟,离线,有人找我吗?
ouyangfenghuan
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:277 积分:2406 威望:0 精华:0 注册:2015/12/11 4:29:00
自定义下拉列表窗口的报错  发帖心情 Post By:2024/8/13 22:02:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:下拉列表窗口报错.png
图片点击可在新窗口打开查看
在输入文字时自动打开下拉窗口会报错,通过小箭头下拉的不会报错
下拉表数据没有绑定副本表,是通过Fill生成的


 回到顶部
帅哥哟,离线,有人找我吗?
ouyangfenghuan
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:277 积分:2406 威望:0 精华:0 注册:2015/12/11 4:29:00
  发帖心情 Post By:2024/8/13 22:05:00 [只看该作者]

将窗口的DropDownClosed事件代码
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

 回到顶部
帅哥哟,离线,有人找我吗?
ouyangfenghuan
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:277 积分:2406 威望:0 精华:0 注册:2015/12/11 4:29:00
  发帖心情 Post By:2024/8/13 22:06:00 [只看该作者]

窗口的DropDownOpened事件代码
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() '将输入焦点返回下拉列表框

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110766 积分:563762 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/8/13 22:46:00 [只看该作者]

试试

DropDownClosed事件代码
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

 回到顶部