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


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

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

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


加好友 发短信
等级:小狐 帖子:353 积分:3058 威望:0 精华:0 注册:2008/9/1 6:39:00
请教:实体预算书 表中的单价为什么需要多次回车才有结果:  发帖心情 Post By:2009/2/22 14:13:00 [只看该作者]

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



定额编号 列输入 1 (仅有1个项目),需要多次回车才能获得单价数。

实体预算书实体材料分析 表属性 DataColChanged 设置了代码。

如果只在 实体预算书 中设置代码,无从问题。

代码流程:输入 定额编号 → 查找 定额库定额编号 相同的行,把此行的 项目名称单位 填入父表中 → 查找 定额定额编号 相同的行,把 定额编号 相同行的 材料编号定额用量 填入子表中 → 查找 材料库材料编号 相同的行,把此行的 材料名称、单位单价、RCJ 填入子表中 → 计算子表的 金额 → 计算子表中 单位%金额 → 计算父表的 金额


[此贴子已经被作者于2009-2-22 16:04:13编辑过]

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


加好友 发短信
等级:小狐 帖子:353 积分:3058 威望:0 精华:0 注册:2008/9/1 6:39:00
  发帖心情 Post By:2009/2/23 8:40:00 [只看该作者]



这样,清除子表代码,可以直接计算出 单价。但 材料编号定额用量 变化时,单价 不能自动计算。

请高手指点!
[此贴子已经被作者于2009-2-24 7:51:08编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


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


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

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

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

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

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


加好友 发短信
等级:小狐 帖子:353 积分:3058 威望:0 精华:0 注册:2008/9/1 6:39:00
  发帖心情 Post By:2009/2/23 10:47:00 [只看该作者]

老大,在没有升级时,2楼的文件可以直接得到结果,1楼的文件需要多次回车才可以得到结果。主要是想让1楼文件只1次回车便得到结果。

刚刚升级后,得不到结果了。可能是升级文件还有问题。
[此贴子已经被作者于2009-2-23 10:50:02编辑过]

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


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

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

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


加好友 发短信
等级:小狐 帖子:353 积分:3058 威望:0 精华:0 注册:2008/9/1 6:39:00
  发帖心情 Post By:2009/2/23 10:52:00 [只看该作者]

1、2楼都是最简单的实例。只是升级后都不能计算了。

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


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

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


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


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

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

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


加好友 发短信
等级:小狐 帖子:353 积分:3058 威望:0 精华:0 注册:2008/9/1 6:39:00
  发帖心情 Post By:2009/2/23 15:44:00 [只看该作者]

哪位帮忙看一下1楼文件。

想要达到的目的是:只1次回车便得到结果。


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