日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ireport 循环_ireport5.6.0分组显示

發布時間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ireport 循环_ireport5.6.0分组显示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一,ireport中分組

二,java調用實現分組

一,ireport中分組:

1,新建模板文件,紙張隨意,名稱隨意,路徑隨意

2,連接要分組的數據源

3,添加測試表和數據

CREATE TABLEyananTest (

departIdINT,

departNameVARCHAR (20),

stuNameVARCHAR (20)

)GO

INSERT INTO yananTest VALUES(1,'開發部','張亞南'),(1,'開發部','隨意'),(2,'實施部','實施1'),(2,'實施部','實施2'),(2,'實施部','實施3'),(3,'銷售部','銷售1')GO

View Code

4編寫sql查詢數據

勾選自動提取字段或點擊讀取字段,能出來藍色行表示查詢無誤。點擊ok,確定后在左側Fields字段自動出現藍色行的字段

5,右擊報表點擊add report group

groupname隨意,選擇departId,departId是要分組的依據

下一步中的 group header footer根據自己實際情況,此處為了展示都要

確定后detail1前后會加上分組header和footer

6拖動departName到header欄,stuName到detail1欄,footer隨便加一條橫線

如果組件面板不顯示的話在窗口中點擊組件面板即可

拖動后為了美觀好看可以調整header、footer、detail1欄的邊界線調整下高度

大功告成,點擊預覽

二,java調用實現分組

我的第一思路是,刪除sql語句在Fields中添加字段,java中傳參,行不通,因為調用的時候,Fields是接收不到java的傳參的。我的第二思路是在Parameters中建立這幾個字段,然后傳參,仍然行不通,因為分組只能是字段(有待進一步研究),傳參是集合。我的第三想法是添加dataset,進行分組,嗚嗚,初接觸我還不會,等以后確定了再補上。最后千辛萬苦終于找到方法

sql語句不變,java傳數據庫連接

方法如下:

將上述report1.jrxml編譯后將生成的report1.jasper文件copy到項目指定目錄下,我的是目錄是i根目錄下的report

實現如下代碼

@RequestMapping("/test")

@ResponseBodypublic void test(HttpServletRequest req,HttpServletResponse res) throwsException{

Map map = new HashMap();

String realPath= ClassUtils.getDefaultClassLoader().getResource("").getPath();//項目根目錄。該處是springboot方式

ServletContext context =req.getSession().getServletContext();

WebApplicationContext wac=WebApplicationContextUtils.getRequiredWebApplicationContext(context);

DataSource dbSource= (DataSource) wac.getBean("dataSource"); //配置文件里的beanid

Connection conn =dbSource.getConnection();byte[] bytes = JasperRunManager.runReportToPdf(realPath + "ireport/report1.jasper", map, conn);

res.setContentType("application/pdf");

res.setContentLength(bytes.length);

ServletOutputStream out=res.getOutputStream();

out.write(bytes,0, bytes.length);

out.flush();

out.close();

}

View Code

啟動項目訪問即可出現步驟一6中的pdf頁面部分。如果中文不顯示,參考之前的文章@ireport初接觸

至于java中使用ireport詳細說明,參考下一篇文章

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的ireport 循环_ireport5.6.0分组显示的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。