Foxtable(狐表)用户栏目专家坐堂 → 外部数据文件选择


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

主题:外部数据文件选择

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


加好友 发短信
等级:小狐 帖子:334 积分:2722 威望:0 精华:0 注册:2010/5/20 13:07:00
外部数据文件选择  发帖心情 Post By:2010/8/8 19:39:00 [只看该作者]

在帮助文件BeforeConnectOuterDataSource事件中,事例3是弹出一个对话框,用来选择外部数据文件.

我想做到当第一次选择了外部数据文件以后,下次就不再弹出对话眶了.把项目文件安装在局域网上的另外一台电脑上也要做到同样要求,该怎么做呢?


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


加好友 发短信
等级:一尾狐 帖子:485 积分:3926 威望:0 精华:6 注册:2009/3/29 13:25:00
  发帖心情 Post By:2010/8/8 20:26:00 [只看该作者]

查看

保存设置信息

 

一个完整的系统,通常会提供一些自定义的设置给用户,以便满足不同的用户需要。
FoxTable提供了一些函数,分别用于保存、读取和维护设置信息

示例

假定你提供给客户的是一个试用版本,希望最多使用30次,可以在项目事件AfterProject事件中加入如下代码:

Dim n As Integer
n = GetConfigValue("Count",1) '假定保存试用次数的设置名称为Count
If
n > 30 Then
    Messagebox.Show("您正在使用的产品已经超出试用次数!")
    Syscmd.Project.Exit()
Else
   
n = n + 1
    SaveConfigValue("Count",n)
End
If


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


加好友 发短信
等级:小狐 帖子:334 积分:2722 威望:0 精华:0 注册:2010/5/20 13:07:00
  发帖心情 Post By:2010/8/8 21:22:00 [只看该作者]

BeforeConnectOuterDataSource事件代码如下:

Dim ljcs As Integer
ljcs = GetConfigValue("lj",1) '假定保存试用次数的设置名称为Count
If ljcs = 1  Then
  If e.Name = "办证平台外部数据源" Then
      Dim dlg As New OpenFileDialog
      dlg.title= "请选择数据来源"
      dlg.Filter= "Access文件|*.mdb"
      If dlg.ShowDialog = DialogResult.Ok Then
          e.C & dlg.FileName & ";Persist Security Info=False"
      End If
  End If
Else
  ljcs=ljcs+1
  SaveConfigValue("lj",ljcs)
End If

执行后报错:


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

好象是每找到变量"ljcs"的值,可是该怎么样去判断呢?

[此贴子已经被作者于2010-8-8 21:24:14编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/8/8 22:45:00 [只看该作者]

BeforeConnectOuterDataSource

可能还不能使用配置文件吧,改用注册表吧。


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


加好友 发短信
等级:小狐 帖子:334 积分:2722 威望:0 精华:0 注册:2010/5/20 13:07:00
  发帖心情 Post By:2010/8/8 23:15:00 [只看该作者]

狐爸:BeforeConnectOuterDataSource事件代码有错误吗?怎么没达到效果呢?

Dim Count As Integer
Count = Registry.GetValue("HKEY_CURRENT_USER\Software\MyApp","Count",1)
If Count = 1  Then
  If e.Name = "办证平台外部数据源" Then
      Dim dlg As New OpenFileDialog
      dlg.title= "请选择数据来源"
      dlg.Filter= "Access文件|*.mdb"
      If dlg.ShowDialog = DialogResult.Ok Then
          e.C & dlg.FileName & ";Persist Security Info=False"
      End If
  End If
Else
  Registry.SetValue("HKEY_CURRENT_USER\Software\MyApp","Count",Count + 1)
End If


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


加好友 发短信
等级:小狐 帖子:334 积分:2722 威望:0 精华:0 注册:2010/5/20 13:07:00
  发帖心情 Post By:2010/8/8 23:43:00 [只看该作者]

把代码做如下修改,好用了.但是是前两次启动出现提示框,可能每一次读取注册表的时间较慢才造成的.

Dim C As Integer
C = Registry.GetValue("HKEY_CURRENT_USER\Software\MyApp","Count",0)
If C <= 1  Then
  If e.Name = "办证平台外部数据源" Then
      Dim dlg As New OpenFileDialog
      dlg.title= "请选择数据来源"
      dlg.Filter= "Access文件|*.mdb"
      If dlg.ShowDialog = DialogResult.Ok Then
          e.C & dlg.FileName & ";Persist Security Info=False"
      End If
  End If
  Registry.SetValue("HKEY_CURRENT_USER\Software\MyApp","Count",C + 1)
End If


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/8/9 8:41:00 [只看该作者]

应该:

 

If C < 1  Then

 

而不是:

 

If C <= 1  Then

 

 

这样就只有第一次出现提示.


 回到顶部