Foxtable(狐表)用户栏目专家坐堂 → 跨表引用表达式执行不正确


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

主题:跨表引用表达式执行不正确

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


加好友 发短信
等级:童狐 帖子:213 积分:2228 威望:0 精华:0 注册:2012/2/3 14:14:00
跨表引用表达式执行不正确  发帖心情 Post By:2012/8/9 23:56:00 [只看该作者]

狐狸爸爸,我的表达式执行不正确,请教如何修改?

问题一、"部门"列录入后,存档并重新打开,部门列又自动清空了,不知道为何?

问题二、2.JPG中,第1、2、3行工件金额引用混乱了。我是想分别实现为150,130,50

问题三、 在命令窗口出现这样1.JPG问题,错误产生的原因是什么?

问题四、报价表中,一个客户就要列8项行,要列的行太多了,能否指点方向,如何简化行数,修改表达式,达到同样自动引用目的?

 


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

 


图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看

 

程序如下:

 

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

[此贴子已经被作者于2012-8-11 20:01:35编辑过]

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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2012/8/10 8:28:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:三尾狐 帖子:762 积分:6302 威望:0 精华:0 注册:2011/12/1 14:47:00
  发帖心情 Post By:2012/8/10 14:47:00 [只看该作者]

结算表和报价表应该有个对应关系,这样find才有意义,多对多的关系,find只会引用第一条纪录。

不过业务逻辑还是要自己判断,我也看不明白。

看看附件:

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


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


加好友 发短信
等级:童狐 帖子:213 积分:2228 威望:0 精华:0 注册:2012/2/3 14:14:00
  发帖心情 Post By:2012/8/11 19:53:00 [只看该作者]

1、第一个问题已经解决了,谢谢。

2、第二问题中,我是想用跨表引用的方式根据报价表,得出结算表相应的价格,应该是不用关联的啊。

    我在结算表的DataColChanged事件代码代码,但是结算表引用数据时却是错误的,我不知道代码哪里出错了。

    如果代码正确,结算表的工件列,第一行,第二行,第三行引用正确的数值应该为150,,130,50

    请帮忙看看是什么问题。

     代码如下:

Select Case e.DataCol.Name
    Case "客户","入出","收免","特殊","部门","完成","删除","退回"
        Dim dr As DataRow = e.DataRow
        Dim pr As DataRow
        If dr.IsNull("客户") Then
            dr("基准收费") = Nothing
            dr("超标收费") = Nothing
            dr("工件") = Nothing
            dr("检测") = Nothing
            dr("杂费") = Nothing
            dr("税率") = Nothing
        Else
            Dim filter As String
            filter = "客户 = '" & dr("客户") & "' And 入出 = '" & dr("入出") & "' And 收免 = '" & dr("收免") & "' And 特殊 = '" & dr("特殊") & "' And 部门 = '" & dr("部门") & "'"
            pr = DataTables("报价表").Find(filter)
            If pr IsNot Nothing And dr("完成") = 0 Then
                dr("工件") = pr("完成_工件")
                dr("基准收费") = pr("基准价")
                dr("超标收费") = pr("超标价")
                dr("检测") = pr("检测")
                dr("税率") = pr("税率")
            ElseIf pr IsNot Nothing And dr("删除") = 0 Then
                dr("工件") = pr("删除_工件")
                dr("基准收费") = pr("基准价")
                dr("超标收费") = pr("超标价")
                dr("检测") = pr("检测")
                dr("税率") = pr("税率")
            ElseIf pr IsNot Nothing And dr("退回") = 0 Then
                dr("工件") = pr("退回_工件")
                dr("基准收费") = pr("基准价")
                dr("超标收费") = pr("超标价")
                dr("检测") = pr("检测")
                dr("税率") = pr("税率")
            Else
                dr("工件") = 0
                dr("基准收费") = 0
                dr("超标收费") = 0
                dr("检测") = 0
                dr("税率") = 0
             End If
    End If
End Select

 

3、e. 是无法在命令窗口出现的。需要写在表的事件中。明白了,谢谢。

 

[此贴子已经被作者于2012-8-11 21:59:45编辑过]

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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2012/8/13 8:12:00 [只看该作者]

用户已被锁定

 回到顶部