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


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

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

美女呀,离线,留言给我吧!
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
按此在新窗口浏览图片

 回到顶部
美女呀,离线,留言给我吧!
Springamy
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


 回到顶部
美女呀,离线,留言给我吧!
Springamy
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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


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

 回到顶部
美女呀,离线,留言给我吧!
Springamy
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
图片点击可在新窗口打开查看


 回到顶部
美女呀,离线,留言给我吧!
Springamy
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


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


加好友 发短信
等级:一尾狐 帖子:427 积分:2969 威望:0 精华:0 注册:2017/4/6 15:51:00
  发帖心情 Post By:2017/11/30 10:49:00 [显示全部帖子]

有什么方法速度做实例吗?要重新做内部表,重新写代码......我做得太慢了,起码半天,太浪费时间了

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


加好友 发短信
等级:一尾狐 帖子:427 积分:2969 威望:0 精华:0 注册:2017/4/6 15:51:00
  发帖心情 Post By:2017/11/30 10:55:00 [显示全部帖子]

8楼图3,粘贴完证书编码\ 使用金额之后,并不是根据证书编码扣减右边表的金额的

而是根据右边的表的当前行是哪个就扣减哪个的,错就错在这里 ,他是根据Table4的当前行扣减的

,而并不是按照证书编号扣减金额的


 回到顶部