Relatórios com iReport passando Parâmetros

Olá Pessoal,

Estou desenvolvendo uma aplicação de agendamentos com Data e Hora Marcada e estou querendo implementar nela alguns relatórios:

  1. por Data
  2. por Período
  3. por Cliente / Data
  4. por Cliente / Período
  5. por Profissional / Data
  6. por Profissional / Período

Estou assistindo algumas video aulas sobre o assunto e já sei que terei que criar os parâmetros $P{data} ; $P{período} ; $P{cliente} ; $P{profissional} para criar meus relatórios. Minha dúvida é: COMO PASSAR ESSES PARÂMETROS VIA CÓDIGO JAVA; ou seja, considerando o exemplo mais simples, um relatório por data:

String sql = "select data, cliente, serviço, valor, pago, profissional from agendas, clientes, servicos, funcionarios where data = '" + tfData.getText() + "' order by data";

Onde a data será formatada para o padrão “yyyy-MM-dd” (claro!). Como eu passo o valor do tfData para o parâmetro $P{data} por exemplo?

Agradeço a Colaboração!!!

O iReport permite você confugrar diversas fontes de dados, podem ser por XML ou até por objetos java mesmo sendo por exemplo o $P{data} objeto.data…
Isso deve ser configurado antes de compilar o relatorio na propria janela do iReport tem um menu de DataSource que voce configura o que voce quer receber como parametro.
Este topico pode te ajudar um pouco:

http://www.guj.com.br/java/62929-ireport-com-base-de-dados-em-xml

Eu teria que modificar alguma coisa na minha query (na classe java) de consulta ao banco de dados (tipo incluir o nome do parâmetro criado no iReport para receber o valor desejado) ou qdo criar o parâmetro deverei informar onde o iReport deverá pegar esse parâmetro para montar a query? Como eu faria isso? Vc teria algum exemplo prático para que eu possa entender melhor? Sou iniciante em Java e ainda tenho muita coisa pra aprender. Obrigado!

Já consegui passar os parâmetros. Criei uma variável $V{TOTAL} para somar todos os valores da coluna “servicos.valor” do meu relatório. Agora estou querendo criar uma variável ou um sub-relatório para mostrar o Valor total dos Agendamentos que foram pagos e os que ainda não foram pagos (utilizando a cláusula where agendas.pago=‘S’ ou ‘N’). O iReport não me dá a opção de Select sum (…), para somar os valores da coluna, e também não me permite criar uma variável com as restrições acima (where). Como posso fazer o meu relatório me trazer as três informações (total, total pago e total a receber). Obrigado!