SpringBoot整合Ureport2報表及常見使用方法
1、Maven 添加依賴
<!--ureport--> <dependency> <groupId>com.syyai.spring.boot</groupId> <artifactId>ureport-spring-boot-starter</artifactId> <version>2.2.9</version> </dependency>
2、編寫ureport2 的配置類
配置類實現 BuildinDatasource
1)註冊Bean
2)重命名ureport2的數據源名稱
import com.bstek.ureport.console.UReportServlet; import com.bstek.ureport.definition.datasource.BuildinDatasource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.ImportResource; import javax.annotation.Resource; import javax.sql.DataSource; import java.sql.Connection; import java.sql.SQLException; @ImportResource("classpath:ureport-console-context.xml")//不加項目能夠啟動但是會導致加載數據源報錯或加載不瞭 @Configuration @EnableAutoConfiguration public class UreportConfig implements BuildinDatasource { @Resource DataSource dataSource; private Logger log = LoggerFactory.getLogger(getClass()); @Bean //定義ureport的啟動servlet public ServletRegistrationBean buildUreportServlet(){ return new ServletRegistrationBean(new UReportServlet(),"/ureport/*");// /ureport/* 不可更改 } @Override public String name() { return "ureport2 數據源"; } @Override public Connection getConnection() { try { return dataSource.getConnection(); } catch (SQLException e) { log.error("Ureport 數據源 獲取連接失敗!"); e.printStackTrace(); } return null; } }
3、ureport2 訪問路徑
http://127.0.0.1:8080/項目名稱/ureport/designer
4、選擇數據源方式:內置數據源
ureport2 的配置類實現 BuildinDatasource ,即配好瞭內置的數據源,直接使用即可
5、選擇數據源方式:SpringBean數據源配置
數據源名稱:自定義命名
Bean ID: Bean 對象–yjReportService ,與java類名稱一致 首字母需要轉成小寫
6、添加Sping Bean 數據源的數據集
數據集名稱:自定義
方法名:你配置的Bean對象中的方法名稱,即service中的方法,該方法必 須包含3個參數,否則無法找到
返回對象:報表中的返回數據接收對象,全路徑名,可不寫,自己手動添加返回字段(未嘗試)
報表編輯完成後參數傳遞方式:http://127.0.0.1:8088/項目名稱/ureport/preview?_u=file:報表名稱¶meters=參數值
業務邏輯代碼:參數值進行接收即可
7、內置數據源方式配置數據集
配置數據集有2種方式:
1、使用SQL語句查詢數據
2、使用${表達式}:也是SQL的形式,用字符串拼接起來
7.1、使用SQL的方式
正常編寫SQL即可,需要傳遞參數用‘ :’ 加字段名表示
可添加默認的參數,設置的參數名字和SQL中的參數名字保持一致
如果沒傳參,則使用默認的參數進行查詢
若有多個參數,同樣的方式進行添加
例:select * from 表 where id = :id
報表制作完成後,報表參數傳遞方式:http://127.0.0.1:8080/項目名稱/ureport/preview?_u=file:報表名稱&iid=參數值
7.2、使用${表達式}方式
使用表達式的方式通常都是動態SQL的方式查詢數據
外部參數傳進報表後再進行查詢
ureport2獲取參數的方式:param(“參數字段”)
例子:${ SQL 語句 }
先看看最終效果:報表使用iframe 頁面展示,外部參數傳入報表查詢數據
7.2.1、制作報表:
使用${ sql 語句} 註意事項:
若SQL中包含單引號包裹的字符串,那麼需要加上“\”來為單引號轉義,否則會出現語法錯誤
判斷外部是否傳遞參數,2種方式:
1、使用三目表達式:判斷是否為空,不為空則拼接SQL語句條件
例:(param(“參數名稱”)!=null && param(“參數名稱”)!=”” ? “and 字段 = ‘”+param(“參數名稱”)+”‘” : “”)
2、使用函數(較為簡潔),可使用添加參數方式,或者直接獲取參數方式
1)添加參數方式(借鑒上面的sql 傳參的方式,:+字段): (emptyparam(“name”)==false ? “and name=:name” : “”)
2)直接獲取參數方式:
(emptyparam(“name”)==false ? “and name=”\’ “+param(“參數名稱”)+”\'” ” : ” “)
註意字符串拼接後,sql語句前後的空格問題,單引號加 \ 的問題 ${ "select from 表1 a "+ "left join 表2 b on b.id=a.id "+ "where 1=1 " + (param("參數名稱")!=null && param("參數名稱")!="" ? "and 字段 = \'"+param("參數名稱")+"\'" : " ") +")t " }
報表制作完成後,報表參數傳遞方式:http://127.0.0.1:8080/項目名稱/ureport/preview?_u=file:報表名稱&參數名稱=參數值
8、點擊報表的數據跳轉頁面,查看詳情
最終目標
在報表中添加需要跳轉連接的地方進行URL配置
URL上需要傳遞報表中的某個參數,則點擊URL參數配置
URL:自行配置 ,當前目錄註意加 “點點/”
例:. ./yw/ssj/SearchList
8.1、配置URL上傳遞的參數
若獲取當前單元格的數值作為參數,則值表達式應為:#
若獲取當前單元格的對象的其他屬性作為參數,則值表達式為:#.屬性名稱
若獲取外部傳進報表的參數作為參數,則值表達式為: param(“參數名稱”)
9、某些數據為數值,對應的數據解釋
獲取的數據庫數據為數字標識,需要重置單元格的數據顯示
點擊數據映射進行添加
例:1 表示成功。0表示失敗 等
10、格式化單元格,區分標識數據
目標效果
10.1、報表編輯
在需要進行格式化單元格點擊配置條件
分別配置超標和未超標單元格格式化的顏色
條件配置時:
1、若當前值為數值類型,直接填寫數值條件即可
2、若當前的值為字符串類型,值表達式需要在字符串加上 單引號:‘當前值’
若選擇表達式的方式:參考前面值表達式的寫法(配置URL上傳遞的參數有說明)
Ureport2的使用說明
到此這篇關於SpringBoot整合Ureport2報表及常見使用方法的文章就介紹到這瞭,更多相關SpringBoot整合Ureport2內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Springboot配置suffix指定mvc視圖的後綴方法
- Spring Boot中自動執行sql腳本的方法實例
- Spring Boot中自動執行sql腳本的實現
- SpringBoot數據訪問自定義使用Druid數據源的方法
- 詳解SpringBoot自定義配置與整合Druid