Foxtable(狐表)用户栏目专家坐堂 → [求助]菜单的SystemIdle事件执行过程中发生错误


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

主题:[求助]菜单的SystemIdle事件执行过程中发生错误

美女呀,离线,留言给我吧!
小巫仙
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1442 威望:0 精华:0 注册:2016/8/6 12:39:00
[求助]菜单的SystemIdle事件执行过程中发生错误  发帖心情 Post By:2019/9/12 21:01:00 [只看该作者]

有个窗口关闭的时候会出现错误,会弹出很多个错误对话框

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2019.9.8.1
错误所在事件:SystemIdle
详细错误信息:
未将对象引用设置到对象的实例。


图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20190912192041.png
图片点击可在新窗口打开查看


菜单的SystemIdle里的代码就是原来系统菜单默认的代码,系统菜单的按钮也都没改

窗口关闭时有个对表的排序操作,原来这个窗口关闭时没问题,最近更新不知道哪个版之后就有问题了


以下内容是专门发给有点甜,有点蓝,狐狸爸爸浏览






[此贴子已经被作者于2019/9/13 8:50:27编辑过]

 回到顶部
美女呀,离线,留言给我吧!
小巫仙
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1442 威望:0 精华:0 注册:2016/8/6 12:39:00
  发帖心情 Post By:2019/9/13 9:03:00 [只看该作者]

又查了查论坛,窗口关闭时会有一个表的加载操作,然后这个表的afterload有代码,把窗口的表加载注释掉貌似就不报错了,这是为什么呢?

表的afterload代码:

Dim tp As TimeSpan
Dim y,m,d1 As Integer
For Each d As DataRow In DataTables("租户台账").DataRows

    If d.IsNull("终止日期") OrElse d.IsNull("入住日期") Then
        d("租期") = Nothing
    Else
        DateYMD(d("终止日期").adddays(1),d("入住日期"),y,m,d1)
        d("租期") = y*12+m+d1/30
    End If


    If d("房屋状态") = "空置中" Or d("房屋状态") = "已超期" Or d("房屋状态") = "预订中" Then
        If d("房屋状态") = "已超期" Then
            d("上一终止日期") = d("终止日期")
            d("上一合同租金") = d("月租金")
            d("上一合同号") = d("合同号")
        End If
        Dim da As Date = d("上一终止日期")
        If da <> "#0001-01-01 0:00:00#"
            tp = Date.Today - da
            d("空置天数") = tp.TotalDays
        End If
    End If
Next
'msgbox(1)
Dim g As New GroupTableBuilder("当天空置", DataTables("租户台账"))
g.Groups.AddDef("卧室号")
g.Totals.AddDef("ID", AggregateEnum.Count, "空置数量")
g.Totals.AddDef("空置天数")
g.Totals.AddDef("空置成本")
g.Totals.AddDef("每天单价")
g.SubTotal = True
g.Filter = "[房屋状态] = '空置中' or [房屋状态] = '已超期' Or [房屋状态] = '预订中'"
g.Build()


Dim sj As Date = DataTables("人员登记表").Compute("max(登陆时间)")
'msgbox(sj)
Dim r As Integer = Tables("空置统计").Rows.Count - 1
Dim dr As DataRow = DataTables("空置统计").DataRows(r)
Dim rq1 As Date = dr("日期")
Dim t As TimeSpan = sj - rq1
'msgbox(t.TotalDays)
If t.TotalDays >= 1 Then
    Dim kzzz As Integer =  DataTables("当天空置").Compute("sum(空置数量)","[卧室号] like '%居%'")
    Dim kzdj As Integer = DataTables("当天空置").Compute("sum(空置数量)") - kzzz
    Dim zz As Integer = DataTables("租户台账").Compute("count(卧室号)","[卧室号] like '%居%'")
    Dim dj As Integer = DataTables("租户台账").Compute("count(卧室号)") -zz
    'msgbox("kzzz" & kzzz)
    'msgbox("kzdj" & kzdj)
    'msgbox("zz" & zz)
    'msgbox("dj" & dj)
'msgbox(3)
    With Tables("空置统计")
        .AddNew()
        .current("空置单间数") = kzdj
        .current("空置整租数") = kzzz
        .current("空置总房数") = kzdj + kzzz
        .current("单间总数") = dj
        .current("整租总数") = zz
        .current("房间总数") = dj + zz
        .Current("日期") = sj
        .Current("空置总成本") = Tables("当天空置").Compute("sum(空置成本)")
        .Current("空置总天数") = Tables("当天空置").Compute("sum(空置天数)")
        .Current("每天空置成本") = Tables("当天空置").Compute("sum(每天单价)")
    End With
End If
'msgbox(4)
Tables("租户台账").Sort = "[排序] "

[此贴子已经被作者于2019/9/13 9:04:06编辑过]

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


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

租户台账录入窗口afterload,这个代码去掉

For Each t As Table In Tables
    t.Visible = False
    t.AllowEdit =True
Next

如果隐藏了所有表,会默认生成一个临时表,会导致菜单事件出错。或者至少保留一个表。

另外这里改改,租户房租datacolchanged
Select Case e.DataCol.Name
    Case "实收日期","应收日期"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("实收日期") OrElse dr.IsNull("应收日期")  Then
            dr("滞纳金应付") = Nothing
            '            messagebox.Show("0")
        Else If dr("实收日期") > dr("应收日期")
            Dim tp As TimeSpan = dr("实收日期") - dr("应收日期")
            '                       messagebox.show(tp.TotalDays & "天" )
            dr("滞纳金应付") = tp.TotalDays * 200
        Else
            dr("滞纳金应付") = Nothing
            '                       messagebox.show("小于")
        End If

 回到顶部