以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  窗口里的CurrentChanage 事件  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=140236)

--  作者:落落155
--  发布时间:2019/9/1 20:28:00
--  窗口里的CurrentChanage 事件
在表manage_demo1 的CurrentChanage事件中编写如下代码, 且表manage_demo1被主窗口的 table3控件绑定 ,打开项目时提示未被实例化,怎么改
代码如下:
If e.Table.Current Is Nothing Then 
    Return 
End If
Dim d As Date = daynow
Dim y As Integer = daynow.Year
Dim m As Integer = daynow.Month
Dim tian As Integer = d.day
Dim dt1,dt2 As Date
If tian <= 12 Then
    Dim n As Date = d.AddMonths(-1)
    Dim mn As Integer = n.Month
    dt1 = New Date(y, mn, 13) \'获取前一月第11天
    dt2 = New Date(y, m,12) \'获取本月第10天  
Else
    Dim n As Date = d.AddMonths(1)
    Dim mn As Integer = n.Month
    dt1 = New Date(y, m, 13) \'获取本月第11天
    dt2 = New Date(y, mn,12) \'获取后月第10天
End If

Dim Filter2 As String
Dim bdepart As String = e.Form.Controls("TextBox9").Value
Dim items As String = e.Form.Controls("TextBox10").Value
Dim xmlb As String = e.Form.Controls("TextBox27").Value    \'项目类别
Dim depart As String = User.Group
Dim pbx As WinForm.PictureBox
Dim dr As DataRow
If xmlb = "职能管理工作" Then
    Filter2 =" [部门名称] = \'" & bdepart & "\' And [考核部门]= \'" & depart & "\' And [考核项目]= \'" & items & "\' And  [日期] >= \'" & dt1 & "\' And [日期] <= \'" & dt2 & "\'"
    dr =  DataTables("职能管理工作").Find(Filter2)
    
    If dr IsNot Nothing Then
        pbx = e.Form.Controls("PictureBox5")
        pbx.Image = GetImage("Images\\exclamation.png")
        e.Form.Controls("Label19").Text = "提示:该条考核项目已打分!"
    End If
Else
    Filter2 =" [部门名称] = \'" & bdepart & "\' And [考核部门]= \'" & depart & "\' And [考核项目]= \'" & items & "\' And  [日期] >= \'" & dt1 & "\' And [日期] <= \'" & dt2 & "\'"
    dr =  DataTables("重点工作").Find(Filter2)   
    If dr IsNot Nothing Then
        pbx = e.Form.Controls("PictureBox5")
        pbx.Image = GetImage("Images\\exclamation.png")
        e.Form.Controls("Label19").Text = "提示:该条考核项目已打分!"
    End If
End If

错误提示如下:
.NET Framework 版本:4.0.30319.36543
Foxtable 版本:2019.8.3.1
错误所在事件:manage_demo1,CurrentChanged
详细错误信息:
Object reference not set to an instance of an object.


--  作者:有点蓝
--  发布时间:2019/9/1 20:32:00
--  
代码是放到主表的CurrentChanage 事件?还是 table3控件的窗口里的CurrentChanage 事件?
--  作者:落落155
--  发布时间:2019/9/2 15:02:00
--  回复:(有点蓝)代码是放到主表的CurrentChanage 事件...
放在主表的CurrentChange事件里了,table3控件所在窗口的Currentchange事件从哪里写,没找到啊
--  作者:有点蓝
--  发布时间:2019/9/2 15:11:00
--  
放在主表的CurrentChange事件里要判断窗口有没有打开:http://www.foxtable.com/webhelp/topics/0705.htm

然后使用窗口控件不能使用e.form.Controls这种用法,使用form("某某窗口").Controls这种

--  作者:落落155
--  发布时间:2019/9/2 15:18:00
--  回复:(有点蓝)放在主表的CurrentChange事件里要判断...
明白了,要是代码写在 table3控件的窗口里的CurrentChanage 事件,应该在哪编辑,找不到窗口的CurrentChanage 事件在哪里
--  作者:有点蓝
--  发布时间:2019/9/2 15:30:00
--  
副本,sqltable才有。如果是动态绑定的,需要到全局表事件处理。