Foxtable(狐表)用户栏目专家坐堂 → [求助]列不属于表


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

主题:[求助]列不属于表

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


加好友 发短信
等级:狐精 帖子:3144 积分:20951 威望:0 精华:0 注册:2016/3/28 16:57:00
[求助]列不属于表  发帖心情 Post By:2017/9/28 10:41:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170928103523.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170928103750.jpg
图片点击可在新窗口打开查看

DataColChanged代码如下:

 

Select e.DataCol.name
    Case "合同金额","申请金额","企业所得税基数","企业所得税率","个人所得税基数","个人所得税率","计费基数","管理费费率","应缴增值税基数"
        If e.DataRow.IsNull("企业所得税基数") OrElse e.DataRow.IsNull("企业所得税率")Then '为空
            e.DataRow("企业所得税") = Nothing
        ElseIf e.DataRow("企业所得税基数") ="合同金额"  Then
            e.DataRow("企业所得税") = e.DataRow("合同金额") * e.DataRow("企业所得税率") / 100
        ElseIf e.DataRow("企业所得税基数") ="申请金额"  Then
            e.DataRow("企业所得税") = e.DataRow("申请金额") * e.DataRow("企业所得税率") / 100
        End If
        If e.DataRow.IsNull("个人所得税基数") OrElse e.DataRow.IsNull("个人所得税率")  Then '为空
            e.DataRow("个人所得税") = Nothing
        ElseIf e.DataRow("个人所得税基数") ="合同金额"  Then
            e.DataRow("个人所得税") = e.DataRow("合同金额") * e.DataRow("个人所得税率") / 100
        ElseIf e.DataRow("个人所得税基数") ="申请金额"  Then
            e.DataRow("个人所得税") = e.DataRow("申请金额") * e.DataRow("个人所得税率") / 100
        End If
        If e.DataRow.IsNull("计费基数") OrElse e.DataRow.IsNull("管理费费率")Then '为空
            e.DataRow("管理费") = Nothing
        ElseIf e.DataRow("计费基数") ="合同金额"  Then
            e.DataRow("管理费") = e.DataRow("合同金额") * e.DataRow("管理费费率") / 100
        ElseIf e.DataRow("计费基数") ="申请金额"  Then
            e.DataRow("管理费") = e.DataRow("申请金额") * e.DataRow("管理费费率") / 100
        End If
        If e.DataRow.IsNull("应缴增值税基数") Then '为空
            e.DataRow("应缴增值税") = Nothing
        ElseIf e.DataRow("应缴增值税基数") ="合同金额"  Then
            e.DataRow("应缴增值税") = e.DataRow("合同金额") / 1.11 * 0.11
        ElseIf e.DataRow("应缴增值税基数") ="fa piao金额"  Then
            e.DataRow("应缴增值税") = e.DataRow("fa piao金额") / 1.11 * 0.11
        ElseIf e.DataRow("应缴增值税基数") ="申请金额"  Then
            e.DataRow("应缴增值税") = e.DataRow("申请金额") / 1.11 * 0.11
        End If
End Select

 

 

Select Case  e.DataCol.Name
    Case  "项目编码","申请金额","本期_累计扣款","企业所得税率","个人所得税基数","个人所得税率","管理费费率","手续费","安全保证金","质量保证金","应急保证金","资料保证金","fa piao金额","到账金额","成本fa piao","人工工资","其他费用","抵扣增值税","现金补税","预交增值税","应补增值税","管理费","应扣费用明细_小计","本期_累计扣款","成本差额税率","成本差额税","扣税明细_小计","成本差额"
        Dim  dr As  DataRow
        Dim  mr As  DataRow = e.DataRow
        Dim  drs As  List(of DataRow)
        dr = e.DataTable.Find("[计量期数] < " & mr("计量期数") &  " And [项目编码] = '" &  mr("项目编码") &  "'", "[计量期数] Desc")
        If dr Is Nothing Then
            mr("累计_计量金额") = mr("申请金额")
            mr("累计_扣款金额") = mr("本期_累计扣款")
            mr("累计_支付金额") = mr("实际支付金额")  '("申请金额") - mr("本期_累计扣款")
            dr = mr
        End If
