Javascript 在表中打印循环结果

Javascript 在表中打印循环结果,javascript,pentaho,kettle,Javascript,Pentaho,Kettle,我在输入步骤中有10行数据,我在一个for循环中对它们进行变换,我应该得到10行以上的数据,但在这种情况下,我得到了循环对每个数据进行的每个迭代的最后一次变换 我尝试使用appendToFile(),但结果数据没有用处,pentaho将其作为唯一的头读取 在我的alert()方法中,我可以看到for循环转换数据 var PERIODO = 2 var i var fecha_final //var ruta_acess ="D:\TEST.accdb" //var contenido ////v

我在输入步骤中有10行数据,我在一个for循环中对它们进行变换,我应该得到10行以上的数据,但在这种情况下,我得到了循环对每个数据进行的每个迭代的最后一次变换

我尝试使用
appendToFile()
,但结果数据没有用处,pentaho将其作为唯一的头读取 在我的
alert()
方法中,我可以看到for循环转换数据

var PERIODO = 2
var i
var fecha_final
//var ruta_acess ="D:\TEST.accdb"
//var contenido
////var contenido2
//var arreglo_completo
for (i=0; i<=PERIODO; i++){

fecha_final = dateAdd(FECHA_INICIO,"d",i)
Alert(i)
}
var PERIODO=2
变量i
var fecha_final
//var ruta_acess=“D:\TEST.accdb”
//瓦尔康泰多
////contenido2变种
//阿雷格洛·库普莱托酒店

for(i=0;i我的意思是,在获得的结果照片中,“i”变量只显示“3”的值,我希望循环的值为“1”、“2”和“3”

在PDI中并不是一件真正的事情。转换工作在通过步骤的行集合上,因此使用这种思维方式对性能和稳定性来说是最好的

在您的场景中,每个传入的行应以三个副本结束,但基于单个新字段的计算值不同(值为0,1,2)

在PDI中实现这一点的方法是使用一个连接行(笛卡尔积)步骤。它需要两组输入行,并为每个输入行组合输出一行,可能通过定义一个必须匹配的关键字字段进行过滤。因此,如果主输入中有10行,第二输入中有3行,它将输出30行

首先需要创建一个数据网格作为第二个输入。定义一个整数字段,将其命名为clear,然后在第二个选项卡上分别用0、1和2填充三行

将两个输入连接到“连接行”步骤。不需要配置任何匹配的键。 联接步骤的输出将是每个输入行的三行,其中一行的值为0、1、2。将该输出连接到计算器步骤,并使用计算日期a+B天替换javascript步骤中的逻辑

为了解决这个问题,我使用了

var row=createRowCopy(getOutputRowMeta().size()) var idx=getInputRowMeta().size() 行[idx++]=数据进程

这将为迭代的每个结果添加一行。
在转换结果向我显示每个循环的最后一个值之前。

谢谢你的回答,我是pentaho及其功能的新手。事实上,我只使用javascript步骤完成我的项目,但我看到它不仅仅是JS,正如你所说,在谈到性能和稳定性时,这是最好的。我将尝试重新解释为什么我这么做,但使用pentaho的更多功能。再次感谢!……顺便说一句……最近你创建了一个序列……我有不同的开始-结束日期,每一个都有12个月、6个月或1个月的时间……我知道有一种方法可以根据这个日期的时间来创造条件和产生结果……如果你有时间,我想知道,但是我N同时我将了解如何操作。您可以使用克隆行步骤,为克隆编号设置字段,然后使用计算器步骤(日期a+B月)设置相应的日期。