Pentaho/Kettle Javascript:动态调用字段
Pentaho/Kettle Javascript: Calling a field dynamically
我试图检索字段的值,但我需要动态构建字段的名称。
想象一下,我把去年按天出生的人放在以天编号命名的列中。所以有DAY_1、DAY_2、DAY_3等列,它们的值分别是5、12、33。。。我想在所有这些值上做一个循环,为此我建立了一个普通的字段名称:
var column_name="DAY_"+i
所以以后我可以一个接一个地循环增加I。
问题是javascript无法将DAY_i识别为有效的输入字段,因此我无法检索字段的值,Pentaho将其作为字符串处理。
在javascript步骤中有一个数组变量row
。您可以使用getInputRowMeta().indexOfValue("DAY_" + i)
查找列的索引,然后使用该索引获取当前行中字段的值:
var column_name = "DAY_" + i;
var column_index = getInputRowMeta().indexOfValue(column_name);
var column_value = row[column_index];
请注意,column_value
将引用某种Java类型的对象(例如Java.lang.String),因此JavaScriptString方法将不适用于此值。您需要将值转换为javascript类型或使用java方法。
对于动态获取输入字段值,您可以使用以下代码:
var column_index = getInputRowMeta().indexOfValue(column_name);
var valor = row[column_index];
var valorString = null;
if (valor != null) {
var valueMeta = getInputRowMeta().getValueMeta(column_index);
valorString = valueMeta.getString(valor);
}
变量";valorString";将包含所需的值。
相关文章:
- 使用Google Visualization动态调用构造函数
- 使用javascript和php动态调用图像
- 如何从变量中动态调用工厂方法
- 角度js 我无法动态调用我的按钮
- JavaScript:嵌套函数的动态调用
- JavaScript:动态调用对象内的函数
- 从 html 动态调用 javascript 对象函数
- 动态调用类函数
- 在 KNOCKOUT.js 中动态调用 attr src 上的子级函数
- 使用来自 json 对象的参数动态调用方法/函数
- Javascript 函数从动态添加的代码动态调用
- 无法在某些浏览器中从某些 HTML 页面动态调用.js文件
- jQuery 动态调用事件侦听器
- 谷歌脚本如何动态调用库函数
- 在jquery插件上动态调用自定义事件
- AngularJS ng-click()在控制器中的.append('')函数的动态调用中不起作用
- 在jquery中动态调用同级时未定义
- 如何在MVC 4剃刀中动态调用图像上的工具提示
- 动态调用SELECT上的Change
- 在Javascript中动态调用函数