繁体   English   中英

如何从日期报表中获取年份参数参数报表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM