起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 439|回复: 10

【搞定】[重要]通过 Business.Logon 自动登录时,如果有多个岗位,则要如何选择指定的岗

[复制链接]
发表于 2007-4-10 17:45:15 | 显示全部楼层 |阅读模式
[重要]通过 Business.Logon 自动登录时,如果有多个岗位,则要如何选择指定的岗位?

即以指定的岗位来进行登录。

用Run 的第三与第四个参数无效,不知如何搞,请给例子。
回复

使用道具 举报

发表于 2007-4-10 18:04:06 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-11 11:41:13 | 显示全部楼层
给个具体例子吧,看这个没用。前面说了,用 RUN 如何试都无效。

还有一点,用这样自动登录之后,注销就不能用了,点注销提示注销不了。得整个IE全部关闭,才能以另一个人身份登录进去。晕。。。。。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-11 11:43:56 | 显示全部楼层
现在要解决的问题是:
1、通过一个 url 传递一个用户的ID,然后自动登录
2、登录之前先判断其有几个岗位,如果一个,则以这个岗位自动登录
3、如果有多个岗位,则弹出一个窗体供选择要以哪个岗位来登录,选择之后点确定继续自动登录


请尽快给你实例或详细的说明。。。。

急!!!!!!!!!!!!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-11 14:45:54 | 显示全部楼层
人呢????????????????????????????
回复 支持 反对

使用道具 举报

发表于 2007-4-11 14:59:49 | 显示全部楼层
最初由 dragonsoft 发布
[B]给个具体例子吧,看这个没用。前面说了,用 RUN 如何试都无效。

还有一点,用这样自动登录之后,注销就不能用了,点注销提示注销不了。得整个IE全部关闭,才能以另一个?.

以下省略...... [/B]


你是怎么测试的,把你的代码贴出来看看
回复 支持 反对

使用道具 举报

发表于 2007-4-11 15:01:41 | 显示全部楼层
最初由 dragonsoft 发布
[B]现在要解决的问题是:
1、通过一个 url 传递一个用户的ID,然后自动登录
2、登录之前先判断其有几个岗位,如果一个,则以这个岗位自动登录
3、如果有多个岗位,则弹出一..

以下省略...... [/B]


我们没有现成的例子

楼主可以参考登陆窗口中的代码自己尝试做。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-12 09:26:39 | 显示全部楼层
我们就是直接改那个 Business.jsp 文件,只在里面加了点东东:

BusinessX.Logon("用户名","密码");
BusinessX.Run("Biz:\\SYSTEM\\Init.Func", "", "", "");

就改了这两句,就可自动登录了。但 Run 的第三与第四个参数如何传都无效果。

用这样自动登录之后,注销就不能用了,点注销提示注销不了。得整个IE全部关闭


现在最主要的问题是:如果有多个岗位,而要以其中的一个岗位来登录,要如何搞????
回复 支持 反对

使用道具 举报

发表于 2007-4-12 10:48:46 | 显示全部楼层
系统暂时没有内置这样的登录方式,另外楼主所说的,登录后系统不能注销系统逻辑也是这样的。但这样并不代表系统无法完成楼主的需求,建议您可以这样做,“业务模型\系统空间\系统运行库\系统核心库”中的TSystemCore.LogonEx方法是登录逻辑,楼主可以在这里修改这个登录逻辑。举个例子吧,您可以自己修改这个方法比方说:当传用用户名不为空时做个标记说明是自动登录,然后在登录对话框中(“业务模型\系统空间\简洁风格\界面库\窗体库\系统登录对话框”)弹出之前进行判断看是否自动登录,如果不是就弹出,如果是自动登录,再来看这个人有几个岗位,如果是单个就用这个岗位登录,如果不是用弹出一个选择岗位的框来让它选。登录选择岗位后处理的问题,参考登录对话框中的源代码就可以了。只要这一步处理好了,注销问题也就自然不存在了!
回复 支持 反对

使用道具 举报

发表于 2007-4-12 19:10:31 | 显示全部楼层
平台上处理的情况有两种:
1  在run方法中不提供部门和岗位,自动岗位登陆
2 在run方法中提供部门和岗位,按照这个部门岗位加logon方法中提供的用户名来登陆

你需要的是第三种方法:只提供用户名和密码,不给部门和岗位,在平台上弹出岗位选择对话框来让用户选择,根据用户选择的岗位来运行起来
这样的话,你可以用run的第二个参数作为一个标记,表示是否是这种情况
然后在平台上的 系统初始化 功能上,找到 procedure TINIT.DoRun;

  if lOperator <> nil then
    TSystemCore.SetOperator(lOperator);

之后,判断Parameters是否等于自己从ocx传过来的第二个参数,如果是则弹出对话框来让用户选择岗位(岗位可以从lOperator获得)
然后对 系统空间\简洁风格\界面库\窗体库\系统登录对话框 的 LocalPersonMember 赋值,可以参考这个单元中的代码来赋值
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-28 02:18 , Processed in 0.041271 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表