1. 概述
1.1 問題描述
在填報範本中,希望將使用者填入的資料和資料庫中相關的資料進行對比,做一些自訂的校驗。
例如:使用者修改密碼時,先輸入舊密碼。如果舊密碼和資料庫中儲存的密碼一致,則允許修改,否則彈出提示。如下圖所示:
1.2 實現思路
新增內建校驗,使用公式獲取資料庫資料,和儲存格輸入值對比進行校驗。
2. 操作步驟
2.1 範本設計
如下圖設計表樣,B2 和 B3 儲存格新增密碼元件。
2.2 報表填報屬性設定
菜單欄點選範本>報表填報屬性,新增內建SQL提交,資料庫為 FRDemo,表為 userinfo,智慧新增欄位 username 和 userpass,值分別為參數$fine_username和 B3 儲存格,勾選 username 為主鍵,如下圖所示:
注:參數$fine_username代表獲取當前登入使用者的帳號,用於修改密碼。其具體應用可參考文檔 權限細粒度參數控制
2.3 資料校驗設定
菜單欄點選範本>報表填報屬性,資料校驗新增內建校驗,新增一個校驗項。如下圖所示:
在校驗公式內輸入:B2==sql("FRDemo","select * from userinfo where username='"+$fine_username+"'",3)
在校驗出錯資訊中輸入:"輸入原始密碼與資料庫中的原始密碼不同,不能修改!"
注:校驗公式的含義是在 userinfo 表中查詢帳號對應的密碼,詳細公式解譯參見文檔 SQL函式
2.4 效果預覽
使用 Anna 的帳號預覽範本。
Anna 在 userinfo 表中的密碼為 123456。
當輸入舊密碼不是 123456 時,資料校驗提示:輸入原始密碼與資料庫中的原始密碼不同,不能修改!
當輸入舊密碼是 123456 時,資料校驗提示:校驗成功,後續點選提交即可將新密碼提交入庫。如下圖所示:
3. 範本下載
點選下載範本:密碼校驗.cpt