Foxtable(狐表)用户栏目专家坐堂 → 模拟关联表的问题


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

主题:模拟关联表的问题

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


加好友 发短信
等级:二尾狐 帖子:503 积分:4002 威望:0 精华:0 注册:2016/6/7 7:45:00
模拟关联表的问题  发帖心情 Post By:2017/1/25 9:54:00 [只看该作者]

我按照帮助做了一个模拟关联表,但出现如下错误提示:


.NET Framework 版本:2.0.50727.3649
Foxtable 版本:2016.7.29.1
错误所在事件:
详细错误信息:
未找到列 [盐酸贝那普利片]。



请问各位老师,是怎么回事。

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/1/25 9:55:00 [只看该作者]

提示很明显了,没有[盐酸贝那普利片]这列

具体代码贴上来看看

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


加好友 发短信
等级:二尾狐 帖子:503 积分:4002 威望:0 精华:0 注册:2016/6/7 7:45:00
  发帖心情 Post By:2017/1/25 10:08:00 [只看该作者]

一、窗口的AfterLoad事件代码

Dim t As Table = Tables("关联表_Table批发表1")
With Tables("返利合同")
    If .Current Is Nothing Then
        t.Filter = "False"
    Else
        t.Filter = "商品名称 = " & .Current("商品名称")
    End If
End With
t.OpenView("default")

二、返利合同表的CurrentChanged事件代码
If Forms("关联表").Opened() '一定要判断用于模拟关联表的窗口是否已经打开
    Dim t As Table = Tables("关联表_Table批发表1")
    With Tables("返利合同")
        If .Current Is Nothing Then
            t.Filter = "False"
        Else
            t.Filter = "商品名称 = " & .Current("商品名称")
        End If
    End With
End If

三、批发表1  DataRowAdding事件

If CurrentTable.Name = "关联表_Table批发表1" Then '如果当前表是模拟的关联表
    Dim r As Row = Tables("返利合同").Current
    If r IsNot Nothing Then
        e.DataRow("商品名称") = r("商品名称")
    End If
End If


麻烦有点蓝老师看一下,我的哪个代码错了。

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/1/25 10:18:00 [只看该作者]

t.Filter = "商品名称 = '" & .Current("商品名称") & "'"


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


加好友 发短信
等级:二尾狐 帖子:503 积分:4002 威望:0 精华:0 注册:2016/6/7 7:45:00
  发帖心情 Post By:2017/1/25 10:38:00 [只看该作者]

谢谢有点蓝老师,以上问题解决了。

还有个问题,我想按不同条件关联,如下图:

 

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170125103314.png
图片点击可在新窗口打开查看

 

当选商品名称时,按商品名称关联; 当选商品名称和供应商名称时,按商品名称和供应商名称关联;当三个都选的时候,按三个条件关联。但我可能关联几个表,有的表里没有客户名称列。代码怎么改,请有点蓝老师帮忙。


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


加好友 发短信
等级:二尾狐 帖子:503 积分:4002 威望:0 精华:0 注册:2016/6/7 7:45:00
  发帖心情 Post By:2017/1/25 10:58:00 [只看该作者]

请有点蓝老师帮忙呀,谢谢。

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/1/25 11:39:00 [只看该作者]

试试

If Forms("关联表").Opened() '一定要判断用于模拟关联表的窗口是否已经打开
    Dim cls() As String = {"商品名称","供应商名称","客户名称"} ' 假设checkbox控件名称和标题一样
    
    Dim t As Table = Tables("关联表_Table批发表1")
    
    With Tables("返利合同")
        If .Current Is Nothing Then
            t.Filter = "False"
        Else
            Dim filter As String = "1=1"
            For Each c As String In cls
                If Forms("关联表").Controls(c).Checked And t.Cols.Contains(c) And .Cols.Contains(c) Then
                    filter &= c & "='" & .Current(c) & "'"
                End If
            Next
            If filter = "1=1" Then filter = "False"
            t.Filter = filter
        End If
    End With
End If
[此贴子已经被作者于2017/1/25 11:39:50编辑过]

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


加好友 发短信
等级:二尾狐 帖子:503 积分:4002 威望:0 精华:0 注册:2016/6/7 7:45:00
  发帖心情 Post By:2017/1/25 14:22:00 [只看该作者]

.NET Framework 版本:2.0.50727.3649
Foxtable 版本:2016.7.29.1
错误所在事件:
详细错误信息:
语法错误:“商品名称”运算符后缺少操作数。


有点蓝老师,运行上面代码,出现如上错误提示,麻烦看哪有问题。

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/1/25 14:34:00 [只看该作者]

不要完全照搬代码,看懂理解,改为符合自己的。看不懂就上传例子

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


加好友 发短信
等级:二尾狐 帖子:503 积分:4002 威望:0 精华:0 注册:2016/6/7 7:45:00
  发帖心情 Post By:2017/1/25 15:09:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:返利管理2017011906.table

麻烦有点蓝老师。


 回到顶部
总数 12 1 2 下一页