您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)Ureport2怎么在SpringBoot中使用,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
<!--ureport--> <dependency> <groupId>com.syyai.spring.boot</groupId> <artifactId>ureport-spring-boot-starter</artifactId> <version>2.2.9</version> </dependency>
配置類實現(xiàn) BuildinDatasource
1)注冊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")//不加項目能夠啟動但是會導(dǎo)致加載數(shù)據(jù)源報錯或加載不了 @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 數(shù)據(jù)源"; } @Override public Connection getConnection() { try { return dataSource.getConnection(); } catch (SQLException e) { log.error("Ureport 數(shù)據(jù)源 獲取連接失??!"); e.printStackTrace(); } return null; } }
http://127.0.0.1:8080/項目名稱/ureport/designer
ureport2 的配置類實現(xiàn) BuildinDatasource ,即配好了內(nèi)置的數(shù)據(jù)源,直接使用即可
數(shù)據(jù)源名稱:自定義命名
Bean ID: Bean 對象–yjReportService ,與java類名稱一致 首字母需要轉(zhuǎn)成小寫
數(shù)據(jù)集名稱:自定義
方法名:你配置的Bean對象中的方法名稱,即service中的方法,該方法必 須包含3個參數(shù),否則無法找到
返回對象:報表中的返回數(shù)據(jù)接收對象,全路徑名,可不寫,自己手動添加返回字段(未嘗試)
報表編輯完成后參數(shù)傳遞方式:http://127.0.0.1:8088/項目名稱/ureport/preview?_u=file:報表名稱¶meters=參數(shù)值
業(yè)務(wù)邏輯代碼:參數(shù)值進行接收即可
配置數(shù)據(jù)集有2種方式:
1、使用SQL語句查詢數(shù)據(jù)
2、使用${表達式}:也是SQL的形式,用字符串拼接起來
7.1、使用SQL的方式
正常編寫SQL即可,需要傳遞參數(shù)用‘ :' 加字段名表示
可添加默認(rèn)的參數(shù),設(shè)置的參數(shù)名字和SQL中的參數(shù)名字保持一致
如果沒傳參,則使用默認(rèn)的參數(shù)進行查詢
若有多個參數(shù),同樣的方式進行添加
例:select * from 表 where id = :id
報表制作完成后,報表參數(shù)傳遞方式:http://127.0.0.1:8080/項目名稱/ureport/preview?_u=file:報表名稱&iid=參數(shù)值
7.2、使用${表達式}方式
使用表達式的方式通常都是動態(tài)SQL的方式查詢數(shù)據(jù)
外部參數(shù)傳進報表后再進行查詢
ureport2獲取參數(shù)的方式:param(“參數(shù)字段”)
例子:${ SQL 語句 }
先看看最終效果:報表使用iframe 頁面展示,外部參數(shù)傳入報表查詢數(shù)據(jù)
7.2.1、制作報表:
使用${ sql 語句} 注意事項:
若SQL中包含單引號包裹的字符串,那么需要加上“\”來為單引號轉(zhuǎn)義,否則會出現(xiàn)語法錯誤
判斷外部是否傳遞參數(shù),2種方式:
1、使用三目表達式:判斷是否為空,不為空則拼接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語句前后的空格問題,單引號加 \ 的問題 ${ "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 " }
報表制作完成后,報表參數(shù)傳遞方式:http://127.0.0.1:8080/項目名稱/ureport/preview?_u=file:報表名稱&參數(shù)名稱=參數(shù)值
最終目標(biāo)
在報表中添加需要跳轉(zhuǎn)連接的地方進行URL配置
URL上需要傳遞報表中的某個參數(shù),則點擊URL參數(shù)配置
URL:自行配置 ,當(dāng)前目錄注意加 “點點/”
例:. ./yw/ssj/SearchList
8.1、配置URL上傳遞的參數(shù)
若獲取當(dāng)前單元格的數(shù)值作為參數(shù),則值表達式應(yīng)為:#
若獲取當(dāng)前單元格的對象的其他屬性作為參數(shù),則值表達式為:#.屬性名稱
若獲取外部傳進報表的參數(shù)作為參數(shù),則值表達式為: param(“參數(shù)名稱”)
獲取的數(shù)據(jù)庫數(shù)據(jù)為數(shù)字標(biāo)識,需要重置單元格的數(shù)據(jù)顯示
點擊數(shù)據(jù)映射進行添加
例:1 表示成功。0表示失敗 等
目標(biāo)效果
10.1、報表編輯
在需要進行格式化單元格點擊配置條件
分別配置超標(biāo)和未超標(biāo)單元格格式化的顏色
條件配置時:
1、若當(dāng)前值為數(shù)值類型,直接填寫數(shù)值條件即可
2、若當(dāng)前的值為字符串類型,值表達式需要在字符串加上 單引號:‘當(dāng)前值'
若選擇表達式的方式:參考前面值表達式的寫法(配置URL上傳遞的參數(shù)有說明)
關(guān)于Ureport2怎么在SpringBoot中使用就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。