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

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

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

You are not logged in.

Announcement

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


#1 2022-01-06 18:30:27

ゆうゆう
Member

日付ごとに新規ページを作りたい

また質問させて下さい。

ポータルを日付毎に表示させたいと思っております。

マスタには日付、商品名、金額等があり、日付をリレーションして別レイアウトのポータルで商品名、金額のみ表示させています。
この時に1日に表示させる種類が多いので、日付が変わる毎に新規ページでポータルに表示させようと思っております。

スクリプトをボタンに組み込んで手動でやるのは出来るのですが、マスタの日付に異なる日付を入力したときのみ新規ページが作成出来るような事は可能でしょうか?
もし可能でしたら教えていただければと思います。

よろしくお願い致します。

Filemaker pro19 Mac OS

Offline

#2 2022-01-06 21:02:47

himadanee
Guest

Re: 日付ごとに新規ページを作りたい

日付が同じデータをポータルの中に表示しているのに、「日付が変わるごと」という意味がわかりません。
ページというのは印刷時にしか存在しないので、何か勘違いしているような気がします。

#3 2022-01-06 22:29:07

ゆうゆう
Member

Re: 日付ごとに新規ページを作りたい

分かりにくかったようで申し訳ありません。
ページではなくレコードの間違いでした。

今日付を参照フィールドにしています。
仮ですが、レコード1には1月6日の商品名と金額をポータルで表示させていて、レコード2には1月8日の商品名と金額をポータルで表示させたい感じです。

Offline

#4 2022-01-07 08:47:57

Shin
Member

Re: 日付ごとに新規ページを作りたい

日付のグローバルフィールドを作って自己リレーションし、そのグローバル日付を増減させれば簡単ですし、日付だけ持つ、というあまり意味のないテーブルを作る必要も無くなりますよ。

Offline

#5 2022-01-07 09:00:15

チポ
Member

Re: 日付ごとに新規ページを作りたい

ご希望の方法を、

マスタから見て、日付のテーブルに関連レコードがなければその日付のレコードを作る。
これをスクリプトにして、
マスタの日付フィールドにスクリプトトリガ OnObjectExit あたりで動かせばいいでしょう。

リレーションの設定で日付テーブルの新規レコード作成に許可を与えておけば、
フィールド設定で
日付テーブル::日付フィールドに、マスタ:日付を入力するだけで新規レコードが作成されます。


ポータルで表示の目的が分かりませんが、
日付ごとに分けて表示するだけなら、
マスタで日付をキーとする集計レイアウトでもいいかも。。

Offline

#6 2022-01-07 11:52:09

ゆうゆう
Member

Re: 日付ごとに新規ページを作りたい

皆様ありがとうございます。
チポ様の方法でやってみたいと思うのですが、スクリプトで関連レコードがなければその日付のレコードを作るのはどのようにしたらよいでしょうか?

Offline

#7 2022-01-07 13:11:12

チポ
Member

Re: 日付ごとに新規ページを作りたい

関連レコードの有無は
  IsEmpty    https://help.claris.com/ja/pro-help/con … empty.html
  IsValid
  Count
などで判定できます。
リンク先の近辺を調べてみてください。

スクリプトステップ、分かりませんか?

Offline

#8 2022-01-07 22:44:45

ゆうゆう
Member

Re: 日付ごとに新規ページを作りたい

チポ様

ありがとうござます。
自分で調べてやってみたいと思います。
また分からない所がありましたら質問させていただきますのでよろしくお願い致します。

Offline

#9 2022-01-07 23:01:10

ブランコ
Member

Re: 日付ごとに新規ページを作りたい

リレーションシップグラフのアーム?をダブルクリックをクリックするとリレーションの照合画面が開きますよね。そのとき、画面下に「このリレーションを利用して、このテーブルでのレコード作成を許可」みたいなオプションがあると思います。
これを有効にしていれば、照合先に対象レコードが無い状態で照合先のフィールドに何かデータを入力しようとすると自動で照合条件に合ったレコードを作成してくれるようになります。
私がよく行う手法は、トリガ用のフィールドを作り、新規レコード作成(リレーション利用)が必要になったタイミングで適当な値(ex:1)を入力するようにしています。
なので、マスタの日付フィールドのスクリプトトリガ(OnObjectExitなど)に日付テーブル?のトリガフィールドに1などを入力するスクリプトを仕込んでおけば、対象レコードの有無の検証を行う工程は省くことが出来ます。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 518.02 KiB (Peak: 522.93 KiB) ]