Foxtable(狐表)用户栏目专家坐堂 → 登录按钮的代码是这些,现在加载还是很慢,从点登陆到主窗口要15秒,我已经将部分表限制加载了还是一样。


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

主题:登录按钮的代码是这些,现在加载还是很慢,从点登陆到主窗口要15秒,我已经将部分表限制加载了还是一样。

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
登录按钮的代码是这些,现在加载还是很慢,从点登陆到主窗口要15秒,我已经将部分表限制加载了还是一样。  发帖心情 Post By:2018/10/8 9:30:00 [只看该作者]


Dim tx1 As WinForm.ComboBox = e.Form.Controls("ComboBox1")
Dim user As String=tx1.text
Dim sss As String=e.Form.Controls("ComboBox2").text
Dim dept As String=e.Form.Controls("ComboBox3").text

 
Dim tx2 As WinForm.TextBox = e.Form.Controls("TextBox2")
Dim pows As String=tx2.text
Dim dl As WinForm.Button = e.Form.Controls("Button1")
Dim dt As DataTable=DataTables("用户表")
Dim dr As DataRow

If user="" Then
    MessageBox.show("请输入用户名称!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error)
    Return
Else
    dr=dt.find("用户名称='" & user & "'")
    If dr IsNot Nothing Then
        If pows=dr("密码") Then
            PopMessage("登陆成功","提示",PopIconEnum.Infomation,1)
           dr("登陆时间")=Date.Now
dr("登陆账套")=sss
dr.Save()
usna=user

pwsd = pows

dpt = dept

syscmd.project.open(ProjectFile,sss)

   e.Form.Close


 Return
      
        Else
            MessageBox.show("密码错误","提示")
            Return
        End If
        
    Else
        MessageBox.show("用户不存在!","提示")
        Return
    End If

End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/8 11:09:00 [只看该作者]

去看看你afterOpenProject事件,看有什么耗时的代码,如果删除掉是否快速进入?


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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2018/10/8 11:39:00 [只看该作者]

AfterOpenProject


Tables("生产计划").TopVisibleRow = 0
Forms("主窗口").Open()
Forms("精准报价").open()
MainTable=Tables("用户表")

If User.Type <> UserTypeEnum.Developer
    TableCaptionVisible = False
End If

If OpenFileArgs.count>0 Then
Else
Forms("登陆").Open()
If usna="" Then
syscmd.project.Exit()
Return
End If 
End If

If DataTables.Contains("报价明细") = True And DataTables.Contains("报价申请") = True And DataTables.Contains("物料资料") = True Then
Tables("物料资料").AllowEdit=False
Tables("报价明细").Cols("产品编号").DropForm ="产品录入"
Tables("报价明细").Cols("产品名称").DropForm ="产品录入"
Tables("报价申请").Cols("业务部_客户").DropForm = "客户"
End If

MainTable=Tables("用户表")
Dim w As Integer = sysinfo.ScreenWidth      
Dim h As Integer = Sysinfo.ScreenHeight      
With baseMainForm
.show
    .WindowState = Windows.Forms.FormWindowState.Normal
    .Width = 920                                     
    .Height = 640
 .Top=h\10                       
 .left=w\6
End With
Dim dr As DataRow=DataTables("用户表").find("用户名称='" & usna & "'")
If dr IsNot Nothing Then


StatusBar.Message1= "用户:" & usna & "   " & "当前账套:" & dr("登陆账套")
End If 
StatusBar.Message2="  登陆日期:" & Date.Today
' Tables("报价单.报价明细").Visible=False

' Forms("主窗口").Open()
' Forms("主窗口1").open()

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/8 11:58:00 [只看该作者]

1、如果删除afterOpenProject一些【耗时】的代码,能否正常速度进入系统?

 

2、或者你做个例子上来测试,你贴出的代码无法排查错误。


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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2018/10/8 13:38:00 [只看该作者]

BeforeLoadOuterTable(外部表)中设置代码:

Select Case e.DataTableName
    Case "表A","表B" '表A和表B无条件加载
    Case "表C"
        If e.User.Type <> UserTypeEnum.Developer Then '只有开发者才加载表C
            e.Cancel = True
        End If
    Case Else '其他所有表默认都不加载
        e.Cancel =
True

End
Select



初始不加载表,是不是在打开窗口的afterload用 datatables("A")来引用加载?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/8 14:23:00 [只看该作者]

回复5楼,是的,在需要的时候datatables.load("表A")

 回到顶部