磁贴列表


首页 » 资源 » 此处

磁贴表示 Envision 中仪表板的构建块。下文列出了 Envision 支持的所有磁贴。



磁贴语法

磁贴的通用内联语法如下:
show table "hello" a1c2 tomato with
x
sum(y)
avg(z)
group by [x,a]
order by [max(y), b] desc
磁贴名称(上文中为 table)后面的第一个参数为磁贴的标题。标题后面为磁贴在仪表板中的位置和大小,位置按类似于 Excel 的网格编码(即字母指示列,数字指示行)。最后是指定颜色,指定的颜色可以为 Web 颜色,或为不含 # 号的十六进制名称(例如西红柿的颜色为 FF6347)。

  • 大部分磁贴在 with 关键字后可以传递多个参数。
  • group by 语句为可选语句,支持多个表达式。在使用 group by 时,表达式中应注明聚合器,除非是已进行预先聚合。
  • order by 语句为可选语句,同样支持多个表达式。语句 desc 可以忽略。如果存在此语句,则表明按降序订货。

with 关键字后作为参数传递的表达式自动通过 Envision 赋值,从而将输入数据作为磁贴的表处理。该输入表可使用以下语法导出:
show table "hello" a1c2 tomato export:"/mytable.tsv" with x, y, z
系统支持文件格式 CSV、TSV、XLSX (Excel) 和 RFF(原始平面文件)。如果指定的文件扩展名未知,则导出将触发错误。

此外还可以使用多个 export 语句将磁贴同时导出到两个或更多个位置:
show table "hello" a1c2 tomato export:"/foo1.tsv" export:"/foo2.tsv" with x, y, z
实际上,由于磁贴的完整语句往往较长,因此 Envision 还提供了磁贴块语法:
show table "hello" a1c2 tomato export:"/foo1.tsv" export:"/foo2.tsv" with
x as "My Name" 
sum(y) as "My total" unit: "$"
avg(z)
group by [x, a]
order by [max(y), b]

颜色作为运行时选项

磁贴颜色的紧凑式内联语法有一个缺点:不能通过程序挑选颜色。但 Envision 提供了将颜色指定为命名选项的功能:
isMonday := today() mod 7 == 0
myColor := isMonday ? "black" : "red"
show label "Monday is Black" color: myColor
选项 color 应为标量文本值。在上例中,磁贴颜色随当前日期而异。星期一为黑色,其余日期为红色。

声明磁贴

如果不满足数据中的特定条件,该磁贴会专门将运行标记为“失败”。with 关键字后面可以列出条件列表。
show assert "My flags" with 
  count(Id) > 20 as "More than 20 items found", 
  sum(Orders.1) > 20 as "More than 20 orders found"

条形图磁贴

该磁贴拟用于显示条形图。with 关键字后传递的表达式提供聚合器。支持显式 group by 语句。
show barchart "Stock per Brand" unit: "$" with
sum(StockOnHand * PurchasePrice)
group by Brand

该磁贴级别可用的选项如下:
  • color(标量文本):绘制条形时使用的主要颜色。
  • download(标量文本):从仪表板下载磁贴时的文件名。
  • export(标量文本):.磁贴内容的本地文件名。
  • unit(标量文本):与数值相关的默认单位。

不支持列选项。

表单磁贴

该磁贴拟用于显示一个表单,表单之值可从仪表板视图中手动输入。所列出的要在该磁贴中显示的变量将附在 Form 虚拟表中。
show form "My settings" with
Form.myValue as "My Value"
Form.secondValue as "Second Value"
表单中定义的变量始终为标量。标量类型根据其在脚本中的使用情况推断。在表单中可以列出多个变量。根据经验,我们建议为高度(涵盖的网格行数)赋予 N+1,其中 N 表示 with 后面列出的 Form 输入变量的个数。

直方图磁贴

