初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2014-08-05 10:41:30

taka
Guest

過去のレコードとの重複チェックについて

いつもお世話になっています。
FMPro13 Win7使用です。

レコードは基本的に増えないいわゆる「マスタ」のような使用方法を考えています。

ID     分類   使用状況
1000    1     使用中
1001    2     使用中
1001    3     未使用
1002    1     使用可能

というフィールドとレコードを作成した時に1001 分類3(上から3番目のレコード)の使用状況フィールドを「未使用」から「使用不可」に自動で変わるようにしたいです。
要は「同じIDは分類が違っても1つしか使用しない」というルールを割り当てたいということです。

宜しくお願いします。

#2 2014-08-05 11:03:02

チポ
Member

Re: 過去のレコードとの重複チェックについて

同じIDで同じ分類はあるのですか?

Offline

#3 2014-08-05 11:36:59

taka
Guest

Re: 過去のレコードとの重複チェックについて

チポ様

同じIDで同じ分類のレコードはありません。
IDが同じでも必ず分類は違うようになっています。

#4 2014-08-05 13:16:37

チポ
Member

Re: 過去のレコードとの重複チェックについて

自己リレーション
  ID = ID
  and
  分解 ≠ 分解
として、

計算式
  Case ( PatternCount ( List ( 自己リレーション::使用状況) ; "使用中" ) ; "使用不可" ; 使用状況 )
でいいのですが、、


これをどのように使うかが問題ですね。
運用法が分からないのですが、
何らかのトリガを使ってフィールド設定でしょうか。。

Offline

#5 2014-08-05 13:42:43

taka
Guest

Re: 過去のレコードとの重複チェックについて

チポ様
回答ありがとうございます。

実際の使用方法として上記以外に「使用場所」フィールドを作成してあり、
「使用場所」フィールドが入力されている場合「使用中」
「使用場所」フィールドが空欄かつ同じ「ID」が使用されていない場合「使用可能」
「使用場所」フィールドが空欄かつ同じ「ID」が使用されている場合「使用不可」
となるようにしたいと思っております。

入力法としては「使用場所」フィールドを変更または空欄にするというものだけです。

宜しくお願いします。

#6 2014-08-05 13:54:54

チポ
Member

Re: 過去のレコードとの重複チェックについて

後だしはやめてね。

使用状況を計算フィールドとして、
  Case ( not IsEmpty ( 使用場所 ) ; "使用中" ;
            PatternCount ( List ( 自己リレーション::使用状況) ; "使用中" ) ; "使用不可" ;
            "使用可能" )
でいいでしょう。

しかし、
他で使用中の場合に使用場所に入力してしまうと変なことになります。
この場合、使用場所への入力が出来ないようにした方がいいでしょう。


んん、、おかしいか、、
これでは、使用履歴が残りませんよね。

履歴用の別テーブルを作った方法を考えた方がいいのでは。

Offline

#7 2014-08-05 14:12:24

taka
Guest

Re: 過去のレコードとの重複チェックについて

チポ様
回答ありがとうございます。後からの付け足し申し訳ありませんでした。

基本的に変更はしないテーブルです。なので変更履歴の優先順位は低いです。
レコードの数は固定、IDと分類も固定。こちらが入力するとしたら使用場所フィールドのみです。
使用場所フィールドへの入力で使用状況フィールドが自動で変更されるような仕組みにしたいと思っています。

別テーブルを作成する場合、どのようにすればいいのでしょうか?

#8 2014-08-05 14:37:53

taka
Guest

Re: 過去のレコードとの重複チェックについて

連投申し訳ありません。

チポ様に教えていただいた方法でやってみたのですが、
IDが同じで分類が違う2レコードの使用場所フィールドがどちらも空欄の場合に使用状況フィールドが「?」になってしまいます。

どうすればいいでしょうか?

#9 2014-08-05 18:00:46

チポ
Member

Re: 過去のレコードとの重複チェックについて

マスタテーブル
  ID
  分類
  使用状況( 計算 )

使用履歴テーブル
  ID
  分類
  使用場所
  使用中フラグ(現在使用中が分かるフィールド、
                      使用終了タイムテーブルなどがあればそれが使えますね。
                      ここでは、仮に、「使用」か「済」が入力されるとします)
  レコード番号(最後のレコードが分かるフィールド、
                      使用開始タイムテーブルなどが使えます)


リレーションを二つ
1.
  マスタ::ID = 使用履歴::ID
  and
  マスタ::分類 = 使用履歴::分類
        使用履歴::レコード番号の降順ソート

2.
  マスタ::ID = 使用履歴 2::ID
  and
  マスタ::分類 ≠ 使用履歴 2::分類


これで、
使用状況の計算式
  Case ( 使用履歴::使用中フラグ = "使用" ; "使用中" ;
            PatternCount ( List ( 使用履歴 2::使用中フラグ ) ; "使用" ) ; "使用不可" ;
             "使用可能" )
でいいでしょう。

Offline

#10 2014-08-06 09:16:38

taka
Guest

Re: 過去のレコードとの重複チェックについて

チポ様
回答ありがとうございます。

①使用履歴テーブルのレコードはマスタテーブル内の使用中のレコードをインポートすればいいのでしょうか?
②使用中フラグは「使用中」か「使用可能」かわかればいいのでしょうか?
③レコード番号フィールドでいう最後のレコードというのはレコードの数のことでしょうか。

宜しくお願いします。

#11 2014-08-06 09:41:54

チポ
Member

Re: 過去のレコードとの重複チェックについて

1.
インポートしたところで過去各1レコードのみですよね、
新規に使用するID&分類のレコードを作ってゆけばいいのでは。

2.
使用中フラグは
使用中か否か
の判定が出来ればいいです。

3.
各ID&分類ごとの最終レコードが分かればいいのです。
前レス1.のリレーションのソート設定に使います。

Offline

#12 2014-08-06 11:08:09

taka
Guest

Re: 過去のレコードとの重複チェックについて

チポ様
回答ありがとうございます。

やってみます。

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 11 queries executed - Memory usage: 527.08 KiB (Peak: 547.62 KiB) ]