以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- 加载条件处理 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=194022)
|
-- 作者:creastzh
-- 发布时间:2024/11/3 9:17:00
-- 加载条件处理
我有一个问题,想请给与帮助,谢谢!
该窗口中,左侧为加载树定义的客户列表, 中间上方为客户订单,下方则为订单明细, 根据需要定义中间 PN的下拉列表: enter 事件: e.Sender.ComboList = "(All)|" & DataTables("INI_MasterSales").sqlGetComboListString("PartNumber", "ISOLine In (S elect ISOLine From {CustomerPO})","PartNumber")
运行后发现中间的客户订单虽然加载树仅显示需要的订单行, 但PN的下拉列表实际却显示了隐藏的所有订单的PartNumber, 而我实际只想用 被显示出来的订单行对应的零件号. 我用datatables("CustomerPO").LoadFilter = "" ; datatables("CustomerPO").Load 验证了确实被隐藏了, 而不是仅加载了加载树点击的客户名称
我将语句改为下面的方式进行: Dim SOs As String = DataTables("CustomerPO").GetComboListString("ISOLine") If SOs > "" Then SOs = "(\'" & SOs & "\')" End If MessageBox.Show(SOs) e.Sender.ComboList = "(All)|" & DataTables("INI_MasterSales").sqlGetComboListString("PartNumber", "ISOLine In " & SOs , "PartNumber") 运行能正常, 但在点击PN 下拉列表后却很慢 所以想了解一下如何处理, 谢谢!
[此贴子已经被作者于2024/11/3 9:29:37编辑过]
|
-- 作者:creastzh
-- 发布时间:2024/11/3 9:29:00
--
这个是运行结果 此主题相关图片如下:question12.jpg
|
-- 作者:有点蓝
-- 发布时间:2024/11/3 19:28:00
--
enter 事件: Dim f as string = "ISOLine In (Select ISOLine From {CustomerPO} 【0】)" if DataTables("CustomerPO").LoadFilter > "" then f = f.replace("【0】"," where " & DataTables("CustomerPO").LoadFilter) else f = f.replace("【0】","") end if e.Sender.ComboList = "(All)|" & DataTables("INI_MasterSales").sqlGetComboListString("PartNumber",f ,"PartNumber")
|
-- 作者:creastzh
-- 发布时间:2024/11/30 8:24:00
--
虽然我动手晚了些,但在老师的帮助下完美解决,谢谢
|
-- 作者:creastzh
-- 发布时间:2024/11/30 9:51:00
--
老师, 我尝试将该条件置于 查询筛选 中结果发现就是无法完成
Dim f As String = DataTables("CustomerPO").LoadFilter FL = "ISOLine in (se Lect ISOLine from {CustomerPO} where " & f & ")" DataTables("INI_MasterSales").LoadFilter = FL DataTables("INI_MasterSales").Load
.NET Framework 版本:4.0.30319.42000 Foxtable 版本:2024.11.1.1 错误所在事件: 详细错误信息: Syntax error: Missing operand after \'ISOLine\' operator.
但如果我将其在命令窗口中运行就正常
先是直接按您提供的方式采用 replace 的, 但发现不正常,就改成了这个, 还是有异常, 排查了2个小时了, 实在没有办法了, 请再帮我看一下, 谢谢!
|
-- 作者:有点蓝
-- 发布时间:2024/11/30 10:03:00
--
学会调试
Dim f As String = DataTables("CustomerPO").LoadFilter msgbox(f) FL = "ISOLine in (seLect ISOLine from {CustomerPO} where " & f & ")" msgbox(FL)
|