以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  升级7月21日报错  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=138142)

--  作者:lk15502
--  发布时间:2019/7/23 19:50:00
--  升级7月21日报错
升级7月21日版本,报错:
编译错误:“Forms”不是“Windows”的成员。
错误代码:Dim frm = winwods.Forms.Form.activeform

--  作者:有点蓝
--  发布时间:2019/7/23 20:25:00
--  
winwods.Forms.Form

全部改为

system.winwods.Forms.Form

--  作者:lk15502
--  发布时间:2019/7/24 20:19:00
--  
这个登录窗口的加载代码,请问老师应该怎么改:
e.Form.AcceptButton = "确定"
e.Form.CancelButton = "取消"

Dim str As String = GetConfigValue("最后登录的用户名", "")
If str > "" Then
e.Form.Controls("UserName").ComboList = str
    e.Form.Controls("UserName").SelectedIndex = 0
End If

--  作者:有点蓝
--  发布时间:2019/7/25 8:39:00
--  
msgbox(str) \'获取到的是什么内容?

e.Form.AcceptButton = "确定"
e.Form.CancelButton = "取消"

Dim str As String = GetConfigValue("最后登录的用户名", "")
If str > "" Then
e.Form.Controls("UserName").text = str
End If

--  作者:lk15502
--  发布时间:2019/7/25 16:22:00
--  
msgbox(str)显示是上次登录用户名。正常的。现在的问题是打开项目登录窗口没有打开,直接进入项目。

AfterOpenProject的代码:

If Syscmd.Project.Update(False,False) = False Then \'如果没有升级

    Forms("用户登录").open()

End If

\'-------------------------------------------------

ApplicationMenu.visible = False

BaseMainForm.Text = "华灏信息管理系统"

If _Username <> "系统开发者" Then

    TableCaptionVisible = False

    ApplicationMenu.visible = False

End If


--  作者:有点蓝
--  发布时间:2019/7/25 16:24:00
--  

目的是希望打开项目的时候自动升级,然后打开窗口1。
但是上述代码肯定会在升级成功之后提示错误,因为一旦升级成功,Foxtable就会关闭,后面的打开窗口代码就会出错,当然后续其它的代码也一样会出错。
我们可以用下面的代码避免错误:

If Syscmd.Project.Update(False,False) = False Then \'如果没有升级
    
Forms("窗口1").open()
    \'后续其它代码
End
 If

也就是说Update执行后会返回一个逻辑值,如果升级成功,返回True,否则返回False。

总之,如果需要在AfterOpenPoject事件中实现自动升级,那么原有的AfterOpenProject事件代码必须包括在这个判断中,只有没有升级的情况下,才执行原来的代码:

If Syscmd.Project.Update(False,False) = False Then \'如果没有升级
    \'原AfterOpenProject事件代码
End
 If


--  作者:lk15502
--  发布时间:2019/7/25 16:39:00
--  
现在的问题是升级后,报错:
升级7月21日版本,报错:
编译错误:“Forms”不是“Windows”的成员。
错误代码:Dim frm = winwods.Forms.Form.activeform

--  作者:lk15502
--  发布时间:2019/7/25 16:40:00
--  
也没有这样的代码:Dim frm = winwods.Forms.Form.activeform
--  作者:有点蓝
--  发布时间:2019/7/25 16:47:00
--  
看2楼呀。肯定有这种代码。输出所有代码,搜索
--  作者:lk15502
--  发布时间:2019/7/25 16:51:00
--  
afteropenproject的全部代码:
If Syscmd.Project.Update(False,False) = False Then \'如果没有升级
    Forms("用户登录").open()
    \'-------------------------------------------------
    ApplicationMenu.visible = False
    BaseMainForm.Text = "华灏信息管理系统"
    If _Username <> "系统开发者" Then
        TableCaptionVisible = False
        ApplicationMenu.visible = False
    End If
    systemready = False
    DataTables("原料库存表").DataCols("原料入库日期").RaiseDataColChanged()
    DataTables("坯布库存表").DataCols("坯布入库日期").RaiseDataColChanged()
    DataTables("成品库存表").DataCols("入库日期").RaiseDataColChanged()
    DataTables("化料库存表").DataCols("入库日期").RaiseDataColChanged()
    systemready = True
    DataTables("原料库存表").save
    DataTables("坯布库存表").save
    DataTables("成品库存表").save
    DataTables("化料库存表").save
End If
打开项目,就有上面的报错,登录窗口不打开,点击报错窗口确定,直接进入项目了