以文本方式查看主题

-  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=93043)

--  作者:tswxdts
--  发布时间:2016/11/18 21:07:00
--  [求助]从不关联表取值到另一个表
老师们!今天练习写了个代码:不是关联表,从一个表取值到另一个表,但是怎么也出不来。附止代码,请老师们给看看,问题出在那里。
1、有两列要进行判断,编号和商品代码。如果两个都没有,全部增加行取值。如果编号有了,但是商品代码没有,也新增加行取值,只是
    编号和上面的一样,商品代码不一样。
Select Case e.DataCol.name
    Case "入库编号","商品代码"
        Dim dr As DataRow = DataTables("教材库存").Find("编号 = \'" & e.OldValue & "\'" AndAlso "商品代码 = \'"& e.OldValue & "\'")
        If dr Is Nothing Then
            dr = DataTables("教材库存").AddNew()
            dr("编号") = e.DataRow ("入库编号")
            dr("商品代码") = e.DataRow("商品代码")
            dr("商品类别") = e.DataRow("商品类别")
            dr("商品名称") = e.DataRow("商品名称")
            dr("规格") = e.DataRow("规格")
            dr("单位") = e.DataRow("单位")
            dr("单价") = e.DataRow("单价")
            dr("入库数量") = e.DataRow("数量")
        Else
            dr("编号") = e.DataRow ("入库编号")
            dr("商品代码") = e.DataRow("商品代码")
            dr("商品类别") = e.DataRow("商品类别")
            dr("商品名称") = e.DataRow("商品名称")
            dr("规格") = e.DataRow("规格")
            dr("单位") = e.DataRow("单位")
            dr("单价") = e.DataRow("单价")
            dr("入库数量") = e.DataRow("数量")
        End If

    Case "商品代码","商品名称","商品类别","规格","单位","单价","数量"
        Dim dr As DataRow = DataTables("教材库存").Find("编号 = \'" & e.DataRow("入库编号") & "\'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
End Select

--  作者:有点蓝
--  发布时间:2016/11/19 8:53:00
--  
Select Case e.DataCol.name
    Case "入库编号"
        If e.DataRow.Isnull("入库编号") = False
            Dim dr As DataRow = DataTables("教材库存").Find("编号 = \'" &  e.DataRow("入库编号")  & "\'" AndAlso "商品代码 = \'" & e.DataRow("商品代码 ")  & "\'")
            If dr Is Nothing Then
                dr = DataTables("教材库存").AddNew()
                dr("编号") = e.DataRow ("入库编号")
                dr("商品代码") = e.DataRow("商品代码")
            End If
            dr("商品类别") = e.DataRow("商品类别")
            dr("商品名称") = e.DataRow("商品名称")
            dr("规格") = e.DataRow("规格")
            dr("单位") = e.DataRow("单位")
            dr("单价") = e.DataRow("单价")
            dr("入库数量") = e.DataRow("数量")
        End If
    Case "商品代码","商品名称","商品类别","规格","单位","单价","数量"
        Dim dr As DataRow = DataTables("教材库存").Find("编号 = \'" & e.DataRow("入库编号") & "\'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
End Select

--  作者:tswxdts
--  发布时间:2016/11/19 9:54:00
--  
有点蓝老师!
       我上传了附件,你给看一下,就是在入库单里,同一个入库编号下有多行记录,怎么能把这些记录全部赋值到教材库存表里?
现在是只能把一个编号里的一行给赋值过去,另一行就不显示了!

[此贴子已经被作者于2016/11/19 9:55:13编辑过]

--  作者:有点蓝
--  发布时间:2016/11/19 10:01:00
--  
重置列:http://www.foxtable.com/webhelp/scr/1469.htm

重置编号列

--  作者:tswxdts
--  发布时间:2016/11/19 11:56:00
--  
重置提示:
NET Framework 版本:2.0.50727.5485
Foxtable 版本:2016.7.29.1
错误所在事件:表,入库单, DataColChanged
详细错误信息:
调用的目标发生了异常。
从字符串“编号 = \'rk001\'”到类型“Boolean”的转换无效。
输入字符串的格式不正确。
我设置的入库编号格式:rk001开始
商品代码的格式:YY10001开始
这样设置没问题吧?
[此贴子已经被作者于2016/11/19 11:57:15编辑过]

--  作者:有点蓝
--  发布时间:2016/11/19 11:58:00
--  
Dim dr As DataRow = DataTables("教材库存").Find("编号 = \'" &  e.DataRow("入库编号")  & "\' And 商品代码 = \'" & e.DataRow("商品代码 ")  & "\'")
--  作者:tswxdts
--  发布时间:2016/11/19 11:59:00
--  
怎么上传附件提示成功了,但是不显示了??
--  作者:tswxdts
--  发布时间:2016/11/19 12:10:00
--  
谢谢有点蓝老师,测试通过了,自己在消化理解一下!