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

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

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

You are not logged in.

Announcement

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


#1 2015-07-03 16:33:45

taka
Guest

レコード追加時にフィールドの値を自動で変更させたい

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

先ほど「自己リレーションの値について」というトピを立てさせていただいたのですが、内容が不適切だと思って再度立てさせていただきました。
「自己リレーションの値について」の内容とほぼ同じですがご了承ください。


作成しているのは医用テレメータの管理表です。

作成した内容は下記テーブルです。

配置状況マスタT
チャンネルF(数字)
ゾーンF(数字)
病棟F(テキスト)
使用状況F(テキスト) ← 計算式で行いたい

チャンネルはユニークな値ではありません。
チャンネル×ゾーンはユニークな値です。


行いたいことは


1001ch  ゾーン1  1病棟  使用中
1001ch  ゾーン2         使用不可
            ↓

1001ch  ゾーン1  1病棟  使用中
1001ch  ゾーン2         使用可能
1001ch  ゾーン1         使用可能

①1001ch ゾーン1 を 使用中 → 1001ch ゾーン2 は使用不可
②1001ch ゾーン1 の 使用削除(使用可能になる) → 1001ch ゾーン2 が自動で使用可能になる

1001ch ゾーン1 を使用しているときは 1001ch ゾーン2 は使用ができません。
①から②に変更をした場合 1001ch ゾーン1 は配置変更があるためその変更をレコード追加という形で残したいと考えています。
このとき、1001ch ゾーン2 は配置変更がなく 1001ch ゾーン1が変更されたことによって使用することができる状態になったので、レコードの追加はしません。
仮に 1001ch ゾーン1 と 1001ch ゾーン2 が共に使用可能な場合に 1001ch ゾーン2 を使用したとしたら 1001ch ゾーン2 のレコードを追加し 1001ch ゾーン1は使用状況の変更のみ行われるようにしたいのです。

宜しくお願いします。

#2 2015-07-06 12:23:00

tim
Guest

Re: レコード追加時にフィールドの値を自動で変更させたい

chの中で使用可能なゾーンは1つだけということですよね。ゾーンが使用可能かどうかは自動的に決まるので、
「1001ch ゾーン2 は配置変更がなく 1001ch ゾーン1が変更されたことによって使用することができる状態になったので、レコードの追加はしません」
であれば
「1001ch ゾーン2 は使用不可」のレコードを作ること自体が変なのでは?

#3 2015-07-06 15:13:33

taka
Guest

Re: レコード追加時にフィールドの値を自動で変更させたい

tim様
ありがとうございます。

tim wrote:

chの中で使用可能なゾーンは1つだけということですよね。ゾーンが使用可能かどうかは自動的に決まるので、
「1001ch ゾーン2 は配置変更がなく 1001ch ゾーン1が変更されたことによって使用することができる状態になったので、レコードの追加はしません」
であれば
「1001ch ゾーン2 は使用不可」のレコードを作ること自体が変なのでは?

チャンネル×ゾーンの組み合わせは決まっています。
その中で病棟に当てはめていくのです。

チャンネルF/ゾーンF/病棟F/使用状況F/配置日Fがあるとして

1001ch ゾーン1 配置なし 使用可能 7/1
1001ch ゾーン2 配置なし 使用可能 7/1

というレコードがあるとします。1001ch ゾーン1を使用した場合

1001ch ゾーン1 配置なし 使用可能 7/1
1001ch ゾーン2 配置なし 使用不可 7/1
1001ch ゾーン1 10病棟  使用中  7/5 

というようなレコードを作成します。

1001ch ゾーン1 の配置をなくしたい場合

1001ch ゾーン1 配置なし 使用可能 7/1
1001ch ゾーン2 配置なし 使用可能 7/1
1001ch ゾーン1 10病棟  使用中  7/5 
1001ch ゾーン1 配置なし 使用可能 7/6

というようにしたいのです。

このような場合はもう一つ履歴テーブルを作って1番目と3番目のレコードをそちらに格納したほうがいいのでしょうか?

宜しくお願い致します。

#4 2015-07-06 17:22:22

チポ
Member

Re: レコード追加時にフィールドの値を自動で変更させたい

チャンネル×ゾーンはユニークな値です

これはテーブルでユニークではなく、
機器として一つということですね。


ルールは、
あるチャンネル×ゾーンで使用中の場合、同チャンネル他ゾーンは使用不可になる。
でいいですか?

として、
同チャンネルでゾーンは二つのみでしょうか?



1001ch ゾーン1 配置なし 使用可能 7/1
1001ch ゾーン2 配置なし 使用可能 7/1

というレコードがあるとします。1001ch ゾーン1を使用した場合

1001ch ゾーン1 配置なし 使用可能 7/1
1001ch ゾーン2 配置なし 使用不可 7/1
1001ch ゾーン1 10病棟  使用中  7/5

