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


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

主题:强制刷新问题

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


加好友 发短信
等级:管理员 帖子:47511 积分:251479 威望: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


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


加好友 发短信
等级:管理员 帖子:47511 积分:251479 威望: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

 


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


加好友 发短信
等级:管理员 帖子:47511 积分:251479 威望: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 
 


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


加好友 发短信
等级:管理员 帖子:47511 积分:251479 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/9/12 15:17:00 [显示全部帖子]

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

End If


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


加好友 发短信
等级:管理员 帖子:47511 积分:251479 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/9/12 16:17:00 [显示全部帖子]

你11楼的有两个地方用到,都改一下。

 

 

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 DataTables("商品出库").DataCols.Contains(dc.name) Then
                    If dr.IsNull(dc.name) = False
                        dr1(dc.name) = dr(dc.name)
                    End If
                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 DataTables("商品出库").DataCols.Contains(dc.name) Then
                    If dr.IsNull(dc.name) = False
                        dr1(dc.name) = dr(dc.name)
                    End If
                End If
            Next
        Next
    End If
    DataTables("商品出库").save()
    DataTables("出库").DataRows.Clear() '清除所有行
    DataTables("商品出库").DataCols("单价").RaiseDataColChanged()
    e.Form.Close()
End If


 回到顶部