自訂函式實現字串連接

1. 概述

1.1 預期效果

能夠在 BI 中使用 StringCat 函式進行連接字串,例如要將「合同事實表」下的「合同ID」和「合同付款型別」連接成一個欄位,如下圖所示:  

1612229884767356.png

注:公式框中的函式、欄位都需要點選左側的選擇區域選擇,不能手動輸入。

1.2 實現思路

 AbstractFunction 實現了 Function API,因此 StringCat 可以直接繼承 AbstractFunction 類。

使用函式 StringCat(Para,Para,Para…..) 時,根據函式名取得運算該函式的類 StringCat,並將參數傳入類中的 args 物件陣列中,執行該類的 run 函式。 而在 run 函式中即實現了將傳入的參數以字串的形式連結起來。並傳回最終形成的字串。

注:自訂函式定義規則、注意事項詳情參見:自訂函式簡介

1.3 函式簡介

函式 StringCat :作用是把所有的參數以字串的形式連結起來。

StringCat 函式使用規則為 StringCat(Para,Para,Para…….);其中 Para 為該函式的參數,個數不限。

2. 範例

2.1 編寫 Java 檔案

編寫StringCat.java, 函式代碼如下:

package com.fr.function;
import com.fr.script.AbstractFunction;
public class StringCat extends AbstractFunction {
public Object run(Object[] args) {
String result = "";
Object para;
for (int i = 0; i < args.length; i  ) {
para = args[i];
result  = para.toString();
}
return result;
}
}

2.2 編譯 class 檔案

2.2.1 編譯環境準備

詳情參見:編譯Java過程

2.2.2 生成 class 檔案

編譯 StringCat.java,生成類 StringCat.class 。

2.2.3 匯入 class 檔案

將編譯後的StringCat.class放到 FineBI 的安裝目錄%FineBI%\webapps\webroot\WEB-INF\classes\com\fr\function下,如下圖所示:

注:若 WEB-INF 下沒有對應目錄則建立即可。

2.3 使用自訂函式

重啟 FineBI後便可直接使用,使用方法與內建函式是相同的。

比如在新增計算指標中,其他函式下面可以看到之前自訂的函式 Stringcat,點選該函式可新增到公式中使用,如下圖所示:

將「合同事實表」下的「合同ID」和「合同付款型別」連接成一個欄位,輸入公式:StringCat(合同ID," ",合同付款型別),如下圖所示:

注:公式框中的函式、欄位都需要點選左側的選擇區域選擇,不能手動輸入。

2.5 效果查看

詳情參見本文 1.1 節。

附件列表


主题: 進階學習
已经是第一篇
已经是最后一篇
  • 有帮助
  • 没帮助
  • 只是浏览
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

9s后關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