以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  求助,为什么有个累计出货数据每次打开就清零了?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=62141)

--  作者:youngling
--  发布时间:2014/12/25 23:48:00
--  求助,为什么有个累计出货数据每次打开就清零了?

各位高手,请帮我看下,我的订单明细表中的累计出货数,每次会根据出库明细表中的数据自动更新累计出货数,但是每次保存后在打开就会清零了,这是为什么呢?我找了2天也没找到原因,帮我看下吧,谢谢!

  


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

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.rar

 

 

还有我希望可以根据出库明细表中的开票情况自动更新订单明细表中的开票情况,但是如果变更了库存明细表中的 开票否 列数据,订单明细表中的开票否 数据不会发生变化。

 

说明:订单号,产品号,订单行号三个因素决定唯一的一个子订单,每个子订单可能有若干行出库明细,即分别出库,若干次出库可能分几次开票,不一定一起开票。

 

 

出库明细DataColChanged 里面的代码是:

If e.DataCol.name = "开票否"
    Dim filter As String = " [客户订单号] =  \'"& e.DataRow("客户订单号") & "\'  And [订单行号] =   \'"& e.DataRow("订单行号") & "\' "
    DataTables("订单明细表").DataCols("开票否").RaiseDataColChanged(filter)
End If

 

订单明细DataColChanged 里面的代码是:

 

If e.DataCol.name = "开票否" Then
    Dim i As Integer
    i=0
   Dim drs As List(Of DataRow)
\'Dim drs As DataRow
    drs = DataTables("出库明细").Select( " [客户订单号] =  \'"& e.DataRow("客户订单号") & "\'  And [订单行号] =   \'"& e.DataRow("订单行号") & "\'   " )
    Dim c2 As Integer = e.DataRow.GetChildRows("drs").Count
    For Each dr As DataRow In drs
        If dr("开票否") = True Then
            i=i+1
        End If
    Next
    If i = c2 And e.DataRow("未交货数量") <= 0 Then
        e.DataRow("开票否") = True
    End If
End If

[此贴子已经被作者于2014-12-25 23:54:41编辑过]

--  作者:Bin
--  发布时间:2014/12/26 8:12:00
--  
你那个列是表达式列.
--  作者:有点甜
--  发布时间:2014/12/26 9:07:00
--  

http://www.foxtable.com/help/topics/1380.htm

 


--  作者:youngling
--  发布时间:2014/12/26 10:17:00
--  

我倒!我晕,原来这么简单!这个累计出货数量的问题搞定了。

 

我一直在查代码哪里错了,怪不得查不出原因。

[此贴子已经被作者于2014-12-26 10:22:17编辑过]

--  作者:youngling
--  发布时间:2014/12/26 10:23:00
--  

那大侠们再帮我看下,这个代码哪里有问题呢。谢谢!

 

希望可以根据出库明细表中的开票情况自动更新订单明细表中的开票情况,但是如果变更了库存明细表中的 开票否 列数据,订单明细表中的开票否 数据不会发生变化。

 

说明:订单号,产品号,订单行号三个因素决定唯一的一个子订单,每个子订单可能有若干行出库明细,即分别出库,若干次出库可能分几次开票,不一定一起开票。

 

 

出库明细DataColChanged 里面的代码是:

If e.DataCol.name = "开票否"
    Dim filter As String = " [客户订单号] =  \'"& e.DataRow("客户订单号") & "\'  And [订单行号] =   \'"& e.DataRow("订单行号") & "\' "
    DataTables("订单明细表").DataCols("开票否").RaiseDataColChanged(filter)
End If

 

订单明细DataColChanged 里面的代码是:

 

If e.DataCol.name = "开票否" Then
    Dim i As Integer
    i=0
   Dim drs As List(Of DataRow)
\'Dim drs As DataRow
    drs = DataTables("出库明细").Select( " [客户订单号] =  \'"& e.DataRow("客户订单号") & "\'  And [订单行号] =   \'"& e.DataRow("订单行号") & "\'   " )
    Dim c2 As Integer = e.DataRow.GetChildRows("drs").Count
    For Each dr As DataRow In drs
        If dr("开票否") = True Then
            i=i+1
        End If
    Next
    If i = c2 And e.DataRow("未交货数量") <= 0 Then
        e.DataRow("开票否") = True
    End If
End If


--  作者:有点甜
--  发布时间:2014/12/26 10:35:00
--  

\'根据出库明细表中订单行号的开票情况得出本行是否开票
If e.DataCol.name = "开票否" Then

    Dim flag As Boolean = True
    Dim drs As List(Of DataRow)
    drs = DataTables("出库明细").Select( " [客户订单号] =  \'"& e.DataRow("客户订单号") & "\'  And [订单行号] =   \'"& e.DataRow("订单行号") & "\'   " )
    For Each dr As DataRow In drs
        If dr("开票否") = False Then
            flag = False
            Exit For
        End If
    Next
    If flag AndAlso e.DataRow("未交货数量") <= 0 Then
        e.DataRow("开票否") = True
    Else
        e.DataRow("开票否") = False
    End If
End If