以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关于关联数据选择问题 (http://foxtable.com/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 -- 那就不清楚了。不如直接使用文字描述一下,具体要做什么功能。截图说明一下什么地方有问题 |