第十八篇:Hyperion神器之SmartView产品(下篇)

首页    干货分享    第十八篇:Hyperion神器之SmartView产品(下篇)
2022-06-02 16:10
浏览量:0

    本文将是smartview的最后一篇文章,主要介绍基于Excel的HFM相关的模板功能的开发。

1、输出报表开发(基于VBA语言)

输出报表是基于Excel开发最常见的使用方式,它主要是解决HFM表单天然不能满足报告输出的缺陷。比如在年度审计时,审计顾问需要提供基于法人公司的一套完整的报表,包括主表、附注及其他的信息,HFM本身的表单功能是无法满足这样的需求,在HFM中,即使某些表单能搭建出来,也是需要花费很大的代价,所以基于smartview产品API的功能成了输出表需求的首选。

一个输出套表的示例:

开发思路

1.1 构建输出表样式

必须要预先设定格式,然后根据格式进行解析,通过宏代码自动生成hs.getvalue公式。
以资产负债表为例:

1.2 利用宏代码自动生成公式

首先需要导入smartview提供的API。
这个API其实就在smartview安装目录的BIN文件夹中。
 
导入后会出现smartviewVBA的API接口供使用,细心的读者会发现,大约从smartview2.5版本开始,已经兼容了32位和64位的调用(函数前面带了ptrsafe)。
 
基于表样自动生成刷数公式的样例代码:

1.3 调用smartview提供的API刷出报表数据

如果是逐个刷新,一般使用HypRetrieve函数。这样刷新的效率极低。
Smartview还提供了一个效率比较高的API函数:HypMenuVRefreshAll,刷新整个工作簿的函数。
 

2、基于其他语言的开发

还可以基于VBA宏进行开发HFM相关的功能,比如使用Python开发元数据调用的服务,然后通过Excel宏进行调用将结果返回到Excel的工作表中。

3、基于Excel开发的优缺点

基于Excel开发的HFM功能其实有很多,笔者以上仅仅列举了解过或者使用过的部分内容,当然还有很多其他的深入融合HFM产品功能的开发,只是笔者没有见识过。因为本身笔者不擅长语言开发,所以对这块的了解深度有限。如果有其他创新的开发方式,欢迎交流。

我们说做任何事情都是有两面性的,开发功能或者产品也一样,总会有机会成本在里面的。

缺点:插件与Excel集成不稳定

由于HFM的使用,非常依赖于smartview插件,这是一个基于Excel的插件,我们都知道,Excel插件的一大弊端就是不稳定,经常出现插件被禁用或者不生效的情况,这点用户体验非常的差。

优点:基于Excel的功能或者产品是用户所希望的。

基于Excel产品开发的优点不言而喻,所以用户仍然希望使用Excel进行报表的操作,比如在Excel中打开web表单进行填报和在web网页中打开web表单进行填报,体验是完全不一样的。