我正在尝试将一个条件查询导出到CSV,Excel,您好吗。我遇到的问题是类别代码运行得很干净(例如,不会引发任何错误),但是它不会生成任何数据。我知道data是List的ArrayList。有人对此有解决方法,或者告诉我是否做错了什么?

这是我的域对象:

class Machine {
    String name,
           category
    // constraints, etc
}

这是我的 Controller 操作(主要来自plugin page):
def categories = {
    if(params?.format && params.format != "html"){
 response.contentType = ConfigurationHolder.config.grails.mime.types[params.format]
 response.setHeader("Content-disposition", "attachment; filename=categories.${params.extension}")

    def data = Machine.createCriteria().list {
        projections {
            groupProperty("category")
            countDistinct("id")
        }
    }

    exportService.export(params.format, response.outputStream, data, [:], [:])
}

最佳答案

提交问题后,我想到了一个可能的解决方案:Expando。这是对controller方法的更改:

// response stuff above
def fields = ["category", "count"]
def labels = ["category": "Category", "count": "# of machines" ]

def data = Machine.createCriteria().list {
    projections {
        groupProperty("category")
        countDistinct("id")
    }
}.collect { l -> new Expando("category": l[0], "count": l[1]) }

exportService.export(params.format, response.outputStream, data, fields, labels, [:], [:])

我利用了Export插件试图从对象获取值这一事实。所以,我给它一个对象。

如果有更好的解决方案,我将非常高兴看到它。

关于grails - 如何使Grails导出插件与条件查询一起正常使用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4661873/

10-09 01:15