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


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

主题:[求助]计算

帅哥哟,离线,有人找我吗?
江南小镇
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1701 积分:11355 威望:0 精华:0 注册:2015/6/22 8:11:00
  发帖心情 Post By:2018/1/30 12:54:00 [只看该作者]

老师,上面代码,我在"税率"列中输入数据金额列没有数据。
[此贴子已经被作者于2018/1/30 13:09:03编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/30 14:51:00 [只看该作者]

1、你能不能看一下代码?看懂代码来?

 

2、输入税率,你要计算哪一个值?如果金额列为空,就计算金额;如果税金为空就计算税金;如果两个都有值,那就计算税金。不然,你逻辑是什么?


 回到顶部
帅哥哟,离线,有人找我吗?
江南小镇
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1701 积分:11355 威望:0 精华:0 注册:2015/6/22 8:11:00
  发帖心情 Post By:2018/1/30 20:50:00 [只看该作者]

老师,税率、金额 、税金是根据价税合计列得出的数值。



图片点击可在新窗口打开查看此主题相关图片如下:图像 1.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2018/1/30 20:59:32编辑过]

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/1/30 21:44:00 [只看该作者]

Select Case e.DataCol.Name
    Case "税率"
        SystemReady = False
        If e.DataRow("税率") > 0 Then
            e.DataRow("金额") = e.DataRow("价税合计") / e.DataRow("税率")
            e.DataRow("税金") = e.DataRow("价税合计") - e.DataRow("金额")
        End If
        SystemReady = True
    Case "税金"
        SystemReady = False
        If e.DataRow.isnull("税金") = False Then
            e.DataRow("金额") = e.DataRow("价税合计") - e.DataRow("税金")
            If e.DataRow("金额") > 0 Then
                e.DataRow("税率") = e.DataRow("价税合计") / e.DataRow("金额")
            End If
        End If
        SystemReady = True
    Case "金额"
        SystemReady = False
        If e.DataRow.isnull("金额") = False Then
            e.DataRow("税金") = e.DataRow("价税合计") - e.DataRow("金额")
            If e.DataRow("金额") > 0 Then
                e.DataRow("税率") = e.DataRow("价税合计") / e.DataRow("金额")
            End If
        End If
        SystemReady = True
End Select

 回到顶部
帅哥哟,离线,有人找我吗?
江南小镇
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1701 积分:11355 威望:0 精华:0 注册:2015/6/22 8:11:00
  发帖心情 Post By:2018/1/30 22:19:00 [只看该作者]

谢谢老师,太感谢了。

 回到顶部
帅哥哟,离线,有人找我吗?
江南小镇
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1701 积分:11355 威望:0 精华:0 注册:2015/6/22 8:11:00
  发帖心情 Post By:2018/1/30 22:44:00 [只看该作者]

老师,通过下面代码计算后再修改出库_数量、出库_售价列后出库_税率列的值会错误的自动修改。
Select Case e.DataCol.Name
    Case "出库_数量"
        SystemReady = False
        If e.DataRow.isnull("出库_数量") = False Then
            If e.DataRow.IsNull("出库_价税合计") Then
                e.DataRow("出库_价税合计") = e.DataRow("出库_价税合计") * e.DataRow("出库_数量") 
            ElseIf e.DataRow.isnull("出库_售价") Then
                e.DataRow("出库_售价") = e.DataRow("出库_价税合计") / e.DataRow("出库_数量")
            Else
                e.DataRow("出库_价税合计") = e.DataRow("出库_售价") * e.DataRow("出库_数量") 
                
            End If
        End If
        SystemReady = True
    Case "出库_售价"
        SystemReady = False
        If e.DataRow.isnull("出库_售价") = False Then
            If e.DataRow.IsNull("出库_价税合计") Then
                e.DataRow("出库_价税合计") = e.DataRow("出库_售价") * e.DataRow("出库_数量") 
            ElseIf e.DataRow.isnull("出库_数量") Then
                e.DataRow("出库_数量") = e.DataRow("出库_价税合计") / e.DataRow("出库_售价") 
            Else
                e.DataRow("出库_价税合计") = e.DataRow("出库_售价") * e.DataRow("出库_数量") 
            End If
        End If
        SystemReady = True
    Case "出库_价税合计"
        SystemReady = False
        If e.DataRow.isnull("出库_价税合计") = False Then
            If e.DataRow.IsNull("出库_售价") Then
                If e.DataRow.IsNull("出库_数量") = False Then
                    e.DataRow("出库_售价") = e.DataRow("出库_价税合计") / e.DataRow("出库_数量")
                End If
            ElseIf e.DataRow.isnull("出库_数量") Then
                If e.DataRow.IsNull("出库_售价") = False Then
                    e.DataRow("出库_数量") = e.DataRow("出库_价税合计") / e.DataRow("出库_售价") 
                End If
            Else
                If e.DataRow.IsNull("出库_数量") = False Then
                    e.DataRow("出库_售价") = e.DataRow("出库_价税合计") / e.DataRow("出库_数量")
                End If
            End If
        End If
        SystemReady = True
