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

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

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

You are not logged in.

Announcement

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


#1 2013-12-04 10:44:31

apo
Member

直前に参照したレコード値を関数で

またお願いします。
入力補助に直前に参照したレコード値を入れてくれる設定があると思いますが、
それを計算式に関数でいれたいのですが、思った様なのがないのですが、
難しいでしょうか?

Offline

#2 2013-12-04 11:21:53

dup
Guest

Re: 直前に参照したレコード値を関数で

そういう関数はないと思いますけど、入力値自動化の計算式ですか?

#3 2013-12-04 11:58:46

旅人
Member

Re: 直前に参照したレコード値を関数で

「条件次第?」ではGetNthRecordとかが使えるのでは。

         ↑
勘違いしました。m(_ _)m

Last edited by 旅人 (2013-12-04 12:02:58)

Offline

#4 2013-12-04 14:17:00

狐猫
Guest

Re: 直前に参照したレコード値を関数で

対象レコードからだけ参照するならGetNthRecordも使えるかも。

グローバルフィールドからレコードIDのフィールドにリレーションしておいて、
onRecordCommitとかRevertとかのトリガでレコードIDをそのフィールドに入れる?

#5 2013-12-05 01:31:39

apo
Member

Re: 直前に参照したレコード値を関数で

ありがとうございます。
onRecordCommitイベントが起こる前には前のIDが入りますが、レコードが確定したら
そのグローバルフィールドに現在のレコードIDが入ってしまうのではないでしょうか?

Offline

#6 2013-12-05 09:03:58

狐猫
Guest

Re: 直前に参照したレコード値を関数で

どういう動作を希望するのかによって何を使うか考えてください。

レコードを移動するまでは、最後に変更した(現在の)レコードから参照しないみたいですね。

#7 2013-12-05 11:33:49

apo
Member

Re: 直前に参照したレコード値を関数で

ありがとうございます。
新規レコードを更新でなく作った時だけ起こるイベントの様な物があれば、その時点で上のフィールドの値を捕まえる事が出来るのですが、
ないですよね?
レコード新規作成時、グローバルフィールドから自己リレーション経由のルックアップで値を逃がす事も試しましたが、
レコードを移動させる前にあるタイミングで自動で再ルックアップされてしまう様で、それもダメでした。。。

関係ないですが、レコード新規、更新、削除時別にイベント出してくれたら気軽で良いですね。13では出るんですかね。。。
データの整合性を任せるスクリプトを一レイアウトのトリガーに載せるのも不安なんですよね。

Last edited by apo (2013-12-05 11:37:35)

Offline

#8 2013-12-05 12:57:11

狐猫
Guest

Re: 直前に参照したレコード値を関数で

>上のフィールド
時間的な「直前」でなく位置が「上」なら、GetNthRecordの出番ですが

レコード作成時だけ計算させるには、Evaluate("計算式")のようにして、フィールド名がない状態にする。
Let (
N=Get ( レコード番号 );
Case ( N > 1 ; Evaluate ( "GetNthRecord(フィールド名;" & N - 1 & ")" ) )
)
「全フィールドが空欄の時も計算する」

13で増えたトリガはiOS関係のだけで、データベース関係のは無いです。
おっしゃる通り、画面じゃなくテーブルに必要ですよね...特に削除がないのが不便。

#9 2013-12-06 17:48:18

apo
Member

Re: 直前に参照したレコード値を関数で

ありがとうございます。
おっしゃって頂いたことにより、自分の用事はGetNthRecord ( 欲しいレコードのフィールド ; Get(レコード番号)-1 )
で取れるという事に今気づきました。。。
EvaluateやLetは分からないので放置していました。時間的な直前が欲しい場合解法がそこにある訳ですね。
勉強します。

そうですかテーブルスクリプトステップはまだないですか。自分みたいなバカでもそれさえあれば旨くいく事が
たくさんあるんだけどな、、。

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

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 517.3 KiB (Peak: 521.84 KiB) ]