SpringBoot整合Ureport2報(bào)表及常見使用方法
1、Maven 添加依賴
<!--ureport--> <dependency> <groupId>com.syyai.spring.boot</groupId> <artifactId>ureport-spring-boot-starter</artifactId> <version>2.2.9</version> </dependency>
2、編寫ureport2 的配置類
配置類實(shí)現(xiàn) BuildinDatasource
1)注冊(cè)Bean
2)重命名ureport2的數(shù)據(jù)源名稱
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")//不加項(xiàng)目能夠啟動(dòng)但是會(huì)導(dǎo)致加載數(shù)據(jù)源報(bào)錯(cuò)或加載不了 @Configuration @EnableAutoConfiguration public class UreportConfig implements BuildinDatasource { @Resource DataSource dataSource; private Logger log = LoggerFactory.getLogger(getClass()); @Bean //定義ureport的啟動(dòng)servlet public ServletRegistrationBean buildUreportServlet(){ return new ServletRegistrationBean(new UReportServlet(),"/ureport/*");// /ureport/* 不可更改 } @Override public String name() { return "ureport2 數(shù)據(jù)源"; } @Override public Connection getConnection() { try { return dataSource.getConnection(); } catch (SQLException e) { log.error("Ureport 數(shù)據(jù)源 獲取連接失??!"); e.printStackTrace(); } return null; } }
3、ureport2 訪問路徑
http://127.0.0.1:8080/項(xiàng)目名稱/ureport/designer
4、選擇數(shù)據(jù)源方式:內(nèi)置數(shù)據(jù)源
ureport2 的配置類實(shí)現(xiàn) BuildinDatasource ,即配好了內(nèi)置的數(shù)據(jù)源,直接使用即可
5、選擇數(shù)據(jù)源方式:SpringBean數(shù)據(jù)源配置
數(shù)據(jù)源名稱:自定義命名
Bean ID: Bean 對(duì)象–yjReportService ,與java類名稱一致 首字母需要轉(zhuǎn)成小寫
6、添加Sping Bean 數(shù)據(jù)源的數(shù)據(jù)集
數(shù)據(jù)集名稱:自定義
方法名:你配置的Bean對(duì)象中的方法名稱,即service中的方法,該方法必 須包含3個(gè)參數(shù),否則無法找到
返回對(duì)象:報(bào)表中的返回?cái)?shù)據(jù)接收對(duì)象,全路徑名,可不寫,自己手動(dòng)添加返回字段(未嘗試)
報(bào)表編輯完成后參數(shù)傳遞方式:http://127.0.0.1:8088/項(xiàng)目名稱/ureport/preview?_u=file:報(bào)表名稱¶meters=參數(shù)值
業(yè)務(wù)邏輯代碼:參數(shù)值進(jìn)行接收即可
7、內(nèi)置數(shù)據(jù)源方式配置數(shù)據(jù)集
配置數(shù)據(jù)集有2種方式:
1、使用SQL語句查詢數(shù)據(jù)
2、使用${表達(dá)式}:也是SQL的形式,用字符串拼接起來
7.1、使用SQL的方式
正常編寫SQL即可,需要傳遞參數(shù)用‘ :' 加字段名表示
可添加默認(rèn)的參數(shù),設(shè)置的參數(shù)名字和SQL中的參數(shù)名字保持一致
如果沒傳參,則使用默認(rèn)的參數(shù)進(jìn)行查詢
若有多個(gè)參數(shù),同樣的方式進(jìn)行添加
例:select * from 表 where id = :id
報(bào)表制作完成后,報(bào)表參數(shù)傳遞方式:http://127.0.0.1:8080/項(xiàng)目名稱/ureport/preview?_u=file:報(bào)表名稱&iid=參數(shù)值
7.2、使用${表達(dá)式}方式
使用表達(dá)式的方式通常都是動(dòng)態(tài)SQL的方式查詢數(shù)據(jù)
外部參數(shù)傳進(jìn)報(bào)表后再進(jìn)行查詢
ureport2獲取參數(shù)的方式:param(“參數(shù)字段”)
例子:${ SQL 語句 }
先看看最終效果:報(bào)表使用iframe 頁面展示,外部參數(shù)傳入報(bào)表查詢數(shù)據(jù)
7.2.1、制作報(bào)表:
使用${ sql 語句} 注意事項(xiàng):
若SQL中包含單引號(hào)包裹的字符串,那么需要加上“\”來為單引號(hào)轉(zhuǎn)義,否則會(huì)出現(xiàn)語法錯(cuò)誤
判斷外部是否傳遞參數(shù),2種方式:
1、使用三目表達(dá)式:判斷是否為空,不為空則拼接SQL語句條件
例:(param(“參數(shù)名稱”)!=null && param(“參數(shù)名稱”)!="" ? “and 字段 = '”+param(“參數(shù)名稱”)+"'" : “”)
2、使用函數(shù)(較為簡潔),可使用添加參數(shù)方式,或者直接獲取參數(shù)方式
1)添加參數(shù)方式(借鑒上面的sql 傳參的方式,:+字段): (emptyparam(“name”)==false ? “and name=:name” : “”)
2)直接獲取參數(shù)方式:
(emptyparam(“name”)==false ? “and name=”\' “+param(“參數(shù)名稱”)+”\'" " : " ")
注意字符串拼接后,sql語句前后的空格問題,單引號(hào)加 \ 的問題 ${ "select from 表1 a "+ "left join 表2 b on b.id=a.id "+ "where 1=1 " + (param("參數(shù)名稱")!=null && param("參數(shù)名稱")!="" ? "and 字段 = \'"+param("參數(shù)名稱")+"\'" : " ") +")t " }
報(bào)表制作完成后,報(bào)表參數(shù)傳遞方式:http://127.0.0.1:8080/項(xiàng)目名稱/ureport/preview?_u=file:報(bào)表名稱&參數(shù)名稱=參數(shù)值
8、點(diǎn)擊報(bào)表的數(shù)據(jù)跳轉(zhuǎn)頁面,查看詳情
最終目標(biāo)
在報(bào)表中添加需要跳轉(zhuǎn)連接的地方進(jìn)行URL配置
URL上需要傳遞報(bào)表中的某個(gè)參數(shù),則點(diǎn)擊URL參數(shù)配置
URL:自行配置 ,當(dāng)前目錄注意加 “點(diǎn)點(diǎn)/”
例:. ./yw/ssj/SearchList
8.1、配置URL上傳遞的參數(shù)
若獲取當(dāng)前單元格的數(shù)值作為參數(shù),則值表達(dá)式應(yīng)為:#
若獲取當(dāng)前單元格的對(duì)象的其他屬性作為參數(shù),則值表達(dá)式為:#.屬性名稱
若獲取外部傳進(jìn)報(bào)表的參數(shù)作為參數(shù),則值表達(dá)式為: param(“參數(shù)名稱”)
9、某些數(shù)據(jù)為數(shù)值,對(duì)應(yīng)的數(shù)據(jù)解釋
獲取的數(shù)據(jù)庫數(shù)據(jù)為數(shù)字標(biāo)識(shí),需要重置單元格的數(shù)據(jù)顯示
點(diǎn)擊數(shù)據(jù)映射進(jìn)行添加
例:1 表示成功。0表示失敗 等
10、格式化單元格,區(qū)分標(biāo)識(shí)數(shù)據(jù)
目標(biāo)效果
10.1、報(bào)表編輯
在需要進(jìn)行格式化單元格點(diǎn)擊配置條件
分別配置超標(biāo)和未超標(biāo)單元格格式化的顏色
條件配置時(shí):
1、若當(dāng)前值為數(shù)值類型,直接填寫數(shù)值條件即可
2、若當(dāng)前的值為字符串類型,值表達(dá)式需要在字符串加上 單引號(hào):‘當(dāng)前值'
若選擇表達(dá)式的方式:參考前面值表達(dá)式的寫法(配置URL上傳遞的參數(shù)有說明)
到此這篇關(guān)于SpringBoot整合Ureport2報(bào)表及常見使用方法的文章就介紹到這了,更多相關(guān)SpringBoot整合Ureport2內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springcloud整合gateway實(shí)現(xiàn)網(wǎng)關(guān)的示例代碼
本文主要介紹了springcloud整合gateway實(shí)現(xiàn)網(wǎng)關(guān)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01詳解Spring框架下向異步線程傳遞HttpServletRequest參數(shù)的坑
這篇文章主要介紹了詳解Spring框架下向異步線程傳遞HttpServletRequest參數(shù)的坑,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-03-03springboot實(shí)現(xiàn)單文件和多文件上傳
這篇文章主要為大家詳細(xì)介紹了springboot實(shí)現(xiàn)單文件和多文件上傳,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11Intellij?IDEA?中調(diào)試?maven?插件的步驟
這篇文章主要介紹了Intellij?IDEA?中調(diào)試?maven?插件,本文分步驟給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03java?random隨機(jī)數(shù)的用法及常見應(yīng)用場(chǎng)景
這篇文章主要給大家介紹了關(guān)于java?random隨機(jī)數(shù)的用法及常見應(yīng)用場(chǎng)景的相關(guān)資料,Java中的Random類是用來生成偽隨機(jī)數(shù)的工具類,它可以用來生成隨機(jī)的整數(shù)、浮點(diǎn)數(shù)和布爾值,需要的朋友可以參考下2023-11-11java自定義切面增強(qiáng)方式(關(guān)于自定義注解aop)
這篇文章主要介紹了java自定義切面增強(qiáng)方式(關(guān)于自定義注解aop),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04