Jump to content

Adding conditions in jasper report


askme

Recommended Posts

Hi all,

           I am new to jasper report. Please find the below code with which i am generating a report in.pdf format. The report is working fine. It's a student report. Now the problem is i want to set the color for the text in the marks column against a student according to the mark he get. Let's say for example.. the minimum mark that a student should earn is 40 out of 100. If a student mark is less that 40 then the marks text should be in red color and if the mark is greater than 40 then the marks text should be in green color.

 

How can i include this condition in the code given below. I could find some examples where they set the condition in the .jrxml file. But i could not find any similiar according to the below code.

 

Kindly help me. It's urgent.

 

Thanks

Code:
import net.sf.jasperreports.engine.JRAlignment;import net.sf.jasperreports.engine.JRConditionalStyle;import net.sf.jasperreports.engine.JRElement;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.JRDesignBand;import net.sf.jasperreports.engine.design.JRDesignConditionalStyle;import net.sf.jasperreports.engine.design.JRDesignExpression;import net.sf.jasperreports.engine.design.JRDesignField;import net.sf.jasperreports.engine.design.JRDesignLine;import net.sf.jasperreports.engine.design.JRDesignStaticText;import net.sf.jasperreports.engine.design.JRDesignStyle;import net.sf.jasperreports.engine.design.JRDesignTextField;import net.sf.jasperreports.engine.design.JasperDesign;import net.sf.jasperreports.engine.xml.JRConditionalStyleFactory;import net.sf.jasperreports.engine.xml.JRConditionalStyleFillerFactory;import net.sf.jasperreports.view.JasperViewer;import net.sf.jasperreports.view.save.JRCsvSaveContributor;import java.awt.Color;import java.io.File;import java.util.ArrayList;import java.util.HashMap;import java.util.List;public class sample1 {    public static void main(String[] args) {        try {            List dataList = new ArrayList();            HashMap dataMap = new HashMap();            dataMap.put("studid", "1");            dataMap.put("classid", "11");            dataMap.put("teacherid", "ABC");            dataMap.put("name", "Mathew");            dataMap.put("subjectid", "5");            dataMap.put("marks", "25");            dataMap.put("total", "100");            dataList.add(dataMap);                                    dataMap = new HashMap();            dataMap.put("studid", "2");            dataMap.put("classid", "11");            dataMap.put("teacherid", "ABC");            dataMap.put("name", "Christy");            dataMap.put("subjectid", "5");            dataMap.put("marks", "65");            dataMap.put("total", "100");            dataList.add(dataMap);            dataMap = new HashMap();            dataMap.put("studid", "3");            dataMap.put("classid", "11");            dataMap.put("teacherid", "ABC");            dataMap.put("name", "George");            dataMap.put("subjectid", "5");            dataMap.put("marks", "65");            dataMap.put("total", "100");            dataList.add(dataMap);            JasperDesign jasperDesign = getProductJasperDesign();            JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);            JRBeanCollectionDataSource jrBeanCollectionDataSource = new JRBeanCollectionDataSource(dataList);            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, new HashMap(), jrBeanCollectionDataSource);                        JasperViewer.viewReport(jasperPrint);                        JasperExportManager.exportReportToPdfFile(jasperPrint, "C:/JasperReport/Sample.pdf");                    } catch (Exception e) {            e.printStackTrace();        }    }    private static JasperDesign getProductJasperDesign() throws JRException {        JasperDesign jasperDesign = new JasperDesign();        jasperDesign.setName("Product_Report");        jasperDesign.setLeftMargin(10);        jasperDesign.setRightMargin(10);        jasperDesign.setBottomMargin(20);        jasperDesign.setTopMargin(20);        jasperDesign.setPageHeight(600);        jasperDesign.setPageWidth(800);        jasperDesign.setColumnWidth(500);        jasperDesign.setIgnorePagination(true);                        // Add styles to report                JRDesignStyle titleText = new JRDesignStyle();        titleText.setName("titleText");        titleText.setDefault(false);        titleText.setMode(JRElement.MODE_OPAQUE);        titleText.setFontName("Verdana");                titleText.setBackcolor(new Color(10025880));        titleText.setFontSize(16);        //titleText.setUnderline(true);        titleText.setLineSpacing(new Byte((byte) 10));        titleText.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_CENTER);                jasperDesign.addStyle(titleText);        JRDesignStyle headingText = new JRDesignStyle();        headingText.setName("headingText");        headingText.setMode(JRElement.MODE_OPAQUE);        headingText.setFontName("Arial");        headingText.setForecolor(new Color(16777215));        headingText.setBackcolor(new Color(6776679));        headingText.setFontSize(10);        jasperDesign.addStyle(headingText);        JRDesignStyle reportingText = new JRDesignStyle();        reportingText.setName("reportingText");        reportingText.setDefault(false);        reportingText.setMode(JRElement.MODE_OPAQUE);        reportingText.setFontName("Arial");        reportingText.setBackcolor(new Color(16119285));        reportingText.setFontSize(9);        jasperDesign.addStyle(reportingText);                                                                              // End of styles         // Field Values        JRDesignField field = new JRDesignField();        field = new JRDesignField();        field.setName("studid");        field.setValueClass(String.class);        jasperDesign.addField(field);        field = new JRDesignField();        field.setName("classid");        field.setValueClass(String.class);        jasperDesign.addField(field);                field = new JRDesignField();        field.setName("teacherid");        field.setValueClass(String.class);        jasperDesign.addField(field);                field = new JRDesignField();        field.setName("name");        field.setValueClass(String.class);        jasperDesign.addField(field);                field = new JRDesignField();        field.setName("subjectid");        field.setValueClass(String.class);        jasperDesign.addField(field);                field = new JRDesignField();        field.setName("marks");        field.setValueClass(String.class);        jasperDesign.addField(field);                field = new JRDesignField();        field.setName("total");        field.setValueClass(String.class);        jasperDesign.addField(field);                               JRDesignBand band = new JRDesignBand();        band.setHeight(40);        JRDesignStaticText statictextField = new JRDesignStaticText();        statictextField.setText("Student Report");        statictextField.setX(0);        statictextField.setY(0);        statictextField.setWidth(700);        statictextField.setHeight(26);        statictextField.setStyle(titleText);        JRDesignLine line = new JRDesignLine();        line.setX(0);        line.setY(26);        //line.setWidth(515);        line.setHeight(0);        band.addElement(statictextField);        band.addElement(line);        jasperDesign.setTitle(band);        // Page header        band = new JRDesignBand();        band.setHeight(20);        statictextField = new JRDesignStaticText();        statictextField.setX(0);        statictextField.setY(0);        statictextField.setWidth(70);        statictextField.setHeight(20);        statictextField.setText("Student Id");        statictextField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_CENTER);        statictextField.setStyle(headingText);        band.addElement(statictextField);        statictextField = new JRDesignStaticText();        statictextField.setX(72);        statictextField.setY(0);        statictextField.setWidth(70);        statictextField.setHeight(20);        statictextField.setText("Class ID");        statictextField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_CENTER);        statictextField.setStyle(headingText);        band.addElement(statictextField);                statictextField = new JRDesignStaticText();        statictextField.setX(146);        statictextField.setY(0);        statictextField.setWidth(70);        statictextField.setHeight(20);        statictextField.setText("Teacher Id");        statictextField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_CENTER);        statictextField.setStyle(headingText);        band.addElement(statictextField);                statictextField = new JRDesignStaticText();        statictextField.setX(220);        statictextField.setY(0);        statictextField.setWidth(180);        statictextField.setHeight(20);        statictextField.setText("Name");        statictextField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_CENTER);        statictextField.setStyle(headingText);        band.addElement(statictextField);                statictextField = new JRDesignStaticText();        statictextField.setX(404);        statictextField.setY(0);        statictextField.setWidth(50);        statictextField.setHeight(20);        statictextField.setText("Subject Id");        statictextField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_CENTER);        statictextField.setStyle(headingText);        band.addElement(statictextField);                statictextField = new JRDesignStaticText();        statictextField.setX(458);        statictextField.setY(0);        statictextField.setWidth(50);        statictextField.setHeight(20);        statictextField.setText("Marks");        statictextField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_CENTER);        statictextField.setStyle(headingText);        band.addElement(statictextField);                statictextField = new JRDesignStaticText();        statictextField.setX(512);        statictextField.setY(0);        statictextField.setWidth(50);        statictextField.setHeight(20);        statictextField.setText("Total");        statictextField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_CENTER);        statictextField.setStyle(headingText);        band.addElement(statictextField);                         jasperDesign.setPageHeader(band);        // Add Detail Section        band = new JRDesignBand();        band.setHeight(19);        JRDesignTextField textField = new JRDesignTextField();        textField.setX(0);        textField.setY(0);        textField.setWidth(70);        textField.setHeight(18);        textField.setStretchWithOverflow(true);        textField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_CENTER);        textField.setStyle(reportingText);                          JRDesignExpression expression = new JRDesignExpression();        expression = new JRDesignExpression();        expression = new JRDesignExpression();        expression.setValueClass(String.class);        expression.setText("$F{studid}");        textField.setExpression(expression);        band.addElement(textField);        textField = new JRDesignTextField();        textField.setX(72);        textField.setY(0);        textField.setWidth(70);        textField.setHeight(18);        textField.setStretchWithOverflow(true);        textField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_CENTER);        textField.setStyle(reportingText);        expression = new JRDesignExpression();        expression.setValueClass(String.class);        expression.setText("$F{classid}");        textField.setExpression(expression);                        band.addElement(textField);                        textField = new JRDesignTextField();        textField.setX(146);        textField.setY(0);        textField.setWidth(70);        textField.setHeight(18);        textField.setStretchWithOverflow(true);        textField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_CENTER);        textField.setStyle(reportingText);        expression = new JRDesignExpression();        expression.setValueClass(String.class);        expression.setText("$F{teacherid}");        textField.setExpression(expression);        band.addElement(textField);                textField = new JRDesignTextField();        textField.setX(220);        textField.setY(0);        textField.setWidth(180);        textField.setHeight(18);        textField.setStretchWithOverflow(true);        textField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_CENTER);        textField.setStyle(reportingText);        expression = new JRDesignExpression();        expression.setValueClass(String.class);        expression.setText("$F{name}");        textField.setExpression(expression);        band.addElement(textField);                textField = new JRDesignTextField();        textField.setX(404);        textField.setY(0);        textField.setWidth(50);        textField.setHeight(18);        textField.setStretchWithOverflow(true);        textField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_CENTER);        textField.setStyle(reportingText);        expression = new JRDesignExpression();        expression.setValueClass(String.class);        expression.setText("$F{subjectid}");        textField.setExpression(expression);        band.addElement(textField);                textField = new JRDesignTextField();        textField.setX(458);        textField.setY(0);        textField.setWidth(50);        textField.setHeight(18);        textField.setStretchWithOverflow(true);        textField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_CENTER);        textField.setStyle(reportingText);        expression = new JRDesignExpression();        expression.setValueClass(String.class);        expression.setText("$F{marks}");        textField.setExpression(expression);        band.addElement(textField);                textField = new JRDesignTextField();        textField.setX(512);        textField.setY(0);        textField.setWidth(50);        textField.setHeight(18);        textField.setStretchWithOverflow(true);        textField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_CENTER);        textField.setStyle(reportingText);        expression = new JRDesignExpression();        expression.setValueClass(String.class);        expression.setText("$F{total}");        textField.setExpression(expression);        band.addElement(textField);                                      textField = new JRDesignTextField();        jasperDesign.setDetail(band);        //Column footer        band = new JRDesignBand();        jasperDesign.setColumnFooter(band);        //Page footer        band = new JRDesignBand();        jasperDesign.setPageFooter(band);        //Summary        band = new JRDesignBand();        jasperDesign.setSummary(band);        return jasperDesign;    }}
Link to comment
Share on other sites

  • Replies 0
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...