1. 程式人生 > >報表工具怎麽做模糊查詢

報表工具怎麽做模糊查詢

ext 工具 adb image 變量 ges 連接數 連接 展現

在數據查詢系統中,我們常常會遇到精準查詢和模糊查詢。我們知道,對於關系數據庫,使用精準查詢可以直接在 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 數據,在第一次查詢全部數據時可能會查不到全部的數據,也就是為空的數據無法顯示。這時,我們需要將模糊查詢的數據集的參數改為如下格式:(第二個參數不用百分號拼接的方式去寫,其他不需要改動)。

技術分享圖片

報表工具怎麽做模糊查詢