レポートを作成し、HTML
とPDF
に正常にエクスポートしました。ただし、静的なレポートです。私は、実行時にJava/JSP
からこのパラメータ「ヴァル」を送りたいJSPやJavaコードからJasperReportでパラメータ値を渡すには?
select * from personal where id= 'val'
:ように私は、クエリを持っています。これを行う方法 ?
レポートを作成し、HTML
とPDF
に正常にエクスポートしました。ただし、静的なレポートです。私は、実行時にJava/JSP
からこのパラメータ「ヴァル」を送りたいJSPやJavaコードからJasperReportでパラメータ値を渡すには?
select * from personal where id= 'val'
:ように私は、クエリを持っています。これを行う方法 ?
*を選択することはできません。データを取得する列名を指定する必要があります。 commDB.queryを使用してクエリを実行し、結果をcommDBResultに渡し、ループを実行し、レコードの各行を配列リストに入れてから、ジャスパーを使用してレポートを生成します。
パラメータを含むマップを作成し、ペア。
Map parametersMap = new HashMap();
parametersMap.put("id",7);
JSPからジャスパーレポートを生成:
parametersMap
のキーは、あなたのレポートテンプレートで定義されたパラメータとしてexcatly同じでshoud
JasperPrint jasperPrint = JasperFillManager.fillReport(
jasperReport, parametersMap, jdbcConnection);
。だから、
、レポートテンプレート(jrxml)でパラメータを宣言します。
<parameter name="id" class="java.lang.Integer"/>
パスパラメータをクエリでジャスパーレポートに
select * from personal where id= $P{id}
。問題は解決されました。 もう1つだけ質問したかったジャスパーレポートに$ P {id}というパラメータを出力したいとします。 (今はクエリで使用しています)。レポートにパラメータを印刷したいだけです。それは可能です.. はい。あなたの助けてください。 – vicky
問題が解決した場合は、質問に「回答済み」とマークする必要があります。 i-Reportで印刷するセクションを選択します。フィールド$ F {id} .BTWを定義します。これは別の質問です。 :) –
これは、JSPのためのあなたのコードになります。
<%@page import="net.sf.jasperreports.engine.JasperExportManager"%>
<%@page import="net.sf.jasperreports.engine.JasperExportManager"%>
<%@page import="net.sf.jasperreports.view.JasperViewer"%>
<%@page import="net.sf.jasperreports.engine.JasperPrint"%>
<%@page import="net.sf.jasperreports.engine.JasperReport"%>
<%@page import="net.sf.jasperreports.engine.JasperFillManager"%>
<%@page import="net.sf.jasperreports.engine.JRResultSetDataSource"%>
<%@page import="net.sf.jasperreports.engine.JasperCompileManager"%>
<%@page import="net.sf.jasperreports.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%
try
{
JasperReport jasperReport=JasperCompileManager.compileReport("PASS LOCATION TO YOUR .JRXML FILE");
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/t_fleet" , "root", "root");
Integer inv_no=0;
Statement stmt = null;
ResultSet rset = null;
Statement st2=conn.createStatement();
String queryString = "PASS YOUR QUERY HERE";
stmt = conn.createStatement();
rset = stmt.executeQuery(queryString);
JRResultSetDataSource jasperReports = new JRResultSetDataSource(rset);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,null, jasperReports);
//JasperViewer.viewReport(jasperPrint);
String filename=null;
filename="SET NAME TO YOUR FILE NAME AND APPEND.pdf TO IT";
//Report saved in specified path
JasperExportManager.exportReportToPdfFile(jasperPrint,filename);
//Report open in Runtime
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " +filename);
}
catch(Exception e)
{
out.println(e);
}
%>
</body>
<script>
</script>
</html>
おそらく、jasperreportレポートを更新するために必要なパラメータを持つサービスレイヤーを呼び出す方が、より良いプログラミングパターンです。そのため、あなたの投稿をdownvotedしました。 – ThierryB
ありがとうございます。私は正常にレポートを生成しました。私が直面している問題は、私のレポートは静的です。私は動的なレポートが欲しい。クエリを変更するjsp/javaからidの値(たとえば)を入力して、対応するレポートを生成することを意味します。キツイより – vicky