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


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

主题:[求助]计算

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/28 23:31:00 [显示全部帖子]

直接复制,粘贴,修改列名,就可以的啊。有什么问题?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/29 11:21: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

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/30 11:19: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.isnull("税率") = False Then
            If e.DataRow.IsNull("金额") Then
                e.DataRow("金额") = e.DataRow("税金") / (e.DataRow("税率")-1)
            ElseIf e.DataRow.isnull("税金") Then
                e.DataRow("税金") = e.DataRow("金额") * (e.DataRow("税率")-1)
            Else
                e.DataRow("税金") = e.DataRow("金额") * (e.DataRow("税率")-1)
            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("税率")-1)
                End If
            ElseIf e.DataRow.isnull("税率") Then
                If e.DataRow.isnull("金额") = False Then
                    e.DataRow("税率") = e.DataRow("税金") / e.DataRow("金额") + 1
                End If
            Else
                If e.DataRow.isnull("税率") = False Then
                    e.DataRow("金额") = e.DataRow("税金") / (e.DataRow("税率")-1)
                End If
            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("税率")-1)
                End If
            ElseIf e.DataRow.isnull("税率") Then
                e.DataRow("税率") = e.DataRow("税金") / e.DataRow("金额") + 1
            Else
                If e.DataRow.isnull("税率") = False Then
                    e.DataRow("税金") = e.DataRow("金额") * (e.DataRow("税率")-1)
                End If
            End If
        End If
        SystemReady = True
       
End Select


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


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

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

 

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


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


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

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

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


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

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

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/31 23:08:00 [显示全部帖子]

以下是引用江南小镇在2018/1/31 22:47:00的发言:

老师,当数量列、单价列的数据修改后重置金额列或税金列税率列就会错误修改税率。

 

 

逻辑没问题。当税价合计修改以后,如果要计算金额、税金列,请重置税率列。

 

你重置金额列,就会计算税率和税金;重置税金,就会计算税率和金额。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/31 23:18:00 [显示全部帖子]

以下是引用江南小镇在2018/1/31 23:14:00的发言:
老师,如果价税合计修改后能通过代码自动重置税率列吗?

 

把税率列的代码拷贝写到【价税合计】那里去。

 

只要是 e.datarow("价税合计") = xxx 的代码后,都要写。

[此贴子已经被作者于2018/1/31 23:19:07编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/1 8:52:00 [显示全部帖子]

比如

 

e.DataRow("价税合计") = e.DataRow("单价") * e.DataRow("数量")

 

改成

 

        e.DataRow("价税合计") = e.DataRow("单价") * e.DataRow("数量")

        If e.DataRow("税率") > 0 Then
            e.DataRow("金额") = e.DataRow("价税合计") / e.DataRow("税率")
            e.DataRow("税金") = e.DataRow("价税合计") - e.DataRow("金额")
        End If

 回到顶部