以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  找出table里的max  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=173800)

--  作者:lfz
--  发布时间:2021/12/16 17:46:00
--  找出table里的max
在表事件的datarowadding如下代码:

这段代码我找出的是datatable里的max 我只想找出table里的max,怎么写代码啊

Dim r As DataRow = e.DataRow
Dim dt As DataTable = DataTables("会计科目")
Dim max As String
Dim idx As Integer
max = dt.Compute("Max(科目代码)") \'取得最大编号
If max > "" Then \'如果存在最大编号
    idx = CInt(max) + 1 \'获得最大编号的后三位顺序号,并加1
End If
r("科目代码") = idx

--  作者:狐狸爸爸
--  发布时间:2021/12/16 17:47:00
--  
Dim r As DataRow = e.DataRow
Dim dt As DataTable = DataTables("会计科目")
Dim max As String
Dim idx As Integer
max = dt.Compute("Max(科目代码)",Tables("会计科目").Filter) \'取得最大编号
If max > "" Then \'如果存在最大编号
    idx = CInt(max) + 1 \'获得最大编号的后三位顺序号,并加1
End 

--  作者:狐狸爸爸
--  发布时间:2021/12/16 17:50:00
--  
另外Table其实也有Compute的,例如:

dim max as integer = Tables("订单").Compute("Max(数量)")

--  作者:lfz
--  发布时间:2021/12/16 18:16:00
--  回复:(狐狸爸爸)Dim r As DataRow = e.DataRowDim ...
除了主表,我还有多个主表的窗口副本也想实现这个功能,怎么写代码呢,两年没怎么写代码呢,有点忘光光了
--  作者:有点蓝
--  发布时间:2021/12/16 20:22:00
--  
改为副本名称即可,如:http://www.foxtable.com/webhelp/topics/1906.htm

max = dt.Compute("Max(科目代码)",Tables("窗口1_table1").Filter)
或者
dim max as integer = Tables("窗口1_table1").Compute("Max(科目代码)")

忘了就重头看看帮助