以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何根据订单单号调取后台数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=129649)

--  作者:实话实说
--  发布时间:2019/1/3 10:59:00
--  如何根据订单单号调取后台数据
以下是【销售发货明细】表已经加载后从【销售发货明细】表中取值到【销售订单明细】表。如果【销售发货明细】表没有加载,【销售订单明细】表如何从【销售发货明细】表取值
If e.DataCol.Name = "订单单号" Then \'产品ID发生改变
    Dim dt As DataRow 
    dt = DataTables("销售订单").Find("订单单号 = " & "\'" & e.DataRow("订单单号") & "\'" ) \'在产品表找出该产品
    If dt IsNot Nothing \'如果找到, 则设置各列内容
        e.DataRow("客户简称")= dt("客户简称")
        e.DataRow("订单金额")= dt("订单金额")
        e.DataRow("客户简称")= dt("客户简称")
    End If

    Dim trs As List(Of DataRow) = DataTables("销售订单明细").Select("订单单号 =\'" & e.DataRow("订单单号") & "\'")
    For Each tr As DataRow In trs
    If tr IsNot Nothing Then
        Dim nma() As String = {"订单单号","产品代码","产品型号规格","颜色","单位","数量","订单数量","单价","金额"} \'销售订单明细表数据来源列
        Dim nmb() As String = {"订单单号","产品代码","产品型号规格","颜色","单位","数量","订单数量","单价","金额"} \'销售发货明细表数据接收列
        Dim dr As DataRow = DataTables("销售发货明细").AddNew
        For i As Integer = 0 To nma.Length - 1
            dr(nmb(i)) = tr(nma(i))
        Next
    End If
    Next
End If


--  作者:有点甜
--  发布时间:2019/1/3 11:31:00
--  

如果是数据没有加载,参考

 

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

 

如果连表也没有加载,参考

 

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

 


--  作者:实话实说
--  发布时间:2019/1/3 12:05:00
--  
加载了【销售订单】表和【销售订单明细】表,【销售发货明细】没有加载,代码写在【销售订单】的DataColChanged事件中,根据订单单号取值。二楼的第2个链接中通常写在窗口的AfterLoad事件中,此时订单单号还没确定。

--  作者:有点甜
--  发布时间:2019/1/3 12:06:00
--  
写在哪里都可以啊。请认认真真看帮助文档
--  作者:实话实说
--  发布时间:2019/1/3 13:33:00
--  
实在做不出来,现在将需求再复述一下

图片点击可在新窗口打开查看此主题相关图片如下:snap1.jpg
图片点击可在新窗口打开查看

需求:在【销售发货】表中输入订单单号后,客户发货金额从【销售订单】表取值(客户,金额合计)同时,【销售发货明细】表自动添加记录,根据订单单号从【销售订单明细】表取值(产品代码,颜色,单位,数量,单价,金额)
【销售订单】表和【销售订单明细】表没有加载
请老师帮忙写一下【销售发货】表的DataColChanged事件

--  作者:有点甜
--  发布时间:2019/1/3 15:09:00
--  

没有加载表,必须自行合成sql语句

 

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

 

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

 


--  作者:实话实说
--  发布时间:2019/1/3 15:43:00
--  
类似下面的代码有问题

If e.DataCol.Name = "订单单号" Then 
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
Dim Cols1() As String = {"客户","产品代码","数量"}
Dim Cols2() As String = {"客户","产品代码","数量"}
cmd.CommandText = "SELECT * Fro m {销售订单明细} Where 订单单号 = e.DataRow("订单单号") "
dt = cmd.ExecuteReader()
For Each dr1 As DataRow In dt.DataRows
    Dim dr2 As DataRow = DataTables("销售发货明细").AddNew()
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
    Next
Next
End If

--  作者:有点甜
--  发布时间:2019/1/3 16:16:00
--  

cmd.CommandText = "SELECT * Fro m {销售订单明细} Where 订单单号 = e.DataRow("订单单号") "

 

改成

 

cmd.CommandText = "SELECT * Fro m {销售订单明细} Where 订单单号 = \'" & e.DataRow("订单单号") & "\'"