Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共16 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

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

1楼
gaoqr 发表于:2009/2/22 14:13:00
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:工程1.table



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

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

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

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


[此贴子已经被作者于2009-2-22 16:04:13编辑过]
2楼
gaoqr 发表于:2009/2/23 8:40:00


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

请高手指点!
[此贴子已经被作者于2009-2-24 7:51:08编辑过]
3楼
狐狸爸爸 发表于: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楼
狐狸爸爸 发表于:2009/2/23 10:32:00
另外建议你看看帮助文件:

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

特别是其中跨表统计的自动更新一列。
5楼
gaoqr 发表于:2009/2/23 10:47:00
老大,在没有升级时,2楼的文件可以直接得到结果,1楼的文件需要多次回车才可以得到结果。主要是想让1楼文件只1次回车便得到结果。

刚刚升级后,得不到结果了。可能是升级文件还有问题。
[此贴子已经被作者于2009-2-23 10:50:02编辑过]
6楼
狐狸爸爸 发表于:2009/2/23 10:49:00
你做一个简单的示例文件上来吧,抓住关键点即可,并输入一点有效的数据。
7楼
gaoqr 发表于:2009/2/23 10:52:00
1、2楼都是最简单的实例。只是升级后都不能计算了。
8楼
狐狸爸爸 发表于:2009/2/23 11:13:00

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

9楼
狐狸爸爸 发表于:2009/2/23 11:22:00
我知道原因的了,Table的compute方法失效了,请暂时改用DataTable.Compute方法,我随后会修灭这个问题的。
10楼
gaoqr 发表于:2009/2/23 15:44:00

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

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

共16 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03906 s, 3 queries.