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
我想更改为根据新增行的客户ID值进行后台筛选子客户,因为我的子客户很多,不可能在项目发布后一次性加载出来,这样会影响程序运行。
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
这段代码怎么执行都显示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
那就不清楚了。不如直接使用文字描述一下,具体要做什么功能。截图说明一下什么地方有问题