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

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

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

You are not logged in.

Announcement

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


#1 2024-01-02 23:42:13

parabo_hiro
Member

フィールド名で値一覧を変化させる

mac/FMP19です。

「分類」フィールドを持つ『取引先』テーブルがあり、『開発書類』の「分類」とリレーションされています。
『開発書類』作成の際、「工場」フィールドには『取引先』の工場(分類)から、「素材」フィールドには『取引先』の素材(分類)から選べるように値一覧を設定したいです。
いわゆる動的値一覧的なアクションですが、フィールドの値ではなくフィールド名(「工場」「素材」など)でフィルタリング(?)する方法がわかりません。

『開発書類』の「工場」を選ぶ際のスクリプトトリガーで『開発書類』「分類」に「工場」を書き込んで、、という方法を考えましたが、うまく動きませんでした。
(と言うレベルの思いつきしかできないレベルの初心者です)
とても単純にリレーションで解決できそうにも思うのですが、ご教示いただけたら幸いです。

Offline

#2 2024-01-03 10:33:08

himadanee
Guest

Re: フィールド名で値一覧を変化させる

工場と素材で値一覧を2つ定義するのだから、フィールド名は値一覧の設定でそれぞれ指定するだけなので、フィールド名をどうこうする必要はないですね。

ただ、工場はともかく素材は1つの取引先で複数ありませんか?取引先の取り扱い素材、というテーブルがもう1つ必要かも?

#3 2024-01-03 18:00:15

parabo_hiro
Member

Re: フィールド名で値一覧を変化させる

himadanee様、
いつもありがとうございます。
説明不足で申し訳ありません。

工場も素材(のメーカー)も複数あります。(それぞれ10〜20社くらい)またそれ以外の「分類」(制作会社や部品会社など)の取引先も存在します。(5〜6分類)
2社しかない分類のあります。増えすぎる様ならさらに分類を分けることも考えています。(「〇〇の工場」「××の工場」など)
今回説明のため『開発書類』という書き方をしましたが、他の書類(的なもの)には同じ『取引先』から他の分類での値一覧で選択をすることを考えています。

工場、素材(のメーカー)など分けてテーブルにすれば簡単なのですが、入力する人間がとても不慣れなので『取引先』を入力する際に入口を一つにして、それがどんな相手なのか(「分類」)を選ばせた方が混乱しづらいかなと考え今回のような構成を検討しています。(『取引先』の絶対数もそれほど多くはないので)
それよりも『取引先』の入力画面を工夫して、「分類」ごとにテーブルを分けた方が良いのでしょうか。。

Offline

#4 2024-01-03 18:28:48

Shin
Member

Re: フィールド名で値一覧を変化させる

取引先の中の分類に、素材 という分類と、工場 という分類のものがあるのでしょうか。

単一のテーブルから参照されるのでしたら、そのテーブルにグローバルフィールドで、素材 と 工場 という値を持たせたフィールドをそれぞれ作り、そのそれぞれから別々に取引先テーブルの分類へリレーションをはります。それを値一覧にします。
複数のテーブルから参照するには、そのそれぞれにグローバルフィールドが必要になるので、面倒でしょう。取引先テーブル側に、Case ( 分類 = "素材" ; 取引先 ) という計算フィールド「素材」、Case ( 分類 = "工場" ; 取引先 ) という計算フィールド「工場」を作り、そのフィールドで値一覧を作った方が簡単だと思います。

Offline

#5 2024-01-04 11:01:11

himadanee
Guest

Re: フィールド名で値一覧を変化させる

取引先テーブルに工場とか素材のフィールドがあるのかと読み違えてました。

分類が今後増減するんだとすると、それを計算式に使うのは今一かなあ?ちょっと考えなおします。

#6 2024-01-04 12:17:48

Shin
Member

Re: フィールド名で値一覧を変化させる

グローバルフィールドを1個それぞれのテーブルに作ってもいいのでしたら、そのフィールドと分類フィールドをリレーションしておき、そのリレーションで動的な値一覧を設定しておきます。
目的の分類フィールドに、OnObjectEnterトリガーを設定し、
フィールド設定[グローバル ; “工場“]
レコード確定
フィール移動[取引先]
というスクリプトを走らせればいいです。ただし、フィールド移動で再度トリガーされ無限ループになるので、それを抑制する処理が必要です。
複数のフィールドに対応させるには、スクリプト引数を渡して対象のフィールドを変更させればいいでしょう。

https://www.dropbox.com/scl/fi/hcj2h42g … 8l9hx&dl=0

Last edited by Shin (2024-01-05 08:50:09)

Offline

#7 2024-01-06 18:02:06

parabo_hiro
Member

Re: フィールド名で値一覧を変化させる

shin様、
いつもありがとうございます。
計算フィールドで値一覧をつくる、という方法は全く思いつきませんでしたが、こちらで考えていた動作が実現できました。
スクリプトトリガーを使うサンプルもありがとうございます。
そこまで複雑な構成にはならず前者のシンプルな解決方法で問題ないと思われますので、こちらを採用して進めていきたいと思います。

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

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 7 queries executed - Memory usage: 518.31 KiB (Peak: 523.22 KiB) ]