Pentaho Report Designer と Groovy スクリプトを使用してレポートを作成しています。データを返し、パラメーターで並べ替えを利用することができました。私が困惑している部分は、パラメーターリストを手動ではなく動的に構築することです。検索クエリの後に制限を実行できますが、ドキュメントを追加すると個別の値が追加されます。
これは私がgroovyで使用する制限です: コード:
def columnNames = ["<columnName"] as String[]
def columnTypes = [String.class] as Class[]
TypedTableModel model = new TypedTableModel(columnNames, columnTypes);
def docs = meter.find(new BasicDBObject("<name>", "<value>")).limit(26)
while (docs.hasNext()) {
def doc = docs.next()
model.addRow([ doc.get("<name>").getString("<sub_docname>")] as Object[]);
}
docs.close()
find の代わりに一意の値を取得するために distinct を追加しようとしましたが、 hasNext メソッドの署名がありません: com.mongodb.BasicDBList.hasNext() コード:
def docs = meter.distinct("<name.subdocname>")
while (docs.hasNext()) {
def doc = docs.next()
model.addRow([ doc.get("<name>").getString("<subdocname>")] as Object[]);
}
docs.close()
どんな助けでも大歓迎です。