[英]How to get Year from Date Report Parameter-Birt Report
我创建了一个Birt报告。它包含一个名为“ FromDate”的报告参数。用户将其插入fromdd中,例如“ dd / MM / yyyy”。 我想从此输入参数中获取年份(如果日期是2013年11月1日。我想从此变量中提取2013年)并将此值传递给一个存储过程(即数据集)。我该怎么做。任何人都可以共享示例代码
您可以这样定义变量“ selectedYear”:
var selectedValue = params["FromDate"].value;
var selectedValueArray = selectedValue.split("/");
selectedValueArray[2]
这段代码通过“截断” /上的参数值,然后选择年份(数组中的第二个值,因为我们从零开始计数,所以是第三个块)来创建数组。
然后,您可以在数据集上使用vars["selectedYear"]
。
或者,如果您的数据集包含年份列表,则可以创建一个数据集
select distinct YEAR
from [dataSource]
并从该列表中选择参数。 这也将确保所选年份在范围内。
您可以在“ 编辑数据集”对话框的“ 参数”部分中映射数据集参数以报告参数派生的值:
Edit...
fx
按钮,然后选择Javascript Syntax
。 BirtDateTime.year(params["FromDate"].value)
。 单击确定以确认每个对话框中的这些更改。 (对于该数据集参数,“链接到报表参数”选项必须保留为“ None
”,因为您不想将过程输入参数值设置为与任何“报表参数”完全相同。)
过去我也遇到过类似的问题,但是从驱动数据选择的角度出发,我从数据源中存储的日期作为动态参数来驱动日期选择。 通常情况下,数据集中的日期的格式可以通过函数进行格式化/提取,以给出年月日等。
我试过这个..在相应的存储过程中,我将在输入参数(即FromDate)上做一个子字符串。
在SQL查询(数据集)中,使用此
“ split_part(?,'/',3)” ,我们将使用date参数代替'?' 。 如您所知,Split_part将使用定界符'/'对字符串进行分割。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.