Foxtable(狐表)用户栏目专家坐堂 → 请教:实体预算书 表中的单价为什么需要多次回车才有结果:


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

主题:请教:实体预算书 表中的单价为什么需要多次回车才有结果:

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/2/23 10:30:00 [显示全部帖子]

你提供的数据有问题,好像无法测试呢。
单价是通过 rgdj cldj jxdj计算得出的。
所以关键在于这三列能够自动计算。
根据你的代码分析,父表只有定额编号列内容发生变化后,才会重算这些列。
所以现在的问题是,子表的材料编号、定额用量发生变化时,能够重置父行的定额编号列,使得父表Datacolchanged事件中的代码能够执行。
其实帮助对此已经有说明,你可以在子表的DataColChanged事件中加入代码:

Select Case e.DataCol.Name
    Case "材料编号","材料名称"
        Dim dr as DataRow = dr.GetParentRow("实体预算书")
        If dr Isnot Nothing Then
            DataTables("实体预算书").DataCols("定额编号").RaiseDataColChanged(dr)
        End If
End Select


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/2/23 10:32:00 [显示全部帖子]

另外建议你看看帮助文件:

开发篇 - 事件编程 - 事件实例 - 使用事件进行计算

特别是其中跨表统计的自动更新一列。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/2/23 10:49:00 [显示全部帖子]

你做一个简单的示例文件上来吧,抓住关键点即可,并输入一点有效的数据。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/2/23 11:13:00 [显示全部帖子]

是不是提示不存在序号1这一列?


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/2/23 11:22:00 [显示全部帖子]

我知道原因的了,Table的compute方法失效了,请暂时改用DataTable.Compute方法,我随后会修灭这个问题的。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/2/23 15:56:00 [显示全部帖子]

等会还是我抽空帮你做一下吧。


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/2/23 16:30:00 [显示全部帖子]

按照我自己的习惯,写了一下:


[此贴子已经被作者于2009-2-23 16:50:01编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/2/23 16:50:00 [显示全部帖子]

原来的有点问题,请看这个:

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:工程11.rar


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/2/23 16:52:00 [显示全部帖子]

你学到了很多知识,但是有点混了,例如Eval在这里跟不需要的。
还有你在DatacolChanged时间中,利用:
Tables("父表.子表").AddNew()

这也是一个大问题,因为这会针对当前父表选定行的子表增加行,而不是发生父表发生变化的行。
解决办法请细看我设计的文件。

 回到顶部