以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  个税扣款计算  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=45861)

--  作者:漂亮美眉vszh
--  发布时间:2014/2/12 14:40:00
--  个税扣款计算
工资核算时,社保扣款列,如果先把工资输进去,再输社保(另外一张明细表,自动带入工资表),个税就不会自动计算;
如果先把社保输进去,再输工资,个税就才可以自动计算。

--  作者:狐狸爸爸
--  发布时间:2014/2/12 14:41:00
--  

答案:

 

http://www.foxtable.com/help/topics/0602.htm

 


--  作者:漂亮美眉vszh
--  发布时间:2014/2/12 14:43:00
--  
我用了 IsNull‘
[合计工资]+IsNull([加班费2],0)+IsNull([其他补贴],0)-IsNull([绩效考核扣款],0)-IsNull([地方税扣款],0)-IsNull([事假扣款],0)-IsNull([病假扣款],0)-IsNull([全勤扣款],0)-IsNull([公积金代扣],0)-IsNull([社保代扣],0)

--  作者:漂亮美眉vszh
--  发布时间:2014/2/12 14:46:00
--  
第一个合计工资也加了ISNULL,试了下也不行,奇怪
--  作者:Bin
--  发布时间:2014/2/12 14:53:00
--  
那就上例子,我瞅瞅.
--  作者:sloyy
--  发布时间:2014/2/12 14:53:00
--  
DataColChanged事件
加个条件判断: 
If e.DataCol.Name = "工资" Then

If e.DataRow.IsNull("社保") Then \' 社保是否为空
else
e.DataRow("个税")=........
endif

endif

--  作者:狐狸爸爸
--  发布时间:2014/2/12 14:56:00
--  

把你的表发上来,保留几行数据就行,一分钟给你搞定


--  作者:狐狸爸爸
--  发布时间:2014/2/12 14:57:00
--  

我知道了,你可能用的是代码计算,那么需注意:

http://www.foxtable.com/help/topics/2381.htm

 


--  作者:漂亮美眉vszh
--  发布时间:2014/2/12 15:19:00
--  
狐狸爸爸,对的,就是这个原因。代码是从帮助手册内找的,不会写~~帮帮看下吧~~
If e.DataRow("工资分配") <> "外籍管理工资"
        If e.DataCol.Name <> "个人所得税代扣" AndAlso e.DataCol.IsNumeric Then
            e.DataRow("个人所得税代扣") = InTax(e.DataRow("税前工资") - 3500)
        End If
        
    End If
    If e.DataRow("个人所得税代扣") < 1 Then
        e.DataRow("个人所得税代扣") = 0
    End If


--  作者:狐狸爸爸
--  发布时间:2014/2/12 15:22:00
--  

我不知道你具体的表结构,一般这种问题,你应该将表设计好,保留少量数据,设置好公式和代码,然后发上来,并说明问题。

有具体的问题,才能给您具体的答案。