Foxtable(狐表)用户栏目专家坐堂 → 求助


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

主题:求助

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


加好友 发短信
等级:一尾狐 帖子:470 积分:3641 威望:0 精华:0 注册:2017/11/5 14:47:00
求助  发帖心情 Post By:2020/8/10 16:54:00 [只看该作者]

  老师,给我看一下这个代码,我的一个系统里今天改了这个代码,是会员销售,普通销售 两种方式金额的算法,写好后,明天表商品类别的折扣也提取正确,可不知为什么,金额却无法相乘,注释掉添加的代码, 数量可以乘以单价,反复的在找问题,最后弄得项目也给崩溃了,已经发给客服在处理,老师你看一下哪里有问题了,竟能造成这么大的问题。

  Case "数量","单价"
        If e.DataRow.Isnull("数量") And e.DataRow.Isnull("单价")  Then
            e.DataRow("金额")=Nothing
        Else
            If e.DataRow("销售类型")= "普通销售" Then
                e.DataRow("金额")=e.DataRow("单价")*e.DataRow("数量")
            ElseIf e.DataRow("销售类型")= "会员销售" Then
                
                Dim r As Row = Tables("销售明细表").Current
                Dim dr1 As DataRow
                dr1 = DataTables("会员折扣表").Find("商品类别='" & r("商品类别") & "'")
                If dr1 IsNot Nothing Then
                    e.DataRow("折扣") = dr1("折扣")
                Else
                    e.DataRow("折扣") = 1
                End If
                
                
                e.DataRow("金额")=e.DataRow("单价")*e.DataRow("数量")*e.DataRow("折扣")
            End If
        End If

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105493 积分:536456 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/8/10 16:59:00 [只看该作者]

Case "数量","单价","销售类型","商品类别"
        If e.DataRow.Isnull("数量") orelse e.DataRow.Isnull("单价")  Then
            e.DataRow("金额")=Nothing
        Else
            If e.DataRow("销售类型")= "普通销售" Then
                e.DataRow("金额")=e.DataRow("单价")*e.DataRow("数量")
            ElseIf e.DataRow("销售类型")= "会员销售" Then

                Dim dr1 As DataRow
                dr1 = DataTables("会员折扣表").Find("商品类别='" & e.DataRow("商品类别") & "'")
                If dr1 IsNot Nothing Then
                    e.DataRow("折扣") = dr1("折扣")
                Else
                    e.DataRow("折扣") = 1
                End If
                
                
                e.DataRow("金额")=e.DataRow("单价")*e.DataRow("数量")*e.DataRow("折扣")
            End If
        End If


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


加好友 发短信
等级:一尾狐 帖子:470 积分:3641 威望:0 精华:0 注册:2017/11/5 14:47:00
  发帖心情 Post By:2020/8/11 1:09:00 [只看该作者]

If e.DataRow.Isnull("数量") orelse e.DataRow.Isnull("单价")  Then

dr1 = DataTables("会员折扣表").Find("商品类别='" & e.DataRow("商品类别") & "'")    这两个地方,我改了  If e.DataRow.Isnull("数量") and e.DataRow.Isnull("单价")    dr1 = DataTables("会员折扣表").Find("商品类别='" & e.DataRow("商品类别") & "'and 会员编号 = '" & e.DataRow("会员编号") & "'")

因为是orelse 的时候,会员折扣一直取不上值,只有改成and 就能取到值了,也不知道怎么回事,

现在的问题是,当单价 数量 输入完毕,还是不能相乘,程序出错,退出。   麻烦老师再看一下还是哪里有问题


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105493 积分:536456 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/8/11 8:33:00 [只看该作者]

请上传实例测试。

改成and没有任何意义,使用的是单价*数量,只有其中一个为空(0),金额肯定是0(或者空),这时折扣查不查都没有什么用

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


加好友 发短信
等级:一尾狐 帖子:470 积分:3641 威望:0 精华:0 注册:2017/11/5 14:47:00
  发帖心情 Post By:2020/8/11 10:08:00 [只看该作者]

Select Case e.DataCol.name
    Case "数量","单价","销售类型","商品类别"
        If e.DataRow.Isnull("数量") OrElse e.DataRow.Isnull("单价") Then
            e.DataRow("金额")=Nothing
        Else
            e.DataRow("金额")=e.DataRow("单价") * e.DataRow("数量")
            If e.DataRow("销售类型")= "普通销售" Then
                e.DataRow("实收金额")=e.DataRow("金额")
            ElseIf e.DataRow("销售类型")= "会员销售" Then
                Dim dr1 As DataRow
                dr1 = DataTables("会员折扣表").Find("商品类别='" & e.DataRow("商品类别") & "'and 会员编号 = '" & e.DataRow("会员编号") & "'")
                If dr1 IsNot Nothing Then
                    e.DataRow("折扣") = dr1("折扣")
                    e.DataRow("会员折扣") = dr1("会员折扣")
                Else
                    e.DataRow("折扣") = 1
                    e.DataRow("会员折扣") = "不打折"
                End If
                e.DataRow("实收金额")=e.DataRow("单价") * e.DataRow("数量") * e.DataRow("折扣")
            End If
        End If
End Select


Tables("面粉销售总表").Current("总金额") = DataTables("面粉销售明细表").Compute("sum(金额)","销售单号 = '" & Tables("面粉销售总表").Current("销售单号") & "'")
Tables("面粉销售总表").Current("总数量") = DataTables("面粉销售明细表").Compute("sum(数量)","销售单号 = '" & Tables("面粉销售总表").Current("销售单号") & "'")
'Tables("面粉销售总表").Current("实收金额") = DataTables("面粉销售明细表").Compute("sum(实收金额)","销售单号 = '" & Tables("面粉销售总表").Current("销售单号") & "'")


老师,是我给搞乱了,现在正确了,可我还想在总表上体现 这张单子的实收金额,现在就是这个红色代码在作怪,这个开启就出错,我是做的两个窗体,老师这个值怎么取


 

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105493 积分:536456 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/8/11 10:24:00 [只看该作者]

后面3句代码是放在哪里的?"面粉销售总表"是另外一个表?

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


加好友 发短信
等级:一尾狐 帖子:470 积分:3641 威望:0 精华:0 注册:2017/11/5 14:47:00
  发帖心情 Post By:2020/8/11 10:31:00 [只看该作者]

这些代码全都是放在  面粉销售明细表 DataColChanged 中的

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


加好友 发短信
等级:一尾狐 帖子:470 积分:3641 威望:0 精华:0 注册:2017/11/5 14:47:00
  发帖心情 Post By:2020/8/11 10:33:00 [只看该作者]

面粉销售总表 放客户姓名 什么,明细表 放商品明细的

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105493 积分:536456 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/8/11 10:36:00 [只看该作者]

参考这里的统计用法:http://www.foxtable.com/webhelp/topics/1472.htm,看【另一种自动更新方式

 回到顶部