Below is my student.json file.
[
{
"studentName": "NIDHI AGARWAL",
"USN": "1BM18CV149",
"Semester": "II SEM",
"Branch": "Civil Engineering",
"subjectDetails": [{
"SLNo": 1,
"subjectCode": "18MBA1PCAC",
"subjectName": "Physics",
"Eligibility": "Not Eligible"
},
{
"SLNo": 2,
"subjectCode": "18MBA1PCAC",
"subjectName": "Biology",
"Eligibility": "Eligible"
}
]
},
{
"studentName": "Kiran",
"USN": "1BM18CV149",
"Semester": "II SEM",
"Branch": "Civil Engineering",
"subjectDetails": [{
"SLNo": 1,
"subjectCode": "18MBA1PCAD",
"subjectName": "Maths",
"Eligibility": "Not Eligible"
},
{
"SLNo": 2,
"subjectCode": "18MBA1PCAC",
"subjectName": "Science",
"Eligibility": "Eligible"
}
]
},
{
"studentName": "Praveen",
"USN": "1BM18CV149",
"Semester": "II SEM",
"Branch": "Civil Engineering",
"subjectDetails": [{
"SLNo": 1,
"subjectCode": "18MBA1PCAD",
"subjectName": "English",
"Eligibility": "Not Eligible"
},
{
"SLNo": 2,
"subjectCode": "18MBA1PCAC",
"subjectName": "Kannada",
"Eligibility": "Eligible"
}
]
},
{
"studentName": "Ashwin",
"USN": "1BM18CV149",
"Semester": "II SEM",
"Branch": "Civil Engineering",
"subjectDetails": [{
"SLNo": 1,
"subjectCode": "18MBA1PCAD",
"subjectName": "EC",
"Eligibility": "Not Eligible"
},
{
"SLNo": 2,
"subjectCode": "18MBA1PCAC",
"subjectName": "KAS",
"Eligibility": "Eligible"
}
]
},
{
"studentName": "Amit",
"USN": "1BM18CV149",
"Semester": "II SEM",
"Branch": "Civil Engineering",
"subjectDetails": [{
"SLNo": 1,
"subjectCode": "18MBA1PCAD",
"subjectName": "CS",
"Eligibility": "Not Eligible"
},
{
"SLNo": 2,
"subjectCode": "18MBA1PCAC",
"subjectName": "IS",
"Eligibility": "Eligible"
}
]
}
]
Below is my jrxml file.
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.13.0.final using JasperReports Library version 6.13.0-46ada4d1be8f3c5985fd0b6146f3ed44caed6f05 -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="BMSCE_HALLTICKET" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" isIgnorePagination="true" uuid="c51566f5-ab95-4707-b371-2ef8762b72f4">
<property name="net.sf.jasperreports.json.source" value="student.json"/>
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="DataAdapter.xml"/>
<style name="Table_CH" mode="Opaque" backcolor="#FFFFFF">
<box>
<pen lineWidth="0.5" lineColor="#000000"/>
<topPen lineWidth="0.5" lineColor="#000000"/>
<leftPen lineWidth="0.5" lineColor="#000000"/>
<bottomPen lineWidth="0.5" lineColor="#000000"/>
<rightPen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<style name="Table_TD" mode="Opaque" backcolor="#FFFFFF">
<box>
<pen lineWidth="0.5" lineColor="#000000"/>
<topPen lineWidth="0.5" lineColor="#000000"/>
<leftPen lineWidth="0.5" lineColor="#000000"/>
<bottomPen lineWidth="0.5" lineColor="#000000"/>
<rightPen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<subDataset name="StudentDetailsDataSet" uuid="6de18a40-c6a3-4367-9574-7e6bd10d9d70">
<property name="net.sf.jasperreports.json.source" value="student.json"/>
<queryString>
<![CDATA[]]>
</queryString>
<field name="subjectCode" class="java.lang.String"/>
<field name="subjectName" class="java.lang.String"/>
<field name="Eligibility" class="java.lang.String"/>
<field name="SLNo" class="java.lang.Integer"/>
</subDataset>
<parameter name="JSONBeanParam" class="net.sf.jasperreports.engine.json.JRJsonNode"/>
<parameter name="CollectionBeanParam" class="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"/>
<queryString>
<![CDATA[]]>
</queryString>
<field name="studentName" class="java.lang.String"/>
<field name="USN" class="java.lang.String"/>
<field name="Semester" class="java.lang.String"/>
<field name="Branch" class="java.lang.String"/>
<background>
<band splitType="Stretch"/>
</background>
<detail>
<band height="316" splitType="Stretch">
<rectangle>
<reportElement mode="Transparent" x="80" y="0" width="720" height="316" uuid="89d405b7-d585-4b96-977c-15fcd0003fad"/>
</rectangle>
<componentElement>
<reportElement x="125" y="110" width="630" height="170" uuid="5c165218-9085-4a3b-8a0e-1aab0a7469ea">
<property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.VerticalRowLayout"/>
<property name="com.jaspersoft.studio.table.style.column_header" value="Table_CH"/>
<property name="com.jaspersoft.studio.table.style.detail" value="Table_TD"/>
<property name="com.jaspersoft.studio.components.autoresize.proportional" value="true"/>
</reportElement>
<jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
<datasetRun subDataset="StudentDetailsDataSet" uuid="2009acfc-3137-4017-a9dd-e0b263a634a9">
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.JREmptyDataSource() ]]></dataSourceExpression>
</datasetRun>
<jr:column width="83" uuid="f21ea19e-71d0-4a94-8bcb-3d1c4af367da">
<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column1"/>
<jr:columnHeader style="Table_CH" height="30" rowSpan="1">
<staticText>
<reportElement x="0" y="0" width="83" height="30" uuid="ab1e7c7e-ce73-4d22-8bcb-6fd1c695838c"/>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<text><![CDATA[Sl No.]]></text>
</staticText>
</jr:columnHeader>
<jr:columnFooter style="Table_CH" height="30" rowSpan="1"/>
<jr:detailCell style="Table_TD" height="30">
<textField>
<reportElement x="0" y="0" width="83" height="30" uuid="d33f5be3-9c69-4a50-8979-1b290b283767">
<property name="net.sf.jasperreports.export.json.path" value="slno"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{SLNo}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
<jr:column width="90" uuid="a41271c6-5397-4190-a489-557874bd3b9d">
<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column2"/>
<jr:columnHeader style="Table_CH" height="30" rowSpan="1">
<staticText>
<reportElement x="0" y="0" width="90" height="30" uuid="0beed8cd-8d3b-49aa-bdef-be8c7726682e"/>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<text><![CDATA[Course Code]]></text>
</staticText>
</jr:columnHeader>
<jr:columnFooter style="Table_CH" height="30" rowSpan="1"/>
<jr:detailCell style="Table_TD" height="30">
<textField>
<reportElement x="0" y="0" width="90" height="30" uuid="b4605e22-9fc5-45a8-8dab-079a9268f509"/>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{subjectCode}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
<jr:column width="220" uuid="450d9dc0-0fbe-4033-a243-8f5e0e6f5248">
<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column3"/>
<jr:columnHeader style="Table_CH" height="30" rowSpan="1">
<staticText>
<reportElement x="0" y="0" width="220" height="30" uuid="ecc270f7-b02a-437a-8f88-084a7e827d8f"/>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<text><![CDATA[Course Title]]></text>
</staticText>
</jr:columnHeader>
<jr:columnFooter style="Table_CH" height="30" rowSpan="1"/>
<jr:detailCell style="Table_TD" height="30">
<textField>
<reportElement x="0" y="0" width="220" height="30" uuid="fcb61603-14d9-4684-b6b6-c61e9c79d769"/>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{subjectName}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
<jr:column width="119" uuid="e8cd6ba8-1e22-4eeb-b1ea-2b943ea453cb">
<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column4"/>
<jr:columnHeader style="Table_CH" height="30" rowSpan="1">
<staticText>
<reportElement x="0" y="0" width="119" height="30" uuid="480d501c-49f2-4ec2-b09d-eb626adf77ea"/>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<text><![CDATA[Eligibility]]></text>
</staticText>
</jr:columnHeader>
<jr:columnFooter style="Table_CH" height="30" rowSpan="1"/>
<jr:detailCell style="Table_TD" height="30">
<textField>
<reportElement x="0" y="0" width="119" height="30" uuid="a4720b12-6b47-4b89-9ed9-a97c5f35f77d"/>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{Eligibility}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
<jr:column width="118" uuid="f2b73c8f-5d07-47ee-8a2e-40a54d95bcf2">
<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column5"/>
<jr:columnHeader style="Table_CH" height="30" rowSpan="1">
<staticText>
<reportElement x="0" y="0" width="118" height="30" uuid="9a3565a7-5c04-46f4-8dc8-cd4a4bee55b7"/>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<text><![CDATA[Invigilator Signature]]></text>
</staticText>
</jr:columnHeader>
<jr:columnFooter style="Table_CH" height="30" rowSpan="1"/>
<jr:detailCell style="Table_TD" height="30"/>
</jr:column>
</jr:table>
</componentElement>
<textField>
<reportElement x="200" y="10" width="200" height="22" uuid="a48bc6bd-4a75-49a1-ae38-b53640a577e9"/>
<textFieldExpression><![CDATA[$F{studentName}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="200" y="30" width="200" height="22" uuid="0eeecefa-ccbf-4782-bd7d-8d2d67068925"/>
<textFieldExpression><![CDATA[$F{USN}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="200" y="52" width="200" height="22" uuid="fb5b8e76-3549-47c1-aeb0-e03c0c3fef8d"/>
<textFieldExpression><![CDATA[$F{Semester}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="200" y="73" width="200" height="22" uuid="deb82ac6-a242-4a71-b583-321b35757c5d"/>
<textFieldExpression><![CDATA[$F{Branch}]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="125" y="10" width="75" height="20" uuid="0d030822-a92b-4003-b4f0-052920dc30ab"/>
<text><![CDATA[Name : ]]></text>
</staticText>
<staticText>
<reportElement x="125" y="31" width="75" height="20" uuid="fbaf6968-5674-487e-88bc-0cf93679b7e2"/>
<text><![CDATA[USN : ]]></text>
</staticText>
<staticText>
<reportElement x="125" y="51" width="75" height="23" uuid="de2b5d4f-6086-48da-bbf5-c1fed18a96b1"/>
<text><![CDATA[Semester : ]]></text>
</staticText>
<staticText>
<reportElement x="125" y="74" width="75" height="20" uuid="5ded0c4f-fb7d-413e-a7b0-61b389001c67"/>
<text><![CDATA[Branch : ]]></text>
</staticText>
</band>
</detail>
</jasperReport>
Below is my Java code to generate Japer reports.
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.json.simple.*;
import org.json.simple.parser.*;
import net.sf.jasperreports.engine.JRAbstractExporter;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.export.SimpleExporterInput;
import net.sf.jasperreports.export.SimpleOutputStreamExporterOutput;
import net.sf.jasperreports.export.SimplePdfExporterConfiguration;
import net.sf.jasperreports.view.JasperViewer;
public class BMSCE_HALLTICKET {
/**
* @param args
* @throws JRException
* @throws IOException
* @throws ParseException
*/
public static void main(String args[]) throws JRException, IOException, ParseException {
/* Output file location to create report in pdf form */
JSONParser parser = new JSONParser();
List<JasperPrint> jasperPrints = new ArrayList<JasperPrint>();
List<Student> listItems=null;
JSONArray array = (JSONArray) parser.parse(new FileReader("C:\\Users\\Sony\\Desktop\\student.json"));
for (int i = 0; i < array.size(); i++) {
listItems=new ArrayList<Student>();
Student std = new Student();
JSONObject obj = (JSONObject) array.get(i);
std.setUSN((String) obj.get("USN"));
std.setStudentName((String) obj.get("studentName"));
std.setSemester((String) obj.get("Semester"));
std.setBranch((String) obj.get("Branch"));
JSONArray subjectsDetails = (JSONArray) obj.get("subjectDetails");
List<subjectDetails> subdetails = new ArrayList<>();
for (int j = 0; j < subjectsDetails.size(); j++) {
subjectDetails sd = new subjectDetails();
JSONObject object = (JSONObject) subjectsDetails.get(j);
if (object != null) {
sd.setSlno(((Long) object.get("SLNo")).intValue());
sd.setSubjectCode((String) object.get("subjectCode"));
sd.setSubjectName((String) object.get("subjectName"));
sd.setIsEligible((String) object.get("Eligibility"));
subdetails.add(sd);
}
}
std.setSubDetails(subdetails);
listItems.add(std);
JRBeanCollectionDataSource itemsJRBean1 = new JRBeanCollectionDataSource(listItems);
Map<String, Object> parameters1 = new HashMap<String, Object>();
parameters1.put("CollectionBeanParam", itemsJRBean1);
InputStream input1 = new FileInputStream(
new File("C:\\Users\\Sony\\JaspersoftWorkspace\\MyReports\\BMSCE_HALLTICKET.jrxml"));
JasperDesign jasperDesign1 = JRXmlLoader.load(input1);
JasperReport jasperReport1 = JasperCompileManager.compileReport(jasperDesign1);
JasperPrint jasperPrint1 = JasperFillManager.fillReport(jasperReport1, parameters1, new JREmptyDataSource());
jasperPrints.add(jasperPrint1);
}
JRPdfExporter exporter = new JRPdfExporter();
exporter.setExporterInput(SimpleExporterInput.getInstance(jasperPrints)); // Set as export input my list with
// JasperPrint s
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput("output23.pdf")); // or any other out streaam
SimplePdfExporterConfiguration configuration = new SimplePdfExporterConfiguration();
configuration.setCreatingBatchModeBookmarks(true); // add this so your bookmarks work, you may set other
// parameters
exporter.setConfiguration(configuration);
exporter.exportReport();
System.out.println("File Generated");
}
}
I'm trying to generate jasper reports but only the skeleton is getting displayed but the data is null please help.