Foxtable(狐表)用户栏目专家坐堂 → 求大神祝我,数学高手


  共有3269人关注过本帖树形打印复制链接

主题:求大神祝我,数学高手

帅哥哟,离线,有人找我吗?
大红袍
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/9 9:12:00 [显示全部帖子]

请做例子上传上来。类似的问题你问过了啊,变通来用啊。

 

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=75219&authorid=0&page=0&star=1

 


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/9 9:15:00 [显示全部帖子]

订单明细那里,直接得到单价,然后直接得到总价,统计表那里直接合计总价就行啊


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/9 10:16:00 [显示全部帖子]

看3楼4楼

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/9 10:19:00 [显示全部帖子]

直接取明细表的金额列,合计就是答案了啊。

 

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/9 11:01:00 [显示全部帖子]

无语,看datacolchanged事件的代码啊,自动查单价啊

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/9 12:29:00 [显示全部帖子]

Select Case e.DataCol.Name
    Case "客户名称", "提货地点", "提油数量", "品种"
        If e.DataRow.IsNull("客户名称") OrElse e.DataRow.IsNull("提货地点") Then
            e.DataRow("单价") = Nothing
        Else
            Dim psum As Double = e.DataTable.Compute("sum(提油数量)", "_Identify < " & e.DataRow("_Identify") & " and 客户名称 = '" & e.DataRow("客户名称") & "' and 提货地点 = '" & e.DataRow("提货地点") & "' and 品种 = '" & e.DataRow("品种") & "'")
            Dim drs As List(Of DataRow) = DataTables("订单").Select("客户名称 = '" & e.DataRow("客户名称") & "' and 提货地点 = '" & e.DataRow("提货地点") & "' and 产品名称 = '" & e.DataRow("品种") & "'", "订单日期")
            Dim sum As Double = 0
           
            For Each dr As DataRow In  drs
                sum += dr("数量")
                If sum >= psum Then
                    e.DataRow("单价") = dr("单价")
                    Exit For
                End If
            Next
        End If
End Select


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/9 15:24:00 [显示全部帖子]

Select Case e.DataCol.Name
    Case "客户名称", "提货地点", "提油数量", "品种", "实际提油数量"
        If e.DataRow.IsNull("客户名称") OrElse e.DataRow.IsNull("提货地点") OrElse e.DataRow.IsNull("实际提油数量") Then
            e.DataRow("单价") = Nothing
        Else
            Dim psum As Double = e.DataTable.Compute("sum(实际提油数量)", "_Identify < " & e.DataRow("_Identify") & " and 客户名称 = '" & e.DataRow("客户名称") & "' and 提货地点 = '" & e.DataRow("提货地点") & "' and 品种 = '" & e.DataRow("品种") & "'")
            Dim drs As List(Of DataRow) = DataTables("订单").Select("客户名称 = '" & e.DataRow("客户名称") & "' and 提货地点 = '" & e.DataRow("提货地点") & "' and 产品名称 = '" & e.DataRow("品种") & "'", "订单日期")
            Dim sum As Double = 0
            Dim zj As Double = 0
            Dim sl As Double = 0
            For i As Integer = 0 To drs.count - 1
                Dim dr = drs(i)
                sum += dr("数量")
                If sum >= psum Then
                    If sum - psum >= e.DataRow("实际提油数量") Then
                        e.DataRow("单价") = ((e.DataRow("实际提油数量")-sl) * dr("单价") + zj) / e.DataRow("实际提油数量")
                        Exit For
                    Else
                        sl += dr("数量")
                        zj += dr("数量") * dr("单价")
                    End If
                End If
            Next
        End If
End Select

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/9 16:13:00 [显示全部帖子]

明细表加一列金额列,直接给金额列赋值。不求平均单价就好啊。


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/9 16:22:00 [显示全部帖子]

 e.DataRow("单价") = ((e.DataRow("实际提油数量")-sl) * dr("单价") + zj) / e.DataRow("实际提油数量")

改成

 

  e.DataRow("实际金额") = (e.DataRow("实际提油数量")-sl) * dr("单价") + zj


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/9 16:26:00 [显示全部帖子]

整体代码要改一下

 

Select Case e.DataCol.Name
    Case "客户名称", "提货地点", "提油数量", "品种", "实际提油数量"
        If e.DataRow.IsNull("客户名称") OrElse e.DataRow.IsNull("提货地点") OrElse e.DataRow.IsNull("实际提油数量") Then
            e.DataRow("单价") = Nothing
        Else
            Dim psum As Double = e.DataTable.Compute("sum(实际提油数量)", "_Identify < " & e.DataRow("_Identify") & " and 客户名称 = '" & e.DataRow("客户名称") & "' and 提货地点 = '" & e.DataRow("提货地点") & "' and 品种 = '" & e.DataRow("品种") & "'")
            Dim drs As List(Of DataRow) = DataTables("订单").Select("客户名称 = '" & e.DataRow("客户名称") & "' and 提货地点 = '" & e.DataRow("提货地点") & "' and 产品名称 = '" & e.DataRow("品种") & "'", "订单日期")
            Dim sum As Double = 0
            Dim zj As Double = 0
            Dim sl As Double = 0
            For i As Integer = 0 To drs.count - 1
                Dim dr = drs(i)
                sum += dr("数量")
                If sum >= psum Then
                    If sum - psum >= e.DataRow("实际提油数量") Then
                        e.DataRow("单价") = ((e.DataRow("实际提油数量")-sl) * dr("单价") + zj) / e.DataRow("实际提油数量")
                        Exit For
                    Else
                        Dim temp As Double = iif(sum-psum-sl<dr("数量"), sum-psum-sl, dr("数量"))
                        sl += temp
                        zj += temp * dr("单价")
                    End If
                End If
            Next
        End If
End Select


 回到顶部
总数 15 1 2 下一页