以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于关联数据选择问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=191610)

--  作者:scofields
--  发布时间:2024/4/25 15:58:00
--  关于关联数据选择问题
T_客户表与T_子客户表通过客户ID(S QL数据类型为int),以下代码是想通过子客户录入窗口来实现子客户录入,其中的textbox要实现根据已当前行已选择的客户ID来选择对应的子客户ID,但以下代码好像运行不是那么顺畅,我尝试的几遍,请帮忙修改。

Dim n As Integer
Dim s As String  
Dim tbl As Table  
  
\' 假设您想从当前记录中获取客户ID  
n = Tables("T_计划单").Current.DataRow("客户ID")  
  
\' 获取文本框的值,这通常用于用户输入或选择  
s = e.Form.Controls("TextBox1").Text  
  
\' 获取子客户表  
tbl = Tables("选择子客户_Table1")  
  
\' 根据需要设置过滤条件  
If n > 0 Then \' 假设客户ID是一个正整数,检查它是否有效  
    \' 设置过滤器来匹配客户ID  
    tbl.Filter = "客户ID = " & CStr(n) \' 使用CStr将整数转换为字符串以构建有效的过滤条件  
Else  
    \' 清除过滤器,如果客户ID无效或不存在  
    tbl.Filter = ""  
End If

--  作者:有点蓝
--  发布时间:2024/4/25 16:46:00
--  
没看出代码有什么问题,不顺畅具体指什么?
--  作者:scofields
--  发布时间:2024/4/25 18:06:00
--  
我想更改为根据新增行的客户ID值进行后台筛选子客户,因为我的子客户很多,不可能在项目发布后一次性加载出来,这样会影响程序运行。

--  作者:有点蓝
--  发布时间:2024/4/25 20:27:00
--  
Filter 只能筛选已加载的数据,要从后台查询,应该使用load:http://www.foxtable.com/webhelp/topics/1928.htm

dim f as string
If n > 0 Then \' 假设客户ID是一个正整数,检查它是否有效  
    \' 设置过滤器来匹配客户ID  
    f = "客户ID = " & n \' 使用CStr将整数转换为字符串以构建有效的过滤条件  
End If
DataTables("T_子客户表").LoadFilter = f
DataTables(
"
T_子客户表").Load

--  作者:scofields
--  发布时间:2024/4/29 20:31:00
--  
这段代码怎么执行都显示T_子客户为空白表,不知道怎么回事?请帮忙修改一下
Dim n As Integer  
Dim tbl As Table  
Dim f As String  \'从当前记录中获取客户ID  
n = Tables("T_计划单").Current.DataRow("客户ID")  
\' 假设n是一个有效的客户ID  
If n > 0 Then  
    \' 构建过滤条件  
    f = "客户ID=" & cdbl(n)
    \' 设置子客户表的过滤条件  
    DataTables("T_子客户").LoadFilter = f  
    \' 重新加载子客户表以应用过滤器  
    DataTables("T_子客户").Load()     
   End If

--  作者:有点蓝
--  发布时间:2024/4/29 20:42:00
--  
说明没有符合条件的数据
--  作者:scofields
--  发布时间:2024/4/29 20:44:00
--  
找不到客户ID时就没有数据
--  作者:有点蓝
--  发布时间:2024/4/29 21:01:00
--  
没有数据就是空白的,不就是对的么
--  作者:scofields
--  发布时间:2024/4/29 21:04:00
--  
可我要筛选出数据,我看我的逻辑也没问题啊


--  作者:有点蓝
--  发布时间:2024/4/29 22:06:00
--  
那就不清楚了。不如直接使用文字描述一下,具体要做什么功能。截图说明一下什么地方有问题