e como faço pra passar um parametro conforme abaixo :
Minha duvida pois estou acostumado a fazer o sql noireport e passar paramentro via class java
antes de chamar o jasper …e queria aprender como fazer isso via class bean definida no ireport e conseguir passar parametro
isso que ainda não visualizei como fazer ???
import java.util.List;
import br.com.devmedia.dao.FakeDAO;
import br.com.devmedia.domain.Product;
import com.opensymphony.xwork2.ActionSupport;
public class JasperAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
private List<Product> myList;
public String execute() {
FakeDAO fk = new FakeDAO();
myList = fk.getList();
return "success";
}
public List<Product> getMyList() {
return myList;
}
}
---
import java.util.ArrayList;
import java.util.List;
import br.com.devmedia.domain.Product;
public class FakeDAO {
private List<Product> myList;
public List<Product> getList(){
myList = new ArrayList<Product>();
myList.add(new Product(1,"Arroz","Basico",60.0,40.0,"fardo"));
myList.add(new Product(2,"Feijão","Basico",50.0,30.0,"fardo"));
myList.add(new Product(3,"Sal","Tipo 1",6.0,3.0,"fardo"));
myList.add(new Product(4,"Macarrão","Tipo Leve",25.0,15.0,"cx"));
return myList;
}
}
----------
//org.springframework.web.context.ContextLoaderListener
public class Product {
private int id;
private String name;
private String type;
private double priceSales;
private double priceCost;
private String unit;
public Product( int id, String name,String type,double priceSales,double priceCost, String unit){
this.id = id;
this.name = name;
this.type = type;
this.priceSales = priceSales;
this.priceCost = priceCost;
this.unit = unit;
}
public int getId() {
return id;
---
<struts>
<include file="struts-default.xml" />
<include file="jasperreports-default.xml" />
<package name="jasper" extends="jasperreports-default, struts-default" >
<action name="myJasperTestPDF" class="br.com.devmedia.actions.JasperAction">
<result name="success" type="jasper">
<param name="location">reports/listProducts.jasper</param>
<param name="dataSource">myList</param>
<param name="format">PDF</param>
</result>
</action>
</package>
</struts>
----
como usei no iReport
Agora, vamos iniciar a criação de um
relatório e também iremos aprender como
fazer sua integração ao ambiente da nossa
aplicação de exemplo.
Usando o iReport, crie um relatório novo,
chamado listProducts. Salve-o no diretório
reports/products na estrutura de pastas
web da aplicação, em seguida vá ao menu
Options>ClassPath, e como na Figura 3, adicione
usando o botão Add folder o caminho
de seu diretório de build de classes. Feito
isso, salve essa configuração clicando no
botão Save Classpath.
Agora vá ao menu Data>Report Query e,
como apresentado na Figura 4, selecione a
aba JavaBean Data Source, informe no campo
class name o pacote completo e o nome
de classe Product. Em seguida, clique no
botão Read attributes. Veja que será listado
os atributos da classe, logo após, selecione
esses atributos, clique no botão Add selected
field(s) e finalize essa operação clicando
no botão Ok.
Feito isso, você tem uma lista de campos
no iReport, conforme os atributos da classe
Product, mas como o foco desse artigo não é
ensinar o básico de iReport, apenas sugiro
que monte os campos e rótulos conforme
exibido na Figura 5.
Após concluir a criação do relatório, vá
ao menu Options>Settings, na aba compiler,
e habilite o item Use Reports Directory to
Compile. Dessa forma, quando o relatório
for compilado, o arquivo .jasper ficará
no mesmo diretório do arquivo fonte
com a extensão .jrxml, que no caso é o
reports>product de nossa aplicação web.
Feito essa configuração, compile o mesmo,
clicando no menu Build>Compile.