代码中创建工作空间

0 投票
你好,请问超图有没有api,在代码里创建工作空间?
8月 27, 2018 分类:  827次浏览 | 用户: Alan 初出茅庐 (74 分)

2 个回答

1 投票
 
已采纳

您好,您的意思应该是保存工作空间文件吧。从811版本开始,通过Workspace.save()接口可以实现保存工作空间文件,也另存为或新建新的工作空间文件,不同之处在于Workapce关联的工作空间文件路径是否存在。

创建一个新的工作空间文件的代码:

Workspace wk = new Workspace(); // 没有关联的工作空间文件
WorkspaceConnectionInfo wkInfo = wk.getConnectionInfo();
wkInfo.setServer(path); // path 为工作空间文件的路径
try{ 
   wkInfo.save();       // 保存工作空间,如果文件不存在就会创建
}catch(Exception e){
  
}


另存为工作空间,就是将原来打开的工作空间关联的文件路径(示例中的path)修改,再保存即可。

可参考帮助文档中的说明。

8月 27, 2018 用户: 幸俊 学富五车 (694 分)
采纳于 8月 28, 2018 用户:Alan
奇怪,为什么我查看帮助文档找不到save(),这个方法,看了9D的文档也没有,程序里调用就出错了
谢谢,可以了,原来是Workspace里的save(),为什么你的编译器不提示错误
您说的提示错误应该是静态检查提示没有捕获异常吧,你将鼠标指针放在错误代码处,会有提示改正建议。因为这个接口可能会抛出异常,给出一些不能保存的原因,使用try...catch..就不会报错了

我使用AS编译的,如果我用WorkspaceConnectionInfo的save()方法,直接报错了,为何你的不会呢

WorkspaceConnectionInfo没有这个方法当然会报错了。它是Workspace关联的一些属性信息,并没有操作Workspace的功能,Workspace.save()就已经保存到文件了。
嗯嗯,还有一个疑问,就是我先创建了工作空间,然后创建新的数据源和数据集,都创建成功了,调用工作空间打开数据源,再保存工作空间,然后把手机里的的工作空间和数据源拷贝到电脑用桌面端打开,发现工作空间里没有数据源,是什么原因呢,你有遇到过吗?
我没有遇到这个问题,并可以且我试了一下没有问题,桌面打开工作空间也有保存的数据源。

您可以检查一下保存工作空间时是否有异常,返回值是否为true。另外,可注意一下几点:

1. 数据源创建成功后,该数据源已经在工作空间打开,不用再打开一次;

2. 与工作空间类似,DatasourceConnectionInfo.setServer()设置数据源的路径。

3. 保存的工作空间中,关联的数据源使用相对路径,拷贝后也要保持相同的相对路径,检查一下路径。

4. Workspace.save()如果成功,使用Workspace.getDatasources().getCount()查看一下保存的数据源数目
谢谢您,可以了,原来是我多打开了一次工作空间。
0 投票
桌面端的开发是有的,安卓端和web端的话没有
8月 27, 2018 用户: HX 初出茅庐 (71 分)
看了一下帮助文档,移动端也可以在代码中动态创建工作空间和数据源数据集的
...