以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]跨表取数计算代码错误 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=133108) |
-- 作者:hanzhang98 -- 发布时间:2019/4/7 8:03:00 -- [求助]跨表取数计算代码错误 各位老师早上好。又有问题恳请老师帮助,就是跨表取数计算各类津贴、补贴的代码。昨天晚上搞了一夜也写不出来,还得恳请老师费心帮助。谢谢。 [此贴子已经被作者于2019/5/6 17:31:58编辑过]
|
-- 作者:有点甜 -- 发布时间:2019/4/7 9:21:00 -- 参考代码
Select Case e.DataCol.name |
-- 作者:hanzhang98 -- 发布时间:2019/4/7 11:30:00 -- 谢谢老师帮助指导。 现在的新问题是:如果我将列属性的“最大小数位数”设置为“2”、“固定小数位数”设为“True”时,[前夜班津贴标准]就写不进去。将两个表的相关列属性设置一至也不行,必须均恢复为“默认值”,才能写进去。如果我不想用属性的“默认值”,想要用“最大小数位数”设置为“2”、“固定小数位数”设为“True”时,要怎样才行。谢谢。
|
-- 作者:有点甜 -- 发布时间:2019/4/7 12:01:00 -- 我测试没问题,请上传具体实例测试。 |
-- 作者:hanzhang98 -- 发布时间:2019/4/7 12:18:00 -- 老师好。仿照您指导的代码,“夜班津贴”部分已能运行。新的问题是: 1、将“职称津贴”部分改为如下单一级别的代码后,在“薪资计算表”的“职称级别”列的任意表格中输入任意内容【包括不是“高级”两个字的任意字符】,均将“津贴补贴标准”表“计发标准”列“高级”对应的计发标准写入。错误代码如下: Select Case e.DataCol.name Case "职称级别", "职称津贴" \'判断更改的列 If e.DataRow.IsNull("职称级别") Then \'是否为空(Is是IsNull否) e.DataRow("职称津贴") = Nothing \'为空,则清除 Else Dim Zcjb As String = e.DataRow("职称级别") \'声明变量 \'检验"msgbox(Zcjb)" Dim Zcjt_g As DataRow = DataTables("津贴补贴标准").Find("津贴项目 = \'高级\'") If Zcjt_g IsNot Nothing Then e.DataRow("职称津贴") = Zcjt_g("计发标准") Else e.DataRow("职称津贴") = Nothing End If End If End Select 请老师指正。谢谢。 [此贴子已经被作者于2019/4/7 13:21:15编辑过]
|
-- 作者:有点甜 -- 发布时间:2019/4/7 12:26:00 -- 代码改成
Select Case e.DataCol.name
Case "职称级别"
If e.DataRow.IsNull("职称级别") Then \'是否为空(Is是IsNull否)
e.DataRow("职称津贴") = Nothing \'为空,则清除
Else
Dim Zcjb As String = e.DataRow("职称级别") \'声明变量 \'检验"msgbox(Zcjb)"
Dim Zcjt_g As DataRow = DataTables("津贴补贴标准").Find("津贴项目 = \'" & Zcjb & "\'") If Zcjt_g IsNot Nothing Then
e.DataRow("职称津贴") = Zcjt_g("计发标准")
Else
e.DataRow("职称津贴") = Nothing
End If
End If
End Select
|
-- 作者:hanzhang98 -- 发布时间:2019/4/7 13:19:00 -- 谢谢老师。不好意思,这段又不对了,还请老师指正。谢谢 Select Case e.DataCol.name \'Case "性别", "女工卫生费" \'判断更改的列 \'If e.DataRow.("性别") <> "女" Then \'性别不是女 \'e.DataRow("女工卫生费") = Nothing \'则清除 \'Else \'Dim Xb As String = e.DataRow("性别") \'声明变量 \'Dim Wsf As DataRow = DataTables("津贴补贴标准").Find("津贴项目 = \'卫生费\'") \'检验"msgbox(Hyjt)" \'If Wsf IsNot Nothing Then \'e.DataRow("女工卫生费") = Wsf("计发标准") \'Else \'e.DataRow("女工卫生费") = Nothing \'End If \'End If End Select [此贴子已经被作者于2019/4/7 13:20:16编辑过]
|
-- 作者:有点甜 -- 发布时间:2019/4/7 14:58:00 -- Select Case e.DataCol.name Case "性别" If e.DataRow.("性别") <> "女" Then \'性别不是女 e.DataRow("女工卫生费") = Nothing \'则清除 Else Dim Xb As String = e.DataRow("性别") \'声明变量 Dim Wsf As DataRow = DataTables("津贴补贴标准").Find("津贴项目 = \'卫生费\'") \'检验"msgbox(Hyjt)" If Wsf IsNot Nothing Then e.DataRow("女工卫生费") = Wsf("计发标准") Else e.DataRow("女工卫生费") = Nothing End If End If End Select |
-- 作者:hanzhang98 -- 发布时间:2019/4/7 15:14:00 -- 谢谢老师。 这句代码出错:If e.DataRow.("性别") <> "女" Then \'性别不是女
|
-- 作者:有点甜 -- 发布时间:2019/4/7 15:26:00 -- 改成
If e.DataRow("性别") <> "女" Then \'性别不是女 |