pentaho修改并输出excel时输出参数

我使用pentaho报告devise器。 我的prpt文件中有businessdate参数。 这有用于过滤SQL查询的date范围的值。 我能够处理和修改,而出口到HTML,但我有出口到Excel中的问题。

date范围的格式如下:

- BETWEEN {d '2014-01-01'} AND {d '2014-01-31'} - IN ({d '2014-01-14'},{d '2014-01-15'}, {d '2014-01-19'} ,{d '2014-01-20'},{d '2014-01-21'}) 

我喜欢找出最大和最小date并显示它。 然而,在这种情况下与Excel中,我很高兴显示它们用逗号分隔,如下所示。

 - 2014-01-01, 2014-01-31 - 2014-01-14, 2014-01-15, 2014-01-19, 2014-01-20, 2014-01-21 

如果我使用下面的基本公式显示,它可以在Excel中运行,但在将它应用于pentaho报表devise器中的businessDate元素的Excelexpression式部分时,它不起作用。

 =TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B4,"{d '",""), "BETWEEN", ""), "IN", ""),"'}",", "), " AND ", ""),")",""),"(",)) 

它不一定是这样的。 我很高兴与任何方法build议格式化这个原始的date范围之前打印到Excel。

先谢谢你。

浪费了很多时间后,我发现了一种适用于所有出口types的方法。 正如我在我的问题中说,我正在修改HTML打印的date,通过使用“结构选项卡” – >select“主报告” – >“属性”选项卡 – > HTML – >“append-header”属性。

  <script type="text/javascript"> function init() { var tableList = document.getElementsByTagName("table"); var businessDate = document.getElementById("businessDatePeriodSelected"); businessDate.innerHTML = businessDate.innerHTML+"testDateModified"; } window.onload = init; </script> 

这段代码完成这项工作。 但只是为HTML。 我需要拿出一些新的东西。 我正在寻找excel和pdf导出的解决scheme。

这里是解决scheme:点击右上方“结构”选项卡旁边的“数据”选项卡。 您将在树中看到“function”。 右键单击并点击“添加function”。 select“Script” – >“Bean-Scripting Framework(BSF)”。 selectfunction下创build的function。 给它一个名字,并将下面的代码添加到“expression式”部分。 [这不需要开始或结束标签]

 /* businessdate is one of my parameters that I like to display on the report. dataRow is automatically recognized by the interpreter which can be used for calling parameter values. It seems like came out of nowhere.*/ String value = dataRow.get("businessdate"); value= value.replaceAll("[^0-9\\-\\{\\}]", ""); value= value.replaceAll("[\\{]", ""); // replace all { value= value.replaceAll("[\\}]", ","); // replace all } value= value.substring(0, value.length()-1); String[] dateArr = value.split(","); return dateArr[0] +" - "+dateArr[dateArr.length-1]; 

您需要做的最后一件事就是将您的function拖放到适合您报告的地方。 它会find一个显示修改后的业务date的文本框。

如果你想在你的pentaho报表上打印一个参数,那么这个工作就可以完成所有的输出(html,pdf和excel)。 您也可以在打印之前对其进行修改。 这个链接很有帮助,因为语法在某些方面略有不同。

祝你好运。