Foxtable(狐表)用户栏目专家坐堂 → 判断单位用户首次登陆


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

主题:判断单位用户首次登陆

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106600 积分:542171 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/18 20:26:00 [显示全部帖子]

1、把单位名称和密码写入设置:http://www.foxtable.com/webhelp/topics/1544.htm
2、afteropenproject是否有传入单位参数,如果有正常打开项目,如果没有再判断是否有设置信息,如果有,取单位名称作为Syscmd.Project.Open的参数重新打开项目:http://www.foxtable.com/webhelp/topics/2495.htm
3、BeforeConnectOuterDataSource判断是否有传入单位参数,如果有就连接这个单位的数据源
4、如果即没有传入单位参数也没有设置信息,就在afteropenproject弹出输入单位名称的模式窗口,填写后保存到设置,然后把单位名称作为Syscmd.Project.Open的参数重新打开项目


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106600 积分:542171 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/21 17:12:00 [显示全部帖子]

写了什么代码?或者上传项目说明

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106600 积分:542171 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/22 14:10:00 [显示全部帖子]

If GetConfigValue("单位名称","未设置") <> "未设置" Then

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106600 积分:542171 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/22 16:00:00 [显示全部帖子]

您说的用户登陆界面是指内置的登录窗口?这种情况只能使用自己设计的登录窗口:http://www.foxtable.com/webhelp/topics/2048.htm

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106600 积分:542171 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/25 12:00:00 [显示全部帖子]

那就把单位账号和密码存入数据库中

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106600 积分:542171 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/25 15:21:00 [显示全部帖子]

单独使用一个数据库存储单位名称,这个数据库只是为了应付登录验证,不需要切换

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106600 积分:542171 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/25 17:20:00 [显示全部帖子]

另外建一个数据库会吧?这个数据库只建一个表,添加单位账号和密码列,再添加一个机器码列,这个会吧?

把这个数据库添加到数据源里,这个数据源不需要变动,也就是实际至少会有2个数据源,一个不变,一个根据选择的单位变化。然后afteropenproject事件,到这个表查询是否有这台电脑的机器码对应的数据,如果有就取对应的单位账号作为数据库名称。如果没有就打开单位登录窗口,登录后把数据保存到这个表中。

其它逻辑和2楼的用法都一样的,只不过是把数据保存到设置中改为保存到数据库中而已

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106600 积分:542171 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/28 9:16:00 [显示全部帖子]

BeforeConnectOuterDataSource事件

If e.Name = "外部数据源" AndAlso OpenFileargs.Count > 0 Then
    e.ConnectionString = OpenFileargs(0)
End If

afteropenproject事件

If OpenFileargs.Count = 0 Then
    Dim cmd1 As New SQLCommand
    cmd1.ConnectionName = "数据源A"
    cmd1.CommandText = "SELECT 单位名称 From {机器码} where 机器码 = '" & ComputerId & "'"
    Dim dw As String = cmd1.ExecuteScalar
    If dw > "" Then
        Dim cmd2 As New SQLCommand
        Dim dt2 As DataTable
        cmd2.ConnectionName = "数据源A"
        cmd2.CommandText = "SELECT * From {用户授权} whwre 单位名称 = '" & dw & "'"
        dt2 = cmd2.ExecuteReader
        If dt2.DataRows.Count > 0 Then
            Dim dr2 As DataRow = dt2.DataRows(0)
            Dim s1 As String = dr2("数据源_密码")
            Dim s2 As String = dr2("数据源_用户名")
            Dim s3 As String = dr2("数据源_数据库名称")
            Dim s4 As String = dr2("数据源_IP")
            Dim cs As String = "Provider=SQLOLEDB.1;Password=" & s1 & ";Persist Security Info=True;User ID=" & s2 & ";Initial Catalog=" & s3 & ";Data Source=" & s4
            Syscmd.Project.Open(ProjectFile,cs)
            Return
        End If
    End If
End If

afteropenproject事件类似这里的用法:http://www.foxtable.com/webhelp/topics/2495.htm

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106600 积分:542171 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/28 14:30:00 [显示全部帖子]

用ctrl打开项目,使用开发者登录进入

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106600 积分:542171 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/28 15:07:00 [显示全部帖子]

如果是自己做的用户管理,使用user.type判断:http://www.foxtable.com/webhelp/topics/0609.htm

 回到顶部
总数 11 1 2 下一页