Foxtable(狐表)用户栏目专家坐堂 → 强制刷新问题


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

主题:强制刷新问题

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


加好友 发短信
等级:三尾狐 帖子:713 积分:5196 威望:0 精华:0 注册:2012/4/13 13:10:00
强制刷新问题  发帖心情 Post By:2012/9/8 16:50:00 [只看该作者]

以下是一个将临时表内容保存到商品出库的表中的代码

在代码最后我想强制刷新商品出库表中的单价列,

DataTables("商品出库").DataCols("单价").RaiseDataColChanged()

这句代码会刷新所有列,我只需要刷新当前填入数据的那几列就可以了,不知道该如何去改 谢谢!

 

 

If DataTables("出库").datarows.count < 1 Then
    messagebox.show("表中数据为空!")
Else
    Dim dr1 As DataRow
    Dim dt As DataTable = DataTables("出库")
    Dim r As Integer
    r = Tables("商品出库").FindRow("[出库日期] Is null", 0 , False ) '从当前行开始查找
    If r >= 0 Then '如果找到的话
        Tables("商品出库").Position = r '定位到找到的行.
        For Each dr As DataRow In dt.datarows
            dr1 = DataTables("商品出库").DataRows(r)
            For Each dc As DataCol In dt.datacols
                dr1(dc.name) = dr(dc.name)
            Next
        Next
    Else
        For Each dr As DataRow In dt.datarows
            dr1 = DataTables("商品出库").DataRows.addnew()
            For Each dc As DataCol In dt.datacols
                dr1(dc.name) = dr(dc.name)
            Next
        Next
    End If
    DataTables("商品出库").save()
    DataTables("出库").DataRows.Clear() '清除所有行
    DataTables("商品出库").DataCols("单价").RaiseDataColChanged()
    e.Form.Close()
End If


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/9/8 16:54:00 [只看该作者]


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


加好友 发短信
等级:三尾狐 帖子:713 积分:5196 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2012/9/8 16:56:00 [只看该作者]

以下是引用lin_hailun在2012-9-8 16:54:00的发言:
看看

http://www.foxtable.com/help/topics/1468.htm

 

看过了…… 就是不知道该如何表示刚写入的那几行~


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/9/8 17:04:00 [只看该作者]

你的意思是要填充有数据的列,没有数据的列就不填充?

如果这样:

 

 

If DataTables("出库").datarows.count < 1 Then
    messagebox.show("表中数据为空!")
Else
    Dim dr1 As DataRow
    Dim dt As DataTable = DataTables("出库")
    Dim r As Integer
    r = Tables("商品出库").FindRow("[出库日期] Is null", 0 , False ) '从当前行开始查找
    If r >= 0 Then '如果找到的话
        Tables("商品出库").Position = r '定位到找到的行.
        For Each dr As DataRow In dt.datarows
            dr1 = DataTables("商品出库").DataRows(r)
            For Each dc As DataCol In dt.datacols
                If dr.IsNull(dc.name) = False
                    dr1(dc.name) = dr(dc.name)
                End If
            Next
        Next
    Else
        For Each dr As DataRow In dt.datarows
            dr1 = DataTables("商品出库").DataRows.addnew()
            For Each dc As DataCol In dt.datacols
                If dr.IsNull(dc.name) = False
                    dr1(dc.name) = dr(dc.name)
                End If
            Next
        Next
    End If
    DataTables("商品出库").save()
    DataTables("出库").DataRows.Clear() '清除所有行
    DataTables("商品出库").DataCols("单价").RaiseDataColChanged()
    e.Form.Close()
End If


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/9/8 17:10:00 [只看该作者]

以下是引用jiskin在2012-9-8 16:56:00的发言:

 

看过了…… 就是不知道该如何表示刚写入的那几行~


在修改表的地方保存写入的行,最后根据数据循环更新。
[此贴子已经被作者于2012-9-8 17:10:58编辑过]

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


