Foxtable(狐表)用户栏目专家坐堂 → 复制4个 定额编号,粘贴 单价计算错误。


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

主题:复制4个 定额编号,粘贴 单价计算错误。

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


加好友 发短信
等级:小狐 帖子:353 积分:3058 威望:0 精华:0 注册:2008/9/1 6:39:00
复制4个 定额编号,粘贴 单价计算错误。  发帖心情 Post By:2009/3/24 15:43:00 [只看该作者]

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



图片点击可在新窗口打开查看此主题相关图片如下:2.gif
图片点击可在新窗口打开查看

录像时隐藏了 项目名称 列

定额编号 分别输入1、2、3、4 时,单价计算正确。(工程数量 任意输入数值)

把4个 定额编号 同时选中,复制、粘贴 ,单价计算错误。

第1个项目 单价 成为4个项目的和,后3个项目 单价 为0了。

是不是狐表不支持这样的复制、粘贴。

劳驾高手们给看一下,谢谢!





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


加好友 发短信 好心情 一级勋章
等级:超级版主 帖子:715 积分:5564 威望:0 精华:1 注册:2008/8/31 20:45:00
  发帖心情 Post By:2009/3/24 16:05:00 [只看该作者]

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


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


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

smileboy 版主,在我的机器中,与1楼的图示相同。

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


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

呵呵,这个和foxtable无关的,是你地代码问题,例如你在DataColChanged中的一行代码:

Dim r3 As Row = Tables("实体预算书.实体材料分析").AddNew

针对的就是实体预算书当前选定行的的关联子表,而不是修改的行,在粘贴的时候,选定行和修改行是不一致的。

要么修改代码,要么禁止复制粘贴。

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


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

如果要修改代码,可以考虑将下面的代码改为:

Dim r3 As Row = Tables("实体材料分析").AddNew
r3("序号1") = e.Datarow("序号1")



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


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

以下是引用狐狸爸爸在2009-3-24 19:38:00的发言:
如果要修改代码,可以考虑将下面的代码改为:

Dim r3 As Row = Tables("实体材料分析").AddNew
r3("序号1") = e.Datarow("序号1")



老大,这样还有问题。

第1个项目 单价 正确,后3个项目追加正确,但单价没有计算。

请指点,还应怎样改动。谢谢!


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


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

这个功能和报表的行高自动调整,对我来说很重要,请老大再看看。

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


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

我觉得实体材料分析表的DataColChanged事件代码中,下面几行同样有问题的:

MainTable.Current("rgdj") = Math.Round(Tables("实体预算书.实体材料分析").compute("sum(金额)","[RCJ] = 'R'"),3)
MainTable.Current("cldj") = Math.Round(Tables("实体预算书.实体材料分析").compute("sum(金额)","[RCJ] = 'C'"),3)
MainTable.Current("jxdj") = Math.Round(Tables("实体预算书.实体材料分析").compute("sum(金额)","[RCJ] = 'J'"),3)

你设置的选定行的父行,而不是修改行的父行,我前面说过,选定行和修改行,有时在粘贴的时候不会是同一行,这样当你选定第一行进行粘贴的时候,永远只有第一行进行计算,因为MainTable.Current表示的就是选定行。

合理的代码应该是:

Dim pr As DataRow  = e.DataRow.GetParentRow("实体预算书")
If pr Isnot Nothing Then
     pr("rgdj") = Math.Round(Tables("实体预算书.实体材料分析").compute("sum(金额)","[RCJ] = 'R'"),3)
     pr("cldj") = Math.Round(Tables("实体预算书.实体材料分析").compute("sum(金额)","[RCJ] = 'C'"),3)
     pr("jxdj") = Math.Round(Tables("实体预算书.实体材料分析").compute("sum(金额)","[RCJ] = 'J'"),3)
End If





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


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

看来这是个难缠的问题。上面的改动结果是:第1个项目 单价 正确,后3个项目追加正确,但单价错误。3个项目的单价都是第1个项目的单价。

老大,看一下还需要怎样改。谢谢!

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


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

同样很多这样的代码也是不行的:

pr("jxdj") = Math.Round(Tables("实体预算书.实体材料分析").compute("sum(金额)","[RCJ] = 'J'"),3)


理由你可以自己想一下,实体与算数选定第一行的时候,Tables("实体预算书.实体材料分析"
)表示该行在实体材料分析中对应的行,也就是永远计算的是第一行,你应该改一下:

pr("jxdj") = Math.Round(DataTables("实体材料分析").compute("sum(金额)","[RCJ] = 'J'" & " And [序号1] = " & pr("序号1")),3)


前面陆陆续续提到的问题,其实都是同一个问题,老兄也应该尝试自己分析一下啊,这样进步才快啊,自己找出来的,印象才深刻。
[此贴子已经被作者于2009-3-25 11:48:51编辑过]

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