Foxtable(狐表)用户栏目专家坐堂 → for问题


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

主题:for问题

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/3 12:07:00 [显示全部帖子]

Dim r6 As Row = Tables("..._Table6").Current
For Each dr As DataRow In DataTables("..._Table1").DataRows
    Dim dr5 As DataRow = DataTables("..._Table5").Find("cgid=" & dr("id"))
    If dr5 Is Nothing Then
        msgbox("没找到")
    Else
        msgbox(dr("id")  & " 和 " & dr5("cgid"))
        If dr5 IsNot Nothing Then
            dr5("凭证号") = r6("凭证单据号")
            dr5("付款确认") = True
        End If
    End If
Next

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/3 17:19:00 [显示全部帖子]

Dim r6 As Row = Tables("..._Table6").Current


For Each dr As Row In Tables("..._Table1").Rows
   
    Dim drs = DataTables("...._Table5").Select("cgid=" & dr("id"))
    If drs.count > 0 Then
        For Each dr5 As DataRow In drs
           
            dr5("凭证号") = r6("凭证单据号")
           
            dr5("付款确认") = True
        Next
    Else
       
        MessageBox.Show("合同号:'" & dr("..合同号") & "'请先申请付款!")
       
    End If
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/3 18:29:00 [显示全部帖子]

 上传实例说明吧,没搞懂你的逻辑。

 

 上传的实例,必须能正常测试。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/6 14:59:00 [显示全部帖子]

 你思路本身就有问题,不要在引用或者赋值的时候刷新表格数据,必须全部赋值完毕以后,才能刷新。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/6 15:12:00 [显示全部帖子]

剩余金额的值,你可以直接用sqlGetValue或者其它方式获取,而不一定要刷新表格 http://www.foxtable.com/webhelp/scr/2955.htm

 

刷新表格必须在你循环之前,或者循环之后处理,不能在循环的过程中。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/6 15:28:00 [显示全部帖子]

 不要用刷新的方式得到剩余金额。你就不能通过别的方式得到剩余金额了?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/6 17:34:00 [显示全部帖子]

 你剩余金额的计算逻辑是什么?为什么刷新就可以得到正确的值?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/6 18:22:00 [显示全部帖子]

用临时表

 

Dim sql As String = "Select a.id,a.zsbh as 证书编号,a.bclx as 补偿类型,a.bcje as 补偿金额,IsNull(a.kyje,0)+ISNULL(b.ysyje, 0) -isnull(a.djje,0) as 剩余金额,a.zssm As 证书说明 Fro m cgswbc as a left JOIN (select bcid,sum(syje) as ysyje  fr om cgswbcmx where cghthm <> '' group by bcid) as b on a.id=b.bcid where isnull(a.kyje,0)+ ISNULL(b.ysyje, 0) -isnull(a.djje,0) <>0 and isnull(a.yx,0)<>0 and isnull(a.dj,0)=0"

 

Dim cmd As new SQLCommand
cmd.ConnectionName = "数据源名"
cmd.CommandText = sql
Dim dt As DataTable = cmd.ExecuteReader
Dim fdr As DataRow = dt.Find("根据某一条件查找值")
If fdr IsNot Nothing Then
    msgbox(fdr("剩余金额"))
End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/7 9:16:00 [显示全部帖子]

 msgbox有没有正常弹出?你要先确定是哪段代码报错。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/7 16:13:00 [显示全部帖子]

你做的例子无法直接测试,你的例子里面,请先删除外部数据源,再做例子,在删除外部数据源的前提下能正常运行。


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