加好友 发短信
等级:三尾狐 帖子:713 积分:5196 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2012/9/8 19:57:00 [只看该作者]

以下是引用狐狸爸爸在2012-9-8 17:04:00的发言:

你的意思是要填充有数据的列,没有数据的列就不填充?

如果这样:

 

 

If DataTables("出库").datarows.count < 1 Then
    messagebox.show("表中数据为空!")
Else
    Dim dr1 As DataRow
    Dim dt As DataTable = DataTables("出库")
    Dim r As Integer
    r = Tables("商品出库").FindRow("[出库日期] Is null", 0 , False ) '从当前行开始查找
    If r >= 0 Then '如果找到的话
        Tables("商品出库").Position = r '定位到找到的行.
        For Each dr As DataRow In dt.datarows
            dr1 = DataTables("商品出库").DataRows(r)
            For Each dc As DataCol In dt.datacols
                If dr.IsNull(dc.name) = False
                    dr1(dc.name) = dr(dc.name)
                End If
            Next
        Next
    Else
        For Each dr As DataRow In dt.datarows
            dr1 = DataTables("商品出库").DataRows.addnew()
            For Each dc As DataCol In dt.datacols
                If dr.IsNull(dc.name) = False
                    dr1(dc.name) = dr(dc.name)
                End If
            Next
        Next
    End If
    DataTables("商品出库").save()
    DataTables("出库").DataRows.Clear() '清除所有行
    DataTables("商品出库").DataCols("单价").RaiseDataColChanged()
    e.Form.Close()
End If

 

狐爸 不是填充有数据列 ,数据是这样的, 录入数据会先存在“入库”的临时表里面(比如某次录入了4条数据),然后按了保存按钮(以上代码就是保存按钮中的代码)会一起保存到“商品入库”的数据表里面,我的需要的就是DataTables("商品出库").DataCols("单价").RaiseDataColChanged()
 这条代码仅对这次录入的数据(比如这4条数据)列的“单价”进行强制刷新,而不是整个“商品入库”表都刷新!不然效率肯定低的

[此贴子已经被作者于2012-9-8 19:57:56编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/9/9 10:23:00 [只看该作者]

搞不懂你说的意思。

而且最好不要这么设计,直接在商品入库表输入即可,输入错误后,可以撤销和删除啊。

再说了,临时表输入数据后,需要转入到正是的数据表,关RaiseDataColChanged什么事?

 

直接:

http://www.foxtable.com/help/topics/1533.htm

 


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


加好友 发短信
等级:三尾狐 帖子:623 积分:3897 威望:0 精华:0 注册:2011/8/3 22:13:00
  发帖心情 Post By:2012/9/9 10:44:00 [只看该作者]

楼主 不明白 了 既然已经填充了  不就是已经触动列了吗  为什么还要去刷新呀!

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


加好友 发短信
等级:三尾狐 帖子:713 积分:5196 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2012/9/9 13:09:00 [只看该作者]

以下是引用布莱克朱在2012-9-9 10:44:00的发言:
楼主 不明白 了 既然已经填充了  不就是已经触动列了吗  为什么还要去刷新呀!

我也不知道为什么,发现上面那段填充的代码 将临时表内容填写到数据表之后 并不触动列,我就只好想到RaiseDataColChanged 这个了……

[此贴子已经被作者于2012-9-9 13:11:38编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/9/9 15:12:00 [只看该作者]

按道理填充数据就会触发DataColChanged事件,最好仔细i检查一下代码。

 

如果搞不定,就将就下面的思路来处理吧:

 

Dim cnt As integer = DataTables("商品入库").DataRows.Count
填充数据到商品入库表
For i as integer = cnt To DataTables("商品入库").DataRows.Count - 1
     Dim dr As Datarow = DataTables("商品入库").DataRows(i)
     DataTables("商品入库").DataCols("单价").RaiseDataColChanged()
Next 
 


 回到顶部
总数 15 1 2 下一页