以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  未将对象引用设置到对象的实例  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=76715)

--  作者:huazhencong
--  发布时间:2015/11/3 22:49:00
--  未将对象引用设置到对象的实例
请教1:出现这个错误提示,是什么原因造成的啊!但是我要的结果还是能出得来的,

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2014.11.11.1
错误所在事件:表,家乐福订单明细,DataColChanged
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。

DataColChanged事件代码如下:

Select Case e.DataCol.name
    Case "网站显示_分店" \'提取门店结算码
        If e.DataRow.IsNull("网站显示_分店") Then \'是否为空
            e.DataRow("门店结算码") = Nothing \'如果为空,则清除
        Else
            Dim na As String  = e.DataRow("网站显示_分店")
            If  na.Contains("分店合计") Then
                na = na.Replace("分店合计:", "")
                e.DataRow("门店结算码") = na
            End If
        End If
    Case "门店结算码" \'计算销售额   请教2:这一步的时候我需要重置此列才行,有没有办法改写下代码不用手动重置啊?
        If e.newvalue Is Nothing Then
            e.DataRow("后台销售统计_含税销售额") = Nothing
            e.DataRow("后台销售统计_折扣率") = Nothing
            e.DataRow("后台销售统计_折扣金额") = Nothing
            e.DataRow("后台销售统计_开票金额") = Nothing
            e.DataRow("前台销售统计_含税销售额") = Nothing
            e.DataRow("前台销售统计_折扣金额") = Nothing
            e.DataRow("前台销售统计_折扣率") = Nothing
        Else
            Dim dr As DataRow
            dr = DataTables("门店信息").Find("门店结算编号 = \'" & e.newvalue & "\'")
            e.DataRow("后台销售统计_含税销售额") = e.DataRow("网站显示_不含税金额") * 1.13
            e.DataRow("后台销售统计_折扣率")  = dr("发票扣点_后台扣点")
            e.DataRow("后台销售统计_折扣金额") = e.DataRow("后台销售统计_含税销售额") * e.DataRow("后台销售统计_折扣率")
            e.DataRow("后台销售统计_开票金额") = e.DataRow("后台销售统计_含税销售额") - e.DataRow("后台销售统计_折扣金额")
            e.DataRow("前台销售统计_含税销售额") = e.DataRow("网站显示_不含税金额") / 0.84 * 1.13
            e.DataRow("前台销售统计_折扣金额") = e.DataRow("前台销售统计_含税销售额") - e.DataRow("后台销售统计_含税销售额")
            e.DataRow("前台销售统计_折扣率") = e.DataRow("前台销售统计_折扣金额") / e.DataRow("前台销售统计_含税销售额")
        End If
        
End Select


--  作者:大红袍
--  发布时间:2015/11/3 22:54:00
--  

Dim dr As DataRow
dr = DataTables("门店信息").Find("门店结算编号 = \'" & e.newvalue & "\'")
If dr IsNot Nothing Then
    e.DataRow("后台销售统计_含税销售额") = e.DataRow("网站显示_不含税金额") * 1.13
    e.DataRow("后台销售统计_折扣率")  = dr("发票扣点_后台扣点")
    e.DataRow("后台销售统计_折扣金额") = e.DataRow("后台销售统计_含税销售额") * e.DataRow("后台销售统计_折扣率")
    e.DataRow("后台销售统计_开票金额") = e.DataRow("后台销售统计_含税销售额") - e.DataRow("后台销售统计_折扣金额")
    e.DataRow("前台销售统计_含税销售额") = e.DataRow("网站显示_不含税金额") / 0.84 * 1.13
    e.DataRow("前台销售统计_折扣金额") = e.DataRow("前台销售统计_含税销售额") - e.DataRow("后台销售统计_含税销售额")
    e.DataRow("前台销售统计_折扣率") = e.DataRow("前台销售统计_折扣金额") / e.DataRow("前台销售统计_含税销售额")
End If


--  作者:大红袍
--  发布时间:2015/11/3 22:55:00
--  

你红色什么意思?不是修改了就计算了么?


--  作者:huazhencong
--  发布时间:2015/11/3 23:02:00
--  
谢谢老师,那老师在帮我看下刚才发的问题里面的:请教2 的问题,谢谢!
--  作者:huazhencong
--  发布时间:2015/11/3 23:08:00
--  
老师,请看
Select Case e.DataCol.name
    Case "网站显示_分店"  ‘第一步:\'提取门店结算码
        If e.DataRow.IsNull("网站显示_分店") Then \'是否为空
            e.DataRow("门店结算码") = Nothing \'如果为空,则清除
        Else
            Dim na As String  = e.DataRow("网站显示_分店")
            If  na.Contains("分店合计") Then
                na = na.Replace("分店合计:", "")
                e.DataRow("门店结算码") = na
            End If
        End If
    Case "门店结算码"  第二步:根据第一步提取的门店结算码来计算销售额   请教2:这一步的时候我需要重置此列才行,有没有办法改写下代码不用手动重置啊?
        If e.newvalue Is Nothing Then
            e.DataRow("后台销售统计_含税销售额") = Nothing
            e.DataRow("后台销售统计_折扣率") = Nothing
            e.DataRow("后台销售统计_折扣金额") = Nothing
            e.DataRow("后台销售统计_开票金额") = Nothing
            e.DataRow("前台销售统计_含税销售额") = Nothing
            e.DataRow("前台销售统计_折扣金额") = Nothing
            e.DataRow("前台销售统计_折扣率") = Nothing
        Else
            Dim dr As DataRow
            dr = DataTables("门店信息").Find("门店结算编号 = \'" & e.newvalue & "\'")
            e.DataRow("后台销售统计_含税销售额") = e.DataRow("网站显示_不含税金额") * 1.13
            e.DataRow("后台销售统计_折扣率")  = dr("发票扣点_后台扣点")
            e.DataRow("后台销售统计_折扣金额") = e.DataRow("后台销售统计_含税销售额") * e.DataRow("后台销售统计_折扣率")
            e.DataRow("后台销售统计_开票金额") = e.DataRow("后台销售统计_含税销售额") - e.DataRow("后台销售统计_折扣金额")
            e.DataRow("前台销售统计_含税销售额") = e.DataRow("网站显示_不含税金额") / 0.84 * 1.13
            e.DataRow("前台销售统计_折扣金额") = e.DataRow("前台销售统计_含税销售额") - e.DataRow("后台销售统计_含税销售额")
            e.DataRow("前台销售统计_折扣率") = e.DataRow("前台销售统计_折扣金额") / e.DataRow("前台销售统计_含税销售额")
        End If
        
End Select

--  作者:大红袍
--  发布时间:2015/11/3 23:14:00
--  
你操作了第一步,就是会执行第二步的啊。