Foxtable(狐表)用户栏目专家坐堂 → 动态筛选求助,请求老师协助


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

主题:动态筛选求助,请求老师协助

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


加好友 发短信
等级:幼狐 帖子:76 积分:808 威望:0 精华:0 注册:2013/8/25 9:03:00
动态筛选求助,请求老师协助  发帖心情 Post By:2019/2/18 16:59:00 [显示全部帖子]

如果产品表和订单表是通过品名、型号、规格这三列联系起来的(不管是否建立了关联),在订单表输入品名、型号、规格后,再从产品表找出对应产品的单价,填入单价列中,那么订单表的DataColChanged事件可如下设置代码:

Select Case e.DataCol.Name
    Case
"品名","型号",
"规格"
       
Dim dr As DataRow = e.DataRow
       
Dim pr As DataRow
       
If dr.IsNull("品名") OrElse dr.IsNull("型号") OrElse dr.IsNull("规格") Then
            dr(
"单价") = Nothing
       
Else
           
Dim filter As String
            filter =
"品名 = '" & dr("品名") & "' And 型号 = '" & dr("型号") & "' And 规格 = '" & dr("规格") & "'"
            pr =
DataTables("产品").Find(filter)
            If
pr IsNot Nothing
Then
                dr(
"单价") = pr("单价")
            End
If
       
End If
End
Select


想请教老师,如果规格为空字符能否实现单价能显示,哪位能帮忙改一下?谢谢!

[此贴子已经被作者于2019/2/18 17:08:05编辑过]

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


加好友 发短信
等级:幼狐 帖子:76 积分:808 威望:0 精华:0 注册:2013/8/25 9:03:00
  发帖心情 Post By:2019/2/20 9:35:00 [显示全部帖子]

谢谢有点蓝老师

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


加好友 发短信
等级:幼狐 帖子:76 积分:808 威望:0 精华:0 注册:2013/8/25 9:03:00
  发帖心情 Post By:2019/2/21 11:27:00 [显示全部帖子]

有点蓝老师,动态筛选超过4个好像就不太好用了,测试了很多次,显示不全?
[此贴子已经被作者于2019/2/21 11:28:00编辑过]

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


加好友 发短信
等级:幼狐 帖子:76 积分:808 威望:0 精华:0 注册:2013/8/25 9:03:00
  发帖心情 Post By:2019/2/21 15:58:00 [显示全部帖子]

Select Case e.DataCol.Name
    Case "名称","规格型号","材质","技术参数备注"
        Dim dr As DataRow = e.DataRow
        Dim pr As DataRow
        If dr.IsNull("名称") OrElse dr.IsNull("规格型号")  Then
            dr("图号位号") = Nothing
        Else
            Dim filter As String
            filter = "名称 = '" & dr("名称") & "' And 规格型号 = '" & dr("规格型号") & "' And 材质 = '" &dr("材质") & "' And 技术参数备注 = '" &dr("技术参数备注") & "'And 品牌 = '" &dr("品牌") & "'" 
            pr = DataTables("基础数据").Find(filter)
            If pr IsNot Nothing Then
                dr("图号位号") = pr("图号位号")
            End If
        End If
End Select


老师帮忙看一下,哪里有遗漏,只要删除一个又能正常了

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


加好友 发短信
等级:幼狐 帖子:76 积分:808 威望:0 精华:0 注册:2013/8/25 9:03:00
  发帖心情 Post By:2019/2/21 17:07:00 [显示全部帖子]

If dr.IsNull("规格") OrElse dr.IsNull("其他列")
    filter = "品名 = '" & dr("品名") & "' And 型号 = '" & dr("型号") & "' And (规格 is null OrElse 其他列 is null)"
Else
    filter = "品名 = '" & dr("品名") & "' And 型号 = '" & dr("型号") & "' And 规格 = '" & dr("规格") & "And 其他列 = '" & dr("其他列") & "''"
End If

蓝老师,有多列空值这样写,对吗?

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


加好友 发短信
等级:幼狐 帖子:76 积分:808 威望:0 精华:0 注册:2013/8/25 9:03:00
  发帖心情 Post By:2019/2/21 17:09:00 [显示全部帖子]

材质或者技术参数列为空

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


加好友 发短信
等级:幼狐 帖子:76 积分:808 威望:0 精华:0 注册:2013/8/25 9:03:00
  发帖心情 Post By:2019/2/22 9:42:00 [显示全部帖子]

 
            If dr.IsNull("材质") = False
                filter = filter & "' And 材质 = '" &dr("材质") & "'"
            End If
            If dr.IsNull("技术参数备注") = False
                filter = filter & "' And 技术参数备注 = '" &dr("技术参数备注")  & "'"
            End If

显示运行错误:.NET Framework 版本:2.0.50727.8937
Foxtable 版本:2018.10.9.1
错误所在事件:表,查询编号,DataColChanged
详细错误信息:
Exception has been thrown by the target of an invocation.
Syntax error: Missing operand after 'RVV' operator.

Exception has been thrown by the target of an invocation.

有点蓝老师,动态合成表达式好像不能正确使用

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


加好友 发短信
等级:幼狐 帖子:76 积分:808 威望:0 精华:0 注册:2013/8/25 9:03:00
  发帖心情 Post By:2019/2/22 10:27:00 [显示全部帖子]

filter = "名称 = '" & dr("名称") & "' And 规格型号 = '" & dr("规格型号") & "' And 材质 = '" &dr("材质") & "' And 技术参数备注 = '" &dr("技术参数备注") & "'And 品牌 = '" &dr("品牌") & "'" 

有点甜老师,动态筛选超过4个,程序好像就不能编译,是什么原因?

 回到顶部