一.概要
1.問題の概要
書き込みテンプレートにおいて、ユーザの書き込みデータとデータベースの関連データを比べ、検証をカスタマイズします。
例えば、ユーザからパスワードを変更する際、まず旧パスワードを入力します。もし旧パスワードはデータベースに保存されているパスワードに一致していれば、変更が可能です。そうでなければ、注意メッセージがポップアップされます。下図の通りです。
2.実現方法
ビルトイン検証を追加し、数式でデータベースのデータを取得し、セルの入力値と比べて検証します。
二.操作手順
1.テンプレート設計
下図の通りテーブルをデザインし、B2セルとB3セルにパスワードウィジェットを入れます。
2.帳票書き込み属性の設定
メニューバーでテンプレート-帳票書き込み属性をクリックし、ビルトインSQLを新規作成して書き込みます。データベースは FRDemoJP、テーブルは userinfo、フィールド自動追加でusername とuserpass、それぞれの値をパラメータ$fine_usernameとセルB3にします。username にチェックを入れて主キーに設定します。下図の通りです。
注:パラメータ$fine_usernameはパスワード変更のため、現在ログインユーザのユーザ名を取得することを指します。
3.データ検証設定
メニューバーでテンプレート-帳票書き込み属性をクリックし、データ検証でビルトイン検証を新規追加し、検証項目を一つ追加します。下図の通りです。
検証数式のところにB2==sql("FRDemo","select * from userinfo where username='"+$fine_username+"'",3)を入力します。
検証のエラーメッセージに旧パスワードが間違っているため、変更ができませんを入力します。
注:検証数式の意味はuserinfo テーブルにおいてユーザ名の対応するパスワードを絞り込むということです。
4.効果プレビュー
Anna のアカウントを使ってテンプレートをプレビューします。
userinfo テーブルにおいてAnnaのパスワードは123456です。
入力された旧パスワードは123456ではない場合、データ検証では次のヒントが表示されます:旧パスワードが間違っているため、変更ができません。
入力された旧パスワードは123456である場合、データ検証ではチェック成功と表示されます。続いて書き込みをクリックすれば新しいパスワードがデータベースに保存されます。下図の通りです。