Acrescentar Informações em um relatório usando iReport

Olá Pessoal!

Desenvolvi uma aplicação para gerenciar conta corrente (conciliação bancária), mas não consigo acrescentar no relatório de extrato o nome da conta e seu saldo atual. Mas neste extrato já mostro as movimentações com o saldo anterior. Gostaria de colocar o nome da conta e seu saldo atual no cabeçalho do extrato.

O metodo que utilizo para visualizar o extrato está descrito abaixo:

public List exibeExtrato(String dataInicial,String dataFinal,String conCodigo) throws ParseException, SQLException{

    Date dataInicio = null;
    Date dataFim = null;

    DateFormat formatoDataBanco = new SimpleDateFormat("yyyy-MM-dd");
    DateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy");
    if (dataInicial != null) {
        dataInicio = formatoData.parse(dataInicial);
    }
    if (dataFinal != null) {
        dataFim = formatoData.parse(dataFinal);
    }

    String sqlUltimoCredito = "select c.concodigo,c.credata as data,c.crehistorico as historico,c.crevalor as valor,c.consaldo as saldo, 1 as tipo "
            + "from creditos c where c.concodigo = ? and c.credata >= ? and c.credata <= ? "
            + "UNION ALL "
            + "select d.concodigo,d.debdata as data,d.debhistorico as historico,d.debvalor as valor,d.consaldo as saldo, 2 as tipo "
            + "from debitos d where d.concodigo = ? and d.debdata >= ? and d.debdata <= ? order by data";

    PreparedStatement pscUltimoCredito = null;
    ResultSet rscUltimoCredito = null;
    List<ExtratoTransiente> extratoTransientes = new ArrayList<ExtratoTransiente>();
   
    try {
        pscUltimoCredito = connection.prepareStatement(sqlUltimoCredito);
        pscUltimoCredito.setInt(1, Integer.parseInt(conCodigo));
        pscUltimoCredito.setDate(2, new java.sql.Date(dataInicio.getTime()));
        pscUltimoCredito.setDate(3, new java.sql.Date(dataFim.getTime()));
        pscUltimoCredito.setInt(4, Integer.parseInt(conCodigo));
        pscUltimoCredito.setDate(5, new java.sql.Date(dataInicio.getTime()));
        pscUltimoCredito.setDate(6, new java.sql.Date(dataFim.getTime()));
        rscUltimoCredito = pscUltimoCredito.executeQuery();
        while (rscUltimoCredito.next()) {
            ExtratoTransiente extratoTransiente = new ExtratoTransiente();
            extratoTransiente.setData(rscUltimoCredito.getDate("data"));
            extratoTransiente.setValor(rscUltimoCredito.getDouble("valor"));
            extratoTransiente.setHistorico(rscUltimoCredito.getString("historico"));
            extratoTransiente.setSaldo(rscUltimoCredito.getDouble("saldo"));
            extratoTransiente.setTipo(rscUltimoCredito.getInt("tipo"));
            extratoTransientes.add(extratoTransiente);
        }

    } catch (Exception e) {
        Logger.getLogger(ExtratoDAO.class.getName()).log(Level.SEVERE, null, e);

    }

    return extratoTransientes;
}

Este trecho abaixo acrescentei no método para que o sistema pegue a conta e seu saldo para visualizar no extrato:

Contas contas = new Contas();

    String sqlConta ="select * from contas where concodigo = "+conCodigo;
    PreparedStatement psConta = null;
    ResultSet rsConta = null;

    psConta = connection.prepareStatement(sqlConta);
    rsConta = psConta.executeQuery();
    String conta = null;
    double saldo = 0;

    while(rsConta.next()){
        contas.setConCodigo(rsConta.getInt("concodigo"));
        contas.setConDescricao(rsConta.getString("condescricao"));
        contas.setTipoCodigo(rsConta.getInt("tipocodigo"));
        contas.setConSaldo(rsConta.getDouble("consaldo"));
        //System.out.println("Extrato da Conta-> "+contas.getConDescricao());
        conta = contas.getConDescricao();
        saldo = contas.getConSaldo();
        System.out.println("Extrato da Conta-> "+conta+": Saldo Altual-> "+saldo);
    }

Abaixo está o servlet:

private Connection connection;

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException, SQLException {
    response.setContentType("text/html;charset=UTF-8");
    //PrintWriter out = response.getWriter();
    RequestDispatcher rd = null;

    String dataInicial = request.getParameter("dataI");
    String dataFinal = request.getParameter("dataF");
    String conCodigo = request.getParameter("concodigo");

    ExtratoDAO extratoDAO = new ExtratoDAO();
    List<ExtratoTransiente> extrato;
    try {
        extrato = extratoDAO.exibeExtrato(dataInicial, dataFinal, conCodigo);
    } catch (ParseException ex) {
        throw new ServletException(ex);
    }

    JasperReport report;
    byte[] byteStream = null;
    try {
        URL resourceUrl = request.getSession().getServletContext().getResource("/WEB-INF/report/extrato.jasper");
        report = (JasperReport) JRLoader.loadObject(resourceUrl);
        byteStream = JasperRunManager.runReportToPdf(report, null, new JRBeanCollectionDataSource(extrato));
    } catch (JRException ex) {
        Logger.getLogger(Extrato.class.getName()).log(Level.SEVERE, null, ex);
    }

    OutputStream outStream = response.getOutputStream();
    response.setHeader("Content-Disposition", "inline, filename=extrato.pdf");
    response.setContentType("application/pdf");
    response.setContentLength(byteStream.length);
    outStream.write(byteStream, 0, byteStream.length);
}

Baixo está o relatório no ireport:

GOSTARIA DE EXIBIR A INFORMAÇÃO NO CABEÇALHO DO EXTRATO

Você pode trabalhar da seguinte forma:
Crei um dto chamado extradoDTO com os seguintes atributos:

public class ExtradoDTO{
     private Conta conta;
     private Double saldo;
     private List<ExtratoTransiente> extratosTransientes;
     // outros atributos necessarios
}

Passe esse extradoDTO para o Ireport.
Dentro do Ireport voce vai trabalhar com um subreport para ler os extratosTransientes e as outras info voce usa no report principal