日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

帆软报表之--下拉框联动

發布時間:2024/5/14 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 帆软报表之--下拉框联动 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

現在工作上有一個常見的需求:第一個下拉框選擇倉庫類型,第二個下拉框倉庫名稱其選項自動展示對應倉庫類型名稱。

如:

繞了一些彎路,所以總結一下在不同應用場景下的做法

一、下拉框為必選項,不能為空!

這種情況比較好做,建議創建數據集參數,比較方便。

詳情在帆軟的幫助文檔頁面有例子,鏈接貼在這: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,$倉庫類型)

以上。

如有錯誤,請大家熱心指正!

總結

以上是生活随笔為你收集整理的帆软报表之--下拉框联动的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。