** Office365beta(プランP1) 環境 **
RefreshRecord/レコードの更新とRequery/再クエリマクロアクションの使いどころみたいな話
ブラウザ上のWebフォームが保持しているレコードセットは自動的に同期されることはないから必要に応じてRefreshRecordかRequeryしてやらないとならないということだろう。
RefreshRecordは、
form.Refreshメソッドとほぼ同じなのだろうけど。
|
詳細フォームcmdSaveコマンドボタン |
|
詳細フォームcmdExitコマンドボタン |
|
帳票フォームcmdEditコマンドボタン |
|
帳票フォームcmdNewRecordコマンドボタン |
この状態で、詳細フォームでレコード編集後、RefreshRecordでカレントレコードの更新が確認できる。
詳細フォームでレコードを追加した場合、Requeryでレコードセットを取得しなければ新たに登録したレコードは表示されない。当然カレントレコードは先頭に移動する。
であるが、他ユーザがレコードを削除していた場合について検討した。
cmdEditRecordコマンドボタン押下時、TempVarを使用して明示
詳細フォームonLoadでcmdNewRecordかcmdEditRecordのいずれかが押されたかを判断し、TemVars!F_CategoriesDialogModeが"Edit"であるのに、IDフィールドがNullであれば対象レコードが存在しない、削除されたレコードであるとした。対象レコードが存在していればIDフィールドはNullにならないが、変更済みレコードということもある。この場合については別途検討しよう。編集フィールドが少なければcmdEditRecord押下時、TempVarsコレクションに一旦格納して詳細フォームonLoadで突き合わせるのもお手軽でいいかな。
0 件のコメント:
コメントを投稿