9 返信 最新の回答 日時: Jun 16, 2010 7:15 AM ユーザー:マーサの主治医_1

    入力の制限について

    マーサの主治医_1

      タイトル

      入力の制限について

      フォーラムに投稿

      マーサの主治医です。 FM11AD VISTA で使っています。

       

      総合管理というデータベースに、飼主管理(飼主記録・携帯登録記録テーブル)、ペット管理(ペット記録・受付記録・予約記録テーブル)、カルテ管理(カルテ記録・診療詳細テーブル)のデータベースをリレーションで表示させています。

       

      ペット記録テーブルにカルテ記録のポータルを作り、ポータル内のカルテ記録のフィールドをクリックすることで該当するカルテ記録のテーブルに移動します。

       

      カルテ記録のテーブルにもポータルで診療詳細のデータが表示されています。

       

       

      アクセス権の設定で、診察日が今日でないカルテ記録・診療詳細の変更、削除は制限できるのですが、作成に関しては制限するか許可するかで条件での設定ができません。

       

      過去のカルテ記録を表示させているときにあやまって診療詳細を入力することを避けたいのですが、よい方法はないでしょうか?

       

       

       

       診療詳細ポータルのフィールドに診察日をチェックするスクリプトを設置しましたが、チェックができても今度は、診療詳細のテータ入力がしたいときにできない状態になりました。

       

      長文のわかりにくい説明で申し訳ありませんが、よろしくお願いいたします。

       

       

        • 1. Re: 入力の制限について
          マーサの主治医_1
            

          自己レスです。

           

          私の説明が悪いのか?、解決できないことなのか?何の反応がないというのは非常に寂しいです。

           

          いろいろ考え、解決しました。

           

          入力可能なテーブル1と不可能なテーブル2を作り、変更可能なカルテは1 変更させたくないものは2で表示させることにしました。

           

           

          もっとよい方法があれば教えてくださいね。

          • 2. Re: 入力の制限について
            peccom_1
              

            一番簡単そうなのは、レイアウトをコピーし、新たなレイアウトのポータル内のフィールドを入力不可にして、「編集」「閲覧」のボタンでレイアウト間を移動する。そしてポータル部分が変わったこと(入力可、不可)を示すために、背景の色を変えてラベルを付けておけば、作業者がどのレイアウトにいるのかも分かるし、間違いも起らないと思います。

             

            ほぼ同じレイアウトであれば、ポータル部分だけが変更されたような感覚を受けるのではないかと予想しますが。 

            • 3. Re: 入力の制限について
              マーサの主治医_1
                

              peccomさん、こんにちは。レスありがとうございました。

               

              テーブルじゃなくてレイアウトでした。

               

               

              • 4. Re: 入力の制限について
                user6776
                  

                関連レコードの作成にチェックが入ったポータルに対して、本日以外が入らないような制限をかけたい。

                ということでしょうか? 

                • 5. Re: 入力の制限について
                  マーサの主治医_1
                    

                  sago350さん、いつもありがとうございます。

                   

                  本日分は追加、訂正可能で、過去のものは閲覧のみ可能にしたいのです。

                   

                  よい方法がありますか?

                  • 6. Re: 入力の制限について
                    okabe
                      

                    力仕事でよければ

                     

                    1.ポータルの関連レコードの作成チェックを外し、代わりに 本日分のレコード作成 スクリプトを作成し、そこで作るようにする

                    2.ポータル内の各フィールドは入力不可とし、各フィールドごとに日付チェックのスクリプトを作成し、貼り付ける

                     

                    3.そのスクリプトはそれぞれ(FM11 ならばフィールド名を引数で渡すこともできる)

                     

                     変数を設定 $x Get(ポータル行番号)

                      ポータル内の行へ移動

                     if Get(日付) = Fieldの作成日付

                       フィールドへ移動 (スクリプトを貼り付けたフィールド)

                     end if

                     

                     

                    • 7. Re: 入力の制限について
                      user6776
                        

                      うーん。ちょっとデータベースの構造が見えなくてズバリな回答ができないのですが、1つアイデアを。

                      入力不可になっているレイアウトをもう一つ用意して、レイアウトのスクリプトトリガー(OnRecordLoad)で本日ならこっちのレイアウト、それ以外ならこっちのレイアウトを表示する・・・・としてやると、フィールド単位で制限できるかと。

                       

                      要は

                      ・制限がかかっていないレイアウト(今の)

                      ・制限がかかっているレイアウト

                      を用意して、レコードをめくる度に切り替える。 

                       

                      ※ただ、メンテナンスが大変になりますが・・・ 

                      • 8. Re: 入力の制限について
                        マーサの主治医_1
                          

                        okbtsoさん、こんばんは。

                         

                        なるほど、です。参考にさせていただきます。

                         

                        ほかの場面でも役立ちそうです。ありがとうございました。

                        • 9. Re: 入力の制限について
                          マーサの主治医_1
                            

                          sago350さん、こんばんは。

                           

                          スクリプトトリガーはこうやって使うのですね。私が思いついた方法とよく似ていますので、早速変更してみます。

                           

                          ありがとうございました。