以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  求解:一键生成项目会直接导致项目闪退  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=65415)

--  作者:李孝春
--  发布时间:2015/3/15 23:36:00
--  求解:一键生成项目会直接导致项目闪退

如图:

点一键生成按钮会导致项目整体闪退

 


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

 

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

 

烦请各位老师多多指导下,当


 


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

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


--  作者:Bin
--  发布时间:2015/3/16 8:36:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=65387
--  作者:李孝春
--  发布时间:2015/3/17 10:50:00
--  回复:(Bin)http://www.foxtable.com/bbs/dispbbs.a...
代码进行如下补正,结果没有出错 ,但是不知道为什么项目会自动关闭了!求解!

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

--  作者:有点甜
--  发布时间:2015/3/17 11:47:00
--  

 你加入msgbox去测试,定位是哪里有问题。

 

 如果退出,就是循环执行了代码照抄的。

 

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

 


--  作者:李孝春
--  发布时间:2015/3/17 15:09:00
--  回复:(有点甜) 你加入msgbox去测试,定位是哪...
加入测试了 结果是代码没有问题 都可以获得值 所以特纠结
--  作者:有点甜
--  发布时间:2015/3/17 15:10:00
--  

 加入msgbox,如果退出,肯定是里面的代码不断的重复重复重复的执行了。

 

 如果不是此Datacolchanged事件,就肯定是相关的表的Datacolchanged事件


--  作者:李孝春
--  发布时间:2015/3/18 16:43:00
--  回复:(李孝春)求解:一键生成项目会直接导致项目闪...
继续求解


--  作者:有点甜
--  发布时间:2015/3/18 17:09:00
--  
 请看楼上。自食其力。
[此贴子已经被作者于2015/3/18 17:09:05编辑过]