How to add a table in a jasperDesign object?

I need to generate a report using JasperReports API only, and I can't find a way to create a JasperReport's table object from Java code. Seems that not exists a way to create a table using JRDesign classes. Maybe I am just searching in the wrong place. I can't use a designer like iReport or JasperStudio due to project requirement. Some help?

I've made some progress, but it still not works... here's my code:

 private static JasperDesign getJasperDesign() throws JRException {
  JasperDesign jasperDesign = JRXmlLoader.load(new File("Template.jrxml"));
  JRDesignParameter parameter = new JRDesignParameter();  parameter.setName("parameter");    parameter.setValueClassName("net.sf.jasperreports.engine.JRDataSource");  jasperDesign.addParameter(parameter);
  JRDesignDataset subDataset = new JRDesignDataset(false);  subDataset.setName("subDataSet");
  JRDesignField field = new JRDesignField();  field.setName("field");  field.setValueClass(java.lang.String.class); 
  subDataset.addField(field);  jasperDesign.addDataset(subDataset);
  // datasource  JRDesignDatasetParameter param = new JRDesignDatasetParameter();  param.setName("REPORT_DATA_SOURCE");    JRDesignExpression exp = new JRDesignExpression("$P{parameter}");  param.setExpression(exp);
  // datasetrun  JRDesignDatasetRun dsr = new JRDesignDatasetRun();  dsr.setDatasetName(subDataset.getName());  dsr.addParameter(param);
 
  // table  JRDesignStaticText staticText = new JRDesignStaticText();  staticText.setText("static");
  DesignCell columnHeader = new DesignCell();  columnHeader.setHeight(80);  columnHeader.addElement(staticText);
  StandardColumn column = new StandardColumn();  column.setDetailCell(columnHeader);  column.setWidth(100);
  StandardTable table = new StandardTable();  table.addColumn(column);  table.setDatasetRun(dsr);
  // reportElement  JRDesignComponentElement reportElement = new JRDesignComponentElement();  reportElement.setComponentKey(new ComponentKey("http://jasperreports.sourceforge.net/jasperreports/components","jr", "table"));  reportElement.setHeight(200);  reportElement.setWidth(200);  reportElement.setX(140);  reportElement.setY(40);  reportElement.setComponent(table);
  JRDesignBand band = new JRDesignBand();  band.addElement(reportElement);  band.setSplitType(SplitTypeEnum.PREVENT);  band.setHeight(250);  ((JRDesignSection) jasperDesign.getDetailSection()).addBand(band);  return jasperDesign; }

giulio.carlacci's picture
Joined: Mar 7 2014 - 12:25am
Last seen: 6 years 11 months ago

0 Answers:

No answers yet
Feedback