Foxtable(狐表)用户栏目专家坐堂 → 累计代码出错


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

主题:累计代码出错

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
累计代码出错  发帖心情 Post By:2018/10/21 22:21:00 [只看该作者]

只一输入数据,软件就自动关闭,下面代码错在哪里?

Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "施工单位_本期完成造价","支付比例","施工单位_应付进度款","施工单位_应抵扣款项"
        dr("施工单位_本期进度款") = IIF(dr("支付比例") > 0,dr("施工单位_本期完成造价") * dr("支付比例"),dr("施工单位_本期完成造价"))
        dr("施工单位_应付进度款") = dr("施工单位_本期进度款") - dr("施工单位_应抵扣款项")
        
    Case "监理单位_本期完成造价","支付比例","监理单位_应付进度款","监理单位_应抵扣款项"
        dr("监理单位_本期进度款") = IIF(dr("支付比例") > 0,dr("监理单位_本期完成造价") * dr("支付比例"),dr("监理单位_本期完成造价"))
        dr("监理单位_应付进度款") = dr("监理单位_本期进度款") - dr("监理单位_应抵扣款项")
        
    Case "造价单位_本期完成造价","支付比例","造价单位_应付进度款","造价单位_应抵扣款项"
        dr("造价单位_应付进度款") = IIF(dr("支付比例") > 0,dr("造价单位_本期完成造价") * dr("支付比例"),dr("造价单位_本期完成造价"))
        dr("造价单位_应付进度款") = dr("造价单位_本期进度款") - dr("造价单位_应抵扣款项")

End Select

''=============累计计算================
Dim fdr As DataRow = DataTables("项目信息").Find("项目编号 = '" & dr("项目编号") & "'")
If fdr IsNot Nothing Then
    If fdr.IsNull("核准单位") = False Then
        Dim zj1 As String = fdr("核准单位") & "_本期完成造价"
        Dim zj2 As String = fdr("核准单位") & "_本期进度款"
        Dim zj3 As String = fdr("核准单位") & "_应抵扣款项"
        Dim zj4 As String = fdr("核准单位") & "_应付进度款"
        Select Case e.DataCol.Name
            Case zj1,zj2,zj3,zj4
                Dim drs As List(of DataRow) = e.DataTable.Select("", "项目编号,[_Identify]") '注意排序参数
                drs(0)("累计完成_工程造价") = drs(0)(zj1) '设置第一行的累计支出
                For i As Integer = 1 To drs.Count - 1  '从第二行开始逐行计算累计支出
                    If drs(i)("项目编号") = drs(i - 1)("项目编号") Then
                        drs(i)("累计完成_工程造价") = drs(i - 1)("累计完成_工程造价") + drs(i)(zj1)
                    Else
                        drs(i)("累计完成_工程造价") = drs(i)(zj1)
                    End If
                Next
                drs(0)("累计完成_应抵扣款项") = drs(0)(zj3) '设置第一行的累计支出
                For i As Integer = 1 To drs.Count - 1  '从第二行开始逐行计算累计支出
                    If drs(i)("项目编号") = drs(i - 1)("项目编号") Then
                        drs(i)("累计完成_应抵扣款项") = drs(i - 1)("累计完成_应抵扣款项") + drs(i)(zj3)
                    Else
                        drs(i)("累计完成_应抵扣款项") = drs(i)(zj3)
                    End If
                Next
                drs(0)("累计完成_工程进度款") = drs(0)(zj2) '设置第一行的累计支出
                For i As Integer = 1 To drs.Count - 1  '从第二行开始逐行计算累计支出
                    If drs(i)("项目编号") = drs(i - 1)("项目编号") Then
                        drs(i)("累计完成_工程进度款") = drs(i - 1)("累计完成_工程进度款") + drs(i)(zj2)
                    Else
                        drs(i)("累计完成_工程进度款") = drs(i)(zj2)
                    End If
                Next
                drs(0)("累计完成_实付进度款") = drs(0)(zj4) '设置第一行的累计支出
                For i As Integer = 1 To drs.Count - 1  '从第二行开始逐行计算累计支出
                    If drs(i)("项目编号") = drs(i - 1)("项目编号") Then
                        drs(i)("累计完成_实付进度款") = drs(i - 1)("累计完成_实付进度款") + drs(i)(zj4)
                    Else
                        drs(i)("累计完成_实付进度款") = drs(i)(zj4)
                    End If
                Next
        End Select
    Else
        MessageBox.Show("请选择在""项目信息""表中的核准单位名称!")
    End If
