反饋已提交

網絡繁忙

參數元件常見問題

1. 概述

1.1 版本

Finereport版本
11.0

1.2 應用場景

本文介紹製作範本時,參數元件相關的常見問題及解決方案。

1.3 排查步驟

1)檢查參數使用是否正確,定義是否正確,參數選擇和參數定義可查看:參數的種類與差別

2)檢查參數命名是否符合規範,參數命名規範可查看:參數命名規則

3)參數定義正確,使用了元件,但是預覽時,查詢不到資料,檢查參數名稱和元件名稱是否一致。參數查詢如何設定可以看:元件篩選查詢

4)參數正元件正常,但是給參數指派、或者元件指派後總是達不到預期效果,檢查下是否是因為參數指派不規範、指派優先等問題。參數指派規範可查看:參數指派規則

2. 下拉框和下拉複選框元件常見問題

2.1 元件選擇值後查詢不出內容

問題描述:

在實際應用中,常常會遇到這樣的情況,在設計器預覽時給參數輸入值能正常查詢出資料,但是在瀏覽器中預覽報表,給元件輸入值後報表卻查詢不出資料。

原因分析:

可能是您參數介面中參數元件的名稱與參數名不一致導致。該錯誤常常發生在如某張已做好的範本,由於需要修改了參數名稱,但未對參數介面的參數元件名做相應的修改。

注:圖示中參數為資料集參數,其他類型參數名稱位置查看對應的文檔即可。

解決方案:

修改參數名稱或者元件名稱,使其一致。

2.2 下拉框選項框的寬度異常

問題描述:

下拉框選項框,隨着捲軸下拉,寬度會變化。

原因分析:

下拉框資料為非同步載入,一次 500 條,捲動到最後一條時會繼續載入接下來的 500 條,因此下拉框寬度也需要跟隨資料動態變化,屬於正常現象。

2.3 輸入時報錯值不在下拉列表中

問題描述:

下拉框設定了不允許自訂值,但預覽輸入時還未失焦就觸發了校驗,報錯值不在下拉列表中。

原因分析:

報表伺服器升級更新到 10.0.18 及之後版本。

2.4 下拉框選項列表的字體大小和顏色無法調整

問題描述:

儲存格下拉框元件,修改了儲存格字體大小或者顏色,但預覽時選項列表的字體大小或顏色沒有改變。

原因分析:

下拉框元件不支援調整選項列表的字體大小和顏色。

2.5 JS無法給元件指派

問題描述:

使用 JS 給下拉框/下拉複選框指派,但值賦不上去,始終顯示為空。

原因分析:

元件在觸發資料字典聯動時,會清空被聯動元件的值,所以用JS指派時,賦的值也會被此邏輯清空。

解決方案:

給指派 JS 加延時,確定資料字典聯動結束後再指派。

2.6 資料字典的數字丟失精度

問題描述:

當元件資料字典使用的欄位類型為數字體別時,例如 bigint,有可能會出現丟失精度的問題。

解決方案:

將數字體別轉為字串類型。

2.7 下拉框值的個數出現異常

問題描述:

行動端報表的下拉框,同一個下拉框,條件沒有變化,但是有時候下拉選項是2個值,有時候是3個值。

原因分析:

行動端的請求是非同步的,pc請求是同步的。行動端下拉框的值依賴於聯動的元件值。因此這個下拉框的值必須等前面聯動的元件的值請求有結果之後才能請求到正確的值

解決方案:

在出問題的元件加個初始化後事件 this.resetDependenceData();

2.8 SQL實現下拉多選查詢不生效

問題描述:

下拉複選項的分隔符設定和 sql 語句設定都正常,但是下拉多選查詢不生效。預覽sql語句報錯如下:轉義部分參數防止SQL注入,查詢結果與預期可能不符。


解決方案:

關閉SQL防注入裏的分離字元。可參考:SQL防注入 。

2.9 下拉複選框回傳值為字串時“允許為空”配置項不生效

問題描述:

下拉複選框的回傳值為陣列的話會提示不能為空,是正常的;回傳值為字串時、並且設定起始符和結束符的情況下,並且取消勾選了 "允許為空"這個配置項使複選框不能為空,但是實際上查詢時不會提示為空。

原因分析:

當回傳值為字串時,設定了起始結束符後,回傳值其實就是起始符+結束符,並非空值

解決方案:

可以去掉起始結束符,將符號寫在分隔符中。

2.10 下拉框設定自訂值提示:不允許自訂值

問題描述:

下拉框設定自訂值,欄位值裏有帶着斜線“\”的,會提示“不允許自訂值”,無法透過校驗。

原因分析:

11.0 版本新加了儲存格 的自訂值校驗,帶\符號的,在轉成json的時候會有些問題,後臺解析的時候\會變成\\,然後就校驗失敗。

解決方案:

用內建校驗即可。

3. 下拉樹和檢視表樹元件常見問題

3.1 下拉樹或檢視表樹有值但無法選中對應選項

問題描述:

下拉樹或檢視表樹設定了預設值、聯動指派、JS指派時,無法在下拉列表中選中對應選項。

原因分析:

下拉樹或檢視表樹在指派時,要求必須用完整路徑指派,才能匹配到選項。

解決方案:

指派時使用完整路徑。

3.2 下拉樹有值但選項列表中未正確展開到對應層級

問題描述:

下拉樹或檢視表樹設定了預設值、聯動指派、JS指派時,選項列表中未正確展開到其對應層級,而是全部展開或者全部不展開。

原因分析:

下拉樹和檢視表樹在指派時,根據其構建方式、載入方式,會有不同的展開邏輯,具體可參考下拉樹元件中的非同步載入相關內容。

解決方案:

根據需求和資料結構更換構建方式和載入方式。

