以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]第三方开发接口,外部数据_Sortkey的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=124831)

--  作者:chnfo
--  发布时间:2018/9/14 13:59:00
--  [求助]第三方开发接口,外部数据_Sortkey的问题
Dim st As Date = Date.Now
systemready = False
Dim drs As List(of DataRow) = DataTables("X").Select("","SC")   \'这里的SC是排序列
For i As Integer = 0 To drs.Count - 1
    drs(i).BaseRow("_SortKey") = i
Next
systemready = True
DataTables("X").save()

\'要测试耗时的代码
output.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒")

表X是外部数据表,在数据表-表相关-设置标志列中,已经勾选了锁定行标志列、插入行标志列。
执行了上面的代码以后,打开外部数据表,里面的_SortKey这一列的值没有任何变化。

这是什么原因?

--  作者:有点甜
--  发布时间:2018/9/14 14:36:00
--  
我测试代码,没问题,请上传实例测试。
--  作者:chnfo
--  发布时间:2018/9/15 11:33:00
--  
http://www.foxtable.com/webhelp/scr/0428.htm,如果用这个方法保存,就不行。

如果直接用datatables("X").save(),这样就可以。

----是不是因为在客户端的时候,_Sortkey这个字段在表-查看表结构中不可见,被认为它没有改变?

--  作者:有点蓝
--  发布时间:2018/9/15 13:44:00
--  
测试没有问题,要判断Modified

Dim dt As DataTable = DataTables("订单")
Dim
 sum As Long
For
 Each dr As DataRow In dt.DataRows
    If
 dr.RowState = DataRowState.
Modified Then
        sum = sum + dr(
"数量")
    End
 If
Next

Output.Show(Sum)