https://github.com/mindexpert7546/grailsapp-sql-jasper-table-learn
To achieve the functionality of Jasper data into table by using sql database with grails application
https://github.com/mindexpert7546/grailsapp-sql-jasper-table-learn
Last synced: 17 days ago
JSON representation
To achieve the functionality of Jasper data into table by using sql database with grails application
- Host: GitHub
- URL: https://github.com/mindexpert7546/grailsapp-sql-jasper-table-learn
- Owner: mindexpert7546
- License: mit
- Created: 2023-11-16T10:26:53.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-11-16T10:56:19.000Z (almost 2 years ago)
- Last Synced: 2025-02-06T08:44:45.311Z (8 months ago)
- Language: CSS
- Size: 188 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GrailsApp-SQL-Jasper-Table-Learn
To achieve the functionality of Jasper data into table by using sql database with grails application## ReportService
```
package com.iinterchangeimport grails.transaction.Transactional
import net.sf.jasperreports.engine.JasperCompileManager
import net.sf.jasperreports.engine.JasperExportManager
import net.sf.jasperreports.engine.JasperFillManager
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource@Transactional
class JasperReportService {def grailsApplication
def generateCombsReport(def data,Map parameters) {
// Compile the JasperReport template
def reportPath = grailsApplication.parentContext.getResource("./reports/dailyTimeMenu.jrxml").file.toString()
def jasperReport = JasperCompileManager.compileReport(reportPath)// Fill the report with data and parameters
def jasperPrint = JasperFillManager.fillReport(
jasperReport,
parameters,
new JRBeanCollectionDataSource(data) //here data - is refer list
)return jasperPrint
}
}```
## Controller :
```
package com.iinterchange
import grails.transaction.Transactional
import net.sf.jasperreports.engine.JasperExportManager
import com.iinterchange.DayTimeMenu
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource@Transactional
class DayTimeMenuController {def jasperReportService
def index() {
// Fetch data from the database or any other source
def menuDetailsList = DayTimeMenu.list()
JRBeanCollectionDataSource menuDataSource= new JRBeanCollectionDataSource(menuDetailsList)// Create parameters map
def fileParams = [:]if (menuDetailsList) {
// If data is not empty, fill parameters
fileParams.put("mainDataSet",menuDataSource)
// Add more parameters as needed
} else {
// Add more default values as needed
}
// def generateCombsReport(def data,Map parameters)
// Generate the Jasper report using the service
def jasperPrint = jasperReportService.generateCombsReport(menuDetailsList, fileParams)// Export the report to PDF and send it as the response
response.setHeader('Content-Disposition', 'inline; filename=ProductReport.pdf')
response.setContentType('application/pdf')
JasperExportManager.exportReportToPdfStream(jasperPrint, response.outputStream)
}
}```
## Domain Class :
```
package com.iinterchangeclass DayTimeMenu {
String date
Integer item_id
String item_name
Double price
Integer unit_sold
static constraints = {
date blank: false
item_id unique: true, blank: false
item_name blank: false
price blank: false, range:0.0..1000.00
unit_sold range: 50..1000
}
}```