Abdulla I
Abdulla I

Reputation: 11

Generating jasper report by using method call in grails

I know,By using <g:Jasper> tag I can generate report in grails but I want to save the report generated directly to a folder,mostly using method, iss any of you have any Idea regarding this

Upvotes: 1

Views: 300

Answers (2)

Emdadul Sawon
Emdadul Sawon

Reputation: 6077

I hope you are asking to save jasper generated report to a file. This is easy. You can obtain report content (as byet array) from jasper. Then just save the content to a file. An example is given below-

JasperService jasperService;

def saveReport(GrailsParameterMap params, Locale locale, List<DataModel> models) {
    // Prepare data
    List searchReportSheet = new ArrayList();
    LinkedHashMap<String, Object> searchSheetMap;
    models.each {
        searchSheetMap = new LinkedHashMap<String, Object>();
        searchSheetMap.put("key", it.keyValue);
        ...............
        ...............
        searchReportSheet.add(searchSheetMap);
    }

    // Call jasper for generate report
    def reportDef = jasperService.buildReportDefinition(params, locale, [data: searchReportSheet]);

    // Save to File
    def content = reportDef.contentStream.toByteArray();
    FileOutputStream fileOuputStream = new FileOutputStream(fileDest)
    fileOuputStream.write(content);
}

Upvotes: 1

naimul64
naimul64

Reputation: 133

Let's say your controller con and method met execute the jasper report export. And in params you pass some parameters. Let's say the parameters are name, reportFile, 'date.
Then you can get the report export by calling this link from any where:

http://yourDomain.com/con/met?name=myName&date=21-11-2012&reportFile=fileName

For example: I recently exported a jasper report using this link:

http://localhost:9096/WebSite/agent/agentTouchExport?_format=XLSX&_name=Export+to+xlsx&_file=AgentTouchReport&distributorWallet=&srWallet=&agentWallet=&businessRegionId=0&businessAreaId=0&businessTerritoryId=0&fromDate=2017-01-01&toDate=2017-02-03

Upvotes: 2

Related Questions