以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 求教:如何让数据不点击 重置 菜单按钮就生成? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=49544) |
-- 作者:悦颜 -- 发布时间:2014/4/19 20:34:00 -- 求教:如何让数据不点击 重置 菜单按钮就生成? 建立了关联表"订单" (父表)和"订单产品"(子表),通过 [合同号] 建立联系.企图通过计算与 (父表)"订单" 相同[合同号]的子表"订单产品"的产品[金额],赋值给父表"订单" [合计金额]的值.并将[合计金额]的值,转换成大写英文货币形式.尝试写了下面的代码,功能 能实现,但父表有两个以上的合同时,需要点击菜单栏的 重置 按钮. [合计金额] 的值才能上去. 我想,一定有更简便的,一旦"订单产品"的产品[金额]栏有值,父表[合计金额]的值就自动跳上的,所以,那位大侠看到了,请指点一下,帮我解决一下这个问题. 致谢!
Dim dt As DataRow = e.DataRow |
-- 作者:有点甜 -- 发布时间:2014/4/20 11:27:00 -- 呃,看了下,你的代码是不是应该这样写?
如果,你的金额列是表达式列的话,还需要看这里 http://www.foxtable.com/help/topics/2381.htm
Dim dt As DataRow = e.DataRow
dt("大写金额") = EUMoney(dt("合计金额"))
|
-- 作者:悦颜 -- 发布时间:2014/4/21 6:36:00 --
上次在你的提醒下,我金额列也用了代码
Dim je As DataRow = e.DataRow
在子表,datacolchanged 的事件里。 |
-- 作者:有点甜 -- 发布时间:2014/4/21 9:18:00 -- 问题解决了吗?如果还没解决,上传一个例子说明实际问题。 |
-- 作者:悦颜 -- 发布时间:2014/4/21 20:51:00 -- 可能没例子,不直观。 ![]() ![]() [此贴子已经被作者于2014-4-21 21:04:35编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/4/21 20:57:00 -- 看了一下,你的 合计金额列 是表达式?, 金额列 也是表达式?
所以代码应该这样写
Dim je As DataRow = e.DataRow Dim fdr As Datarow = je.GetParentRow("订单") If fdr isnot Nothing Then [此贴子已经被作者于2014-4-21 20:57:25编辑过]
|
-- 作者:悦颜 -- 发布时间:2014/4/21 21:02:00 -- 求值: 父表<订单> 的 [合计金额] 根据子表的相同 [合同号] SUM [金额] 取值。不需再点击 菜单栏 重置 按钮.
虽然上面的代码也能将就着用, 但就是想要更好点的,因为想到了.所以惦记着, 请帮我想想招儿~~ 谢谢啦~~ |
-- 作者:悦颜 -- 发布时间:2014/4/21 21:10:00 -- 不,都是代码,没有表达式, 大写金额根据合计金额来的,你这个取值都倒过来了. 先求合计金额,再转大写货币. |
-- 作者:悦颜 -- 发布时间:2014/4/21 21:31:00 -- 我想不出,帮我写写吧。。。 |
-- 作者:有点甜 -- 发布时间:2014/4/21 21:41:00 -- 没有表达式?那就这样写
Dim je As DataRow = e.DataRow je("金额") = je("数量") * je("单价") Dim fdr As Datarow = je.GetParentRow("订单") If fdr isnot Nothing Then fdr("合计金额") = Su [此贴子已经被作者于2014-4-21 21:42:05编辑过]
|