在資料查詢系統中,我們常常會遇到精準查詢和模糊查詢。我們知道,對于關系資料庫,使用精準查詢可以直接在 sql 裡面使用“where 字段 = 參數值”來過濾對應的資料,而要實作模糊查詢,我們使用的就是 like 的形式。那麼,在報表裡面該如何使用 like 方式實作模糊查詢來過濾資料呢?
下面,我們結合潤乾報表自帶的 hsql 資料庫中的客戶表,來做一個模糊查詢的示例。
例如:在下拉框中通過模糊查詢顯示所有姓名裡面帶有“王”字的聯系人,當使用者選擇後進行精準查詢。并且結果清單在第一次展現全部資料。如下圖所示:
這是一種常見而且體驗不錯的報表需求,我們該如何實作呢?
操作非常簡單的哦,下面我們一起來動手操作一下吧 ~
第一步:連接配接資料源
先連接配接我們自帶的 demo 資料庫,别忘了先啟動示例資料庫哦 ~
第二步:建立資料集
1)Sql 文法為:SELECT * FROM 客戶 WHERE 客戶. 聯系人姓名 like ? or ? is null(因為我們想第一次查詢前在結果清單中展現全部資料,是以我們需要寫上 or ? is null ,也就是參數為空的時候查詢全部資料。)
2)設定資料集的參數。格式為 ”%”+ 參數名稱 +”%”。 (注意:我們對同一個字段“聯系人姓名”寫了兩個問号,是以需要寫兩個相同的參數。)
如下圖所示:
第三步:設計報表并在報表—參數增加跟資料集名稱相同的參數:
第四步:儲存報表,并将報表名稱設定為 test.rpx
第五步:建立參數模闆
1) 建立資料集,隻取出來客戶表中的聯系人姓名字段即可。
2) 為 B1 單元格設定單元格編輯風格和 web 變量名稱
第六步:儲存參數模闆,并設定報表名稱為 test_arg.rpx
(注意:參數模闆的名稱要跟主報表的名稱一緻,并且加上 _arg 。然後将參數模闆儲存在和主報表相同的目錄下面)
第七步:啟動 tomcat,釋出報表。
展現效果為:
試驗一下,我們在單元格輸入一個“王”字,可以看到,下拉框中會對應顯示所有姓名中包含“王”的聯系人。
直接點選查詢展現效果為:
或者是輸入“王”之後,選擇下拉清單裡面的任何一個聯系人,點選查詢即可過濾資料。
以上就是我們在報表中模糊查詢的使用方法,有沒有很簡單?有需求的小夥伴們趕緊試試看吧 ~~
噓 ~~ 最後告訴大家一個小秘密,由于資料庫驅動的問題,如果要查詢的聯系人姓名字段中有 null 資料,在第一次查詢全部資料時可能會查不到全部的資料,也就是為空的資料無法顯示。這時,我們需要将模糊查詢的資料集的參數改為如下格式:(第二個參數不用百分号拼接的方式去寫,其他不需要改動)。
作者:Spoiled
連結:
http://c.raqsoft.com.cn/article/1534058713036?r=IBelieve來源:乾學院
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。