以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]执行下列代码时,软件闪退,什么原因,帮看一下,谢谢  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=115741)

--  作者:hrw68529
--  发布时间:2018/3/13 16:32:00
--  [求助]执行下列代码时,软件闪退,什么原因,帮看一下,谢谢
Select Case e.DataCol.Name
    Case "年度","身份证号","基本工资_小计","补贴_小计","平时考核奖月均额","月均健康休养费","个人状态","离休干部月均生活补贴","月均年终一次性奖","月均平安建设奖","月均目标考核奖","月均全国文明城市奖","基本养老金"
        Dim fdr7 As DataRow = e.DataTable.find("月均文明单位奖 Is not null And 身份证号 = \'" & e.DataRow("身份证号") & "\'", "月均文明单位奖")
        Dim fdr8 As DataRow = e.DataTable.find("月均健康休养费 Is not null And 身份证号 = \'" & e.DataRow("身份证号") & "\'", "月均健康休养费")
        If e.DataRow("年度") = 2017 Then
            e.DataRow("月均文明单位奖") = 600
        Else
            If fdr7 IsNot Nothing  And e.DataRow("个人状态") = "现职"  Then
                e.DataRow("月均文明单位奖") = format((e.DataRow("基本工资_小计") + e.DataRow("补贴_小计") + e.DataRow("平时考核奖月均额") _
                + fdr7("月均文明单位奖") + e.DataRow("月均年终一次性奖") + e.DataRow("月均平安建设奖") + e.DataRow("月均目标考核奖") + e.DataRow("月均全国文明城市奖"))/12,"0")
                If e.DataRow("月均文明单位奖") < 600 Then
                    e.DataRow("月均文明单位奖") =600
                Else
                    e.DataRow("月均文明单位奖") = format((e.DataRow("基本工资_小计") + e.DataRow("补贴_小计") + e.DataRow("平时考核奖月均额") _
                    + fdr7("月均文明单位奖") + e.DataRow("月均年终一次性奖") + e.DataRow("月均平安建设奖") + e.DataRow("月均目标考核奖") + e.DataRow("月均全国文明城市奖"))/12,"0")
                End If
            ElseIf fdr7 IsNot Nothing And fdr8 IsNot Nothing  And e.DataRow("个人状态") = "退休" Or  e.DataRow("个人状态") = "离休"  Then
                e.DataRow("月均文明单位奖") = format((e.DataRow("基本养老金") + e.DataRow("补贴_物业补贴") + e.DataRow("离休干部月均生活补贴") _
                + fdr7("月均文明单位奖") + fdr8("月均健康休养费") + e.DataRow("月均健康休养费") + e.DataRow("月均全国文明城市奖"))/12,"0")
                If e.DataRow("月均文明单位奖") < 600 Then
                    e.DataRow("月均文明单位奖") = 600
                Else
                    e.DataRow("月均文明单位奖") = format((e.DataRow("基本养老金") + e.DataRow("补贴_物业补贴") + e.DataRow("离休干部月均生活补贴") _
                    + fdr7("月均文明单位奖") + fdr8("月均健康休养费") + e.DataRow("月均健康休养费") + e.DataRow("月均全国文明城市奖"))/12,"0")
                End If
            End If
        End If
End Select


--  作者:有点甜
--  发布时间:2018/3/13 17:08:00
--  

你是不是还写了其它代码?不要死循环

 

http://www.foxtable.com/webhelp/scr/1522.htm

 


--  作者:hrw68529
--  发布时间:2018/3/13 17:16:00
--  
其他代码运行正常,就是写入这个代码后,就出现问题了
--  作者:有点甜
--  发布时间:2018/3/13 17:59:00
--  
以下是引用hrw68529在2018/3/13 17:16:00的发言:
其他代码运行正常,就是写入这个代码后,就出现问题了

 

datacochanged事件删除其余代码,单独测试1楼,不应该有问题的。

 

如果有问题,实例发上来测试。


--  作者:hrw68529
--  发布时间:2018/3/14 8:04:00
--  
修改代码后,出现以下图片:
图片点击可在新窗口打开查看此主题相关图片如下:截图01.jpg
图片点击可在新窗口打开查看

上传软件:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:上传软件.zip


--  作者:hrw68529
--  发布时间:2018/3/14 8:05:00
--  
请有点甜看看软件的代码到底哪儿出错了,谢谢
--  作者:有点甜
--  发布时间:2018/3/14 8:51:00
--  

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:信阳市人社局工资管理系统.foxdb


--  作者:hrw68529
--  发布时间:2018/3/14 9:43:00
--  
有点甜,是哪个地方出错了?我好明白
--  作者:有点甜
--  发布时间:2018/3/14 9:46:00
--  

比如这个代码
 
ElseIf fdr7 IsNot Nothing And fdr8 IsNot Nothing  And e.DataRow("个人状态") = "退休" Or  e.DataRow("个人状态") = "离休"  Then
 
要改成
 
ElseIf fdr7 IsNot Nothing Andalso fdr8 IsNot Nothing  Andalso (e.DataRow("个人状态") = "退休" Or  e.DataRow("个人状态") = "离休")  Then

 


 
 


--  作者:hrw68529
--  发布时间:2018/3/14 9:50:00
--  
谢谢