Foxtable(狐表)用户栏目专家坐堂 → 赋值无效


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

主题:赋值无效

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


加好友 发短信
等级:幼狐 帖子:136 积分:1427 威望:0 精华:0 注册:2013/8/7 18:14:00
赋值无效  发帖心情 Post By:2020/9/5 19:53:00 [只看该作者]

'代码写在控件中,R05_RetailShipment为外部表(因为某些原因无法在表事件中写代码处理)

Dim dr As DataRow
dr = DataTables("R05_RetailShipment").SQLFind("outboundQuantity > 0  and outboundWagePrice=0")
If dr IsNot Nothing Then '如果找到符合条件的
    MessageBox.Show(1)
    Dim dr1 As DataRow
    dr1 = DataTables("R05_RetailShipment").SQLFind("tableCode='R03_InboundProducts' Or tableCode='R03_Delegation' And (itemID = '" & dr("itemID") & "') and (number> '"&dr("number")&"') ")
    If dr1 IsNot Nothing Then '如果找到符合条件的
        MessageBox.Show(3)
        dr("outboundWagePrice")=dr1("inboundWagePrice")  '此行代码无效,求老师帮看下是什么原因

MessageBox.Show(4)
    End If
Else
    MessageBox.Show(2)
End If

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/6 19:45:00 [只看该作者]

没有保存:

……
        dr("outboundWagePrice")=dr1("inboundWagePrice")  '此行代码无效,求老师帮看下是什么原因
        dr.save
……


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


加好友 发短信
等级:幼狐 帖子:136 积分:1427 威望:0 精华:0 注册:2013/8/7 18:14:00
  发帖心情 Post By:2020/9/10 17:32:00 [只看该作者]

老师,加上了还是不行,是不是因为R05_RetailShipment为外部数据表,会有所不同?

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/10 17:37:00 [只看该作者]

不可能,只要有值,保存了肯定可以。除非R05_RetailShipment是查询表或者临时表

不过注意保存后数据在数据库里,界面需要刷新才会重新加载数据的
[此贴子已经被作者于2020/9/10 17:38:09编辑过]

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


加好友 发短信
等级:幼狐 帖子:136 积分:1427 威望:0 精华:0 注册:2013/8/7 18:14:00
  发帖心情 Post By:2020/9/10 17:44:00 [只看该作者]

R05_RetailShipment是通过这里添加的
图片点击可在新窗口打开查看此主题相关图片如下:d28l~v3firh2vjd$sgcwxc.png
图片点击可在新窗口打开查看
测了  DataTables("R06_CheckMaterialAmount_Detail").Type = 3 
   

[此贴子已经被作者于2020/9/10 17:58:37编辑过]

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


加好友 发短信
等级:幼狐 帖子:136 积分:1427 威望:0 精华:0 注册:2013/8/7 18:14:00
  发帖心情 Post By:2020/9/10 17:50:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:h3d6)v@f2u9jzp71ctsz`cp.png
图片点击可在新窗口打开查看
Output.Show(dr1("inboundWagePrice"))  没有出现值,但(有刷新看的)表界面有显示数值9.8的

[此贴子已经被作者于2020/9/10 18:05:03编辑过]

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/10 20:15:00 [只看该作者]

……
        dr("outboundWagePrice")=dr1("inboundWagePrice")  '此行代码无效,求老师帮看下是什么原因
        dr.save
MessageBox.Show(4) '这里能不能弹出来?
……

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


加好友 发短信
等级:幼狐 帖子:136 积分:1427 威望:0 精华:0 注册:2013/8/7 18:14:00
  发帖心情 Post By:2020/9/15 16:58:00 [只看该作者]

MessageBox.Show(4) '这里不能弹出来
代码改成下面,在数据量极少的情况就可以,但数据量(即行数多)的话,就没效果(是因为查询和赋值并存导致的原因吗?是的话,代码具体要怎么优化)
For Each dr As DataRow In DataTables("R06_CheckMaterialAmount_Detail").DataRows
    dr = DataTables("R06_CheckMaterialAmount_Detail").Find("outboundQuantity >0  and outboundWagePrice is null")
    If dr IsNot Nothing Then '如果找到符合条件的
        Dim dr1 As DataRow
        dr1 = DataTables("R06_CheckMaterialAmount_Detail").Find("(tableCode='R03_InboundProducts' Or tableCode='R03_Delegation') And (itemID = '" & dr("itemID") & "') and (number> '"&dr("number")&"')","number",0)
        If dr1 IsNot Nothing Then '如果找到符合条件的
            dr("outboundWagePrice")=dr1("inboundWagePrice")
            dr.save
        End If
    End If
Next
[此贴子已经被作者于2020/9/15 16:59:03编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1348 积分:9827 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2020/9/15 17:03:00 [只看该作者]

For Each dr As DataRow In DataTables("R06_CheckMaterialAmount_Detail").DataRows
    dr = DataTables("R06_CheckMaterialAmount_Detail").Find("outboundQuantity >0  and outboundWagePrice is null")

 

 

第一行循环了得到DR的变量,第二行又给DR再赋值,看不懂第一行循环的作用在那里?


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


加好友 发短信
等级:六尾狐 帖子:1348 积分:9827 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2020/9/15 17:05:00 [只看该作者]

For Each dr As DataRow In DataTables("R06_CheckMaterialAmount_Detail").Select("outboundQuantity >0  and outboundWagePrice is null")
   ' dr = DataTables("R06_CheckMaterialAmount_Detail").Find("outboundQuantity >0  and outboundWagePrice is null") 删除这行
    If dr IsNot Nothing Then '如果找到符合条件的
        Dim dr1 As DataRow
        dr1 = DataTables("R06_CheckMaterialAmount_Detail").Find("(tableCode='R03_InboundProducts' Or tableCode='R03_Delegation') And (itemID = '" & dr("itemID") & "') and (number> '"&dr("number")&"')","number",0)
        If dr1 IsNot Nothing Then '如果找到符合条件的
            dr("outboundWagePrice")=dr1("inboundWagePrice")
            dr.save
        End If
    End If
Next
是不是这才是你想要的效果!

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