Foxtable(狐表)用户栏目专家坐堂 → [求助] 项目无法打开


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

主题:[求助] 项目无法打开

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


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
[求助] 项目无法打开  发帖心情 Post By:2014/11/19 14:51:00 [只看该作者]

1、我在项目的全局代码中写有下图内容;2、我在登录窗口的登录按钮写有以下命令;3、如果我在登录按钮中写有 红色 部分命令,项目就无法打开、如果把它删掉就能打开。请问是什么原因?



图片点击可在新窗口打开查看此主题相关图片如下:360截图20141119143920593.jpg
图片点击可在新窗口打开查看


Dim UserName As String = e.Form.Controls("UserName").Value
Dim cmd As New SQLCommand
Dim dt As DataTable
Dim dr As DataRow
Dim fr As DataRow = DataTables("users").SQLFind("Name = '" & userName & "'")
cmd.C
If UserName = ""  Then
    Messagebox.show("请输入用户名!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
End If

cmd.CommandText = "Select * From {Users} Where [Name] = '" & UserName & "'"
dt = cmd.ExecuteReader
If dt.DataRows.Count = 0 Then
    Messagebox.show("此用户不存在!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
End If

If Date.Today > fr("停用日期") Then
    
    Messagebox.show("当前用户使用该系统的期限已经过期,请与管理员联系","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    'Syscmd.Project.Exit() '正常退出飞狐
    Return '这个要加上,因为既然要退出,就不应该再执行后面的初始化代码了,否则会出错
Else
    
    dr = dt.DataRows(0)
    If e.Form.Controls("PassWord").Value = dr("Password") Then
        _UserName = UserName
        _UserGroup = dr("Group")
        _User维护权限 = dr("维护权限")
        _User分公司 = dr("分公司")
        
        e.Form.Close
    Else
        Messagebox.show("密码错误!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    End If
    
    
    
End If



If User.Type = UserTypeEnum.Developer AndAlso User.Type = UserTypeEnum.Administrator AndAlso _UserGroup = "特级管理员" Then
    
    ConfigBar.Items("开发按钮").Visible =  True
    ConfigBar.Items("切换分公司").Visible =  True
    RibbonTabs("技术资料").visible = True
    RibbonTabs("专项工作").visible = True
    RibbonTabs("材料管理").visible = True
    RibbonTabs("日常工作").visible = True
    
    RibbonTabs("台帐管理").Groups("电源台帐").Items("电源台帐").Visible = True
    RibbonTabs("台帐管理").Groups("互联网台帐").Items("互联网台帐").Visible = True
    
    
Else
    
    ConfigBar.Items("开发按钮").Visible = False
    ConfigBar.Items("切换分公司").Visible = False
    RibbonTabs("技术资料").visible = False
    RibbonTabs("专项工作").visible = False
    RibbonTabs("材料管理").visible = False
    RibbonTabs("日常工作").visible = False
    
    RibbonTabs("台帐管理").Groups("电源台帐").Items("电源台帐").Visible = False
    RibbonTabs("台帐管理").Groups("互联网台帐").Items("互联网台帐").Visible = False
    
End If

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


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

 报什么错?单独运行这段代码

 

    ConfigBar.Items("开发按钮").Visible = False

    ConfigBar.Items("切换分公司").Visible = False
    RibbonTabs("技术资料").visible = False
    RibbonTabs("专项工作").visible = False
    RibbonTabs("材料管理").visible = False
    RibbonTabs("日常工作").visible = False
    
    RibbonTabs("台帐管理").Groups("电源台帐").Items("电源台帐").Visible = False
    RibbonTabs("台帐管理").Groups("互联网台帐").Items("互联网台帐").Visible = False

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


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By:2014/11/19 15:12:00 [只看该作者]

知道啦,是RibbonTabs("日常工作").visible = False写错了、应该是  RibbonTabs("日常管理").visible = False

另外:
由于“OLT设备用户端口数据表”和“Itellin用户数据表”数据量比较大;在打开项目是会影响打开速度;我想在打开项目时先不加载这两个表;所以在项目的BeforeLoadOuterTable属性中写有以下命令,


If e.DataTableName = "OLT设备用户端口数据表" Then
    e.SelectString = "Select * From {OLT设备用户端口数据表} Where [_Identify] Is Null"
End If

If e.DataTableName = "Itellin用户数据表" Then
    e.SelectString = "Select * From {Itellin用户数据表} Where [_Identify] Is Null"
End If

可是登录后还是看到加载了这两个表的数据、是不是我的命令写错啦?




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


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

1、看表名是否写错了;

 

2、看afteropenproject是否写了重新加载的代码 LoadFilter 和 Load


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


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By:2014/11/19 15:31:00 [只看该作者]

表名没有错

我把这个命令写在登录按钮中应该也是可以的吧?

[此贴子已经被作者于2014-11-19 15:32:05编辑过]

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


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

以下是引用wumingrong1在2014-11-19 15:31:00的发言:
我把这个命令写在登录按钮中应该也是可以的吧?

 

什么意思?如果不想加载数据,就不能 设置 Datatables("表A").Load


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


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By:2014/11/19 15:35:00 [只看该作者]

表名没错、在afteropenproject中写了以下命令;好像没有重新加载的命令


Tables("本机注册表").Rows(0)("机器码") = ComputerId '在"本机注册表""机器码"列第一行填入机器码
DataTables("本机注册表").Save()


Dim r As Row = Tables("本机注册表").Rows(0) 'r代表"本机注册表"第一行
Dim jqm As DataRow = DataTables("系统注册信息表").Find("机器码 = '" & r("机器码") & "'") 'fdr代表"系统注册信息表"的机器码=r表的机器码
Dim zcm As DataRow = DataTables("系统注册信息表").Find("使用授权 = 'FALSE '") 'fdr代表"系统注册信息表"的机器码=r表的机器码

If  jqm Is Nothing    Then '如果"本机注册表"的"机器码"与"系统注册信息表"的"机器码"列没有相同内容,那么
    MainTable = Tables("系统注册信息表") '打开"***"表
    Forms("填写申请资料窗口").Open() '打开"***"窗口
    
Else
    
    If jqm IsNot Nothing  AndAlso  jqm("使用授权") = "FALSE"  Then '如果"系统注册信息表"的"使用授权"为"FALSE",那么
        MessageBox.Show("管理员还未完成对本机的授权,请与管理员联系", "未授权提示",MessageBoxButtons.Ok,MessageBoxIcon.Warning,0, Windows.forms.MessageBoxOptions.ServiceNotification) '弹出提示窗口
        Syscmd.Project.Exit() '正常退出飞狐
        Return '这个要加上,因为既然要退出,就不应该再执行后面的初始化代码了,否则会出错
        
    Else
        
        If jqm IsNot Nothing AndAlso  jqm("使用授权") = "TRUE"  AndAlso jqm("截止日期") < Date.Today Then
            MessageBox.Show("本计算机使用该软件的期限已经过期,请与管理员联系", "未授权提示",MessageBoxButtons.Ok,MessageBoxIcon.Warning,0, Windows.forms.MessageBoxOptions.ServiceNotification) '弹出提示窗口
            Syscmd.Project.Exit() '正常退出飞狐
            Return '这个要加上,因为既然要退出,就不应该再执行后面的初始化代码了,否则会出错
            
        Else
            If jqm IsNot Nothing AndAlso  jqm("使用授权") = "FALSE"  AndAlso jqm("截止日期") >= Date.Today Then
                MessageBox.Show("管理员还未完成对本机的授权,请与管理员联系", "未授权提示",MessageBoxButtons.Ok,MessageBoxIcon.Warning,0, Windows.forms.MessageBoxOptions.ServiceNotification) '弹出提示窗口
                Syscmd.Project.Exit() '正常退出飞狐
                Return '这个要加上,因为既然要退出,就不应该再执行后面的初始化代码了,否则会出错
                
            Else
                
                
                If Syscmd.Project.Update(False,False) = False Then '如果没有升级(False,True)
                    Forms("用户登录").Open() '打开 用户登录 窗口
                    If _UserName = "" Then '如果用户名= 空
                        system.diagnostics.process.GetProcessesByName("foxtable")(0).kill
                    End If
                Else
                    system.diagnostics.process.GetProcessesByName("foxtable")(0).kill
                End If
                
                
            End If
            
            
            
            Applicati '系统抬头显示该名称
            
            MainTable = Tables("主页") '打开"主页"表
            
            Forms("主页背景窗口").Open() '打开"主窗口(主页)"窗口
            
            For Each u As Row In Tables("本机注册表").Rows
                Dim dru As DataRow = DataTables("系统注册信息表").Find("机器码 = '" & u("机器码") & "'")
                If dru IsNot Nothing Then
                    For Each s As String In "截止日期".Split("|")
                        u(s) = dru(s)
                    Next
                    
                End If
            Next
            
        End If
    End If
End If

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


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

那你看一下登陆窗口的事件代码,以及LoadUserSetting的事件代码

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


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By:2014/11/19 15:40:00 [只看该作者]

登录窗口是写有加载表数据命令,我该怎么改才能让他不加载以上两个表的数据呢?

“OLT设备用户端口数据表”和“Itellin用户数据表”

If User.Type <> UserTypeEnum.Developer AndAlso User.Type <> UserTypeEnum.Administrator AndAlso _UserGroup <> "特级管理员"  AndAlso _UserGroup <> "省公司"  Then
    
    
    Dim fdr As DataRow = DataTables("Users").SQLFind("Name = '" & _userName & "'")
    If fdr IsNot Nothing Then
        _user分公司 = fdr("分公司")
    End If
    For Each dt1 As DataTable In DataTables
        If dt1.DataCols.Contains("分公司") Then
            dt1.GlobalHandler.DataRowAdded = True
            dt1.LoadFilter = "分公司 = '" & _user分公司 & "'" '只加载分公司=当前用户"分公司"列所属分公司内容
            dt1.Load
        End If
    Next
    
    
Else
    
    For Each dt1 As DataTable In DataTables
        If dt1.DataCols.Contains("分公司") Then
            dt1.GlobalHandler.DataRowAdded = True
            dt1.LoadFilter = "分公司 <> ''" '加载分公司列不等于"空"
            
            dt1.Load
        End If
    Next
       
End If

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


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

For Each dt1 As DataTable In DataTables
    If dt1.Name <> "OLT设备用户端口数据表" AndAlso dt1.Name <> "Itellin用户数据表" AndAlso dt1.DataCols.Contains("分公司") Then
        dt1.GlobalHandler.DataRowAdded = True
        dt1.LoadFilter = "分公司 = '" & _user分公司 & "'" '只加载分公司=当前用户"分公司"列所属分公司内容
        dt1.Load
    End If
Next

 回到顶部
总数 25 1 2 3 下一页