MessageBox.Show(2)
        drs = e.DataTable.Select("[计量期数] >= " & dr("计量期数") &  " And [项目编码] = '" &  dr("项目编码") &  "'", "[计量期数]")
        For  i As  Integer = 1 To drs.Count - 1
            drs(i)("累计_计量金额") = drs(i-1)("累计_计量金额") + drs(i)("申请金额")
            drs(i)("累计_扣款金额") = drs(i-1)("累计_扣款金额") + drs(i)("本期_累计扣款")         '+ drs(i)("申请金额") - drs(i)("本期_累计扣款")
            drs(i)("累计_支付金额") = drs(i-1)("累计_支付金额") + drs(i)("实际支付金额")
        Next
        If  e.DataCol.Name = "项目编码" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            dr = e.DataTable.Find("[计量期数] < " & mr("计量期数") &  " And [项目编码] = '" &  e.OldValue &  "'", "[计量期数] Desc")
            If  dr Is Nothing Then
                dr = e.DataTable.Find("[项目编码] = '" & e.OldValue &  "'", "[计量期数]")
                If dr IsNot Nothing Then
                    dr("累计_计量金额") = dr("申请金额")
                    dr("累计_扣款金额") = dr("本期_累计扣款")
                    dr("累计_支付金额") = dr("实际支付金额")
                End If
            End If
MessageBox.Show(3)
            If  dr IsNot Nothing Then
                drs = e.DataTable.Select("[计量期数] >= " & dr("计量期数") &  " And [项目编码] = '" &  dr("项目编码") &  "'", "[计量期数]")
                For i As Integer = 1 To drs.Count - 1
                    drs(i)("累计_计量金额") = drs(i-1)("累计_计量金额") + drs(i)("申请金额")
                    drs(i)("累计_扣款金额") = drs(i-1)("累计_扣款金额") + drs(i)("本期_累计扣款")
                    drs(i)("累计_支付金额") = drs(i-1)("累计_支付金额") + drs(i)("实际支付金额")
                Next
            End If
        End If
End Select
MessageBox.Show(4)

 

Select Case e.DataCol.name
    Case  "项目编码","申请金额","本期_累计扣款","实际支付金额","企业所得税率","个人所得税基数","个人所得税率","管理费费率" , "手续费","安全保证金","质量保证金","应急保证金","资料保证金","fa piao金额","到账金额","成本fa piao","人工工资","其他费用","抵扣增值税","现金补税","预交增值税","应补增值税","管理费","应扣费用明细_小计","本期_累计扣款","成本差额税率","成本差额税","扣税明细_小计","成本差额"
        Dim fdr As DataRow = DataTables("工程款申请").sqlFind("_Identify = " & e.DataRow("临时列"))
        If fdr IsNot Nothing Then
            fdr("实际支付金额") = e.DataRow("实际支付金额")
        End If
End Select

[此贴子已经被作者于2017/9/28 10:41:40编辑过]

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


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

是不是你申请表没有对应的列?

 

        Dim fdr As DataRow = DataTables("工程款申请").sqlFind("_Identify = " & e.DataRow("临时列"))
        If fdr IsNot Nothing Then
            fdr("实际支付金额") = e.DataRow("实际支付金额")
        End If


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


加好友 发短信
等级:狐精 帖子:3144 积分:20951 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2017/9/28 11:07:00 [只看该作者]

老师,申请表“实际支付金额”是表达式列,改字符就没问题了,但这个代码怎么不执行了呢?

