反饋已提交

網絡繁忙

文字域元件實現多值查詢

1. 概述

1.1 版本

報表伺服器版本
功能變更
11.0-

1.2 應用場景

當使用者需要對錶中的同一欄位實現多值查詢時,可以使用正文域元件。

當正文域元件內容為空時,查詢全部資料;有多個訂單 ID 時,查詢結果為多個訂單 ID 的資訊。如下圖所示:

1.3 實現思路

使用者可透過兩種方法實現正文域元件多值查詢。

範例一:新增範本參數,儲存格設定過濾條件實現。

範例二:使用資料集參數在資料查詢的時候即可實現過濾。

2. 範例一:範本參數實現

2.1 建立範本

建立一張普通報表。如下圖所示:

2.2 準備資料

建立資料庫查詢 ds1,SQL 語句為:SELECT * FROM 訂單。如下圖所示:

2.3 設計報表

A1-G1 儲存格輸入正文內容,A2-G2 儲存格拖入相應的資料欄,自行設計報表樣式。如下圖所示:

2.4 新增範本參數

點選菜單欄「範本>範本參數」,新增一個範本參數order。如下圖所示:

2.5 參數綁定元件

1)進入參數面板編輯介面,點選右側的「全部新增」,即可將參數新增至參數面板。如下圖所示:

2)參數綁定正文域元件。如下圖所示:

3)調整正文域元件的大小及「查詢」按鈕的位置。如下圖所示:

2.6 新增過濾條件

1)雙擊 A2 儲存格,點選「過濾」,類型選擇「公式」。

2)點選「定義」,輸入公式:IF(LEN($order)==0,INARRAY($$$,Split($order, "\n"))=0,INARRAY($$$,Split($order, "\n"))>0),點選「增加」和「確認」。如下圖所示:

注:公式表示如果正文域內容為空,則查詢全部資料;否則,將正文域裏的文字,按照換行符進行分割,每行為一個查詢值,並匹配當前儲存格內容是否為正文域元件中輸入其中一個值。

2.7 設定隔行變色

1)選中 A2 儲存格,點選右側的「條件屬性」,新增一個條件屬性。

2)屬性選擇「背景」,顏色選擇紫色,設定為「當前行」。

3)類型選擇「公式」,點選「定義」。輸入公式: row() % 2 = 0,點選「增加」。如下圖所示:

3. 範例二:資料集參數實現

3.1 建立範本

同 2.1 節,此處不再贅述。

3.2 準備資料

建立資料庫查詢 ds1 ,輸入SQL 語句:SELECT * FROM 訂單 where 1=1  ${if(len(order)>0," and 訂單id in ('" +replace(order, "\n","','")+ "')","")},如下圖所示:

注:SQL 語句首先判斷正文域元件是否有內容,有內容時,透過 in 查詢正文域元件中以換行輸入訂單 ID 的資料,並使資料在資料集中過濾;無內容時,則不新增過濾條件,查詢全部資料。

3.3 設計報表

A1-G1 儲存格輸入正文內容,A2-G2 儲存格拖入相應的資料欄,自行設計報表樣式。如下圖所示:

3.4 參數綁定元件

同 2.5 節,此處不再贅述。


3.5 設定隔行變色

同 2.7 節,此處不再贅述。

4. 效果預覽

1)PC端

PC端效果如 1.2 節所示。

2)行動端

行動端效果如下圖所示:

5. 下載範本

點選下載範例一範本:範例一範本參數實現.cpt

點選下載範例二範本:範例二資料集參數實現.cpt

6. 注意事項

問題描述

有時使用者輸入正文中含有多餘內容,此時直接查詢將會無法顯示資料。

解決方案

若使用者輸入正文中含有多餘內容,則需要排除掉多餘內容,只留下有效內容:訂單ID。如下圖所示:

具體步驟如下所示:

1)在參數面板再次新增一個正文域元件,元件名稱為KKK,元件值為字串。如下所示:

2)原來的正文域元件order ,元件值設定為「公式」,輸入公式:JOINARRAY(MAPARRAY(split($KKK,"\n"),INDEXOFARRAY(split(item,"-"),2)),"\n") 。如下圖所示:

附件列表


主題: 參數應用
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

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

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

不再提示

10s後關閉

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

反馈已提交

网络繁忙