Foxtable(狐表)用户栏目专家坐堂 → 表连接数据刷新问题


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

主题:表连接数据刷新问题

美女呀,离线,留言给我吧!
Springamy
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:427 积分:2969 威望:0 精华:0 注册:2017/4/6 15:51:00
表连接数据刷新问题  发帖心情 Post By:2017/11/29 15:44:00 [只看该作者]

问题如图:

If e.DataCol.Name = "编码" Then
    For Each dr As DataRow In DataTables("表A").DataRows
       If e.DataRow("编码")<>"" AndAlso e.DataRow("金额") IsNot Nothing Then
            
            
           
       End If
    Next
End If

 


此主题相关图片如下:1.png
按此在新窗口浏览图片

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


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

看不懂你的描述,看不懂你的逻辑,请单独做个实例发上来,说明操作步骤,说明要实现的功能。


 回到顶部
美女呀,离线,留言给我吧!
Springamy
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:427 积分:2969 威望:0 精华:0 注册:2017/4/6 15:51:00
  发帖心情 Post By:2017/11/29 16:24:00 [只看该作者]

以下是引用有点甜在2017/11/29 15:52:00的发言:

看不懂你的描述,看不懂你的逻辑,请单独做个实例发上来,说明操作步骤,说明要实现的功能。

窗口2-->补贴

说明:  我在Excel 文件批量复制 编码 金额 粘贴到 BC明细表中,

         BC明细表保存之后 遍历 BC明细表,根据编码查找 补偿表中是否能找到该编码

         找到的话 剩余金额 = 剩余金额 -金额

                     Bid = id

         刷新补偿表

 


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar


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


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

参考代码

 

If e.DataCol.Name = "编码" OrElse e.DataCol.name = "金额" Then
    Dim t As Table = e.Form.controls("Table4").Table
    If e.DataRow("编码")<>Nothing AndAlso e.DataRow("金额")<>Nothing Then
        Dim fdr As DataRow = t.DataTable.Find("编号 = '" & e.DataRow("编码") & "'")
        If fdr IsNot Nothing Then
            fdr("剩余金额") -= e.DataRow("金额")
        End If
    End If
End If


 回到顶部
美女呀,离线,留言给我吧!
Springamy
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:427 积分:2969 威望:0 精华:0 注册:2017/4/6 15:51:00
  发帖心情 Post By:2017/11/29 17:50:00 [只看该作者]

以下是引用有点甜在2017/11/29 16:56:00的发言:

参考代码

 

If e.DataCol.Name = "编码" OrElse e.DataCol.name = "金额" Then
    Dim t As Table = e.Form.controls("Table4").Table
    If e.DataRow("编码")<>Nothing AndAlso e.DataRow("金额")<>Nothing Then
        Dim fdr As DataRow = t.DataTable.Find("编号 = '" & e.DataRow("编码") & "'")
        If fdr IsNot Nothing Then
            fdr("剩余金额") -= e.DataRow("金额")
        End If
    End If
End If

 

剩余金额是 Table 4中当前行剩余金额-使用金额哦,并没有按照编码执行呢


图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

 回到顶部
美女呀,离线,留言给我吧!
Springamy
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:427 积分:2969 威望:0 精华:0 注册:2017/4/6 15:51:00
  发帖心情 Post By:2017/11/29 17:50:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

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


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

4楼代码没问题。 你输入编码后,输入金额,就会对应减去table4的代码。请认真测试。

 

或者你截图说明测试步骤。


 回到顶部
美女呀,离线,留言给我吧!
Springamy
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:427 积分:2969 威望:0 精华:0 注册:2017/4/6 15:51:00
测试  发帖心情 Post By:2017/11/30 9:43:00 [只看该作者]

测试弹出的顺序如图3所示

看起来好像问题是出在在了刷新按钮的click事件里面

 


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:3.png
图片点击可在新窗口打开查看


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


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

测试没问题,你肯定有其它代码影响。

 

请上传具体例子说明。


 回到顶部
美女呀,离线,留言给我吧!
Springamy
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:427 积分:2969 威望:0 精华:0 注册:2017/4/6 15:51:00
  发帖心情 Post By:2017/11/30 10:36:00 [只看该作者]

以下是引用有点甜在2017/11/30 10:06:00的发言:

测试没问题,你肯定有其它代码影响。

 

请上传具体例子说明。

8楼问题截图很明显阿,我特意用方框了,选择是是Table4中 id 为 6112 6115的证书编号,但是 扣掉的是id 为4489的剩余金额

问题在刷新按钮的Click事件中:以下代码:

刷新的时候position指在了0的位置,

甜大,可不可以按证书编码查找Table4中的编号,然后把找到的数据设置为当前行

循环Table3,find Table4中的证书编号......思路有点乱...

 

问题就在下面的代码,指定了当前行

Dim r As Row =Tables("_Table3").Current
Dim bcid As Integer
If r IsNot Nothing  Then
    bcid= r("bcid")
    With Tables("_Table4")
        Dim p As Integer
        p= .FindRow("[id]=" & bcid ) '从当前行的下一行开始查找
        If p >= 0 Then '如果找到的话
           ' .Position = p '定位到找到的行.
            SystemReady = False
            .position = p
            SystemReady = True
            .Rows(p).checked = False
        End If
msgbox("p= " & p)
    End With
msgbox("bcid= " & bcid)
End If


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