今天看了一个例子,但是不是很明白
们在IReport中,已经设置了其动态查询为SELECT
Suppliers."CompanyName" AS Suppliers_CompanyName,
Suppliers."ContactName" AS Suppliers_ContactName,
Suppliers."ContactTitle" AS Suppliers_ContactTitle,
Suppliers."City" AS Suppliers_City,
Suppliers."Country" AS Suppliers_Country
FROM
"dbo"."Suppliers" Suppliers
而在jsp页面中,为什么要重新查询?
在jsp页面中的代码是
public void createPdfReport(){
String fileName="";
String strDate="";
String sql="";Map parameters=new HashMap();
parameters.put("rpt,"sss"); //傳入的parameters引數
sql =" select CompanyName ,ContactName , ";
sql+=" ContactTitle , City , Country ";
sql+=" from Suppliers ";
sql+=" where ContactTitle like '%Sales%' "; //在此試捉出與Sales有關
sql+=" order by Country , ContactTitle ";
Connection conn = this.createConnection(); //建立資料庫連線
try {
Statement stm = conn.createStatement();
ResultSet rs = stm.executeQuery(sql);
fileName = "D:\\iReport\\iReport-0.4.0\\Work\\TestiReport.jasper";
JasperFillManager.fillReportToFile(fileName,parameters,
newJRResultSetDataSource(rs));
fileName = "D:\\iReport\\iReport-0.4.0\\Work\\TestiReport.jrprint";
JasperExportManager.exportReportToPdfFile(fileName);
}
catch (Exception ex) {
System.out.println("Error : "+ex.toString());
}是不是可以把ireport中的查询删除掉,然后利用fillReportToFile来进行动态查询呢?
如果是这样的话
我怎么在ireport里面设置我要显示的字段?
们在IReport中,已经设置了其动态查询为SELECT
Suppliers."CompanyName" AS Suppliers_CompanyName,
Suppliers."ContactName" AS Suppliers_ContactName,
Suppliers."ContactTitle" AS Suppliers_ContactTitle,
Suppliers."City" AS Suppliers_City,
Suppliers."Country" AS Suppliers_Country
FROM
"dbo"."Suppliers" Suppliers
而在jsp页面中,为什么要重新查询?
在jsp页面中的代码是
public void createPdfReport(){
String fileName="";
String strDate="";
String sql="";Map parameters=new HashMap();
parameters.put("rpt,"sss"); //傳入的parameters引數
sql =" select CompanyName ,ContactName , ";
sql+=" ContactTitle , City , Country ";
sql+=" from Suppliers ";
sql+=" where ContactTitle like '%Sales%' "; //在此試捉出與Sales有關
sql+=" order by Country , ContactTitle ";
Connection conn = this.createConnection(); //建立資料庫連線
try {
Statement stm = conn.createStatement();
ResultSet rs = stm.executeQuery(sql);
fileName = "D:\\iReport\\iReport-0.4.0\\Work\\TestiReport.jasper";
JasperFillManager.fillReportToFile(fileName,parameters,
newJRResultSetDataSource(rs));
fileName = "D:\\iReport\\iReport-0.4.0\\Work\\TestiReport.jrprint";
JasperExportManager.exportReportToPdfFile(fileName);
}
catch (Exception ex) {
System.out.println("Error : "+ex.toString());
}是不是可以把ireport中的查询删除掉,然后利用fillReportToFile来进行动态查询呢?
如果是这样的话
我怎么在ireport里面设置我要显示的字段?
如ireport中有个field为company,则sql中须有select company …与之匹配。
另外,你要搞清楚,ireport主要是用来做模板的,也就是说你得先用ireport编译生成一个.jasper文件放到你的工程中,这个文件包含了查询的field的信息,jsp中的查询是要以他为基础的。