Visio中ArcGIS UML Semantics Checker 始终出现“This operation requires an ArcInfo or ArcEditor seat.”问题的解决...

在Visio使用UML对ESRI Geodatabase进行建模时,发现ESRI提供的UML语义检查器Semantics Checker总是报错:
This operation requires an ArcInfo or ArcEditor seat.
Use the ArcGIS Desktop Administration Utility to set your seat type.
可是我的License在ArcCatalog或ArcMap里LicenseType明明已经显示为ArcInfo啊,郁闷,在Google里找了找,发现ESRI中国给了下面的解释:

  error.gif 为什么Visio中应用ArcGIS的语义检查器Semantics Checker始终报错?
编号:000658相关产品及版本:ArcInfo Desktop,ArcEditor  8.1-8.3,9.0,9.1平台:N/A
提交时间:2005-12-19  修改时间:2005-12-19提交人:王嘉彬
错误描述
Visio中应用ArcGIS的语义检查器Semantics Checker始终会报出“This operation requires an ArcInfo or ArcEditor seat. Use the ArcGIS Desktop Administrator Utility to set your seat type.”的错误来。
导致原因
这是一个众所周知的错误。(大家都明白呗)
解决办法
在ArcCatalog中来运行Semantics Checker。
1.启动ArcCatalog.
2.点击菜单“工具”->“定制”->“命令”
3.选择 UIControls
4.点击 New UIControl.
5.选择 UI Button Control.
6.点击 Create and Edit.
7.当 Visual Basic 编辑窗口打开后,在 ‘Private Sub UIButtonControl1_Click()’ 下添加,
umlsemcheck.SemChecker.StartChecker
8.点击菜单“工具”->“引用”,选择 check ESRI UML Semantics Checker.
9.保存
10.关闭Visual Basic 编辑窗口
11.点击菜单“工具”->“定制”->“命令”
12.选择 UIControls
13.从命令窗拖动 new UIControl 到工具条上,现在在ArcCatalog 上UML Semantics Checker 就可以使用了。
虽然可以用了,心里还是不很舒服,因为总要在Visio和ArcCatalog之间切来切去的,实在不爽,因为这个语法检查助手事实上就是一段调用ESRI UML Semantics Checker类库里的一个静态方法,肯定是无法获取正确的License,看看了ArcGIS Develop Kit Help,看到有这么一个例子:
 
 
None.gif Private   Function  GetDeploymentName()  As   String
None.gif  
Dim  pLicense  As  IESRILicenseInfo
None.gif  
Set  pLicense  =   New  ESRILicenseInfo
None.gif  
Select   Case  pLicense.DefaultProduct
None.gif  
Case  esriProductCodeViewer
None.gif    GetDeploymentName 
=   " ArcView "
None.gif  
Case  esriProductCodeEditor
None.gif    GetDeploymentName 
=   " ArcEditor "
None.gif  
Case  esriProductCodeProfessional
None.gif    GetDeploymentName 
=   " ArcInfo "
None.gif  
End   Select
  MsgBox GetDeploymentName 
None.gif
End Function
None.gif
先增加了一个ESRI System Object Library的引用,然后把这段代码放到里面一运行,提示"ArcView",难怪呢.好了,有这个信息就好办了,好了,说干就干,修改你现在Visio工程里的ESRI=>Semantics Checker宏代码如下:(最好把ESRI那个模版也修改一下,这样新的工程就都OK了)
None.gif Private   Function  GetDeploymentName()  As   String
None.gif  
Dim  pLicense  As  IESRILicenseInfo
None.gif  
Set  pLicense  =   New  ESRILicenseInfo
None.gif  
Select   Case  pLicense.DefaultProduct
None.gif  
Case  esriProductCodeViewer
None.gif    GetDeploymentName 
=   " ArcView "
None.gif  
Case  esriProductCodeEditor
None.gif    GetDeploymentName 
=   " ArcEditor "
None.gif  
Case  esriProductCodeProfessional
None.gif    GetDeploymentName 
=   " ArcInfo "
None.gif  
End   Select
None.gif
End Function
None.gif
None.gif
Sub  Semantics_Checker()
None.gif    
If  GetDeploymentName()  =   " ArcView "   Then
None.gif        
Dim  pAo  As  IAoInitialize
None.gif        
Set  pAo  =   New  AoInitialize
None.gif        pAo.Initialize esriLicenseProductCodeArcInfo
None.gif        pAo.Shutdown
None.gif    
End   If
None.gif    StartChecker
None.gif
End Sub

本人QQ1283205,欢迎大家交流,一起提高。

转载于:https://www.cnblogs.com/jans2002/archive/2006/11/10/556457.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值