以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 我想在连接外部数据源的时候动态输入IP地址和用户名!(已有进一步建议,参见贴子:应该增加管理“外部数据源”的功能!) (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=554) |
-- 作者:cpayinyuan -- 发布时间:2008/9/17 11:30:00 -- 我想在连接外部数据源的时候动态输入IP地址和用户名!(已有进一步建议,参见贴子:应该增加管理“外部数据源”的功能!) 帮助中和论坛上举了一个事例,可以连接外部数据源的时候,通过修改一个文本文件,并在BeforeConnectOuterDataSource事件中修改e参数ConnectionString来动态修改连接字符串,以实现连接动态IP地址的外部数据源,用这种办法,可以实现动态IP地址的外部数据源问题,但这个办法显得不够专业,不正规,有点傻,(有哪个正规的软件在每次登录时都要先修改一个文本文件呢,现在用ADSL作服务器的很多,这可都是动态IP啊)。其他软件的通用做法是,系统开始运行时,首先出现一个登录窗口,登录窗口中有若干个文本框,在登录窗口输入要连接的服务器的IP地址(可能还有用户名、密码等),然后,系统根据输入的文本框的内容(IP地址等),来连接相应的服务器上的外部数据源。但在狐表中,我在BeforeConnectOuterDataSource事件中进行类似设置,不能成功,提示“XX窗口不存在”!经过我的分析,估计是系统在打开项目的时候,先连接外部数据源,然后才打开数据表(包括内部数据表),最后在打开数据表之后才加载窗口(因为目前的软件中子窗口也属于某个表)。在这样的设计下,在连接外部数据源的时候,是不存在窗口的,所以会出错。为了实现这个功能,我有两个建议方案: (1)在系统中提供一种独立于表的窗口(我们可以叫它“完全独立窗口”),这种窗口不从属于任何一个表,在打开项目的时候,能够在连接外部数据源、打开数据表之前先加载!(这种窗口可以不插入表格亦可,仅加入操作性的控件),这样,即可实现上述功能! (2)如果第1个方案比较麻烦,不好实现,可以把打开项目时的加载顺序改一下,改为:先加载内部表(包括内部表的窗口),然后再连接外部数据源,如果这样改一下顺序,应该也能实现上述功能。 另外还有一个问题,因为我没有测试成功,我不太清楚在运行BeforeConnectOuterDataSource事件时,系统变量是否已经生效,如果生效的话就没有其他问题了。 前几天我提了关于多窗口的问题,主要是为了实现两项功能,一是多窗口录入;二是多窗口查询。昨天我给你发的关于列表框的事例如果设置得比较成功,多窗口录入的问题基本可以解决;多窗口查询的问题我准备用关联表的方法进行解决(虽然可以实现,但为了实现多窗口同时查询需要额外设置很多关联,估计会降低系统运行的效率)。这几天我又一直在认真测试外部数据源(主要是SQL server)的相关功能。我关注的这些功能虽然对于很多用户来说并不常用,但如果要设计一个规范、正式的系统,这些功能是很关键、必不可少的。或者说,有了这些功能,用狐表设计的系统才真正像一个系统!我们不想在实际设计系统时,用户要求一种功能(或操作方式),我们告诉他说这种方式狐表不支持,需要变通;用户再提要求,我们再说不支持,这样给人的印像很不好,我们希望在别的软件中有的功能,狐表中尽量都能支持!真正满足各种用户的需要! [此贴子已经被作者于2008-9-18 13:13:04编辑过]
|
-- 作者:贺老六 -- 发布时间:2008/9/17 11:35:00 -- 呵呵,用配置文件,一点没有不专业的感觉呢,相反很多专业的软件都是这么做的。 至于后半部分的多窗口查询,建议将你邮件的内容单独发帖,我帮你做一个例子,其实实现起来很简单,而且foxtable从公测的第一天开始,就能实现的。 |
-- 作者:cpayinyuan -- 发布时间:2008/9/17 11:44:00 -- 以下是引用贺老六在2008-9-17 11:35:00的发言:
呵呵,用配置文件,一点没有不专业的感觉呢,相反很多专业的软件都是这么做的。 至于后半部分的多窗口查询,建议将你邮件的内容单独发帖,我帮你做一个例子,其实实现起来很简单,而且foxtable从公测的第一天开始,就能实现的。 是的,当然用修改配置文件方式的软件也有很多,但是,直接用登录窗口的专业软件同样也非常多(我可以随便举出10几个在国内很有知名度的软件),我希望狐表能够给用户多一种选择,多一种实现方案。萝卜白菜各有所爱,我们不想让狐表因为某项功能先放弃一部分用户,不能因为有一种解决方案了,就不再增加其它的实现方案了!我的建议实现起来应该不算太复杂,还是建议您认真考虑,让用户多一种方式供选择吧! [此贴子已经被作者于2008-9-17 11:45:20编辑过]
|
-- 作者:贺老六 -- 发布时间:2008/9/17 11:52:00 -- 1、不同软件有不同的风格,不可能照顾每一个方面的。你说的道理我懂,但是不管是公司还是个人,精力和时间都有限,都会集中大部分精力,解决最主要的问题 2、你先发贴,同时将你的文件发上去,我应该很快可以做好。 [此贴子已经被作者于2008-9-17 11:55:27编辑过]
|
-- 作者:唐尸三摆手 -- 发布时间:2008/9/17 12:12:00 -- 参考国内众多ERP厂商都在设计系统时考虑到了这一点,比如启动界面打开(SPLASH)后加载数据源,同时提示加载进度,随后弹出系统登陆界面,包括工作站,用户名,密码,通过不同的工作站权限设置达到用户使用不同的工作菜单,希望这种说法能够得到更多狐朋的认可! [此贴子已经被作者于2008-9-17 12:13:34编辑过]
|
-- 作者:唐尸三摆手 -- 发布时间:2008/9/17 12:13:00 -- |
-- 作者:唐尸三摆手 -- 发布时间:2008/9/17 12:14:00 -- 我个人还是很欣赏这种登陆方式的 [此贴子已经被作者于2008-9-17 12:15:32编辑过]
|
-- 作者:eric803 -- 发布时间:2008/9/17 12:14:00 -- 我试了一下直接在BeforeConnectOuterDataSource事件中加入以下代码: [此贴子已经被作者于2008-9-17 12:16:20编辑过]
|
-- 作者:贺老六 -- 发布时间:2008/9/17 12:16:00 -- e.name表示正在连接的数据源,当然应该只读的。 每链接一个数据源,都会触发这个事件,e.name也不同。 |
-- 作者:贺老六 -- 发布时间:2008/9/17 12:19:00 -- 以下是引用唐尸三摆手在2008-9-17 12:12:00的发言:
参考国内众多ERP厂商都在设计系统时考虑到了这一点,比如启动界面打开(SPLASH)后加载数据源,同时提示加载进度,随后弹出系统登陆界面,包括工作站,用户名,密码,通过不同的工作站权限设置达到用户使用不同的工作菜单,希望这种说法能够得到更多狐朋的认可! [此贴子已经被作者于2008-9-17 12:13:34编辑过]
|