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


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

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

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


加好友 发短信
等级:三尾狐 帖子:672 积分:7909 威望:0 精华:0 注册:2016/6/11 11:10:00
未将对象引用设置到对象的实例  发帖心情 Post By:2019/2/27 9:33:00 [显示全部帖子]

.NET Framework 版本:2.0.50727.5466
Foxtable 版本:2018.10.9.1
错误所在事件:窗口,检查录入检验报告用小窗口,KeyDown
详细错误信息:
未将对象引用设置到对象的实例。
其KeyDown代码如下:
If e.keycode = 13 Then
    e.form.controls("button1").Select
    e.form.controls("button1").performclick
    e.form.controls("TextBox3").Select
End If
出现这错误,是偶尔的,请问老师是不是代码有问题?

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


加好友 发短信
等级:三尾狐 帖子:672 积分:7909 威望:0 精华:0 注册:2016/6/11 11:10:00
  发帖心情 Post By:2019/2/27 9:45:00 [显示全部帖子]

Dim Filter As String
With e.Form.Controls("TextBox1")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "通用名称 like '%" & .Value & "%'"
    End If
End With

With e.Form.Controls("TextBox2")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "生产企业 like '%" & .Value & "%'"
    End If
End With

With e.Form.Controls("TextBox3")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "批号 like '%" & .Value & "%'"
    End If
End With
Tables("计划来货登记表查询主窗口_Table1").Filter = Filter

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


加好友 发短信
等级:三尾狐 帖子:672 积分:7909 威望:0 精华:0 注册:2016/6/11 11:10:00
  发帖心情 Post By:2019/2/27 9:56:00 [显示全部帖子]

If e.DataCol.Name = "产品计划编码" Then
    If e.newvalue = Nothing Then
        e.DataRow("配送公司")= Nothing
    Else
        e.DataRow("配送公司") =Tables("采购计划总表").current("配送公司")
        e.DataRow("计划年月") =Tables("采购计划总表").current("年月份")
    End If
End If
If e.DataCol.Name = "注册证号" Then '发生变化的是中标号吗?
    If  e.DataRow("注册证号")=Nothing Then
        e.DataRow("耗材类别")=Nothing
    Else
        Dim Str1 As String = e.DataRow("注册证号")
        Dim str2 As String
        If Str1.Contains("备")=True Then
            e.DataRow("耗材类别")="I类"
        End If
        If Str1.Contains("消")=True Then
            e.DataRow("耗材类别")="消字类"
        End If
        If Str1.Contains("注准")=True Or Str1.Contains("注进")=True Or Str1.Contains("注许")=True   Then
            str2=str1.SubString(8,1)
            If str2=3 Then
                e.DataRow("耗材类别")="III类"
            End If
            If str2=2 Then
                e.DataRow("耗材类别")="II类"
            End If
            If str2=1 Then
                e.DataRow("耗材类别")="I类"
            End If
        End If
        If Str1.Contains("字")=True And Str1.Contains("第")=True
            Dim chr1 As Char = "第"
            Dim str4() As String
            Dim str5 As String
            str4=e.DataRow("注册证号").split(chr1)
            str5=str4(1).SubString(0,1)
            If str5=1 Then
                e.DataRow("耗材类别")="I类"
            End If
            If str5=2 Then
                e.DataRow("耗材类别")="II类"
            End If
            If str5=3 Then
                e.DataRow("耗材类别")="III类"
            End If
        End If
    End If
End If
If e.DataCol.Name = "批号" Then
    Dim str1 As String = e.DataRow("批号")
    Dim str2 As String
    str2 = str1.ToUpper()
    e.DataRow("批号")=str2
    '----
    
    '---
    
    
End If
'If e.DataCol.name = "检验报告" OrElse e.DataCol.name = "批号" Then
If  e.DataCol.name = "检验报告" Then
    e.DataTable.ReplaceFor("检验报告", e.DataRow("检验报告"), "批号 = '" & e.DataRow("批号") & "' and 目录编号 = '" & e.DataRow("目录编号") & "'")
End If
If e.DataCol.Name = "批号" Then
    Dim dr As DataRow
    dr = DataTables("计划来货登记表").Find("批号= '" & e.DataRow("批号") & "' and 目录编号 = '" & e.DataRow("目录编号") & "'")
    If dr IsNot Nothing '如果找到, 则设置各列内容
        If dr("检验报告")=True Then
            e.DataRow("检验报告")= True
        Else
            e.DataRow("检验报告")= False
        End If
    End If
    If e.DataRow("批号")=Nothing
        e.DataRow("检验报告")=False
    End If
End If
If e.DataCol.Name = "显非" AndAlso e.DataRow("显非") = False Then
    For Each t As Table In Tables
        If t.DataTable.name = "计划来货登记表" Then
            t.Cols("非计划").Visible = False            
            t.Cols("非计划生产企业").Visible = False
            t.Cols("非计划采购价").Visible = False
        End If
    Next
ElseIf e.DataCol.Name = "显非" AndAlso e.DataRow("显非") =True Then
    For Each t As Table In Tables
        If t.DataTable.name = "计划来货登记表" Then
            t.Cols("非计划").Visible = True            
            t.Cols("非计划生产企业").Visible = True
            t.Cols("非计划采购价").Visible = True
        End If
    Next
End If
If e.DataCol.Name = "非计划" AndAlso e.DataRow("非计划") = True Then
    e.DataRow("生产企业")=e.DataRow("非计划生产企业")
    e.DataRow("中标价")=e.DataRow("非计划采购价")
    e.DataRow("采购价")=e.DataRow("非计划采购价")
End If
If e.DataCol.Name = "目录编号" Then '发生变化的是中标号吗?
    Dim dr As DataRow
    dr = DataTables("医用耗材目录").Find("[目录编号]='" & e.DataRow("目录编号") & "'" )
    If dr IsNot Nothing '如果找到, 则设置各列内容
        e.DataRow("中标号或编号")= dr("中标号或编号")
    Else
        e.DataRow("中标价")=Nothing
    End If
    Dim drzczh As DataRow
    With DataTables("计划来货登记表")
        drzczh = .Find("目录编号 = '" & e.DataRow("目录编号") & "'" ,"来货日期 Desc") '找出最后一次订购PD01产品的记录
        If drzczh IsNot Nothing Then
            e.DataRow("注册证号") =drzczh("注册证号")
        Else
            e.DataRow("注册证号") =Nothing
        End If
    End With    
End If
If e.DataCol.Name = "审核" Then 
        If e.DataRow("审核")=True Then
            e.DataRow.Locked = True
        Else
            e.DataRow.Locked = False
        End If
End If

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


加好友 发短信
等级:三尾狐 帖子:672 积分:7909 威望:0 精华:0 注册:2016/6/11 11:10:00
  发帖心情 Post By:2019/2/27 10:15:00 [显示全部帖子]

【表格的currentChanged事件有问题,贴出对应代码。】里面没有代码的

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


加好友 发短信
等级:三尾狐 帖子:672 积分:7909 威望:0 精华:0 注册:2016/6/11 11:10:00
  发帖心情 Post By:2019/2/27 10:18:00 [显示全部帖子]

谢谢 老师耐心的解答  暂时不理吧  这个实例很大  反正是偶尔出现的 

 回到顶部