在BIRT中使用mongodb进行动态查询

时间:2014-10-27 12:06:35

标签: mongodb report birt

我必须制作一个包含3个参数的birt报告,这些参数应该在查询中使用。参数是两个日期和一个字符串。

我尝试在beforeOpen数据集中执行此操作,如sql查询所示,但它没有用。

我在beforeOpen表达式数据集中写道:

this.queryText = '{
"findQueryExpr": { "ref":  "'+params["ref"].value+'",  "sts": { $gt: "'+params["startDate"].value+'" , $lte: "'+params["endDate"].value+'"} } , 
"operationType" : "FIND" , 
"collectionName" : "events", 
"queryReadPreference" : "secondary" , 
"selectedFields" : [ "ref" , "sts" , "rts" , "c.value" , "c.type" , "c.quality" , "r.value" , "r.type" , "r.quality"] 
}';

无论参数如何,查询都会占用集合中的文档总数。

可以使用参数在Birt中进行mongo查询吗?

1 个答案:

答案 0 :(得分:0)

双击您的数据集,选择“属性绑定”并在查询文本中输入您的函数。

您还应将查询字符串设置为全局持久变量,并将其打印在报表上以进行调试,确保最终语句有效。日期可能在报告和数据库中采用不同的格式,导致不限制结果集:

reportContext.setPersistentGlobalVariable("testglobal", queryString);// in the script of your data source.
reportContext.getPersistentGlobalVariable('testglobal');//in a dynamic text fild.