Foxtable(狐表)用户栏目专家坐堂 → [求助]如何将有更改过的行筛选出来,并执行相应的代码


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

主题:[求助]如何将有更改过的行筛选出来,并执行相应的代码

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


加好友 发短信
等级:六尾狐 帖子:1312 积分:9533 威望:0 精华:0 注册:2015/6/30 8:46:00
[求助]如何将有更改过的行筛选出来,并执行相应的代码  发帖心情 Post By:2018/6/12 16:01:00 [只看该作者]

如何将有更改过的行筛选出来,并执行相应的代码

 

1、举例:我表中有采购一行,如果采购中的一行有修改,则在物料表中找出对应的物料编码,

[此贴子已经被作者于2018/6/12 16:52:44编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/12 16:10:00 [只看该作者]

参考

 

http://www.foxtable.com/webhelp/scr/0450.htm

 

也可以循环每一行,判断其状态

 

http://www.foxtable.com/webhelp/scr/0428.htm

 


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


加好友 发短信
等级:六尾狐 帖子:1312 积分:9533 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2018/6/12 20:03:00 [只看该作者]

Dim tbn As String = "DtCG" & Format(Functions.Execute("返回服务器日期"),"HHmmss")
Dim g As New GroupTableBuilder(tbn, dt)
g.Groups.AddDef("子阶代码")
g.Groups.AddDef("名称")
g.Groups.AddDef("规格型号")
g.Groups.AddDef("单位")
g.Totals.AddDef("需求数")
g.Build()
Dim tb3 As Table = Tables(e.Form.Name & "_Table3")
tb3.DataSource  = DataTables(tbn)
Dim dt3 As DataTable = tb3.DataTable


dt3.DataCols.Add("在途库存",Gettype(Single))
dt3.DataCols.Add("库存数",Gettype(Single))
dt3.DataCols.Add("需采购数",Gettype(Single),"iif([需求数] - [库存数] > 0 ,[需求数] - [库存数] ,0)")
dt3.DataCols.Add("采购",Gettype(String),20)

 

以上是生成TAble3的代码,

下面是采购列发生变化,保存用的代码,经测试,代码在代码没有效果 。

 

Dim tb As Table = Tables(e.Form.Name & "_Table3")

tb.StateFilter = StateFilterEnum.Modified
For Each r As Row In tb.Rows

    If r.IsNull("采购") = False Then
        Dim cmd As new SQLCommand
        cmd.C
        cmd.CommandText = "UP DATE {物料表} SET [采购负责人] = '" & r("采购") & "' WHERE [代码] = '" & r("子阶代码") & "'"
        MessageBox.Show(cmd.CommandText)
        cmd.ExecuteNonQuery()
    End If
Next


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


加好友 发短信
等级:超级版主 帖子:107178 积分:545139 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/6/12 20:37:00 [只看该作者]

Dim tbn As String = "DtCG" & Format(Functions.Execute("返回服务器日期"),"HHmmss")
Dim g As New GroupTableBuilder(tbn, dt)
g.Groups.AddDef("子阶代码")
g.Groups.AddDef("名称")
g.Groups.AddDef("规格型号")
g.Groups.AddDef("单位")
g.Totals.AddDef("需求数")

Dim tb3 As Table = Tables(e.Form.Name & "_Table3")
tb3.DataSource  = g.BuildDataSource()
Dim dt3 As DataTable = tb3.DataTable

dt3.DataCols.Add("在途库存",Gettype(Single))
dt3.DataCols.Add("库存数",Gettype(Single))
dt3.DataCols.Add("需采购数",Gettype(Single),"iif([需求数] - [库存数] > 0 ,[需求数] - [库存数] ,0)")
dt3.DataCols.Add("采购",Gettype(String),20)

Dim tb As Table = Tables(e.Form.Name & "_Table3")

tb.StateFilter = StateFilterEnum.Modified

msgbox(tb.rows.count) ‘这里有多少行,能否筛选成功?


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


加好友 发短信
等级:六尾狐 帖子:1312 积分:9533 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2018/6/13 7:46:00 [只看该作者]

老师,已按你要求修改,但还是没有作用! 

 

[此贴子已经被作者于2018/6/13 7:47:55编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/13 10:10:00 [只看该作者]

以下是引用2900819580在2018/6/13 7:46:00的发言:

老师,已按你要求修改,但还是没有作用! 

 

[此贴子已经被作者于2018/6/13 7:47:55编辑过]

 

统计表、临时表,是没有【行状态】的,所以你无法获取对应的行。

 

你可以绑定datacolchanged事件,再加入一个【状态】列,如果修改了,就记录  e.datarow("状态") = "修改"


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


加好友 发短信
等级:六尾狐 帖子:1312 积分:9533 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2018/6/13 14:49:00 [只看该作者]

老师,代码中的空值怎么写

 

Dim tb As Table = Tables(e.Form.Name & "_Table3")
Dim dt As DataTable = tb.DataTable
Dim drs As List(of DataRow) = dt.Select("状态 = 'Y'")
For Each r As DataRow In drs    
    If r.IsNull("采购") = False Then
        Dim cmd As new SQLCommand
        cmd.C
        If r.IsNull("采购") Then
            cmd.CommandText = "UPD ATE {物料表} SET [采购负责人] = '' WHERE [代码] = '" & r("子阶代码") & "'"
        Else
            cmd.CommandText = "UPD ATE {物料表} SET [采购负责人] = '" & r("采购") & "' WHERE [代码] = '" & r("子阶代码") & "'"
        End If
        cmd.ExecuteNonQuery()
    End If
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/13 15:00:00 [只看该作者]

 

cmd.CommandText = "UPDATE {物料表} SET [采购负责人] = null WHERE [代码] = '" & r("子阶代码") & "'"

 


 回到顶部