定额编号 列输入 1 (仅有1个项目),需要多次回车才能获得单价数。
在
实体预算书 和 实体材料分析 表属性 DataColChanged 设置了代码。
如果只在 实体预算书 中设置代码,无从问题。
代码流程:输入 定额编号 → 查找 定额库 中 定额编号 相同的行,把此行的 项目名称、单位 填入父表中 → 查找 定额 中 定额编号 相同的行,把 定额编号 相同行的 材料编号、定额用量 填入子表中 → 查找 材料库 中 材料编号 相同的行,把此行的 材料名称、单位、单价、RCJ 填入子表中 → 计算子表的 金额 → 计算子表中 单位 是 % 的 金额 → 计算父表的 金额
[此贴子已经被作者于2009-2-22 16:04:13编辑过]
这样,清除子表代码,可以直接计算出
单价。但
材料编号、
定额用量 变化时,
单价 不能自动计算。
请高手指点!
[此贴子已经被作者于2009-2-24 7:51:08编辑过]
你提供的数据有问题,好像无法测试呢。
单价是通过 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楼的文件可以直接得到结果,1楼的文件需要多次回车才可以得到结果。主要是想让1楼文件只1次回车便得到结果。
刚刚升级后,得不到结果了。可能是升级文件还有问题。
[此贴子已经被作者于2009-2-23 10:50:02编辑过]
你做一个简单的示例文件上来吧,抓住关键点即可,并输入一点有效的数据。
1、2楼都是最简单的实例。只是升级后都不能计算了。
我知道原因的了,Table的compute方法失效了,请暂时改用DataTable.Compute方法,我随后会修灭这个问题的。
哪位帮忙看一下1楼文件。
想要达到的目的是:只1次回车便得到结果。