Foxtable(狐表)用户栏目专家坐堂 → 求纠正代码:当计划书编号为1、2时候可以正常运行 当增加到3时候,项目自动退出,求解!


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

主题:求纠正代码:当计划书编号为1、2时候可以正常运行 当增加到3时候,项目自动退出,求解!

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
求纠正代码:当计划书编号为1、2时候可以正常运行 当增加到3时候,项目自动退出,求解!  发帖心情 Post By:2015/3/15 0:07:00 [只看该作者]

故障说明:

销售和成本计划

打开这个菜单 弹出窗体  按一键生成按钮

当计划书编号为1、2时候可以正常运行 当增加到3时候,项目自动退出,求解!

示意图:

 
图片点击可在新窗口打开查看此主题相关图片如下:qq浏览器截屏未命名.png
图片点击可在新窗口打开查看

一键生成代码如下:【对应销售和成本计划表,该表中还有对应的事件代码】

Dim a As Row=Tables("创业计划书").current
Dim dk As WinForm.TextBox = e.Form.Controls("TextBox1")
If dk.text<>"" Then
    Dim vals() As String = {"1","2","3","4","5","6","7","8","9","10","11","12"}
    For i As Integer =0 To vals.Length - 1
        Dim ab As Row=Tables("创业计划书.销售和成本计划表").AddNew()
        ab("月份") = vals(i)
        ab("贷款")=dk.text
    Next
Else
    MessageBox.Show("请先输入贷款金额!")
End If


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:创业计划书.foxdb


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


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

 去修改Datacolchanged事件代码

 

Dim r2 As Row = Tables("创业计划书").Current
Dim fdr As DataRow = DataTables("企业组织").Find("计划书编号 = '" & r2("计划书编号") & "' ")

e.DataRow("成本_业主工资")=Tables("企业员工").Compute("Sum(月薪)","员工类型 = '业主或经理' and[计划书编号] = '" & r2("计划书编号") & "'")
e.DataRow("成本_员工工资")=Tables("企业员工").Compute("Sum(月薪)","员工类型 = '员工' and[计划书编号] = '" & r2("计划书编号") & "'")
e.DataRow("成本_租金")=Tables("企业组织").Compute("Sum(费用)","使用方式 = '租赁租金' and[计划书编号] = '" & r2("计划书编号") & "'")/12

e.DataRow("成本_营销费用")=Tables("促销费用").Compute("Sum(成本)","[计划书编号] = '" & r2("计划书编号") & "'")
e.DataRow("成本_公用事业费")=Tables("执照责任").Compute("Sum(预计费用)","类型 = '公用事业费' and[计划书编号] = '" & r2("计划书编号") & "'")
e.DataRow("成本_维修费")=Tables("执照责任").Compute("Sum(预计费用)","类型 = '维修费' and[计划书编号] = '" & r2("计划书编号") & "'")
e.DataRow("成本_保险费")=Tables("执照责任").Compute("Sum(预计费用)","类型 = '保险' and[计划书编号] = '" & r2("计划书编号") & "'")/12
e.DataRow("成本_登记注册费")=(Tables("执照责任").Compute("Sum(预计费用)","类型 = '执照许可' and[计划书编号] = '" & r2("计划书编号") & "'"))/12
e.DataRow("成本_原材料1")=Tables("原材料和包装").Compute("Sum(总费用)","类型 = '原材料和包装' and[计划书编号] = '" & r2("计划书编号") & "'")

e.DataRow("成本_折旧费")=Tables("固定资产折旧").Compute("Sum(月折旧)","[计划书编号] = '" & r2("计划书编号") & "'")


