Foxtable(狐表)用户栏目专家坐堂 → 用Table控件模拟关联表


  共有3057人关注过本帖树形打印复制链接

主题:用Table控件模拟关联表

帅哥哟,离线,有人找我吗?
1234567
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:827 积分:6488 威望:0 精华:0 注册:2013/2/18 17:46:00
用Table控件模拟关联表  发帖心情 Post By:2023/12/4 10:11:00 [显示全部帖子]

如果在Tables("生产管理_Table51")中找不到选定行,则提出警告,代码怎么写?
If CurrentTable.Name = "生产管理_Table52" Then '如果当前表是模拟的关联表
   Dim r As Row = Tables("生产管理_Table51").Current
   If r.IsNull("物料编号") Then
    msgbox("一级表中未找到选定行")
End If
       e.DataRow("物料编号") = r("物料编号")
   End If

[此贴子已经被作者于2023/12/4 10:17:41编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
1234567
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:827 积分:6488 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2023/12/4 10:30:00 [显示全部帖子]

图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
1234567
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:827 积分:6488 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2023/12/4 10:32:00 [显示全部帖子]

图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
1234567
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:827 积分:6488 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2023/12/4 10:33:00 [显示全部帖子]

需要在TABLE2的空白处点击一下后才有效

 回到顶部
帅哥哟,离线,有人找我吗?
1234567
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:827 积分:6488 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2023/12/4 10:39:00 [显示全部帖子]

采用系统提供的新增行没有问题
采用CLICK新增行,会出现无法继承。
Dim r As Row = Tables("生产管理_Table52").addnew
Dim id As Integer = DataTables("出入库二级表").Compute("Max(_Identify)")
Dim Filter As String = "[_Identify] = " & id
 Tables("生产管理_Table52").Filter = Filter
[此贴子已经被作者于2023/12/4 10:39:44编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
1234567
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:827 积分:6488 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2023/12/4 16:45:00 [显示全部帖子]

表事件DataRowAdded代码移到Button23控件中,代码怎么改?
原来代码:
If CurrentTable.Name = "生产管理_Table52" Then
                Dim max As String
                Dim idx As Integer
                Dim flt As String
                flt = "[物料编号]= '" & e.DataRow("物料编号") & "'"
              max = e.DataTable.Compute("Max(顺序号)", flt) 
                If max > "" Then 
                    idx = CInt(max.Substring(7, 2)) + 1
                Else
                   idx = 1
                End If
                e.DataRow("顺序号") = e.DataRow("物料编号") & "-" & Format(idx, "00")
End If
移到Button23控件中,代码修改如下,测试错误
If CurrentTable.Name = "生产管理_Table52" Then

                Dim max As String
                Dim idx As Integer
                Dim flt As String
                flt = "[物料编号]= '" & Tables("生产管理_Table52").Current("物料编号") & "'"
              max = Tables("出入库二级表").Compute("Max(顺序号)", flt) 
                If max > "" Then 
                    idx = CInt(max.Substring(7, 2)) + 1
                Else
                   idx = 1
                End If
                Tables("生产管理_Table52").Current("顺序号") = Tables("生产管理_Table52").Current("物料编号") & "-" & Format(idx, "00")
End If

 回到顶部
帅哥哟,离线,有人找我吗?
1234567
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:827 积分:6488 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2023/12/5 14:10:00 [显示全部帖子]

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:窗口,生产管理,Button23,Click
详细错误信息:
未将对象引用设置到对象的实例。



Dim r As Row = Tables("生产管理_Table52").addnew
r("物料编号") = Tables("生产管理_Table51").Current("物料编号")
r("物料编号") = Tables("生产管理_Table51").Current("物料编号")
r("任务单编号") = Tables("生产管理_Table53").Current("任务单编号")
r("工装模具编号") = Tables("生产管理_Table53").Current("工装模具编号")
r("产品名称") = Tables("生产管理_Table53").Current("产品名称")
r("工艺单编号") = Tables("生产管理_Table54").Current("工艺单编号")
r("零件名称") = Tables("生产管理_Table54").Current("零件名称")
                Dim max As String
                Dim idx As Integer
                Dim flt As String
                flt = "[物料编号]= '" & r("物料编号") & "'"
              max = Tables("出入库二级表").Compute("Max(顺序号)", flt) 
                If max > "" Then 
                    idx = CInt(max.Substring(7, 2)) + 1
                Else
                   idx = 1
                End If
                r("顺序号") = r("物料编号") & "-" & Format(idx, "00")

 回到顶部