Foxtable(狐表)用户栏目专家坐堂 → 表事件如何对窗口中绑定的关联表起作用


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

主题:表事件如何对窗口中绑定的关联表起作用

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
表事件如何对窗口中绑定的关联表起作用  发帖心情 Post By:2015/7/28 12:06:00 [只看该作者]

如题,我在窗口中绑定关联表“包材入库明细表.破损记录”,然后在表B的表事件PrepareEdit中写入以下代码:
If e.Col.Name = "物资名称" Then
    Dim str As String
    Dim str1 As String = Tables("包材入库明细表").Current("物资名称")
    If str1 > "" AndAlso str1.Contains("套装") Then
        Dim drs As List(Of DataRow)
        drs = DataTables("成品BOM").SQLSelect("产品名称 = '"& Tables("包材入库明细表").Current("产品名称") &"'")
        For Each r As DataRow In drs
            If r("套装") = True Then
                If str = Nothing Then
                    str = r("物资名称")
                Else
                    str = str & "|" & r("物资名称")
                End If
            End If
        Next
        Tables("破损记录").Cols("物资名称").ComboList = str
    Else
        e.Cancel = True
    End If
End If
以上代码是为了实现在破损记录表的物资名称列可以生成下拉框然后进行选择。
我现在想要实现在窗口绑定的关联表中控制物资名称列不能手动修改,只可以通过下拉框去选择,应该如何实现呢?
感谢!!

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/28 12:09:00 [只看该作者]


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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2015/7/28 14:41:00 [只看该作者]

这样也不行,现在的问题应该是我实际是在关联表中操作,但是事件要写到datatable中,这样会不会矛盾呢?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/28 14:50:00 [只看该作者]

If e.Col.Name = "物资名称" Then
    Dim str As String
    Dim str1 As String = Tables("包材入库明细表").Current("物资名称")
    If str1 > "" AndAlso str1.Contains("套装") Then
        Dim drs As List(Of DataRow)
        drs = DataTables("成品BOM").SQLSelect("产品名称 = '"& Tables("包材入库明细表").Current("产品名称") &"'")
        For Each r As DataRow In drs
            If r("套装") = True Then
                If str = Nothing Then
                    str = r("物资名称")
                Else
                    str = str & "|" & r("物资名称")
                End If
            End If
        Next
        e.Table.Cols("物资名称").AllowDirectType = False
        e.Table.Cols("物资名称").ComboList = str

    Else
        e.Cancel = True
    End If
End If

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2015/7/28 14:53:00 [只看该作者]

请问对于实际操作是对关联表但事件要写到Datatable表事件的情况应该如何解决?

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2015/7/28 14:59:00 [只看该作者]

谢谢,现在又可以了,刚才我是用Tables("破损记录").cols.AllowDirectType = False.
感觉现在系统好像有点慢一拍似的。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/28 15:01:00 [只看该作者]

下面这句代码写到AfterOpenProject事件

 

Tables("表A.表B").Cols("物资名称").AllowDirectType = False

 

删除这句

 

e.Table.Cols("物资名称").AllowDirectType = False


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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2015/7/28 15:27:00 [只看该作者]

可以了,谢谢老师!

 回到顶部