End Select
'--------------------------------------------------------------------------------------
Select Case e.DataCol.Name
    Case "出库_税率"
        SystemReady = False
        If e.DataRow("出库_税率") > 0 Then
            e.DataRow("出库_金额") = e.DataRow("出库_价税合计") / e.DataRow("出库_税率")
            e.DataRow("出库_税金") = e.DataRow("出库_价税合计") - e.DataRow("出库_金额")
        End If
        SystemReady = True
    Case "出库_税金"
        SystemReady = False
        If e.DataRow.isnull("出库_税金") = False Then
            e.DataRow("出库_金额") = e.DataRow("出库_价税合计") - e.DataRow("出库_税金")
            If e.DataRow("出库_金额") > 0 Then
                e.DataRow("出库_税率") = e.DataRow("出库_价税合计") / e.DataRow("出库_金额")
            End If
        End If
        SystemReady = True
    Case "出库_金额"
        SystemReady = False
        If e.DataRow.isnull("出库_金额") = False Then
            e.DataRow("出库_税金") = e.DataRow("出库_价税合计") - e.DataRow("出库_金额")
            If e.DataRow("出库_金额") > 0 Then
                e.DataRow("出库_税率") = e.DataRow("出库_价税合计") / e.DataRow("出库_金额")
            End If
        End If
        SystemReady = True
End Select


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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/1/30 23:04:00 [只看该作者]

这个不会有影响,应该是其它代码的原因

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/31 9:51:00 [只看该作者]

回复16楼,上传实例说明,说明测试步骤。

 回到顶部
帅哥哟,离线,有人找我吗?
江南小镇
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1701 积分:11355 威望:0 精华:0 注册:2015/6/22 8:11:00
  发帖心情 Post By:2018/1/31 20:04:00 [只看该作者]

老师,我上面说的错误计算跟下面我标出的代码有关联吗?

Dim ck As DataRow = e.DataRow
Dim rk = DataTables("入库明细").Find("入库单编号明细 = '" & e.DataRow("入库批次号") & "'")
If rk IsNot Nothing Then
    Dim sum = e.DataTable.compute("sum(出库_数量)", "入库批次号 = '" & e.DataRow("入库批次号") & "' and _Identify <= " & e.DataRow("_Identify"))
    ck("最后库存") = rk("入库_数量") - sum
End If


'MessageBox.Show(8)

'=================================================================================================================
Select Case e.DataCol.Name
    Case "出库_数量"
        SystemReady = False
        If e.DataRow.isnull("出库_数量") = False Then
            If e.DataRow.IsNull("出库_价税合计") Then
                e.DataRow("出库_价税合计") = e.DataRow("出库_价税合计") * e.DataRow("出库_数量") 
            ElseIf e.DataRow.isnull("出库_售价") Then
                e.DataRow("出库_售价") = e.DataRow("出库_价税合计") / e.DataRow("出库_数量")
            Else
                e.DataRow("出库_价税合计") = e.DataRow("出库_售价") * e.DataRow("出库_数量") 
                
            End If
        End If
        SystemReady = True
    Case "出库_售价"
        SystemReady = False
        If e.DataRow.isnull("出库_售价") = False Then
            If e.DataRow.IsNull("出库_价税合计") Then
                e.DataRow("出库_价税合计") = e.DataRow("出库_售价") * e.DataRow("出库_数量") 
            ElseIf e.DataRow.isnull("出库_数量") Then
                e.DataRow("出库_数量") = e.DataRow("出库_价税合计") / e.DataRow("出库_售价") 
            Else
                e.DataRow("出库_价税合计") = e.DataRow("出库_售价") * e.DataRow("出库_数量") 
            End If
        End If
        SystemReady = True
    Case "出库_价税合计"
        SystemReady = False
        If e.DataRow.isnull("出库_价税合计") = False Then
            If e.DataRow.IsNull("出库_售价") Then
                If e.DataRow.IsNull("出库_数量") = False Then
                    e.DataRow("出库_售价") = e.DataRow("出库_价税合计") / e.DataRow("出库_数量")
                End If
            ElseIf e.DataRow.isnull("出库_数量") Then
                If e.DataRow.IsNull("出库_售价") = False Then
                    e.DataRow("出库_数量") = e.DataRow("出库_价税合计") / e.DataRow("出库_售价") 
                End If
            Else
                If e.DataRow.IsNull("出库_数量") = False Then
                    e.DataRow("出库_售价") = e.DataRow("出库_价税合计") / e.DataRow("出库_数量")
                End If
            End If
        End If
        SystemReady = True
End Select
'--------------------------------------------------------------------------------------
Select Case e.DataCol.Name
    Case "出库_税率"
        SystemReady = False
        If e.DataRow("出库_税率") > 0 Then
            e.DataRow("出库_金额") = e.DataRow("出库_价税合计") / e.DataRow("出库_税率")
            e.DataRow("出库_税金") = e.DataRow("出库_价税合计") - e.DataRow("出库_金额")
        End If
        SystemReady = True
    Case "出库_税金"
        SystemReady = False
        If e.DataRow.isnull("出库_税金") = False Then
            e.DataRow("出库_金额") = e.DataRow("出库_价税合计") - e.DataRow("出库_税金")
            If e.DataRow("出库_金额") > 0 Then
                e.DataRow("出库_税率") = e.DataRow("出库_价税合计") / e.DataRow("出库_金额")
            End If
        End If
        SystemReady = True
    Case "出库_金额"
        SystemReady = False
        If e.DataRow.isnull("出库_金额") = False Then
            e.DataRow("出库_税金") = e.DataRow("出库_价税合计") - e.DataRow("出库_金额")
            If e.DataRow("出库_金额") > 0 Then
                e.DataRow("出库_税率") = e.DataRow("出库_价税合计") / e.DataRow("出库_金额")
            End If
        End If
        SystemReady = True
End Select

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/31 20:16:00 [只看该作者]

回复19楼,无关。测试是否有关系,你删除代码后测试,再加上代码测试,即可知道。

 回到顶部
总数 26 上一页 1 2 3 下一页