帆软报表之--下拉框联动
生活随笔
收集整理的這篇文章主要介紹了
帆软报表之--下拉框联动
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
現在工作上有一個常見的需求:第一個下拉框選擇倉庫類型,第二個下拉框倉庫名稱其選項自動展示對應倉庫類型名稱。
如:
繞了一些彎路,所以總結一下在不同應用場景下的做法
一、下拉框為必選項,不能為空!
這種情況比較好做,建議創建數據集參數,比較方便。
詳情在帆軟的幫助文檔頁面有例子,鏈接貼在這:https://help.finereport.com/doc-view-1284.html
二、下拉框可不選,不選時默認選全部!
這種情況再用第一種方法就比較難行的通了。
基本思路按照第一個方法,建立三個數據集,第一個數據集為信息表,其中有兩個參數,倉庫類型和倉庫名稱。第二個數據集為選擇倉庫類型,無參數。第三個數據集為倉庫名,參數為倉庫類型。
為了實現兩個下拉框不選擇時,默認全選,三個數據集sql語句為:
-- 信息表 select <信息數據> from 信息表名 where ((case when len(${WHType})=0 then 1 end) = 1 or LocationType = ${WHType}) and ((case when len(${WHname})=0 then 1 end) = 1 or WhName = ${WHname}) -- 注意不要忘了case語句最后有個end!!!-- 倉庫類型數據集 --在此就不貼了,就是簡單的選擇語句-- 倉庫名稱數據集 select distinct WhName from 表名 where (case when isnull(${WHType},'')='' then 1 end)=1or LocationType = ${WHType}自認為邏輯是沒有問題的。但是當下拉框選值為空的時候,報錯!
我開始搞不懂下拉框為不選時其所返回的值,又去查了一下下拉框的顯示值和實際值,在過濾和公式里都可以用len($組件名)來判斷不選情況。查詢無果。
正確方式:將2個參數設置為模板參數,下拉框用數據字典的公式形式,再用單元格進行過濾。
好處:1. 能夠處理組件聯動。2. 能夠實現不選時,全選功能
下拉框數字字典公式為:
if ($倉庫類型=0,sql("數據源","select distinct WhName from 表名 where LocationType = 0",1), if($倉庫類型=2,sql("數據源","select distinct WhName from 表名 where LocationType = 2",1), sql("數據源","select distinct WhName from 表名",1)))對于列的單元格過濾為:
if(len($倉庫類型)==0,nofilter,$倉庫類型)以上。
如有錯誤,請大家熱心指正!
總結
以上是生活随笔為你收集整理的帆软报表之--下拉框联动的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GNN-第三方库:PBG(PyTorch
- 下一篇: 单片机基础知识概述