以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  不加载表的累计值计算  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=66923)

--  作者:lvfox
--  发布时间:2015/4/16 1:04:00
--  不加载表的累计值计算
 

请教:遵照狐狸爸爸的提示,参照了分页加载流水账,因为分页加载流水是内部表,帮助中没有外部表的例子,感觉好难哪。

 试着抄了些代码,但不成功,录数据后,还报错:“标准表达式中数据类型不匹配 "

 

   帮助中分页流水帐的例子是动态加载表达式“余额”列,因实际中只需要数据列,在分页流水的例子中将“余额”列改成数据列后,试了下

是可以的,照着代码做到上传的例子中就不行了,与例子不同的就是 没加载外部表。

 一头雾水,请赐教。例子附上。

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:参照分页流水账管理项目1.rar


--  作者:狐狸爸爸
--  发布时间:2015/4/16 8:31:00
--  
你这样计算流水账实在是太恐怖了,每次DataColchanged事件都会加载所有数据,还不如一开始就加载所有数据呢。
你仔细看看帮助的例子是如何设计的:
http://www.foxtable.com/help/topics/2926.htm

提醒: 
1、数据表的AfterLoad事件还有代码,帮助没有提及。 
2、使用SQLFind和SQLCompute,直接基于SQLTable,也就是DataTables("窗口1_Table1")执行就行了,不需要另外再生成一个包括所有数据的临时表
[此贴子已经被作者于2015/4/16 8:38:11编辑过]

--  作者:狐狸爸爸
--  发布时间:2015/4/16 8:36:00
--  
至于错误提示,是因为你这个表不是在Foxtable设计的,你在Access中设计表的时候,将_SortKey设置为字符型了,实际上这一列应该是高进度小数型。
你修改这一列的类型就可以了。

这种系统列,可以通过菜单添加的:
http://www.foxtable.com/help/topics/1791.htm


--  作者:lvfox
--  发布时间:2015/4/16 23:42:00
--  

狐狸88:

 1. 按照您的建议加载了外部表,就可以了,因为要在表中录入数据并动态查看累计数,您说的直接基于SQLTable的 sqlFind在窗口执行,但sqltable不能编辑。

 2.数据表的AfterLoad 事件,是分页流水账的帮助中的例子的代码,这个代码可以不写吗?

 

 

     谢谢狐狸88的精辟点评,那样计算流水账是太恐怖了。


--  作者:lvfox
--  发布时间:2015/4/16 23:46:00
--  

分页流水账帮助中例子的代码如下:

  If e.DataTable.DataRows.count > 0 Then
   \'模拟第一行的支出发生变化, 刷新已加载行的余额.
    Dim dr As DataRow = DataTables("例子一").Find("","[_SortKey]")
   e.DataTable.DataCols("支出").RaiseDataColChanged(dr)
End If

 

   请问这段代码不写可以吗?在例子中注释这段代码后,貌似也没有发生异样?

 

       ???



--  作者:Bin
--  发布时间:2015/4/17 8:34:00
--  
 \'模拟第一行的支出发生变化, 刷新已加载行的余额.


--  作者:狐狸爸爸
--  发布时间:2015/4/17 8:58:00
--  
必须写,这是非常关键的一步,否则上一页下一页之后,就无法正确计算流水账了。

图片点击可在新窗口打开查看