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


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

主题:强制刷新问题

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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望: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


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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望: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

 

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


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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望: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编辑过]

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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望: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编辑过]

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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2012/9/12 14:22: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

 

请问狐爸 ,如果不填充"商品出库"表中没有的列 该如何改呢?If dr1.IsNull(dc.name) = False 这样好像不对


 

[此贴子已经被作者于2012-9-12 14:22:36编辑过]

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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2012/9/12 15:17:00 [显示全部帖子]

没人帮忙解决下吗~~~图片点击可在新窗口打开查看

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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2012/9/12 15:44:00 [显示全部帖子]

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

If DataTables("商品出库").DataCols.Contains(dc.Name) = False Then

End If

狐爸貌似不行啊,我运行了之后 还是提醒 入库里面的一列 不属于商品出库


 回到顶部