Select Case e.DataCol.name
    Case "月份","销售_含流转税销售收入","成本_贷款利息"
        If e.DataRow.Isnull("销售_含流转税销售收入") = False AndAlso fdr IsNot Nothing Then
            e.DataRow("销售_销售净收入")=e.DataRow("销售_含流转税销售收入")/(1+fdr("税率"))
            e.DataRow("销售_流转税增值税等")=e.DataRow("销售_含流转税销售收入")-e.DataRow("销售_销售净收入")
            e.DataRow("税费_其他")=e.DataRow("销售_流转税增值税等")*fdr("附加税税率")
            e.DataRow("成本_总成本")=e.DataRow("成本_业主工资")+e.DataRow("成本_员工工资")+e.DataRow("成本_租金")+e.DataRow("成本_营销费用")+e.DataRow("成本_公用事业费")+e.DataRow("成本_维修费")+e.DataRow("成本_折旧费")+e.DataRow("成本_贷款利息")+e.DataRow("成本_保险费")+e.DataRow("成本_登记注册费")+e.DataRow("成本_原材料1")+e.DataRow("成本_原材料2")+e.DataRow("成本_原材料3")+e.DataRow("成本_原材料4")+e.DataRow("成本_原材料5")+e.DataRow("成本_原材料6")
            e.DataRow("利润")=e.DataRow("销售_销售净收入")-e.DataRow("成本_总成本")
            e.DataRow("税费_企业所得税")=e.DataRow("利润")*fdr("企业所得税率")
            e.DataRow("税后净收入")=e.DataRow("利润")-e.DataRow("税费_企业所得税")-e.DataRow("税费_个人所得税")-e.DataRow("税费_其他")
        End If
End Select


Dim temp As Double
Select Case e.DataCol.Name
    Case "贷款","月份"
        If e.DataRow("月份") = 1 Then
            e.DataRow("成本_贷款利息") = e.DataRow("贷款")*0.006
            temp = e.DataRow("成本_贷款利息")
           
        Else
            Dim n As Integer = 0
            Dim drs As List(Of DataRow) = e.DataTable.Select("月份 Is Not Null")
            For n  = 0 To drs.Count - 1
                If n > 0 And drs.Count > 0 Then
                    e.DataRow("成本_贷款利息") = drs(n-1)("成本_贷款利息")
                End If
            Next
        End If
End Select


'按照不同的月份来进行查询不同月份的销售额合计(此段代码系简化代码)
Select Case e.DataCol.name
    Case "月份"
        If e.DataRow.Isnull("月份") = False Then
            Dim val As Integer = e.DataRow("月份")
            Dim Sum As Double
            Sum = Tables("销售收入预测表").Compute("Sum(月份_" & val & "_月销售额)","[计划书编号] = '" & r2("计划书编号") & "'")
            e.DataRow("销售_含流转税销售收入") = sum
           
            If fdr IsNot Nothing AndAlso fdr("有限责任公司")=True Then
                e.DataRow("税费_个人所得税")=0
            Else
                Dim sl As Integer = e.DataRow("利润")+e.DataRow("成本_业主工资")-42000
               
               
                If sl >3500 Then
                    If sl < 15000 Then
                        e.DataRow("税费_个人所得税")=(sl-3500)*0.05
                    Else
                        e.DataRow("税费_个人所得税")=(15000-3500)*0.05
                    End If
                    If sl < 30000 Then
                        e.DataRow("税费_个人所得税")+=(sl-15000)*0.1
                    Else
                        e.DataRow("税费_个人所得税")+=15000*0.1
                    End If
                    If sl < 60000 Then
                        e.DataRow("税费_个人所得税")+=(sl-30000)*0.2
                    Else
                        e.DataRow("税费_个人所得税")+=(30000)*0.2
                    End If
                    If sl < 100000 Then
                        e.DataRow("税费_个人所得税")+=(sl-60000)*0.3
                    Else
                        e.DataRow("税费_个人所得税")+=(40000)*0.3
                        e.DataRow("税费_个人所得税")+=(sl-100000)*0.35
                    End If
                End If
               
               
               
            End If
        End If
End Select

Select Case e.DataCol.name
    Case "月份"
        If e.DataRow.Isnull("月份") = False Then
            Dim val As Integer = e.DataRow("月份")
            If val = 12 Then
                Tables("创业计划书.销售成本合计表").AddNew()
            End If
        End If
