以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  代码  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=74203)

--  作者:kaituozhe
--  发布时间:2015/9/6 12:33:00
--  代码

Tables("生产计划").Current("编制人") = UserName
Dim dr2 As Row =Tables("生产计划").Current
Dim s As String =Format(dr2,"yyy年MM月")
Dim drs As List (of DataRow)=DataTables("领料明细").Select("领料单号=\'"&Tables("生产计划").Current("领料单号") &"\'")
For Each dr As DataRow In drs
    Dim dr1 As DataRow =DataTables("计划耗用结存").find("发生年月= \'" & s & " \'and 部门=\'"&dr2("部门")&"\'and 物料编码= \'"&dr("物料编码")&"\'")
    If dr1("月末结余_投入数") < 0 Then
        MessageBox.show("累计发出材料数量超过耗用定额,请找领导审批","提示")
    End If
Next
Tables("材料领用").Current.Save()
DataTables("领料明细").Save()

 

这是我为一个窗口保存按钮编写的代码,执行这个代码有如下提示:

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2014.11.11.1
错误所在事件:窗口,材料出库,Button7,Click
详细错误信息:
无法将类型为“Foxtable.Row”的对象强制转换为类型“System.IConvertible”。
这是什么原因


--  作者:blsu33
--  发布时间:2015/9/6 13:21:00
--  
Dim dr2 As Row =Tables("生产计划").Current\'定义一个当前行(行有多列)
Dim s As String =Format(dr2("发生年月"),"yyy年MM月")\'指定的字符应该是对应Current行的具体的某列,3个Y?错误提示在这行

我是菜鸟,帮助文档看的还不熟,请参考。

可以测试下,如果不显示 2  那就是这句
Tables("生产计划").Current("编制人") = UserName
Dim dr2 As Row =Tables("生产计划").Current
MessageBox.Show(1)
Dim s As String =Format(dr2,"yyy年MM月")
MessageBox.Show(2)
Dim drs As List (of DataRow)=DataTables("领料明细").Select("领料单号=\'"&Tables("生产计划").Current("领料单号") &"\'")
For Each dr As DataRow In drs
    Dim dr1 As DataRow =DataTables("计划耗用结存").find("发生年月= \'" & s & " \'and 部门=\'"&dr2("部门")&"\'and 物料编码= \'"&dr("物料编码")&"\'")\'这句里面合成表达式部分有的多空格 有的少空格
    If dr1 IsNot Nothing AndAlso dr1("月末结余_投入数") < 0 Then‘判断空行
        MessageBox.show("累计发出材料数量超过耗用定额,请找领导审批","提示")
\'是否应该终止执行呢,要不后边就Save()了
exit for
    End If
Next
Tables("材料领用").Current.Save()
DataTables("领料明细").Save()


动态合成表达式
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=43687&replyID=&skin=1

--  作者:大红袍
--  发布时间:2015/9/6 14:13:00
--  
Tables("生产计划").Current("编制人") = UserName
Dim dr2 As Row =Tables("生产计划").Current
Dim s As String =Format(dr2("某列"),"yyy年MM月")
Dim drs As List (of DataRow)=DataTables("领料明细").Select("领料单号=\'"&Tables("生产计划").Current("领料单号") &"\'")
For Each dr As DataRow In drs
    Dim dr1 As DataRow =DataTables("计划耗用结存").find("发生年月= \'" & s & " \'and 部门=\'"&dr2("部门")&"\'and 物料编码= \'"&dr("物料编码")&"\'")
    If dr1 Is Nothing OrElse dr1("月末结余_投入数") < 0 Then
        MessageBox.show("累计发出材料数量超过耗用定额,请找领导审批","提示")
    End If
Next
Tables("材料领用").Current.Save()
DataTables("领料明细").Save()