Select e.DataCol.name
    Case "合同金额","申请金额","企业所得税基数","企业所得税率","个人所得税基数","个人所得税率","计费基数","管理费费率","应缴增值税基数"
        If e.DataRow.IsNull("企业所得税基数") OrElse e.DataRow.IsNull("企业所得税率")Then '为空
            e.DataRow("企业所得税") = Nothing
        ElseIf e.DataRow("企业所得税基数") ="合同金额"  Then
            e.DataRow("企业所得税") = e.DataRow("合同金额") * e.DataRow("企业所得税率") / 100
        ElseIf e.DataRow("企业所得税基数") ="fa piao金额"  Then
            e.DataRow("企业所得税") = e.DataRow("fa piao金额") * e.DataRow("企业所得税率") / 100
        ElseIf e.DataRow("企业所得税基数") ="申请金额"  Then
            e.DataRow("企业所得税") = e.DataRow("申请金额") * e.DataRow("企业所得税率") / 100
        End If
        If e.DataRow.IsNull("个人所得税基数") OrElse e.DataRow.IsNull("个人所得税率")  Then '为空
            e.DataRow("个人所得税") = Nothing
        ElseIf e.DataRow("个人所得税基数") ="合同金额"  Then
            e.DataRow("个人所得税") = e.DataRow("合同金额") * e.DataRow("个人所得税率") / 100
        ElseIf e.DataRow("个人所得税基数") ="fa piao金额"  Then
            e.DataRow("个人所得税") = e.DataRow("fa piao金额") * e.DataRow("个人所得税率") / 100
        ElseIf e.DataRow("个人所得税基数") ="申请金额"  Then
            e.DataRow("个人所得税") = e.DataRow("申请金额") * e.DataRow("个人所得税率") / 100
        End If
        If e.DataRow.IsNull("计费基数") OrElse e.DataRow.IsNull("管理费费率")Then '为空
            e.DataRow("管理费") = Nothing
        ElseIf e.DataRow("计费基数") ="合同金额"  Then
            e.DataRow("管理费") = e.DataRow("合同金额") * e.DataRow("管理费费率") / 100
        ElseIf e.DataRow("计费基数") ="fa piao金额"  Then
            e.DataRow("管理费") = e.DataRow("fa piao金额") * e.DataRow("管理费费率") / 100
        ElseIf e.DataRow("计费基数") ="申请金额"  Then
            e.DataRow("管理费") = e.DataRow("申请金额") * e.DataRow("管理费费率") / 100
        End If
        If e.DataRow.IsNull("应缴增值税基数") Then '为空
            e.DataRow("应缴增值税") = Nothing
        ElseIf e.DataRow("应缴增值税基数") ="合同金额"  Then
            e.DataRow("应缴增值税") = e.DataRow("合同金额") / 1.11 * 0.11
        ElseIf e.DataRow("应缴增值税基数") ="fa piao金额"  Then
            e.DataRow("应缴增值税") = e.DataRow("fa piao金额") / 1.11 * 0.11
        ElseIf e.DataRow("应缴增值税基数") ="申请金额"  Then
            e.DataRow("应缴增值税") = e.DataRow("申请金额") / 1.11 * 0.11
        End If
End Select

[此贴子已经被作者于2017/9/28 11:27:56编辑过]

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


加好友 发短信
等级:狐精 帖子:3144 积分:20951 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2017/9/28 12:00:00 [只看该作者]

老师,我吧bin删除重新打开就解决了,新问题又出来了,实际支付金额又不更新了。

 

        Dim fdr As DataRow = DataTables("工程款申请").sqlFind("_Identify = " & e.DataRow("临时列"))
        If fdr IsNot Nothing Then
            fdr("实际支付金额") = e.DataRow("实际支付金额")
        End If


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


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

 sqlFind是后台查找,你修改后要保存save,就是 fdr.save

 

 保存后,你要重新刷新表才能看到修改后的数据。


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


加好友 发短信
等级:狐精 帖子:3144 积分:20951 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2017/9/28 13:13:00 [只看该作者]

以下是引用有点甜在2017/9/28 12:25:00的发言:

 sqlFind是后台查找,你修改后要保存save,就是 fdr.save

 

 保存后,你要重新刷新表才能看到修改后的数据。

我还以为都可以用sql,保存了还刷新,用sql就不方便了


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


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

以下是引用cd_tdh在2017/9/28 13:13:00的发言:

我还以为都可以用sql,保存了还刷新,用sql就不方便了

 

你可以先find,再sqlfind

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=107342&skin=0

 


 回到顶部