End Select


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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜)?去修改Datacolchanged事件代码...  发帖心情 Post By:2015/3/15 23:44:00 [只看该作者]

老师 现在又出现了奇怪问题


图片点击可在新窗口打开查看此主题相关图片如下:qq拼音截图未命名.png
图片点击可在新窗口打开查看

按照顺序从左到右点击对应窗体后 全部增加数据后 运行销售和成本按钮中一键生成就会出现项目闪退  求解决!

 


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20150315232902.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2015/3/15 23:44:57编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/3/16 8:36:00 [只看该作者]

说明你某一个地方造成了死循环.
建议您用这个方法:
http://www.foxtable.com/help/topics/1485.htm

先找出是哪一行开始出现死循环,然后分析原因,搞不定,可以在论坛发帖,贴出代码,并告诉我们运行到哪一行出错,以及错误提示。

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


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

请去你的Datacolchanged事件加入msgbox调试是哪句代码出问题了,对应的去修改。

 

这是最基本的。

 

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

 


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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜)请去你的Datacolchanged事件加入msgb...  发帖心情 Post By:2015/3/17 10:50:00 [只看该作者]

代码进行如下补正,结果没有出错 ,但是不知道为什么项目会自动关闭了!求解!

Dim r2 As Row = Tables("创业计划书").Current
Dim fdr As DataRow = DataTables("企业组织").Find("计划书编号 = '" & r2("计划书编号") & "' ")

e.DataRow("成本_业主工资")=Tables("企业员工").Compute("Sum(月薪)","员工类型 = '业主或经理' and[计划书编号] = '" & r2("计划书编号") & "'")
MessageBox.Show(e.DataRow("成本_业主工资"))
e.DataRow("成本_员工工资")=Tables("企业员工").Compute("Sum(月薪)","员工类型 = '员工' and[计划书编号] = '" & r2("计划书编号") & "'")
MessageBox.Show(e.DataRow("成本_员工工资"))
e.DataRow("成本_租金")=Tables("企业组织").Compute("Sum(费用)","使用方式 = '租赁租金' and[计划书编号] = '" & r2("计划书编号") & "'")/12
MessageBox.Show(e.DataRow("成本_租金"))
e.DataRow("成本_营销费用")=Tables("促销费用").Compute("Sum(成本)","[计划书编号] = '" & r2("计划书编号") & "'")
MessageBox.Show(e.DataRow("成本_营销费用"))
e.DataRow("成本_公用事业费")=Tables("执照责任").Compute("Sum(预计费用)","类型 = '公用事业费' and[计划书编号] = '" & r2("计划书编号") & "'")
MessageBox.Show(e.DataRow("成本_公用事业费"))
e.DataRow("成本_维修费")=Tables("执照责任").Compute("Sum(预计费用)","类型 = '维修费' and[计划书编号] = '" & r2("计划书编号") & "'")
MessageBox.Show(e.DataRow("成本_维修费"))
e.DataRow("成本_保险费")=Tables("执照责任").Compute("Sum(预计费用)","类型 = '保险' and[计划书编号] = '" & r2("计划书编号") & "'")/12
MessageBox.Show(e.DataRow("成本_保险费"))
e.DataRow("成本_登记注册费")=(Tables("执照责任").Compute("Sum(预计费用)","类型 = '执照许可' and[计划书编号] = '" & r2("计划书编号") & "'"))/12
MessageBox.Show(e.DataRow("成本_登记注册费"))
e.DataRow("成本_原材料1")=Tables("原材料和包装").Compute("Sum(总费用)","类型 = '原材料和包装' and[计划书编号] = '" & r2("计划书编号") & "'")
MessageBox.Show(e.DataRow("成本_原材料1"))
e.DataRow("成本_折旧费")=Tables("固定资产折旧").Compute("Sum(月折旧)","[计划书编号] = '" & r2("计划书编号") & "'")
MessageBox.Show(e.DataRow("成本_折旧费"))
'
Select Case e.DataCol.name
    Case "月份","销售_含流转税销售收入","成本_贷款利息"
        If e.DataRow.Isnull("销售_含流转税销售收入") = False Then
            e.DataRow("销售_销售净收入")=e.DataRow("销售_含流转税销售收入")/(1+fdr("税率"))
            MessageBox.Show(e.DataRow("销售_销售净收入"))
            e.DataRow("销售_流转税增值税等")=e.DataRow("销售_含流转税销售收入")-e.DataRow("销售_销售净收入")
            MessageBox.Show(e.DataRow("销售_流转税增值税等"))
            e.DataRow("税费_其他")=e.DataRow("销售_流转税增值税等")*fdr("附加税税率")
            MessageBox.Show(e.DataRow("税费_其他"))
            e.DataRow("成本_总成本")=e.DataRow("成本_业主工资")+e.DataRow("成本_员工工资")+e.DataRow("成本_租金")+e.DataRow("成本_营销费用")+e.DataRow("成本_公用事业费")+e.DataRow("成本_维修费")+e.DataRow("成本_折旧费")+e.DataRow("成本_贷款利息")+e.DataRow("成本_保险费")+e.DataRow("成本_登记注册费")+e.DataRow("成本_原材料1")+e.DataRow("成本_原材料2")+e.DataRow("成本_原材料3")+e.DataRow("成本_原材料4")+e.DataRow("成本_原材料5")+e.DataRow("成本_原材料6")
            MessageBox.Show( e.DataRow("成本_总成本"))
            e.DataRow("利润")=e.DataRow("销售_销售净收入")-e.DataRow("成本_总成本")
            MessageBox.Show(e.DataRow("利润"))
            e.DataRow("税费_企业所得税")=e.DataRow("利润")*fdr("企业所得税率")
            MessageBox.Show(e.DataRow("税费_企业所得税"))
            e.DataRow("税后净收入")=e.DataRow("利润")-e.DataRow("税费_企业所得税")-e.DataRow("税费_个人所得税")-e.DataRow("税费_其他")
            MessageBox.Show(e.DataRow("税后净收入"))
        End If