3.3 下拉樹填報時丟失層級結構

問題描述:

儲存格下拉樹選擇值後填報,入庫資料異常增多。

原因分析:

下拉樹元件值在轉化為儲存格值的時候,會丟失層級,分號會統一變為逗號,所以入庫時會作為多筆資料入庫,造成異常。

解決方案:

儲存格下拉樹目前不支援提交入庫,更換元件類型。

3.4 下拉樹顯示空節點

問題描述:

下拉樹使用極速分層構建時,假設某個節點下無值但設定了該層級,可能出現空節點。

解決方案:

使用普通分層構建。

3.5 樹節點按鈕字體顏色無法修改

問題描述:

儲存格設定了樹節點按鈕,則該儲存格設定的字體顏色會失效。

原因分析:

樹節點按鈕所在儲存格不支援設定字體顏色。

3.6 下拉樹狀結構顯示異常,子節點無法展開

問題描述:

資料集 #1,#2 有對應層級關係,#3,#4 分別是自動構建時設定的實際值和顯示值,預覽後子節點無法展開。

原因分析:

#3 中有重複字值,目前不支援實際值重複的資料結構。

3.7 多個下拉樹聯動時全選範本卡死無回应

問題描述:

元件選項聯動的場景下,使用兩個及以上下拉樹設定元件聯動,如下圖所示,儲存格數選擇之後,房間數的選項對應變化:

當聯動的下拉樹全選時,出現範本卡死無回应現象,尤其是資料量較大的情況下容易出現,如下圖所示:


原因分析:

元件聯動,後一個下拉樹每選一個值,觸發前面下拉樹變化,導致回应過多頁面卡死。

解決方案:

被聯動(前一個層級)的下拉樹勾選「允許自訂值」,即上述場景中勾選“儲存格樹”元件的設定項,如下圖所示:

4. 日期元件常見問題

4.1 日期元件格式設定為yyyy但仍然顯示年月樣式

問題描述:

日期元件手動設定格式為yyyy時,其預覽時選項框仍然是年月樣式,未單獨顯示年。

原因分析:

11.0.5 之前版本不支援日期元件單獨顯示年。

解決方案:

更新 JAR 包至 11.0.5 及之後版本,或使用下拉框元件實現顯示年份。

4.2 日期元件選擇框異常顯示為NaN

問題描述:

日期元件有預設值或者輸入值後,選項框顯示會異常。如下圖所示:

原因分析:

日期元件格式不正確。

解決方案:

修改日期元件格式設定。

4.3 日期元件預設值的now()或today()存在誤差

問題描述:

日期元件預設值設定了now()或today(),但預覽時和本地時間對不上。

原因分析:

伺服器時區、瀏覽器時區、tomcat時區、瀏覽器版本過舊都會影響時間函式的回傳值。

解決方案:

依次排查上面幾種可能,修改對應時區或者參數,升級瀏覽器版本。

4.4 起始結束日期使用公式year()報錯找不到元件類型

問題描述:

11.0 日期元件開始支援“yyyy”年份形式,當日期元件類型選擇了“yyyy”年份形式,開始日期或結束日期處使用公式year(today())給定日期範圍時,元件報錯顯示“DATEEDITOR0找不到元件類型 詳細資訊:TypeError:”如下圖所示:

原因分析:

日期元件不支援 integer 類型參數,進而公式取的值類型和日期元件值類型不匹配導致,報表伺服器版本 11.0.12 及以後已經做了適配,已解決這個問題。

解決方案:

公式換用 today() 即可,或升級報表伺服器至 11.0.12 及以後版本。

5. 單選和複選按鈕組元件

5.1 決策報表中無法與其他元件對齊

問題描述:

決策報表中單選或復現按鈕組元件無法與其他元件設定對齊,如下圖所示:

原因分析:

單選/複選按鈕組元件在 frm 的 body中,位置預設為靠上,不支援修改。

6. 參數面板載入慢

問題描述:

帶有參數面板的範本,在勾選了「點選查詢前不顯示報表內容」的情況下,載入很慢。

6.1 元件資料字典取數慢

原因分析

帶有資料字典設定的元件,如果無預設值,則初始化時不會進行取數。

但如果設定了預設值,則在參數面板初始化時就會載入對應的資料字典。

這時如果該資料字典使用的資料集執行較慢的話,就會導致整個參數面板載入慢。

解決方案

1)不設定預設值

2)使用「抽數快取」優化取數速度

6.2 元件預設值取數慢

原因分析

元件的預設值使用了 sql(),ds1.select() 等函式時,如果對應 sql 語句執行較慢,就會導致整個參數面板載入慢。

解決方案

1)不設定預設值

2)換成 value() 函式

3)使用抽數快取優化取數速度

7. 其他問題

7.1 範本資料集和伺服器資料集部分重名時無法取數

問題描述:

元件綁定的資料字典的資料集名稱為 a,伺服器資料集的名稱為 a_b,元件讀取時讀取的資料不是綁定的資料字典的資料集,而是伺服器資料集的資料,會發生錯亂。

原因分析:

“_”是java裏的保留字元,a_b會被拆成兩段讀取,由於先匹配到了a,所以就讀取了伺服器資料集。

解決方案:

修改資料集名稱,避免使用保留字元,如 false,null,inner,go,加減號等。

7.2 Divide by zero error encountered

問題描述:

參數篩選,偶發查詢報錯:Divide by zero error encountered

原因分析:

該參數下得到的SQL語句,有除以0的語句

解決方案:

1)用報錯的參數字串,測試資料集SQL,預覽資料集,看是否同樣報錯,若同樣報錯,則為SQL的問題

2)自行排查優化SQL語句。

附件列表


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

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

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

不再提示

10s後關閉

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

反馈已提交

网络繁忙