以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  应交税额显示问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=144940)

--  作者:lfz123
--  发布时间:2020/1/3 15:02:00
--  应交税额显示问题
代码太多我复制了些主要的代码如下:
        For Each dc As DataCol In e.DataTable.DataCols
            If dc.name.Contains("简易") = False  Then
                If e.DataRow("正数是应交税额负数是留抵税额") < 0 Then
                    e.DataRow("应交税额") = Nothing
                Else
                    e.DataRow("应交税额") = e.DataRow("正数是应交税额负数是留抵税额")
                    
                    e.DataRow("城建税") = Round2(e.DataRow("应交税额") * 0.05 , 2)
                    e.DataRow("教育费") = round2(e.DataRow("应交税额") * 0.03 , 2)
                    e.DataRow("地方教育费") = round2(e.DataRow("应交税额") * 0.02 , 2)
                End If
            Else
                If e.DataRow("正数是应交税额负数是留抵税额") < 0 Then
                    e.DataRow("应交税额") = e.DataRow("简易销项税额")
                    e.DataRow("城建税") = Round2(e.DataRow("应交税额") * 0.05 , 2)
                    e.DataRow("教育费") = round2(e.DataRow("应交税额") * 0.03 , 2)
                    e.DataRow("地方教育费") = round2(e.DataRow("应交税额") * 0.02 , 2)
                Else
MessageBox.Show(e.DataRow("正数是应交税额负数是留抵税额"))   问题一:结果正确显示并跳出来4遍,下同
MessageBox.Show(e.DataRow("简易销项税额"))  
                    e.DataRow("应交税额") = e.DataRow("正数是应交税额负数是留抵税额") + e.DataRow("简易销项税额")  \'问题一:结果正确显示三次,最后一次即最终的却只显示第一个对话框的值\'
                    
                    e.DataRow("城建税") = Round2(e.DataRow("应交税额") * 0.05 , 2)
                    e.DataRow("教育费") = round2(e.DataRow("应交税额") * 0.03 , 2)
                    e.DataRow("地方教育费") = round2(e.DataRow("应交税额") * 0.02 , 2)
                End If
            End If
        Next

--  作者:有点蓝
--  发布时间:2020/1/3 15:24:00
--  
看不懂,请上传实例测试
--  作者:lfz123
--  发布时间:2020/1/3 16:20:00
--  回复:(有点蓝)看不懂,请上传实例测试
代码试了多次贴不上去,我分了2个截图,麻烦老师帮我看下

图片点击可在新窗口打开查看此主题相关图片如下:代码1.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:代码2.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:表结构.png
图片点击可在新窗口打开查看




--  作者:有点蓝
--  发布时间:2020/1/3 16:51:00
--  
1楼这段代码到底想要干嘛?请使用文字详细说明
--  作者:lfz123
--  发布时间:2020/1/3 17:22:00
--  回复:(有点蓝)1楼这段代码到底想要干嘛?请使用文字...
我只想得出这段代码的结果,但是结果却只等于e.DataRow("正数是应交税额负数是留抵税额") ,msg两个是都能正确显示结果的,不知道什么原因,计算出的结果却只有前面一个
 e.DataRow("应交税额") = e.DataRow("正数是应交税额负数是留抵税额") + e.DataRow("简易销项税额")

--  作者:有点蓝
--  发布时间:2020/1/3 17:26:00
--  
那就直接保留这一句代码不就行了。1楼剩下的99%的代码没有用就去掉呗。
--  作者:lfz123
--  发布时间:2020/1/4 13:26:00
--  回复:(有点蓝)那就直接保留这一句代码不就行了。1楼...
老师我做了个实例, 是我没描述清楚,问题1:有2个数据库需要切换,其中税金统计表一个有简易税额的列,一个数据库没有,切换不同数据库,需要做条件判断,然后统计应交税额,
问题2:销项发票 ctrl + D 复制 失效,见图效果说明如下:

图片点击可在新窗口打开查看此主题相关图片如下:问题描述.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:问题2.png
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:问题描述.zip



[此贴子已经被作者于2020/1/4 13:27:15编辑过]

--  作者:有点蓝
--  发布时间:2020/1/4 14:09:00
--  
Select Case e.DataCol.Name
    Case "正数是应交税额负数是留抵税额","简易销项税额"
        If e.DataRow("正数是应交税额负数是留抵税额") < 0 Then
            If e.DataTable.DataCols.Contains("简易销项税额") Then
                e.DataRow("应交税额") = e.DataRow("简易销项税额")
            Else
                e.DataRow("应交税额") = Nothing
            End If
        Else
            If e.DataTable.DataCols.Contains("简易销项税额") Then
                e.DataRow("应交税额") = e.DataRow("正数是应交税额负数是留抵税额") + e.DataRow("简易销项税额")
            Else
                e.DataRow("应交税额") = e.DataRow("正数是应交税额负数是留抵税额")
            End If
        End If
    Case "应交税额"
        e.DataRow("城建税") = Round2(e.DataRow("应交税额") * 0.05 , 2)
        e.DataRow("教育费") = round2(e.DataRow("应交税额") * 0.03 , 2)
        e.DataRow("地方教育费") = round2(e.DataRow("应交税额") * 0.02 , 2)
End Select

--  作者:有点蓝
--  发布时间:2020/1/4 14:10:00
--  
ctrl+d被系统收买了,用不了,只能改为其它的快捷键