I'm attempting to write a Jasper Report program in Scala, where the data structure is created dynamically. The data source would be a list of Data objects (see case class below), where each Data object is a list of Strings and Ints.
Each line in the report will have fields such as Data.strings(0), Data.strings(1) and so on.
import scala.collection.JavaConversions._
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import net.sf.jasperreports.engine._
import net.sf.jasperreports.engine.data._
case class Data (strings: Array[String], ints: Array[Int] )
val str1 = Array("String11", "String12")
val int1 = Array(11,12)
val str2 = Array("String21", "String22")
val int2 = Array(21,22)
val data1 = Data(str1, int1)
val data2 = Data(str2, int2)
val dataSource = new JRBeanArrayDataSource(Array(data1, data2));
val params = new HashMap[String,String](Map("1"->"one", "2"->"two"))
val jasperPrint = JasperFillManager.fillReport("test1.jasper", params, dataSource);
JasperExportManager.exportReportToPdfFile(jasperPrint, "test1.pdf");
Problem is that the JasperFillManager.fillReport line doesn't compile with the following error, aparently because the list of Data objects is not supported:
◾overloaded method value fillReport with alternatives: (x$1: net.sf.jasperreports.engine.JasperReport,x$2: java.util.Map[String,Object],x$3: net.sf.jasperreports.engine.JRDataSource)net.sf.jasperreports.engine.JasperPrint (x$1: java.io.InputStream,x$2: java.util.Map[String,Object],x$3: net.sf.jasperreports.engine.JRDataSource)net.sf.jasperreports.engine.JasperPrint (x$1: String,x$2: java.util.Map[String,Object],x$3: net.sf.jasperreports.engine.JRDataSource)net.sf.jasperreports.engine.JasperPrint (x$1: net.sf.jasperreports.engine.JasperReport,x$2: java.util.Map[String,Object],x$3: java.sql.Connection)net.sf.jasperreports.engine.JasperPrint (x$1: java.io.InputStream,x$2: java.util.Map[String,Object],x$3: java.sql.Connection)net.sf.jasperreports.engine.JasperPrint (x$1: String,x$2: java.util.Map[String,Object],x$3: java.sql.Connection)net.sf.jasperreports.engine.JasperPrint cannot be applied to (String, java.util.HashMap[Int,String], net.sf.jasperreports.engine.data.JRBeanArrayDataSource)
Any ideas how this can be achieved?
java.util.HashMap. Also, changed params toHashMap[String,String]and still same error