以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  数据表列名被更改  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=158281)

--  作者:edisontsui
--  发布时间:2020/11/14 9:09:00
--  数据表列名被更改
If e.Book.TempLate = "出入库流水账" Then  \'TempLate是指模板文件的名称
    If CurrentTable.name = "出入库" 
        If user.group = "财务" OrElse user.group = "行政" OrElse user.name = "开发者" Then
        For r As Integer = 1 To Tables("出入库").rows.count
           Dim dr As Row = Tables("出入库").Rows(r)
           dr("自然顺序号") = r
        Next
        End If
    End If
End If

以上代码放在报表事件的beforebuild里面,执行之后,连"自然顺序号"这个列名都被改为最大的那个r值了。请问是哪里的问题呢?

--  作者:有点蓝
--  发布时间:2020/11/14 10:08:00
--  
For r As Integer = 0 To Tables("出入库").rows.count - 1
           Dim dr As Row = Tables("出入库").Rows(r)
           dr("自然顺序号") = r+1
        Next
或者
dim idx as integer = 1
        For r As Row in Tables("出入库").rows
           r("自然顺序号") = r
idx+=1
        Next

--  作者:edisontsui
--  发布时间:2020/11/14 13:57:00
--  
谢谢。
--  作者:edisontsui
--  发布时间:2021/10/23 19:41:00
--  
2楼第1个方案的代码有时还是会发生自燃顺序号标题被改动的情况。
而用第2个方案就会出现警告:

dim idx as integer = 1
        For r As Row in Tables("出入库").rows
           r("自然顺序号") = r
idx+=1
        Next

上面这段代码会出现警告:
编译错误: "For" 循环控制变量的类型不能试 “Row”,因为该类型不支持所需的运算符。
错误代码:For r As Row in Tables("出入库").rows

请问是为什么呢?


--  作者:有点蓝
--  发布时间:2021/10/24 20:27:00
--  
dim idx as integer = 1
        For r As Row in Tables("出入库").rows
           r("自然顺序号") = idx
idx+=1
        Next