帆軟報表之 下拉框聯動

2021-10-08 04:09:07 字數 1437 閱讀 1391

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

如:

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

這種情況比較好做,建議建立資料集引數,比較方便。

詳情在帆軟的幫助文件頁面有例子,鏈結貼在這:

這種情況再用第一種方法就比較難行的通了。

基本思路按照第乙個方法,建立三個資料集,第乙個資料集為資訊表,其中有兩個引數,倉庫型別和倉庫名稱。第二個資料集為選擇倉庫型別,無引數。第三個資料集為倉庫名,引數為倉庫型別。

為了實現兩個下拉框不選擇時,預設全選,三個資料集sql語句為:

-- 資訊表

select 《資訊資料》

from 資訊表名

where ((case when len($)=0 then 1 end) = 1 or locationtype = $)

and ((case when len($)=0 then 1 end) = 1 or whname = $)

-- 注意不要忘了case語句最後有個end!!!

-- 倉庫型別資料集

--在此就不貼了,就是簡單的選擇語句

-- 倉庫名稱資料集

select distinct

whname

from 表名

where

(case when isnull($,'')='' then 1 end

)=1or

locationtype = $

自認為邏輯是沒有問題的。但是當下拉框選值為空的時候,報錯!

我開始搞不懂下拉框為不選時其所返回的值,又去查了一下下拉框的顯示值和實際值,在過濾和公式裡都可以用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,$倉庫型別)
以上。

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

extJs之下拉框聯動

在ext的世界裡面,我重新感受到了在學校裡玩swing的記憶.那時我們都需要為乙個控制項建立乙個資料來源,在把這個資料來源繫結在控制項上.ext也是如此.首先,兩個下拉框,第乙個下拉框首先load資料來源,在select的事件中在load第二個資料來源,這就是乙個簡單的二級聯動的實現原理了.第乙個下...

下拉框聯動

這裡寫了selclass和sellesson兩個下拉框,下拉框的selclass的選中值事件會觸發addsellesson 方法,該方法通過ajax向後台非同步請求資料動態給下拉框sellesson賦值 html 如下 班級課程 selclass onchange addsellesson styl...

下拉框聯動

default.aspx.cs using system using system.data using system.configuration using system.collections using system.web using system.web.security using sy...