以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  参数“Prompt”无法转换为类型“String”  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=131277)

--  作者:小巫仙
--  发布时间:2019/2/22 8:16:00
--  参数“Prompt”无法转换为类型“String”
做的分页加载,但是在加载现金银行帐表时,总会报错,而且设置加载20行,实际也不是加载20行。
.NET Framework 版本:2.0.50727.8937
Foxtable 版本:2018.10.9.1
错误所在事件:现金银行帐,AfterLoad
详细错误信息:
参数“Prompt”无法转换为类型“String”。

[此贴子已经被作者于2019/2/22 12:55:45编辑过]

--  作者:有点蓝
--  发布时间:2019/2/22 9:18:00
--  
现金银行帐,AfterLoad,代码改为
e.DataTable.DataCols("收入").RaiseDataColChanged()

这个事件其他代码没看出来有什么用

注意sqlfind出来的datarow是独立的,和datatable没有任何关系,不能用于RaiseDataColChanged

--  作者:小巫仙
--  发布时间:2019/2/22 10:24:00
--  
蓝老师,我之前的其他代码是根据例子里的程序改的,我有很多个账套,余额是按照账目账套结算的,也就是同一个账目账套才结算余额,所以需要在加载的时候把每个账目账套的第一行全都重置下
--  作者:有点蓝
--  发布时间:2019/2/22 11:16:00
--  
用getvalues和find,不要带sql

Dim drs As New List(of DataRow)
For Each nm As String In e.DataTable.SQLGetValues("账目账套") \'找出每个账目账套的第一行数据, 添加到集合drs中
    Dim dr As DataRow = e.DataTable.Find("账目账套 = \'" & nm & "\'", "[_Identify]")
    If dr IsNot Nothing Then
        drs.Add(dr)
    End If
Next
For Each r As DataRow In drs
    e.DataTable.DataCols("收入").RaiseDataColChanged(r)
Next

--  作者:小巫仙
--  发布时间:2019/2/22 12:55:00
--  
好啦,谢谢蓝老师!
想明白了,分页加载是重置已加载的第一行数据,不用重置后台的数据~