以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助] 项目无法打开 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=60164) |
-- 作者:wumingrong1 -- 发布时间:2014/11/19 14:51:00 -- [求助] 项目无法打开 1、我在项目的全局代码中写有下图内容;2、我在登录窗口的登录按钮写有以下命令;3、如果我在登录按钮中写有 红色 部分命令,项目就无法打开、如果把它删掉就能打开。请问是什么原因? 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 |
-- 作者:有点甜 -- 发布时间: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 -- 发布时间: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 可是登录后还是看到加载了这两个表的数据、是不是我的命令写错啦?
|
-- 作者:有点甜 -- 发布时间:2014/11/19 15:14:00 -- 1、看表名是否写错了;
2、看afteropenproject是否写了重新加载的代码 LoadFilter 和 Load |
-- 作者:wumingrong1 -- 发布时间:2014/11/19 15:31:00 -- 表名没有错 [此贴子已经被作者于2014-11-19 15:32:05编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/11/19 15:32:00 -- 以下是引用wumingrong1在2014-11-19 15:31:00的发言:
我把这个命令写在登录按钮中应该也是可以的吧?
什么意思?如果不想加载数据,就不能 设置 Datatables("表A").Load |
-- 作者:wumingrong1 -- 发布时间: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 |
-- 作者:有点甜 -- 发布时间:2014/11/19 15:36:00 -- 那你看一下登陆窗口的事件代码,以及LoadUserSetting的事件代码 |
-- 作者:wumingrong1 -- 发布时间: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 |
-- 作者:有点甜 -- 发布时间: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 |