【发布时间】:2022-09-23 04:07:22
【问题描述】:
我在 getConfig() 的数据工作室社区连接器中定义了一个选择参数,如下所示。然后将该参数用作报表中的下拉数据控件。
config
.newSelectSingle()
.setId(\"characteristic_selected\")
.setName(\"Characteristic selected\")
.addOption(
config
.newOptionBuilder()
.setLabel(\"a\")
.setValue(\"a\")
)
.addOption(
config
.newOptionBuilder()
.setLabel(\"b\")
.setValue(\"b\")
)
.addOption(
config
.newOptionBuilder()
.setLabel(\"c\")
.setValue(\"c\")
)
.addOption(
config
.newOptionBuilder()
.setLabel(\"d\")
.setValue(\"d\")
)
.addOption(
config
.newOptionBuilder()
.setLabel(\"e\")
.setValue(\"e\")
)
.setAllowOverride(true);
在 getFields() 中,我定义了 Characteristic,然后从数据库 a、b、c、d 或 e 返回数据:
fields.newDimension()
.setId(\'Characteristic\')
.setType(types.TEXT);
我正在尝试定义一个计算字段,然后将其用作图表和表格中的过滤器,以仅显示用户在下拉数据控件中选择的选项的数据。例如。如果用户选择 \"b\",则仅会显示标记为 \"b\" 的数据。
我的尝试(灵感来自这里的答案:How to use a Parameter in calculated field defined in getFields() (Google Data Studio Community Connector)?)是:
fields.newDimension()
.setId(\'Characteristic calc\')
.setDescription(\'Sets true if characteristic selected in dropdown is the same as the characteristic dimension field\')
.setFormula(\'$Characteristic = \"\' + request.configParams.characteristic_selected + \'\"\')
.setType(types.BOOLEAN);
然后我对表格和图表应用过滤器,仅包含 Characteristic calc = True
默认值为 \"a\"。当我第一次加载页面时,数据过滤正确,只显示“a”。但是,当我从下拉数据控件中选择 \"b\" 时,它仍然只显示 \"a\" 的数据。在报告中更改时,代码似乎没有捕获更新的 configParam。
注意:如果我在报告中而不是在数据工作室连接器中设置计算字段,那么它可以正常工作。但是,我在很多报告中都使用了连接器,因此每次创建新报告时都必须创建计算字段,这很烦人。
-
您将选择的值硬编码到公式中。
.setFormula(\' param_name \') -
@Samuel,感谢您的回复。我不确定我是否理解。我尝试删除参数周围的引号,所以
.setFormula(\'$Characteristic = \' + request.configParams.characteristic_selected + \'\')不起作用。我也尝试在尺寸周围添加引号,所以.setFormula(\'\"$Characteristic\" = \"\' + request.configParams.characteristic_selected + \'\"\')这也不起作用。你能稍微扩展一下你的意思吗?