以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 赋值无效 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=154156)
|
-- 作者:北狐
-- 发布时间: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
|
-- 作者:有点蓝
-- 发布时间:2020/9/6 19:45:00
--
没有保存:
…… dr("outboundWagePrice")=dr1("inboundWagePrice") \'此行代码无效,求老师帮看下是什么原因
|
-- 作者:北狐
-- 发布时间:2020/9/10 17:32:00
--
老师,加上了还是不行,是不是因为R05_RetailShipment为外部数据表,会有所不同?
|
-- 作者:有点蓝
-- 发布时间:2020/9/10 17:37:00
--
不可能,只要有值,保存了肯定可以。除非R05_RetailShipment是查询表或者临时表
不过注意保存后数据在数据库里,界面需要刷新才会重新加载数据的
[此贴子已经被作者于2020/9/10 17:38:09编辑过]
|
-- 作者:北狐
-- 发布时间:2020/9/10 17:44:00
--
R05_RetailShipment是通过这里添加的 此主题相关图片如下:d28l~v3firh2vjd$sgcwxc.png
测了 DataTables("R06_CheckMaterialAmount_Detail").Type = 3
[此贴子已经被作者于2020/9/10 17:58:37编辑过]
|
-- 作者:北狐
-- 发布时间:2020/9/10 17:50:00
--
此主题相关图片如下:h3d6)v@f2u9jzp71ctsz`cp.png
Output.Show(dr1("inboundWagePrice")) 没有出现值,但(有刷新看的)表界面有显示数值9.8的
[此贴子已经被作者于2020/9/10 18:05:03编辑过]
|
-- 作者:有点蓝
-- 发布时间:2020/9/10 20:15:00
--
…… dr("outboundWagePrice")=dr1("inboundWagePrice") \'此行代码无效,求老师帮看下是什么原因 dr.save MessageBox.Show(4) \'这里能不能弹出来? ……
|
-- 作者:北狐
-- 发布时间: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
-- 发布时间: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
-- 发布时间: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
是不是这才是你想要的效果!
|