Bom dia, estou montando relatórios com subrelatorios no iReport e preciso de ajuda pois adicionei o parâmetro do subrelatorio, o SUBREPPORT_DIR, na aplicação java para que gerem em pdf, mas agora o pdf esta gerando em branco.
Código:
import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import javax.imageio.ImageIO;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.export.JRCsvExporter;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import net.sf.jasperreports.engine.export.JRXlsExporterParameter;
import net.sf.jasperreports.engine.export.oasis.JROdsExporter;
import net.sf.jasperreports.view.JasperViewer;
import com.lowagie.text.FontFactory;
public class Main {
public static void main(String args[]) {
String dirConf = args[0];
if ((new File(dirConf)).exists())
try {
Map<String, String> param = (new ReadXML()).getParams(dirConf);
server = (String) param.get("server");
port = (String) param.get("port");
database = (String) param.get("database");
usuario = (String) param.get("user");
senha = (String) param.get("password");
url = (String) param.get("url");
type = (String) param.get("type");
folder = (String) param.get("folder");
primary = (String) param.get("primary");
secundary = (String) param.get("secundary");
idiomas.add(primary);
idiomas.add(secundary);
name = getName(url);
destFileName = (new StringBuilder(String.valueOf(folder)))
.append(name).append((String) param.get("id"))
.append(".").append(type).toString();
sourceFileName = url;
connection = (new ConectaProgress()).conectar(server, port,
database, usuario, senha);
tempSet = param.keySet();
Object object;
for (Iterator<String> iterator = tempSet.iterator(); iterator
.hasNext(); paramJasper.put(object.toString(),
(String) param.get(object)))
object = iterator.next();
for (Iterator<String> iterator1 = idiomas.iterator(); iterator1
.hasNext();) {
String string = (String) iterator1.next();
label = (new DAO()).carregaLabel(connection, string);
tempSet = label.keySet();
String string1;
for (Iterator<String> iterator2 = tempSet.iterator(); iterator2
.hasNext(); paramJasper.put(string1,
(String) label.get(string1)))
string1 = (String) iterator2.next();
}
(new Main()).exportar(type, destFileName, sourceFileName,
paramJasper);
File destFile = new File(destFileName);
if (destFile.exists())
desktop.open(destFile);
System.out.println("ok\nrelatorio gerado com sucesso.");
} catch (IOException e) {
throw new Excecao(e);
}
else
throw new Excecao(new Exception("arquivo config nao encontrado."));
}
private static String getName(String url) {
char name[] = (new File(url)).getName().toCharArray();
url = "";
char ac[];
int j = (ac = name).length;
for (int i = 0; i < j; i++) {
char c = ac[i];
if (c == '.')
break;
url = (new StringBuilder(String.valueOf(url))).append(c).toString();
}
return url;
}
private void exportar(String type, String destFileName,
String sourceFileName, Map<String, String> paramJasper)
throws IOException {
paramJasper.put("SUBREPORT_DIR",
getClass().getClassLoader().getResource("SUBREPORT_DIR")
.toString());
paramJasper.put("icd",
getClass().getClassLoader().getResource("iconcheckedls.png")
.toString());
paramJasper.put("logols",
getClass().getClassLoader().getResource("logols.jpg")
.toString());
JasperPrint relatorioFinal = null;
FontFactory.register(getClass().getClassLoader()
.getResource("ARIALUNI.TTF").toString());
try {
relatorioFinal = JasperFillManager.fillReport(sourceFileName,
paramJasper, connection);
} catch (Exception e) {
throw new Excecao(e);
}
if (type.equals("pdf"))
try {
JasperExportManager.exportReportToPdfFile(relatorioFinal,
destFileName);
} catch (Exception e) {
e.printStackTrace();
throw new Excecao(e);
}
if (type.equals("xls"))
try {
JRXlsExporter xls = new JRXlsExporter();
xls.setParameter(JRXlsExporterParameter.JASPER_PRINT,
relatorioFinal);
xls.setParameter(JRXlsExporterParameter.OUTPUT_FILE_NAME,
destFileName);
xls.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,
Boolean.FALSE);
xls.setParameter(
JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,
Boolean.FALSE);
xls.setParameter(
JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,
Boolean.TRUE);
xls.exportReport();
} catch (JRException e) {
throw new Excecao(e);
}
if (type.equals("csv"))
try {
JRCsvExporter csv = new JRCsvExporter();
csv.setParameter(JRXlsExporterParameter.JASPER_PRINT,
relatorioFinal);
csv.setParameter(JRXlsExporterParameter.OUTPUT_FILE_NAME,
destFileName);
csv.exportReport();
} catch (JRException e) {
throw new Excecao(e);
}
if (type.equals("ods"))
try {
JROdsExporter ods = new JROdsExporter();
ods.setParameter(JRXlsExporterParameter.JASPER_PRINT,
relatorioFinal);
ods.setParameter(JRXlsExporterParameter.OUTPUT_FILE_NAME,
destFileName);
ods.exportReport();
} catch (JRException e) {
throw new Excecao(e);
}
if (type.equals("pre")) {
JasperViewer jv = new JasperViewer(relatorioFinal);
jv.setExtendedState(6);
jv.setTitle(" Ls");
java.awt.image.BufferedImage imagem = ImageIO.read(getClass()
.getClassLoader().getResource("Ls_favicon.png"));
jv.setIconImage(imagem);
jv.setVisible(true);
}
}
private static Connection connection;
private static String server;
private static String port;
private static String database;
private static String usuario;
private static String senha;
private static String url;
private static String name;
private static String type;
private static String folder;
private static String primary;
private static String secundary;
private static String destFileName;
private static String sourceFileName;
private static java.util.List<String> idiomas = new ArrayList<String>();
private static Desktop desktop = Desktop.getDesktop();
private static Map<String, String> label;
private static Map<String, String> paramJasper = new HashMap<String, String>();
private static Set<String> tempSet;
}
Obrigada.