みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になります。
またつまづいてしまったのでよろしくお願いします。
ポータル内のレコードのアクセス制限の方法を教えて下さい。
商品の入出庫テーブルの履歴をポータルで表示しています。
発注入力済みのデータが変更になることがちょこちょこあるため、ポータルから編集できたらと考えています。
発注した商品は「入庫」として扱っていて、他に「入庫日」「発注No」「発注日」「入庫数」の情報を管理しています。
今の状態だと関係ないレコードもうっかり上書きしてしまいそうで心配なため、編集ボタンを押した行だけを編集できるようにしたいです。
ネットで検索して、下記のページを参考に入力用レイアウトを作成して、レイアウトを切り替えるためのボタンをポータル内の行に作成しました。
『アクセス権を使わずに、フィールドへのアクセス制限を行う方法』
http://filemaker-jp.custhelp.com/app/an … AzbQ%3D%3D
現状だと、表示用レイアウトから編集ボタンを押すと任意の行が編集できるようになりますが、他のレコードもついでに編集可能になっています。
ここはできれば、編集ボタンを押したレコードだけが編集可能になって、他は編集できないようにしたいのですがその方法がわかりません。
スクリプトトリガも試してみましたがフィールド単位での動作のようで、1レコードの複数のフィールドを編集する場合はどのようにしたらよいでしょうか?
編集するフィールドは、「入庫日」、「発注日」、「入庫数」の3つです。
それと、編集が終了した後に表示用レイアウトに戻る方法もわかりません。
ご指導よろしくお願いします。
Windows7、FMP13
Offline
アクセス権を使ったコントロールの方が楽でしょうね。
過去の入出庫レコードは、アクセス権で編集不許可にしておきましょう。さらに、そのテーブルに編集フラグ用のフィールドを作り、そのフラグが有効な時には編集が可能にしておきます。
ただ、単にフラグを立てただけですと、他のユーザーがそのレコードを見ていると編集が可能になってしまいます。そのカバーも必要でしょうか。
Offline
>編集が終了した後に表示用レイアウトに戻る方法もわかりません。
ポータル内のフィールドを直接訂正するのではなく、関連テーブル側の
関連レコードに移動して、そこで訂正するということですか。
それと、各フィールドに同じスクリプトを設定したトリガを付けて、その
フィールドをクリックしたら「訂正しますか」というカスタムダイアログ
を表示させるという手も使えるかも?
(今、特にアクセス制限していないのでしたら)
Offline
Shin様 旅人様
ありがとうございます。
アクセス権を使ったコントロールの方が楽でしょうね。
過去の入出庫レコードは、アクセス権で編集不許可にしておきましょう。
さらに、そのテーブルに編集フラグ用のフィールドを作り、そのフラグが有効な時には編集が可能にしておきます。
やってみました!
なんとかできました!
フラグで振り分けるんですね。ありがとうございます!
今は、入力したり編集したりするユーザーは私ともう一人しかいないので、アカウントは2つだけです。
私がフルアクセスで、もう一人がアクセス制限を設定したアカウントにしました。
ゆくゆくは入力するユーザーアカウントも増やすかも知れませんので、よろしければ他のユーザーでも編集できてしまう点のカバーについてもご指導をお願いいたします。
ポータル内のフィールドを直接訂正するのではなく、関連テーブル側の
関連レコードに移動して、そこで訂正するということですか。
表示用レイアウトと全く同じで、レイアウトの設定インスペクタでブラウズモードにチェックを入れたレイアウトを編集用レイアウトとしています。
訂正入力はその編集用のレイアウトのポータル内でやっています。
入力が終わった後、編集フラグを編集不可に変更して、表示用レイアウトに戻る良い方法がわかりません。
ポータル内に編集完了ボタンを置いてみましたが、なんの入力もない最終行にまでボタンが表示されてしまいます。
編集フラグが立っていないものにはボタンを非表示にできましたが、ポータルの最終行にはボタンを表示させない方法を教えて下さい。
引き続きご指導よろしくお願いいたします。
Offline
そのフラグに、アカウント情報を含めれば良いですよ。アクセス権セットのレコードへの編集許可条件も、それに合わせます。
もう一つだけ、完全アクセス権を持っていないユーザーは、このフラグを触る事が出来ませんので,そのフラグを触るスクリプトを、完全アクセス権で実行 にしておきます。
最後に、もし、フラグを立てたままで何らかの都合で終了してしまった場合に合わせて、何らかの対策を作っておく必要があるでしょう。
ポータル内の新規行へのボタン表示のコントロールは、オブジェクトを非表示に、not IsValid() 関数で作った条件式を設定すればいいはず。
Last edited by Shin (2014-09-29 08:42:50)
Offline
Shin様
ありがとうございます。
お礼が遅くなってすみませんでした。
そのフラグに、アカウント情報を含めれば良いですよ。
なるほどーーー!
勉強になりますm(_ _)m
ポータル内の新規行へのボタン表示のコントロールは、オブジェクトを非表示に、not IsValid() 関数で作った条件式を設定すればいいはず。
13にはそんな機能があったんですね
会社で購入したのが12で、すぐ後に13が発売され、私個人で購入したのが13なんです。
試してみたら、12では反映されなかったので、疑似ボタンのようなものを置いてそれに条件付き書式でやってみました。
not IsValid() 関数を思いつく頭がなかったので、こちらを使って思うような結果を得られました。
お世話になりまして、本当にありがとうございました!
Offline
Pages: 1
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 517.73 KiB (Peak: 522.63 KiB) ]