Foxtable(狐表)用户栏目专家坐堂 → 拷贝问题报告


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

主题:拷贝问题报告

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


加好友 发短信
等级:超级版主 帖子:485 积分:2996 威望:0 精华:10 注册:2008/9/12 14:37:00
  发帖心情 Post By:2008/9/26 10:51:00 [显示全部帖子]

错误提示已经很清楚了,代码金额列的计算代码有误:

 

dim sum1 As Double

dim sum2 As Double

sum1=DataTables("表B").Compute("Sum(数量)","[编号]='" & e.datarow("编号") & "'")

sum2=DataTables("表C").Compute("Sum(数量)","[编号]='" & e.datarow("编号") & "'")

e.datarow("金额")=sum1+sum2



你的表C有数量列吗?

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


加好友 发短信
等级:超级版主 帖子:485 积分:2996 威望:0 精华:10 注册:2008/9/12 14:37:00
  发帖心情 Post By:2008/9/26 15:12:00 [显示全部帖子]

你首先要保证你得计算代码能通过:

 

dim sum1 As Double

dim sum2 As Double

sum1=DataTables("表B").Compute("Sum(代码金额)","[编号]='" & e.datarow("编号") & "'")

sum2=DataTables("表C").Compute("Sum(代码金额)","[编号]='" & e.datarow("编号") & "'")

e.datarow("代码金额")=sum1+sum2


表B和表C没有“代码金额”这一列,谈什么计算啊。

你首先要在表A中重算代码金额这一列,保证你的计算代码能通过啊。

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


加好友 发短信
等级:超级版主 帖子:485 积分:2996 威望:0 精华:10 注册:2008/9/12 14:37:00
  发帖心情 Post By:2008/9/26 20:00:00 [显示全部帖子]

正确的DataColChanged事件代码:

If e.DataCol.Name = "金额" Then
   Dim dr As DataRow = e.Datarow.GetParentrow("表A")
    if dr isnot nothing then
       DataTables("表A").DataCols("代码金额").Recalc(dr)
    end if
End If


还有:

Dim exp As String = "[数量]*[单价]"
If e.DataCol.Name = "单价"  or e.DataCol.Name = "数量"  Then
    e.DataRow("金额") = Eval(exp,e.DataRow)
End If

If e.DataCol.Name = "金额" Then
   Dim dr As DataRow = e.Datarow.GetParentrow("表A")
   if dr isnot Nothing then
       DataTables("表A").DataCols("代码金额").Recalc(dr)
    End if
End If



你必须加上判断,因为有的时候,数据行并没有对应的父行!
其余错误,请继续自行处理,搞不定的话,再继续提问。
[此贴子已经被作者于2008-9-26 20:01:28编辑过]

 回到顶部