End If
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:累计.table




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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/21 22:36:00 [只看该作者]

Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "施工单位_本期完成造价","支付比例","施工单位_应抵扣款项"
        dr("施工单位_本期进度款") = IIF(dr("支付比例") > 0,dr("施工单位_本期完成造价") * dr("支付比例"),dr("施工单位_本期完成造价"))
        dr("施工单位_应付进度款") = dr("施工单位_本期进度款") - dr("施工单位_应抵扣款项")
       
    Case "监理单位_本期完成造价","支付比例","监理单位_应抵扣款项"
        dr("监理单位_本期进度款") = IIF(dr("支付比例") > 0,dr("监理单位_本期完成造价") * dr("支付比例"),dr("监理单位_本期完成造价"))
        dr("监理单位_应付进度款") = dr("监理单位_本期进度款") - dr("监理单位_应抵扣款项")
       
    Case "造价单位_本期完成造价","支付比例","造价单位_应抵扣款项"
        dr("造价单位_应付进度款") = IIF(dr("支付比例") > 0,dr("造价单位_本期完成造价") * dr("支付比例"),dr("造价单位_本期完成造价"))
        dr("造价单位_应付进度款") = dr("造价单位_本期进度款") - dr("造价单位_应抵扣款项")
       
End Select

''=============累计计算================
Dim fdr As DataRow = DataTables("项目信息").Find("项目编号 = '" & dr("项目编号") & "'")
If fdr IsNot Nothing Then
    If fdr.IsNull("核准单位") = False Then
        Dim zj1 As String = fdr("核准单位") & "_本期完成造价"
        Dim zj2 As String = fdr("核准单位") & "_本期进度款"
        Dim zj3 As String = fdr("核准单位") & "_应抵扣款项"
        Dim zj4 As String = fdr("核准单位") & "_应付进度款"
        Select Case e.DataCol.Name
            Case zj1,zj2,zj3,zj4
                systemready = False

                Dim drs As List(of DataRow) = e.DataTable.Select("", "项目编号,[_Identify]") '注意排序参数
                drs(0)("累计完成_工程造价") = drs(0)(zj1) '设置第一行的累计支出
                For i As Integer = 1 To drs.Count - 1  '从第二行开始逐行计算累计支出
                    If drs(i)("项目编号") = drs(i - 1)("项目编号") Then
                        drs(i)("累计完成_工程造价") = drs(i - 1)("累计完成_工程造价") + drs(i)(zj1)
                    Else
                        drs(i)("累计完成_工程造价") = drs(i)(zj1)
                    End If
                Next
                drs(0)("累计完成_应抵扣款项") = drs(0)(zj3) '设置第一行的累计支出
                For i As Integer = 1 To drs.Count - 1  '从第二行开始逐行计算累计支出
                    If drs(i)("项目编号") = drs(i - 1)("项目编号") Then
                        drs(i)("累计完成_应抵扣款项") = drs(i - 1)("累计完成_应抵扣款项") + drs(i)(zj3)
                    Else
                        drs(i)("累计完成_应抵扣款项") = drs(i)(zj3)
                    End If
                Next
                drs(0)("累计完成_工程进度款") = drs(0)(zj2) '设置第一行的累计支出
                For i As Integer = 1 To drs.Count - 1  '从第二行开始逐行计算累计支出
                    If drs(i)("项目编号") = drs(i - 1)("项目编号") Then
                        drs(i)("累计完成_工程进度款") = drs(i - 1)("累计完成_工程进度款") + drs(i)(zj2)
                    Else
                        drs(i)("累计完成_工程进度款") = drs(i)(zj2)
                    End If
                Next
                drs(0)("累计完成_实付进度款") = drs(0)(zj4) '设置第一行的累计支出
                For i As Integer = 1 To drs.Count - 1  '从第二行开始逐行计算累计支出
                    If drs(i)("项目编号") = drs(i - 1)("项目编号") Then
                        drs(i)("累计完成_实付进度款") = drs(i - 1)("累计完成_实付进度款") + drs(i)(zj4)
                    Else
                        drs(i)("累计完成_实付进度款") = drs(i)(zj4)
                    End If
                Next
                systemready = True
        End Select
    Else
        MessageBox.Show("请选择在""项目信息""表中的核准单位名称!")
    End If
End If


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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/10/21 23:10:00 [只看该作者]

老师还是出错,一旦输入数据就闪关。

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


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/21 23:18:00 [只看该作者]

认认真真看,直接拷贝2楼代码。

 回到顶部