Foxtable(狐表)用户栏目专家坐堂 → [求助]新增行自动累加数值出问题


  共有2459人关注过本帖树形打印复制链接

主题:[求助]新增行自动累加数值出问题

帅哥哟,离线,有人找我吗?
xndd
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:528 积分:4415 威望:0 精华:0 注册:2014/11/26 15:23:00
[求助]新增行自动累加数值出问题  发帖心情 Post By:2019/1/6 16:39:00 [显示全部帖子]

甜版好!

 

我的目的是这样:新增行的时候,给某些字段累加值,比如orderid字段,用来人工排序,我的代码是放在全局表事件datarowadding中:

 

Dim px As Integer = DataTables("单位表").Compute("max(OrderID)")
e.DataRow("OrderID") = px + 10

 

使用的时候,发现如果是表全部数据都显示就正常,如果通过左侧树筛选后,再添加,就会像图中这样:

 


图片点击可在新窗口打开查看此主题相关图片如下:录制_2019_01_06_16_29_02_750.gif
图片点击可在新窗口打开查看

 

可我用的是datatable和datarow啊,help!


 回到顶部
帅哥哟,离线,有人找我吗?
xndd
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:528 积分:4415 威望:0 精华:0 注册:2014/11/26 15:23:00
  发帖心情 Post By:2019/1/7 10:03:00 [显示全部帖子]

 这样也可以,甜版,我修改了代码,在选定节点的事件中:
'判断选定节点
If e.Node.Level = 0 Then
Dim wtb1 As WinForm.Table = e.Form.Controls("Table1")
wtb1.Table.Filter = " 1 = 1 "
wtb1.Table.Filter = "[单位类型] = " & e.Node.Name
    Dim sltext As String = e.Node.Text
    If (Not sltext.EndsWith(")")) Then
        e.Node.Text = e.Node.Text & "(" & wtb1.Table.Rows.Count & ")"
    End If
End If

这样就可以了,是我对table和datatable理解还是不深刻吧

另外,我很多个窗口都用到类似代码,我想抽象掉它

 回到顶部
帅哥哟,离线,有人找我吗?
xndd
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:528 积分:4415 威望:0 精华:0 注册:2014/11/26 15:23:00
  发帖心情 Post By:2019/1/7 10:17:00 [显示全部帖子]

 原先代码是这样判定的:
'判断选定节点
If e.Node.Level = 0 Then
    Dim wtb1 As WinForm.Table = e.Form.Controls("Table1")
    wtb1.Table.DataTable.LoadFilter = " 1 = 1 "
    wtb1.Table.DataTable.LoadFilter = "[单位类型] = " & e.Node.Name
    wtb1.Table.DataTable.Load
    Dim sltext As String = e.Node.Text
    If (Not sltext.EndsWith(")")) Then
        e.Node.Text = e.Node.Text & "(" & wtb1.Table.Rows.Count & ")"
    End If
End If

 回到顶部