Rss & SiteMap

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

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

标题:拷贝问题报告

1楼
kylin 发表于:2008/9/26 10:22:00
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:例子.table


1、见窗口3,拷贝(采取先导出Excel,后合并回来的办法)按钮后,出现以下错误提示,一直按ESC键或Enter键,直到结束后检查,拷贝目的能实现。

图片点击可在新窗口打开查看此主题相关图片如下:02.jpg
图片点击可在新窗口打开查看
2、如果删除“表A”中的“代码金额”列中的计算代码后,拷贝正常,且不会出现以上的提示。(表B中有重算表A的“代码金额”的代码)
3、如果继续1的话,会先出现以下的错误提示,拷贝编号对象改变了,但所得的拷贝内容仍然是第一次的内容。这个倒是可以另外自行解决,不是主要问题。


图片点击可在新窗口打开查看此主题相关图片如下:04.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2008-9-26 10:34:47编辑过]
2楼
kylin 发表于:2008/9/26 10:42:00
拷贝采用Filler的话,同样会出现以上1中的错误提示,区别的是:一直按ESC键结束后检查拷贝了1次,如果一直按Enter键结束后检查拷贝了2次。见以下例子的窗口3的“拷贝2”按钮。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:例子.table

3楼
kylin 发表于:2008/9/26 10:43:00
现有的项目中的拷贝做法同2楼,但出现的错误提示不同于1楼的

图片点击可在新窗口打开查看此主题相关图片如下:03.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2008-9-26 10:44:06编辑过]
4楼
贺老六 发表于: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有数量列吗?
5楼
kylin 发表于:2008/9/26 11:16: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

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


但是错误依然存在。
请老六排查问题,谢谢!
[此贴子已经被作者于2008-9-26 17:14:09编辑过]
6楼
czy 发表于:2008/9/26 13:32:00
这应该是个bug吧,按理说表达式子列也同样支持计算代码的。

将楼上的e.datarow("金额")改成e.datarow("计算金额")就正常了。
7楼
kylin 发表于:2008/9/26 14:40:00
谢谢czy斑竹的提醒,对4楼的数据和代码作了必要的修正。
为了避免表达式列的“干扰”,我将之删去,请重新下载4楼的例子测试,该错误现象依然存在。
初步感觉是,Filler与导出&导入的拷贝动作,数据拷贝和该表DataColchanged等事件对该表数据的计算引用之间产生冲突所致;
不过表现方式不同而已,上传的例子和已经在做项目的错误提示不同。
不知道这个分析对不对?
[此贴子已经被作者于2008-9-26 14:40:45编辑过]
8楼
贺老六 发表于: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中重算代码金额这一列,保证你的计算代码能通过啊。
9楼
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
10楼
czy 发表于:2008/9/26 15:17:00
哦,我马后炮了。
共15 条记录, 每页显示 10 条, 页签: [1] [2]

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

Powered By Dvbbs Version 8.3.0
Processed in .03125 s, 5 queries.