GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Printar Report


#1

Boa Noite Pessoal,

Eu tenho que construir um método que ele printe um relatório do total de vendar em um período baseado na query em SQL que eu montei. A query seria essa:

select c.name, b.name, SUM(a.value) from sale as a inner join credit_card as b on a.id = b.id inner join
store as c on a.id = c.id where a.date between data1 and data2 group by c.name, b.name, b.id;

O método tem como parametro initialDate e endDate só que estou em dúvida se eu coloco essa query dentro do método pra ele fazer a consulta no banco ou teria que fazer algo diferente?Pois não to conseguindo ver uma maneira pra fazer com que o print saia mais ou menos assim:

total sales between 01/01/2017 and 31/01/2017
Loja 01;visa;155,00
Loja 01;master;200,00

Segue o código do método:

public void printReport(Date initialDate, Date endDate) {

  List<Sale> sales = getSales(initialDate, endDate);
  try {
      System.out.println(id);
      PreparedStatement stmt = connection.prepareStatement("select c.name, b.name, SUM(a.value) from sale as a inner join credit_card as b on a.id = b.id inner join
      store as c on a.id = c.id where a.date between data1 and data2  group by c.name, b.name, b.id");
      stmt.setLong(1, id);
      ResultSet rs = stmt.executeQuery();
      Sale s = new Sale();
      while (rs.next()) {
          s.setId(rs.getLong("id"));
          s.setName(rs.getString("name"));
          s.setValue(rs.getString("value"));
          s.setCreditCardId(rs.getString("creditCardId"));
          c.setStoreId(rs.getString("storeId"));
          Calendar data = Calendar.getInstance();
          data.setTime(rs.getDate("date"));
          c.setDate(data);
      }
  } catch (SQLException ex) {
      throw new DAOException(ex);
  }

}

}