これは
1001ch ゾーン2
このレコードを書き換えるんですよね。

ではなくて、
7/5に使用不可になったというレコードを作るべきなのでは。


このような場合はもう一つ履歴テーブルを作って
1番目と3番目のレコードをそちらに格納したほうがいいのでしょうか?

それはおやめになった方がいいと思いますよ。
混乱するだけでしょう。

Offline

#5 2015-07-06 17:37:03

taka
Guest

Re: レコード追加時にフィールドの値を自動で変更させたい

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

チポ wrote:

チャンネル×ゾーンはユニークな値です

これはテーブルでユニークではなく、
機器として一つということですね。

細かく言うと機器ではないのですが、その捉え方で問題ないです。

チポ wrote:

ルールは、
あるチャンネル×ゾーンで使用中の場合、同チャンネル他ゾーンは使用不可になる。
でいいですか?

として、
同チャンネルでゾーンは二つのみでしょうか?

ルールはおっしゃる通りで問題ないです。
同チャンネルのゾーンは最大3つあります。

チポ wrote:

1001ch ゾーン1 配置なし 使用可能 7/1
1001ch ゾーン2 配置なし 使用可能 7/1

というレコードがあるとします。1001ch ゾーン1を使用した場合

1001ch ゾーン1 配置なし 使用可能 7/1
1001ch ゾーン2 配置なし 使用不可 7/1
1001ch ゾーン1 10病棟  使用中  7/5 
これは
1001ch ゾーン2
このレコードを書き換えるんですよね。

ではなくて、
7/5に使用不可になったというレコードを作るべきなのでは。

出来るだけユーザー側で変更したものだけを作成したほうが履歴として見やすいと思ってそういった構造にしたいと考えました。
参考までにお聞きしたいのですが使用不可のレコードを作らないと構造的に無理なのでしょうか?

チポ wrote:

このような場合はもう一つ履歴テーブルを作って
1番目と3番目のレコードをそちらに格納したほうがいいのでしょうか?

それはおやめになった方がいいと思いますよ。
混乱するだけでしょう。

わかりました。

#6 2015-07-06 17:42:04

チポ
Member

Re: レコード追加時にフィールドの値を自動で変更させたい

出来るだけユーザー側で変更したものだけを作成したほうが履歴として見やすい

レコードの書き換えは履歴として残りませんよ。


というより、
見たいのは現在の状況なのでは。

ならば、
履歴とは別に、
チャンネル×ゾーンがユニークなテーブルを作って、
そこに履歴の最新のレコードを表示すればいいですよね。

Offline

#7 2015-07-06 17:57:25

kawa
Guest

Re: レコード追加時にフィールドの値を自動で変更させたい

File Maker から SQL SERVERに接続し、テーブルは見えたのですが、
ビューやインライン関数をダイレクトに見ることはできませんか?
よろしくお願いします。

#8 2015-07-06 19:20:43

kawa
Guest

Re: レコード追加時にフィールドの値を自動で変更させたい

ごめんなさい!
新規投稿したかったのですが、まちがってここに書いてしまったようで・・
はじめてなもので、申し訳ありません。

#9 2015-07-07 08:53:27

taka
Guest

Re: レコード追加時にフィールドの値を自動で変更させたい

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

チポ wrote:

出来るだけユーザー側で変更したものだけを作成したほうが履歴として見やすい

レコードの書き換えは履歴として残りませんよ。

直接ユーザーが変更したのが 1001ch ゾーン1 なのでそちらの記録は残して、結果として変更された1001ch ゾーン2の記録はいらないと考えておりました。

チポ wrote:

というより、
見たいのは現在の状況なのでは。

ならば、
履歴とは別に、
チャンネル×ゾーンがユニークなテーブルを作って、
そこに履歴の最新のレコードを表示すればいいですよね。

なるほど。
ポータルで表示するってことですか?
それともLookup等で行うということですか?

宜しくお願いします。

#10 2015-07-07 09:18:54

チポ
Member

Re: レコード追加時にフィールドの値を自動で変更させたい

履歴の作り方は、
あるチャンネル×ゾーンを変更したら、
そのチャンネルの他のゾーンのレコード新規作成、日付・状況入力

新規作成は、
チャンネル×ゾーンのマスタが有れば簡単ですね。

これを、最初の変更からスクリプトにすればいいですね。



チャンネル×ゾーンがユニークなテーブルを作って、
そこに履歴の最新のレコードを表示すればいいですよね

このテーブルと、履歴のテーブルとで
チャンネル×ゾーン
でリレーションし、日付の降順でソート指定。

これで、
参照フィールドの配置で最新履歴が表示されますね。

Offline

#11 2015-07-07 11:03:23

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, 9 queries executed - Memory usage: 549.98 KiB (Peak: 570.52 KiB) ]