在 BIRT 中显示修改后的参数值
Displaying modified parameter value in BIRT
我在一个非常简单的报告中有两个参数:开始日期和结束日期。这些参数是可选的,在数据集打开脚本中我验证这两个是否有值。如果它们没有任何价值,我将结束日期设置为当前日期,开始日期向后一个月。
我直接将参数作为动态文本元素放入我的报告中,当它们有值时它们会正确显示,但是当它们没有值时我想在报告中显示修改后的值。
这是我当前使用的打开脚本中的代码片段:
if (params["enddate"].value == null)
{
params["enddate"] = new java.util.Date();
}
var enddate = reportContext.getParameterValue("enddate");
// if parameter startdate is null then set it one month before
if (params["startdate"].value == null)
{
var startdate = DateTimeSpan.subDate(enddate, 0, 1, 0);
params["startdate"] = startdate;
}
startdt_jdbc = MXReportSqlFormat.getStartDayTimestampFunction(params["startdate"]);
enddt_jdbc = MXReportSqlFormat.getStartDayTimestampFunction(params["enddate"]);
您应该在页面初始化脚本中将变量 startdt_jdbc 和 enddt_jdbc 声明为全局变量。然后这些在整个报告中可用,因此您可以使用普通数据元素显示它们。
我在一个非常简单的报告中有两个参数:开始日期和结束日期。这些参数是可选的,在数据集打开脚本中我验证这两个是否有值。如果它们没有任何价值,我将结束日期设置为当前日期,开始日期向后一个月。
我直接将参数作为动态文本元素放入我的报告中,当它们有值时它们会正确显示,但是当它们没有值时我想在报告中显示修改后的值。
这是我当前使用的打开脚本中的代码片段:
if (params["enddate"].value == null)
{
params["enddate"] = new java.util.Date();
}
var enddate = reportContext.getParameterValue("enddate");
// if parameter startdate is null then set it one month before
if (params["startdate"].value == null)
{
var startdate = DateTimeSpan.subDate(enddate, 0, 1, 0);
params["startdate"] = startdate;
}
startdt_jdbc = MXReportSqlFormat.getStartDayTimestampFunction(params["startdate"]);
enddt_jdbc = MXReportSqlFormat.getStartDayTimestampFunction(params["enddate"]);
您应该在页面初始化脚本中将变量 startdt_jdbc 和 enddt_jdbc 声明为全局变量。然后这些在整个报告中可用,因此您可以使用普通数据元素显示它们。