End Select


Dim temp As Double
Select Case e.DataCol.Name
    Case "贷款","月份"
        If e.DataRow("月份") = 1 Then
            e.DataRow("成本_贷款利息") = e.DataRow("贷款")*0.006
            MessageBox.Show(e.DataRow("成本_贷款利息"))
            temp = e.DataRow("成本_贷款利息")
            
        Else
            Dim n As Integer = 0
            Dim drs As List(Of DataRow) = e.DataTable.Select("月份 Is Not Null")
            For n  = 0 To drs.Count - 1
                If n > 0 And drs.Count > 0 Then
                    e.DataRow("成本_贷款利息") = drs(n-1)("成本_贷款利息")
                    MessageBox.Show(e.DataRow("成本_贷款利息"))
                End If
            Next
        End If
End Select

'按照不同的月份来进行查询不同月份的销售额合计(此段代码系简化代码)
Select Case e.DataCol.name
    Case "月份"
        If e.DataRow.Isnull("月份") = False Then
            Dim val As Integer = e.DataRow("月份")
            Dim Sum As Double
            Sum = Tables("销售收入预测表").Compute("Sum(月份_" & val & "_月销售额)","[计划书编号] = '" & r2("计划书编号") & "'")
            e.DataRow("销售_含流转税销售收入") = sum
            MessageBox.Show( e.DataRow("销售_含流转税销售收入"))            
            
            'End If
        End If
End Select


Select Case e.DataCol.name
    Case "月份"
        If e.DataRow.Isnull("月份") = False Then
            Dim val As Integer = e.DataRow("月份")
            If val = 12 Then
                Tables("创业计划书.销售成本合计表").AddNew()
            End If
        End If
End Select

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(李孝春)回复:(有点甜)请去你的Datacolcha...  发帖心情 Post By:2015/3/18 16:42:00 [只看该作者]

继续求解!


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


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

 这种问题就自己检测和判断啊,就是加入msgbox去判断一下就行啊

 

 因为别人不知道你的逻辑是什么啊。不知道怎么操作会有问题啊。


 回到顶部