Foxtable(狐表)用户栏目专家坐堂 → 未将对象引用设置到对象的实例


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

主题:未将对象引用设置到对象的实例

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


加好友 发短信
等级:六尾狐 帖子:1219 积分:8467 威望:0 精华:0 注册:2016/2/2 21:52:00
未将对象引用设置到对象的实例  发帖心情 Post By:2019/10/23 14:41:00 [只看该作者]

修改了一段全局代码,关于电话盒子记录来电信息的功能,现在程序报下面这个错,不知道要从何调试起。

System.NullReferenceException: 未将对象引用设置到对象的实例。
   在 UserCode.FormEventReport.DefWndProc(Message& m)
   在 System.Windows.Forms.Control.WndProc(Message& m)
   在 System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   在 System.Windows.Forms.Form.WndProc(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107807 积分:548386 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/23 14:45:00 [只看该作者]

改了什么代码?

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


加好友 发短信
等级:六尾狐 帖子:1219 积分:8467 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2019/10/23 14:59:00 [只看该作者]

红色部分 
               Case BriSDKLib.BriEvent_GetCallID    '接收到来电号码,并将来电的相关信息记录在后台的  “电话记录” 表中
                  
                    If User.Name="报障播报扫描"  Then        '如果当前用户是 报障播报扫描,则允许在后台进行电话来电记录。 除了盒子外的其它人,在下面的PSTN线路断开后的代码里面记录.       避免一个办公室接了盒子的所有人都可以进行后台记录。    'by wk 20191020  
                       Dim PhoneNumber As String = ByteArrayToString(EventData.szData)
                      ' If PhoneNumber.Length>3 Then    '如果接收到的电话号码长度大于3,则往下记录,免得记得一些干扰信号的号码 by wk 20191023
                             AppendStatus("接收到来电号码: " & PhoneNumber,EventData.uChannelID)
                             drCurrentRow = DataTables("电话记录").AddNew()    '则在后台 电话记录表中 增加一条电话记录
                             'drCurrentRow("摘机时间") = Nothing
                             drCurrentRow("摘机时间") = "2001-01-01 00:00:00"
                             drCurrentRow("挂机时间") = "2001-01-01 00:00:00"
                             Tables("电话记录").Position = Tables("电话记录").Rows.Count-1
                             CanAddnew = False
                             AppendCallRecord("接收到来电号码: " & PhoneNumber, EventData.uChannelID)
                             drCurrentRow("电话号码") = PhoneNumber
                   

                             Dim dr As DataRow                  '根据来电号码识别出科室,并存在全局变量departmentname中
                             dr = DataTables("科室联系方式字典").Find("座机='" & PhoneNumber & "'")
                             If dr IsNot Nothing Then
                                departmentname = dr("科室")
                              '  MessageBox.Show(departmentname)
                             End If                      
                    
                             If Forms("win_日常问题记录修改").Opened Then              '即使窗口 win_日常问题记录修改打开也不能直接把来电号码赋给textbox, 因为此时如果上个电话的问题没有记录完,则会被覆盖
                        '     Forms("win_日常问题记录修改").controls("tb_电话号码").value= PhoneNumber    ' by wk
                        '     Tables("日常问题记录表").Current("来电号码")=PhoneNumber
                                vars("CallerNO")       =PhoneNumber      'by wk 20160818  无论窗口是否打开都把获取到的来电号码赋值给全局变量vars("CallerNo")       '在挂机事件中会清空来电号码
                             Else 
                                vars("CallerNO")       =PhoneNumber
                             End If
                      

                             drCurrentRow("呼叫类型") = "来电"

                             dr.save 
                      ' End If   '如果接收到的电话号码长度大于3,则往下记录,免得记得一些干扰信号的号码  结束     by wk 20191023

                     End If     'by wk 20191020
 
                    Exit Select
[此贴子已经被作者于2019/10/23 15:02:46编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1219 积分:8467 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2019/10/23 15:07:00 [只看该作者]

全局代码

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107807 积分:548386 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/23 15:13:00 [只看该作者]

 If PhoneNumber > "" andalso PhoneNumber.Length>3 Then 
 ……


dr.save去掉

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


加好友 发短信
等级:六尾狐 帖子:1219 积分:8467 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2019/10/23 15:36:00 [只看该作者]

去掉了,不是没法保存数据了?

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107807 积分:548386 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/23 15:41:00 [只看该作者]

代码里根本都没有赋值啊,有保存的必要吗?

如果要保存放到这里

                            dr = DataTables("科室联系方式字典").Find("座机='" & PhoneNumber & "'")
                             If dr IsNot Nothing Then
                                departmentname = dr("科室")
                              '  MessageBox.Show(departmentname)
                            dr.save
                             End If

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


加好友 发短信
等级:六尾狐 帖子:1219 积分:8467 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2019/10/24 9:31:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:全局代码如下.txt


现在有这么个新情况:
我现在一根电话线接了两个电话盒子,晚上下班时间办公室没有人,一个盒子 用来对打入的电话播放“现在是下班时间,请上班时间再打”的语音提示, 另外一个盒子,一直没有人接听。

我在上面的全局代码里面的 两处增加了  datatables("电话记录").addnew  增加了对打入电话的记录。

Case BriSDKLib.BriEvent_PhoneHook         '本地电话机摘机     
Case BriSDKLib.BriEvent_GetCallID        '接收到来电号码         

现在有个奇怪的现象,  在    Case BriSDKLib.BriEvent_GetCallID  事件里,我限制了只有其中一个盒子(登陆用户名为:报障播报扫描)的用户可以在获取到来的号码的时候记录。 并且会将摘机时间和挂机时间置为:2001-01-01 00:00:00
而  按理说另外一个盒子晚上没人接,应该不会进到     Case BriSDKLib.BriEvent_PhoneHook         '本地电话机摘机         摘机分支里去,但我早上来看"电话记录" 表,确实实在在的有记录,并且摘机时间和挂机时间也为空,好像就是进到这个事件里来了,请问这又是怎么回事呢,难道是我判断错了,还有其它原因导致的产生了记录?




 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107807 积分:548386 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/24 9:45:00 [只看该作者]

没试过一根电话线接了两个电话盒子的情况,也没有设备测试。建议咨询一下厂家客服

 回到顶部