以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 动态筛选求助,请求老师协助 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=131144) |
|||||||||||||||
-- 作者:Saberzsp -- 发布时间:2019/2/18 16:59:00 -- 动态筛选求助,请求老师协助 如果产品表和订单表是通过品名、型号、规格这三列联系起来的(不管是否建立了关联),在订单表输入品名、型号、规格后,再从产品表找出对应产品的单价,填入单价列中,那么订单表的DataColChanged事件可如下设置代码: Select
Case e.DataCol.Name 想请教老师,如果规格为空字符能否实现单价能显示,哪位能帮忙改一下?谢谢! [此贴子已经被作者于2019/2/18 17:08:05编辑过]
|
|||||||||||||||
-- 作者:有点蓝 -- 发布时间:2019/2/18 17:46: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 If dr.IsNull("规格") filter = "品名 = \'" & dr("品名") & "\' And 型号 = \'" & dr("型号") & "\' And 规格 is null" Else filter = "品名 = \'" & dr("品名") & "\' And 型号 = \'" & dr("型号") & "\' And 规格 = \'" & dr("规格") & "\'" End If pr = DataTables("产品").Find(filter)If pr IsNot Nothing Then dr("单价") = pr("单价") End If End If End Select |
|||||||||||||||
-- 作者:Saberzsp -- 发布时间:2019/2/20 9:35:00 -- 谢谢有点蓝老师 |
|||||||||||||||
-- 作者:Saberzsp -- 发布时间:2019/2/21 11:27:00 -- 有点蓝老师,动态筛选超过4个好像就不太好用了,测试了很多次,显示不全? [此贴子已经被作者于2019/2/21 11:28:00编辑过]
|
|||||||||||||||
-- 作者:奶粉大王 -- 发布时间:2019/2/21 11:31:00 -- 代码贴出来 肯定漏写了参数 |
|||||||||||||||
-- 作者:Saberzsp -- 发布时间:2019/2/21 15:58:00 --
|
|||||||||||||||
-- 作者:有点蓝 -- 发布时间:2019/2/21 16:27:00 -- 哪个列是可以为空的? |
|||||||||||||||
-- 作者:Saberzsp -- 发布时间: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 -- 发布时间:2019/2/21 17:09:00 -- 材质或者技术参数列为空 |
|||||||||||||||
-- 作者:有点蓝 -- 发布时间:2019/2/21 17:24:00 -- 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("品牌") & "\'" If dr.IsNull("材质") = False filter = filter & "\' And 材质 = \'" &dr("材质") & "\'" End If If dr.IsNull("技术参数备注") = False filter = filter & "\' And 技术参数备注 = \'" &dr("技术参数备注") & "\'" End If pr = DataTables("基础数据").Find(filter) If pr IsNot Nothing Then dr("图号位号") = pr("图号位号") End If End If End Select
|