多值模糊查詢報表的製作

2021-09-20 09:02:03 字數 1757 閱讀 7987

但是使用者的需求往往是無止境的!最典型就是把這兩種好使的方法結合起來,也就是兩種查詢的結合–在引數框中輸入多個關鍵字,根據多個關鍵字進行模糊查詢。比如,使用者要根據產品名稱進行多值模糊查詢,當輸入為「乳酪,糖」時,希望找出產品名稱中含有乳酪或糖的產品列表,如下圖所示:

為了程式猿哥哥可以早日跟加班say goodbye , 不再做單身汪(咦?為什麼我這麼熱心?),讓我們一起了解一下潤幹報表是怎麼做到兩種查詢的完美結合的……

一共需要……1、2、3、4步:

1.定義主表模板:

其中1-3行設定行屬性為報表頭,其餘行為資料區即可。

b3單元格表示式為:=macro1,目的是顯示查詢條件的拼接結果,以便校驗最終資料是否正確。

a5單元格表示式為:=ds1.select(產品id),目的是取數ds1結果集中所有的產品。

b5-f5 單元格表示式為:=ds1.欄位名稱,目的是根據前面的產品編號取出對應的產品資訊

2.定義引數:

其中cpmc是普通引數,就是使用者填入的查詢值;

macro1是動態引數,根據cpmc拼接查詢條件,值表示式為:if(cpmc == null or cpmc==」」,」1=1″,」產品名稱 like 『%」+replace(@cpmc,」,」,」%』 or 產品名稱 like 『%」)+」%'」)。這裡的動態引數,它不僅是用於在報表結果頁面裡面顯示查詢條件的拼接結果,而且也用於對sql進行資料篩選。

再詳細說明一下:當cpmc為空時,返回1=1,表示查詢全部資料,否則先用字串替換函式replace()把引數中的」,」替換為」%』 or 產品名稱 like 『%」)+」%'」(注意其中的空格),替換後的結果再和前後字串拼接得到最終的查詢條件。例如當使用者輸入「乳酪,糖」,那麼replace的替換結果就是「乳酪%』 or 產品名稱 like 『%糖%』,再和前後字串拼接得到最終結果為 產品名稱like 『%乳酪%』 or產品名稱 like 『%糖%』。

3.定義資料集:

這裡在查詢條件中用到了引數的特殊用法$,相當於乙個佔位的效果,查詢時會用前面定義的動態引數內容填充到這個位置。

注:第2 – 3步的設定均在主表模板中新增。

4.定義引數模板:

在報表工具設計區域右側的屬性欄中將b2的單元格web變數名設定為cpmc。

bingo,多值模糊查詢就這樣完美地實現了!

回顧我們來回顧一下其中遇到的問題和解決的技巧:

1、資料集sql實現動態取數:

使用引數的$用法

2、 查詢條件為空,查詢全部:

使用引數1=1的用法

3、多值匹配:

以「,」分割多個查詢關鍵字,拼接成多個 or 相連的like條件。

最後我們發現,其實這裡僅僅用了潤幹報表的引數特殊用法和sql 查詢條件的拼接,是不是一不小心,又雙叒叕get了新技能?這樣下去,用不了多久是不是就可以拒絕加班,拒絕做單身汪了,竊喜吧。

多值模糊查詢報表的製作

但是使用者的需求往往是無止境的!最典型就是把這兩種好使的方法結合起來,也就是兩種查詢的結合 在引數框中輸入多個關鍵字,根據多個關鍵字進行模糊查詢。比如,使用者要根據產品名稱進行多值模糊查詢,當輸入為 乳酪,糖 時,希望找出產品名稱中含有乳酪或糖的產品列表,如下圖所示 為了程式猿哥哥可以早日跟加班 s...

多值模糊查詢報表的製作

但是使用者的需求往往是無止境的!最典型就是把這兩種好使的方法結合起來,也就是兩種查詢的結合 在引數框中輸入多個關鍵字,根據多個關鍵字進行模糊查詢。比如,使用者要根據產品名稱進行多值模糊查詢,當輸入為 乳酪,糖 時,希望找出產品名稱中含有乳酪或糖的產品列表,如下圖所示 為了程式猿哥哥可以早日跟加班 s...

多值模糊查詢報表的製作

但是使用者的需求往往是無止境的!最典型就是把這兩種好使的方法結合起來,也就是兩種查詢的結合 在引數框中輸入多個關鍵字,根據多個關鍵字進行模糊查詢。比如,使用者要根據產品名稱進行多值模糊查詢,當輸入為 乳酪,糖 時,希望找出產品名稱中含有乳酪或糖的產品列表,如下圖所示 為了程式猿哥哥可以早日跟加班 s...