了解最新技术文章
有时,您可能想要直接连接到 Reveal 可能尚不支持的数据源。例如,您可能有自己的自定义数据库。为了满足这种需求,我们支持内存作为数据源。如果您需要使用内存中已有的数据作为应用程序状态的一部分(例如用户请求的报告的结果),您可能还需要使用此选项。
内存数据源还具有其他优点,例如检索速度,因为访问内存中的数据比访问磁盘驱动器上的数据要快得多。
在本博客中,我们将逐步介绍如何使用此功能。
我们建议您定义一个具有与内存中数据匹配的架构的数据文件。例如,数据文件可以是 CSV 或 Excel 文件,架构基本上是字段列表以及每个字段的数据类型。在下面的示例中,您将找到有关如何使用给定架构创建数据文件,然后使用内存中的数据而不是从数据库获取信息的详细信息。
在以下示例中,我们将使用内存数据和公司员工列表,以便在 HR 系统中嵌入显示 HR 指标的仪表板。我们将使用内存中的数据,而不是从数据库中获取员工列表。
基于仅具有几个属性的简化 Employee,使用以下步骤:
员工ID:字符串
全名:字符串
工资:数字
首先创建具有相同架构的 CSV 文件:
将文件上传到您首选的文件共享系统,例如 Dropbox 或 Google Drive
使用虚拟数据创建仪表板。请注意,您稍后将在申请中提供真实的生产数据
导出仪表板(仪表板菜单 → 导出 → 仪表板)并保存为 .rdash 文件。
现在,您需要使用您自己的数据而不是虚拟数据来可视化仪表板。
实现IRVDataSourceProvider并将其作为IRevealSdkContext中的DataSourceProvider属性返回,如替换数据源中所述。
然后,在ChangeVisualizationDataSourceItemAsync方法的实现中,您需要添加类似于以下代码的代码:
通过这种方式,您基本上可以将仪表板中对 CSV 文件的所有引用替换为“员工”标识的内存数据源。稍后返回数据时将使用该标识。
实现将返回实际数据的方法,为此实现IRVDataProvider如下所示:
请注意,Employee 类中的属性与 CSV 文件中的列的命名完全相同,数据类型也相同。如果您想更改任何属性的字段名称、字段标签和/或数据类型,您可以在类声明中使用属性:
RVSchemaColumn 属性可用于更改字段名称和/或数据类型。
DisplayName 属性可用于更改字段标签
此外,要实现IRVDataProvider,您需要修改IRevealSdkContext.DataProvider的实现以返回它: