以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [讨论] expression与Relations.Contains 配合使用时出错。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=1091)

--  作者:wcs
--  发布时间:2008/11/11 0:28:00
--  [讨论] expression与Relations.Contains 配合使用时出错。

我联合运用了动态设置关联、动态设置表达式。

在表达式列里没有表达式时,在执行第一次,正常。
查看表达式列的表达式,是存在的。

执行第二次,就不正常了,截图如下:


图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看


我的代码是这样的:

If Relations.Contains("凭证") Then
   Relations.Delete("凭证")
   DataTables("会计凭证总表").DataCols("关联").Recalc()
   DataTables("会计凭证").DataCols("关联").Recalc()
   Relations.Add("凭证",DataTables("会计凭证总表").DataCols("关联"),DataTables("会计凭证

").DataCols("关联"))
else DataTables("会计凭证总表").DataCols("关联").Recalc()
     DataTables("会计凭证").DataCols("关联").Recalc()
     Relations.Add("凭证",DataTables("会计凭证总表").DataCols("关联"),DataTables("会计凭

证").DataCols("关联"))
end if
datatables("会计凭证总表").datacols("借方金额").expression = "Sum(Child(凭证).借方金额)"
datatables("会计凭证总表").datacols("贷方金额").expression = "Sum(Child(凭证).贷方金额)"

感觉好像是删除关联    Relations.Delete("凭证")    时出错。


--  作者:狐狸爸爸
--  发布时间:2008/11/11 8:05:00
--  

可能是有的表达式使用了这个关联进行计算,例如父表统计子表数据,子表引用父表数据。
必须全部删除有关表达式才能删除关联,删除表达式很简单,将expression属性设为""即可。

[此贴子已经被作者于2008-11-11 8:05:13编辑过]

--  作者:wcs
--  发布时间:2008/11/11 8:22:00
--  

好我来试试。