为SSAS多维数据集的表模型在Excel数据透视表的维度和度量的列表中创建任意顺序的元素

如果您必须处理一个多维数据集,其中度量和度量的数量超过9000,并且没有足够的三个屏幕来容纳它,那么您可能还会听到用户抱怨使用此怪物的不便之处。 毕竟,用户最经常要进行相同的测量,否则,几乎没有样品可以做。 但是,由于excel的特殊性,它喜欢按字母顺序对位于数据透视表字段中的所有元素进行排序,因此,这些最受欢迎的对象通常分散在整个列表中,并与其他(很少使用的)元素混合在一起。


在尝试在三个(日期,产品,客户)字段中设置过滤器时,您必须上下滚动列表十次。 每天为此工作是不够的。

解决方案是平庸的,不是新的-在维名称的开头添加字符或数字,从而影响顺序。

但是用户是硬币的一面,他们对这种方法感到满意。 但是开发人员呢?
毕竟应该是这样的:您开始在公式中编写维的名称,然后工作室会给出提示,对吗? 但是,仅在附加字符的情况下,它们都出现在代码中,让我们说……不是真的。 在VS2017中,已经对条目进行了搜索,但在先前的搜索中却没有,并且我不得不写一个不是用字母K而是用数字5 的Calendar ,因为5是Calendar 。 在其他程序中的查询必须在没有提示的情况下编写,并且要提到另一个维度或字段的哪个数字。



实际上,当您需要更改顺序时,您需要重命名表格或字段,并且如果公式中使用了此字段,那么Studio也会对公式进行更正。 当有数十个公式(并且总是有数十个公式)时,模型的一半将在Git中突出显示,因为工作室确实纠正了所有公式,而我只想按排序顺序交换字段。 其他来源(工作室外部)的请求将完全失败。 极不舒服!

但是有办法。

但是,在表格模型中,与多维模型一样,可以添加翻译。 我们将使用它们。

通过使用文本从.bim模型中卸载.json文件,对其进行编辑,然后将其上传回模型中来执行翻译。 但是,如果模型最初是俄文,则Visual Studio不允许上传俄文文件(通常,无法卸载模型的基本语言的翻译)。 但是您可以卸载其他任何东西!



上传的文件必须使用任何支持Unicode的文本编辑器进行编辑,并用ru-RU替换en-US

然后,使用特殊的SSAS Tabular Translator程序,您可以编辑名称(但您可以根据需要在笔记本中进行操作)。



将文件导入回项目



Vuyalya



翻译还有另一个重要的优点:

从.json文件,仅将修改(翻译)的行加载到模型中,而不是整个文件,并且仅存储翻译。 因此,即使出现新的尺寸或度量,而您忘记“翻译”它,也不会破坏任何东西,它只会按原样显示在Excel中。

当然,您不能用en-US替换ru-RU来完成所有这些操作,但是随后用户将不得不通过添加英语语言环境选项来重新配置与数据源的连接。

有一个功能

在将基本语言的翻译添加到模型后,如果不进行初步准备就不能删除该翻译。



很有可能,这是不太可能需要的,但是,正如您所知道的,如果您不需要,但确实想要,那么就可以。

打开解决方案资源管理器 ,右键单击模型.bim文件,然后选择“ 转到代码”



在代码中,我们寻找ru-RU行 ,而不是文件开头的那一行 ,而是更接近结尾的那一行,并将其固定在en-US上





我们在设计模式下修复,保存,重新发现模型并检查



如您所知,这是一个未记录的功能,因此决定使用此功能后果自负。

Source: https://habr.com/ru/post/zh-CN427863/


All Articles