以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  外部数据文件选择  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=7813)

--  作者:sophia
--  发布时间:2010/8/8 19:39:00
--  外部数据文件选择

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

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


--  作者:qtcks
--  发布时间: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
--  发布时间: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编辑过]

--  作者:狐狸爸爸
--  发布时间:2010/8/8 22:45:00
--  

BeforeConnectOuterDataSource

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


--  作者:sophia
--  发布时间: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
--  发布时间: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


--  作者:狐狸爸爸
--  发布时间:2010/8/9 8:41:00
--  

应该:

 

If C < 1  Then

 

而不是:

 

If C <= 1  Then

 

 

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