Foxtable(狐表)用户栏目专家坐堂 → 将多个值组合成字符串赋值


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

主题:将多个值组合成字符串赋值

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
将多个值组合成字符串赋值  发帖心情 Post By:2018/11/20 14:01:00 [只看该作者]

If Forms("下采购订单").opened
For Each dr2 As DataRow In DataTables("采购明细表").Select("[采购单号] = '" & Tables("下采购订单_table1").current("采购单号")  & "'")
    For Each dr As DataRow In DataTables("采购需求").Select(" [_Identify] = '" & dr2("行ID")  & "'")
        dr.Locked = False '解锁行
        dr2("审核") = True
If DataTables("采购明细表").Compute("Sum(订料数)", " [行ID] = '" & dr2("行ID")  & "' and [审核] = 'true' ") IsNot Nothing Then
        dr("订料数") = DataTables("采购明细表").Compute("Sum(订料数)", " [行ID] = '" & dr2("行ID")  & "' and [审核] = 'true' ")
Else
        dr("订料数")=0
End If
        dr("采购单号") = dr2("采购单号")    采购明细表产生多个采购单,要将多个采购单号插入到采购需求的采购单号,格式为:(采购单号1,采购单号2……),怎么写?
        dr.Locked = True '锁定行
        dr2.Locked = True
        dr.save()
    Next
Next
End If

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


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

比如

 

If Forms("下采购订单").opened
    For Each dr2 As DataRow In DataTables("采购明细表").Select("[采购单号] = '" & Tables("下采购订单_table1").current("采购单号")  & "'")
        For Each dr As DataRow In DataTables("采购需求").Select(" [_Identify] = '" & dr2("行ID")  & "'")
            dr.Locked = False '解锁行
            dr2("审核") = True
            Dim drs = DataTables("采购明细表").Select("[行ID] = '" & dr2("行ID")  & "' and [审核] = 'true'")
            Dim ids As String = ""
            Dim dls As Double = 0
            For Each cdr As DataRow In drs
                ids &= cdr("采购单号") & ","
                dls += cdr("订料数")
            Next
           
            dr("订料数")=dls
            dr("采购单号") = ids.trim(",")
            dr.Locked = True '锁定行
            dr2.Locked = True
            dr.save()
        Next
    Next
End If


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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
无法在 System.Int32 和 System.String 上执行“=”操作  发帖心情 Post By:2018/11/21 17:04:00 [只看该作者]

检查了一天,确定是黄色代码引起的,但是[行ID] = '" & dra1("行ID") 两边都是整数, dra("入库数")和cdr("进仓数")是数字,dra("物检入库单号") 和cdr("进仓单号")是字符,真不知道问题在哪
无法在 System.Int32 和 System.String 上执行“=”操作。


If Forms("物检入库").opened
For Each dra1 As DataRow In DataTables("物检入库明细表").Select("[进仓单号] = '" & Tables("物检入库_table1").current("进仓单号")  & "'")
    For Each dra As DataRow In DataTables("采购需求").Select("[_Identify] = '" & dra1("行ID")  & "'")
        dra.Locked = False '解锁行

            Dim drs = DataTables("物检入库明细表").Select("[行ID] = '" & dra1("行ID")  & "' and [审核] = 'true'")
            Dim ids As String = ""
            Dim dls As Double = 0
            For Each cdr As DataRow In drs
                ids &= cdr("进仓单号") & ","
                dls += cdr("进仓数")
            Next
            
            dra("入库数")=dls
            dra("物检入库单号") = ids.trim(",")
            dra("物检入库日期") = dra1("物检入库日期") 

        dra.Locked = True '锁定行
        dra1.Locked = True
        dra.save()
    Next
Next
End If
[此贴子已经被作者于2018/11/21 17:14:40编辑过]

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


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

改成这样

 

Dim drs = DataTables("物检入库明细表").Select("[行ID] = '" & val(dra1("行ID"))  & "' and [审核] = 'true'")


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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2018/11/21 17:29:00 [只看该作者]

还是一样啊,同样的代码放在另外一个窗口对采购订单的和采购需求,没有问题

  dls += val(cdr("进仓数"))这样写了也不行
[此贴子已经被作者于2018/11/21 17:32:06编辑过]

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


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

以下是引用yetle在2018/11/21 17:29:00的发言:
还是一样啊,同样的代码放在另外一个窗口对采购订单的和采购需求,没有问题

 

那就修改这个代码

 

For Each dra1 As DataRow In DataTables("物检入库明细表").Select("[进仓单号] = '" & val(Tables("物检入库_table1").current("进仓单号"))  & "'")
    For Each dra As DataRow In DataTables("采购需求").Select("[_Identify] = '" & val(dra1("行ID"))  & "'")

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2018/11/21 17:37:00 [只看该作者]

还是有这个提示!都快崩溃了。

下面是我在另外个窗口的代码,都一样,除了字段改了改了,测试是没有问题的
For Each dr2 As DataRow In DataTables("到货物检明细").Select("[到货单据号] = '" & Tables("到货物检_table1").current("到货单据号")  & "'")
    For Each dr As DataRow In DataTables("采购需求").Select("[_Identify] = '" & dr2("行ID")  & "'")
        dr.Locked = False '解锁行
        dr2("审核") = True

            Dim drs = DataTables("到货物检明细").Select("[行ID] = '" & dr2("行ID")  & "' and [审核] = 'true'")
            Dim ids As String = ""
            Dim dls As Double = 0
            For Each cdr As DataRow In drs
                ids &= cdr("到货单据号") & ","
                dls += cdr("到货信息_到货数")
            Next
            
            dr("到货数")=dls
            dr("到货物检单号") = ids.trim(",")

        dr2("到货信息_可入库数") = dr("到货数") - dr("入库数")
        dr("到货日期") = dr2("到货日期")
        dr.Locked = True '锁定行
        dr2.Locked = True
        dr.save()
    Next
Next
[此贴子已经被作者于2018/11/21 17:44:14编辑过]

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


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

1、贴出你最后写好的代码;

 

2、加上systemready试试;

 

http://www.foxtable.com/webhelp/scr/2218.htm

 

3、不会做实例发上来测试。肯定是你其余的代码有问题导致的


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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2018/11/22 8:56:00 [只看该作者]

For Each dra1 As DataRow In DataTables("物检入库明细表").Select("[进仓单号] = '" & val(Tables("物检入库_table1").current("进仓单号"))  & "'")
    For Each dra As DataRow In DataTables("采购需求").Select("[_Identify] = '" & val(dra1("行ID"))  & "'")
        dra.Locked = False '解锁行
            Dim drs = DataTables("物检入库明细表").Select("[行ID] = '" & val(dra1("行ID"))  & "' and [审核] = 'true'")
            Dim ids As String = ""
            Dim dls As Double = 0
            For Each cdr As DataRow In drs
                ids &= cdr("进仓单号") & ","
                dls += val(cdr("进仓数"))
            Next
            
            dra("入库数")=dls
            dra("物检入库单号") = ids.trim(",")
            dra("物检入库日期") = dra1("物检入库日期") 

        dra.Locked = True '锁定行
        dra1.Locked = True
        dra.save()
    Next
Next

[此贴子已经被作者于2018/11/22 8:56:38编辑过]

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


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

那试试加上systemready

 

SystemReady = false

 

'本来代码

 

SystemReady = true


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