askme Posted December 17, 2009 Share Posted December 17, 2009 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. ThanksCode: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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now