以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 未将对象引用设置到对象的实例 (http://foxtable.net/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 |
-- 作者:大红袍 -- 发布时间: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 -- 你操作了第一步,就是会执行第二步的啊。 |