Rss & SiteMap

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

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

标题:拷贝问题报告

11楼
kylin 发表于:2008/9/26 17:19:00
以下是引用czy在2008-9-26 15:15: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

4楼已按czy斑竹修正了,例子也重新上传,可是错误提示依然存在。
因为今天工作太忙了,我的马虎给老六和其他同仁造成麻烦,我深表道歉!

12楼
kylin 发表于:2008/9/26 18:20:00
顶一下,希望能得到指点,或者是个bug吧,能得到排查。
13楼
czy 发表于:2008/9/26 19:06:00
我不知道是不是bug,但可以肯定,按钮代码执行时和Datacolchanged事件有冲突。
14楼
贺老六 发表于: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编辑过]
15楼
kylin 发表于:2008/9/27 7:56:00
多谢老六的提醒,看来是编码的关键细节我没做到位,得好好总结了。
按老六的指点,已经避免了代码冲突,以上例子修正后OK,没有问题了 。
[此贴子已经被作者于2008-9-27 8:32:48编辑过]
共15 条记录, 每页显示 10 条, 页签: [1] [2]

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

Powered By Dvbbs Version 8.3.0
Processed in .01953 s, 2 queries.