此磁贴用于显示直方图。与 barchart 不同,直方图的条形为垂直条形。在直方图磁贴中,只需提供一个数值向量作为参数。
show histogram "Quantities ordered" with
Orders.Quantity
此外,直方图磁贴还可以用于显示标量分布:
show histogram "Poisson Law" with poisson(3)
如果您生成了概率需求预测,需要选择一个项目。这个过程可以用以下语句实现:
where Id == "123"
show histogram "My Forecast" with same(Demand)

该磁贴级别可用的选项如下:
  • color(标量文本):直方图使用的主要颜色。
  • unit(标量文本):对数值应用的默认单位。

提供列级别的选项。

标签磁贴

该磁贴纯粹用于在仪表板中显示文本片段。这种磁贴最简单,无任何输入数据。
show label "Hello World"

徽标磁贴

该磁贴用于显示公司徽标,所显示的是位于您的 Lokad 帐户根目录中的图片文件 logo.pnglogo.jpg。如果您尚未上载此类徽标文件,磁贴会建议您上载相应的图片文件。建议的徽标尺寸为 150x70 像素(一列宽)或 310x70 像素(两列宽)。
show logo "My Company"

线形图磁贴

该磁贴拟用于显示时序,其输入为按日期索引的数据。在 with 关键字后面可以将多个表达式作为参数传递。
Week.sold := sum(Orders.NetAmount)
show linechart "Week sold/purchased" unit: "$" with
Week.sold as "Sold" color: "red"
sum(PO.NetAmount) color: "blue"
尽管可以像其他任何磁贴一样在磁贴级定义颜色,但也可以指定每行要绘制的颜色,如上所示。

此磁贴级别可用的选项如下:

  • color(标量文本):绘制第一条线时使用的主要颜色。
  • unit(标量文本):对数值使用的默认单位。

列级别可用的选项有:
  • color(标量文本): 与列相关的线使用的颜色。

饼形图磁贴

该磁贴拟用于显示饼形图。with 关键字后面传递的表达式应提供聚合器。支持显式 group by 语句。
show piechart "Stock per Brand" unit: "$" with sum(StockOnHand * PurchasePrice) group by Brand

绘图磁贴

此磁贴用于显示函数 f(x)=y
show plot "My function" with T.X, T.Y

可用的磁贴级选项如下:
  • color(标量文本):显示绘制的线时使用的主要颜色。
  • unit(标量文本):默认对数值应用的单位。

摘要磁贴

此磁贴用于收集多个标量值,通常为收集 KPI。每个值可以关联一个标签和一个单位。
show summary "Key stock figures" a1b2 with
sum(StockOnHand) as "Units on hand"
sum(StockOnOrder) as "Units on order"
sum(Stock * BuyPrice) as "Stock value" unit: "$"

表格磁贴

table 是 Envision 提供的用途最多的磁贴。此磁贴用于显示表格,并且表格可以作为平面文件导出。
show table "Top sellers" export:"/tops.tsv" with
Supplier as "Supplier Name"
Category as "Category"
sum(Orders.NetAmount) as "Sold" unit:"$"
group by (Supplier, Category)
order by sum(Orders.NetAmount) desc
表格磁贴对 group byorder by 聚合选项均提供支持。对于二者,可提供元组,不提供单一值。

磁贴级选项

表格磁贴支持在磁贴级定义的多个选项。这些选项在磁贴后面指定,如下所示:
show table "options" color: "red" unit: "$" with 123

可用的选项列表如下:

  • color(标量文本):磁贴使用的主要颜色。
  • date(标量文本):日期列的默认日期格式(有关格式规范,请参阅下文)。
  • download(标量文本):用户从仪表板下载磁贴时使用的默认文件名。
  • export(标量文本):表格内容在 Lokad 帐户中的存储路径。例如 "export: "/foo/bar.csv"。允许编写多个 export 选项,会相应创建多个导出。
  • numbers(标量文本): 数值列的默认数值格式(有关格式规范,请参见下文)。
  • precision(标量数值):定义所有数值列在小数点后显示多少位数字。
  • quotes(标量布尔值):如为 true,强制在生成的 CSV 或 TSV 文件两旁加上引号。默认值为 false
  • unit(标量文本):显示数值时使用的默认单位。

