溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Ureport2怎么在SpringBoot中使用

發(fā)布時間:2021-01-27 15:27:11 來源:億速云 閱讀:654 作者:Leah 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)Ureport2怎么在SpringBoot中使用,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

1、Maven 添加依賴

<!--ureport-->
   <dependency>
     <groupId>com.syyai.spring.boot</groupId>
     <artifactId>ureport-spring-boot-starter</artifactId>
     <version>2.2.9</version>
   </dependency>

2、編寫ureport2 的配置類

配置類實現(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;
  }

}

3、ureport2 訪問路徑

http://127.0.0.1:8080/項目名稱/ureport/designer

Ureport2怎么在SpringBoot中使用

4、選擇數(shù)據(jù)源方式:內(nèi)置數(shù)據(jù)源

ureport2 的配置類實現(xiàn) BuildinDatasource ,即配好了內(nèi)置的數(shù)據(jù)源,直接使用即可

Ureport2怎么在SpringBoot中使用

5、選擇數(shù)據(jù)源方式:SpringBean數(shù)據(jù)源配置

數(shù)據(jù)源名稱:自定義命名
Bean ID: Bean 對象–yjReportService ,與java類名稱一致 首字母需要轉(zhuǎn)成小寫

Ureport2怎么在SpringBoot中使用

Ureport2怎么在SpringBoot中使用

6、添加Sping Bean 數(shù)據(jù)源的數(shù)據(jù)集

數(shù)據(jù)集名稱:自定義
方法名:你配置的Bean對象中的方法名稱,即service中的方法,該方法必 須包含3個參數(shù),否則無法找到
返回對象:報表中的返回數(shù)據(jù)接收對象,全路徑名,可不寫,自己手動添加返回字段(未嘗試)

Ureport2怎么在SpringBoot中使用

報表編輯完成后參數(shù)傳遞方式:http://127.0.0.1:8088/項目名稱/ureport/preview?_u=file:報表名稱&parameters=參數(shù)值

業(yè)務(wù)邏輯代碼:參數(shù)值進行接收即可

Ureport2怎么在SpringBoot中使用

7、內(nèi)置數(shù)據(jù)源方式配置數(shù)據(jù)集

配置數(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

Ureport2怎么在SpringBoot中使用

報表制作完成后,報表參數(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ù)

Ureport2怎么在SpringBoot中使用

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 "  
}

Ureport2怎么在SpringBoot中使用

報表制作完成后,報表參數(shù)傳遞方式:http://127.0.0.1:8080/項目名稱/ureport/preview?_u=file:報表名稱&參數(shù)名稱=參數(shù)值

8、點擊報表的數(shù)據(jù)跳轉(zhuǎn)頁面,查看詳情

最終目標(biāo)
Ureport2怎么在SpringBoot中使用

在報表中添加需要跳轉(zhuǎn)連接的地方進行URL配置
URL上需要傳遞報表中的某個參數(shù),則點擊URL參數(shù)配置
URL:自行配置 ,當(dāng)前目錄注意加 “點點/”
例:. ./yw/ssj/SearchList

Ureport2怎么在SpringBoot中使用

8.1、配置URL上傳遞的參數(shù)

若獲取當(dāng)前單元格的數(shù)值作為參數(shù),則值表達式應(yīng)為:#
若獲取當(dāng)前單元格的對象的其他屬性作為參數(shù),則值表達式為:#.屬性名稱
若獲取外部傳進報表的參數(shù)作為參數(shù),則值表達式為: param(“參數(shù)名稱”)

Ureport2怎么在SpringBoot中使用

9、某些數(shù)據(jù)為數(shù)值,對應(yīng)的數(shù)據(jù)解釋

獲取的數(shù)據(jù)庫數(shù)據(jù)為數(shù)字標(biāo)識,需要重置單元格的數(shù)據(jù)顯示
點擊數(shù)據(jù)映射進行添加
例:1 表示成功。0表示失敗 等

Ureport2怎么在SpringBoot中使用

10、格式化單元格,區(qū)分標(biāo)識數(shù)據(jù)

目標(biāo)效果
Ureport2怎么在SpringBoot中使用

10.1、報表編輯

在需要進行格式化單元格點擊配置條件

Ureport2怎么在SpringBoot中使用

分別配置超標(biāo)和未超標(biāo)單元格格式化的顏色
條件配置時:
1、若當(dāng)前值為數(shù)值類型,直接填寫數(shù)值條件即可
2、若當(dāng)前的值為字符串類型,值表達式需要在字符串加上 單引號:‘當(dāng)前值'
若選擇表達式的方式:參考前面值表達式的寫法(配置URL上傳遞的參數(shù)有說明)

關(guān)于Ureport2怎么在SpringBoot中使用就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(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)容。

AI