【发布时间】:2018-10-30 17:35:54
【问题描述】:
首先,我使用的是 Pentaho CE 8.0。 而且我不是 Pentaho 方面的专家。
这个问题看起来很简单,但我无法让它发挥作用。我正在尝试让仪表板在 MySQL 查询 中为 WHERE 条件使用一个简单的参数。 Bootstrap 布局有 3 列,每个组件(过滤器、文本、表格)一列。
简单参数:
- Name: salesrep_selection
- Property value: mike
过滤器组件(选择销售代表):
- Name: salesrep_selection_filter
- Parameter: salesrep_selection
- Values Array: [["mike","Mike"],["paul","Paul"],["peter","Peter"]]
- Value as Id: false
文本组件:(只是为了检查参数是否设置):
- Name: selection_show_text
- Listeners: ["salesrep_selection"]
- Expression: function() {return this.dashboard.getParameterValue("salesrep_selection");}
表格组件(按销售代表列出的客户):
- Name: customers_list_table
- Listeners: ["salesrep_selection"]
- Datasource: customers_list_data
数据源(MySQL 查询):
- Name: companies_list_data
- Jndi: business_datawarehouse
- Query: SELECT customerid,customername FROM customers WHERE salesrep=${salesrep_selection}
- Parameters: [] (empty)
当我启动仪表板时,我会得到包含销售代表姓名的选择列表。当我选择一个时,id会显示在文本组件中,但表格仍然为空“表格中没有可用数据”。
如果我硬编码条件"WHERE salesrep='mike'",我会得到客户列表。
使用参数"WHERE salesrep=${salesrep_selection}",MySQL 查询日志显示它得到"WHERE salesrep=null"。所以参数不会发送到查询中。
我也尝试使用[["salesrep_selection","salesrep_selection"]],设置数据源参数,但表仍然为空“表中没有可用数据”,并且MySQL查询日志显示"WHERE salesrep='salesrep_selection'".
我在互联网上搜索了很多,没有很多关于此的文章,但无论如何,我发现的正是我实现的。而且我仍然没有任何工作。
Pentaho CE 8.0 中的参数处理方式是否不同?查询参数也是?
【问题讨论】:
标签: mysql pentaho pentaho-cde