列级选项

提供列级选项对列自身有好处。该语法的说明如下:
show table "Some column-level options" with
Id as "Produce ID"
StockOnHand as "On Hand" unit: "ea"
BuyPrice unit: "$"

列级选项列表如下:
  • date(标量文本):此列的日期格式(有关格式规范,请参阅下文)。
  • display(标量布尔值):指示仪表板中是否显示此列。默认值为 true。如果其意图是只将此列导出到文件中,那么可以不显示此列。
  • export(标量布尔值):指示此列是否导出到文件中。默认值为 true。如果其意图是只在仪表板中显示此列,则可以不导出此列。
  • numbers(标量文本):数值列的数值格式(有关格式规范,请参见下文)。
  • precision(标量数值):定义一列的小数点后显示多少位数。
  • quotes(标量布尔值):如为 true,强制在生成的 CSV 或 TSV 文件两旁加上引号。默认值为 false
  • unit(标量文本):显示一列的数值时使用的单位。

日期格式字符串

日期格式字符串是一种微型语法,可用于指定日期在表格磁贴中的格式。例如:
show table "Last sold" date: "yyyy-MM-dd" with max(Orders.Date)

可用的标记如下:

  • d:一月当中从 1 号到 31 号的日期
  • dd:与 d 相同,但带前缀 0
  • ddd:星期几的缩写(如 Mon、Tue...)
  • dddd:星期几的完整表示 (Monday...)
  • MM:从 1 到 12 的月份数。
  • MMM:月份名称缩写(例如 Jan、Feb...)
  • MMMM:完整的月份名称(例如 June)
  • yy:从 00 到 99 的年份,忽略了百位和千位。
  • yyyy:四位数的年份。

输出字符串中使用的其他任何字符。

数值格式字符串

数值格式字符串是一种微型语法,可用于指定数值在表格磁贴中的格式。例如:
show table "Total sold" number:"1,000.00" with sum(Orders.NetAmount)

这种语法模拟了数值所需的实际输出:
  • 第一个 1 后面的字符为千位分隔符,可以忽略。
  • 最后一个 0 前面的字符为小数点分隔符,可以忽略。

单值显示

table 磁贴仅包含一列和一行时,表格显示会调整为单值显示。
show table "Total Stock Value" with sum(StockOnHand * BuyPrice)

树状图磁贴

treemap 磁贴用于显示树状图。树状图可以更好地把握元素在较大数据集中的相应高度。这种磁贴有两个参数:第一个参数为标签,第二个参数为。之后将通过 group by 语句指定分组。
show treemap "Stock Value" with Name, StockOnHand * PurchasePrice group by Category
由树状图显示的单元格与值之和成正比。

上载磁贴

upload 磁贴的作用是方便直接从 Envision 仪表板上载小文件,而无需来回导航到 Lokad帐户中的 Files 区域。在考虑涉及许多参数的复杂模拟器时,相比在网页中输入所有这些值,将所有参数收集到电子表格中往往比较简单。尽管可以像 Lokad 帐户中的任何其他文件一样上载这样的电子表格,但如果可以直接从仪表板上载,那就更实用了。upload 磁贴恰恰是为了支持此类用例。
read upload as MySuppliers[*] with 
SupplierId : text
SupplierQuota : number
SupplierCountry : text

show upload "Supplier settings" with MySuppliers.*

与其他磁贴不同,upload 磁贴与相应的 read upload 语句紧密结合。事实上,这种语法提供了一种处理用户上载数据的方法,就如同 Envision 可以访问的其他任何表一样。通过该语法,您可以指定要在仪表板中上载的表格列的预期格式。此外,与任何其他数据输入一样,Envision 提供对之前处理的上载文件的完整版本化。之前上载的文件可以从仪表板的“运行历史记录”链接重新下载。

任何有权访问仪表板的用户都可以访问该上载功能,而无需用户访问 Lokad 帐户的文件存储区域。因此 upload 磁贴也可以提供更细粒度的用户访问。