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

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

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

You are not logged in.

Announcement

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


#1 2018-05-21 14:26:30

Koto
Member

動的値一覧によるポータル表示

いつも大変お世話になっております
表題の件、ご教授頂けると幸いです
FMP16

テーブルA
商品区分a(グローバル)
商品区分b(グローバル)

テーブルB
商品区分a(テキスト)
商品区分b(テキスト)

テーブルAとテーブルBをリレーションしテーブルAレイアウト(フォーム形式)にて動的値一覧で表示(チェックボックスで選択)
テーブルAレイアウトにテーブルBのポータルを表示


商品区分bで絞り込み、ポータルに表示するためにはどうすれば宜しいでしょうか?
※現在は商品区分aのみ表示されます
※出来れば商品区分bが未選択の場合、商品区分a該当商品全て表示し、商品区分bが選択されれば絞込まれ商品区分bのみ表示

どうぞ宜しくお願い致します

Offline

#2 2018-05-21 15:33:10

Shin
Member

Re: 動的値一覧によるポータル表示

抽象的な書き方で、よく理解できませんが。
区分a,b に重複がなければ、テーブルB側に、List ( 商品区分a ; 商品区分b ) を作り、それを値一覧にする、という方法もあるのでは。

Offline

#3 2018-05-21 16:13:48

Koto
Member

Re: 動的値一覧によるポータル表示

Shin wrote:

抽象的な書き方で、よく理解できませんが。
区分a,b に重複がなければ、テーブルB側に、List ( 商品区分a ; 商品区分b ) を作り、それを値一覧にする、という方法もあるのでは。

Shin様
いつもご親切にありがとうございます!!


抽象的で申し訳ございませんでした
テーブルAが検索用レイアウトで区分a(グローバル)・区分b(グローバル) ← 動的値一覧で絞り込んで表示させております
フォーム形式ボディ部分に区分aフィールド・区分bフィールド
ポータル(テーブルB)

例:区分a(野菜・果物) 区分b(じゃがいも・にんじん・玉ねぎ・いちご・すいか・メロン)
これをチェックボックスで選択
果物 ⇒ すいか

ポータルに
『すいか』
と、表示希望

現在は『果物』を選択した場合、ポータルに
『いちご』
『すいか』
『メロン』
と、区分aで選択した商品が全て表示されます

さらに、テーブルAで商品を選択しテーブルBに移動(関連レコードへ移動)もしたいのですが
取得元『テーブルA』、表示するレイアウト『テーブルB』と表示したいのですがステップの使用方法がわからず(リレーションが悪いのか)、レイアウトの指定ウインドウで『テーブルA』しか表示されません

併せてアドバイス頂けると幸いです
的外れな返答であれば申し訳ございませんがどうぞ宜しくお願い致します

Offline

#4 2018-05-21 17:48:13

Shin
Member

Re: 動的値一覧によるポータル表示

a を選択すれば、b にそれに該当する選択肢が表示されるのですよね。その時点で同じデータの列をポータルに表示させる、という事でしょうか。
さらに、b で選択すれば、その1個のレコードをポータルに表示させる、という事???
しかも、ポータルは同じところで、という事ですか。

かなり無理矢理つくると出来なくも無いかもしれませんが。
https://www.dropbox.com/s/1nwtpxr9l5lgo … 7.zip?dl=0

Offline

#5 2018-05-21 18:19:45

チポ
Member

Re: 動的値一覧によるポータル表示

ポータル表示用にリレーションは
区分aだけの照合にして、
ポータルフィールタで絞り込む様にするのでもよければ。

フィルタの条件式を
  IsEmpty (テーブルA::区分b) or PatternCount ( テーブルA::区分b ; テーブルB::区分b )
でいいでしょう。

Offline

#6 2018-05-22 08:49:29

Shin
Member

Re: 動的値一覧によるポータル表示

フィールドb を設定した状態で、フィールドa を変更した時の処理が、要ですよ。

Offline

#7 2018-05-22 10:26:02

Koto
Member

Re: 動的値一覧によるポータル表示

Shin様・チポ様
お返事ありがとうございます!

#3のレスについて致命的な間違いをしておりました....
誠に申し訳ございませんでした


例:区分a(野菜・果物) 区分b(じゃがいも・にんじん・玉ねぎ・いちご・すいか・メロン)
これをチェックボックスで選択
果物 ⇒ すいか

ポータルに
『すいか』
と、表示希望

例:区分a(野菜・果物) 区分b(じゃがいも・にんじん・玉ねぎ・いちご・すいか・メロン)
これをチェックボックスで選択
果物 ⇒ すいか

ポータルに
『熊本産すいか』『種無しすいか』『黄色すいか』
と、表示希望

貴重なお時間を頂き、またサンプルまで作成頂いたのに大変失礼致しました
この場合はどう対処すれば宜しいでしょうか?
どうぞ宜しくお願い致します

Offline

#8 2018-05-22 11:17:40

チポ
Member

Re: 動的値一覧によるポータル表示

> フィールドb を設定した状態で、フィールドa を変更した時の処理が、要ですよ
これをしたらaとbの関係が破綻します。

bに値があるときにaの変更を禁止すべきですね。


Kotoさん
区分bのテックボックスは複数を選択するのでしょうか?

チェックボックスですからおそらく複数の選択と思いますが、
一つなら、私の前レスのPatternCountの中のフィールドを前後逆にすればいいですが。。

複数だと一つずつ取り出して判定となりますかね、、

Offline

#9 2018-05-22 11:58:28

Shin
Member

Re: 動的値一覧によるポータル表示

> > フィールドb を設定した状態で、フィールドa を変更した時の処理が、要ですよ
> これをしたらaとbの関係が破綻します。
> bに値があるときにaの変更を禁止すべきですね。

実運用では起こりえる状況でしょう。
a が変更されたら、b を評価してもいいです。Filter かけるだけです。(サンプルファイルでは対処して有ります)

b で複数選ばれると、処理が結構めんどうになります。

階層が3段になるようですので、3層目の全レコードでマスターとしてもいいでしょうが、親子関係のテーブル構造にしてもいいですね。この方が、全体がシンプルになります。

Last edited by Shin (2018-05-22 12:17:38)

Offline

#10 2018-05-22 16:35:06

Koto
Member

Re: 動的値一覧によるポータル表示

チポ様・Shin様
お返事ありがとうございます

頂いたアドバイスを参考にやってみます!!

Offline

#11 2018-05-23 14:41:50

Koto
Member

Re: 動的値一覧によるポータル表示

チポ様

フィルタの条件式を
  IsEmpty (テーブルA::区分b) or PatternCount ( テーブルB::区分b ; テーブルA::区分b )

スクリプトにてウインドウ内容の再表示をOnObjectModifyにて、選択ひとつの場合は表示が出来ました(理解に1日かかりました....)
やはり懸念していらっしゃる通り、複数選択となりますので1つずつ取り出して判定はどうすれば宜しいでしょうか??


Shin様
頂いたサンプルを参考に自身のテーブルが2つあるので検索用テーブルAとデータ元テーブルBに分けて同じように計算フィールドを作成してみたのですが、
どこかでミスしているのか表示されませんでした
ただ、テーブルA(検索用)に計算フィールド『Case ( not IsEmpty ( 区分b ) ;区分b ; 区分a ) 』※サンプルの『g_AB』を設けました
この計算フィールドをポータルのフィルタに設定すれば複数選択でも対応出来ると思い、論理関数を試行錯誤いれてみたのですが上手くいきません
フィルタの計算式はどの様に記述すれば宜しいでしょうか?

また、Shin様のサンプルには『ウインドウ内容の再表示』をしなくても表示されるのはなぜでしょうか?


引き続き宜しくお願い致します

Offline

#12 2018-05-24 08:48:51

チポ
Member

Re: 動的値一覧によるポータル表示

ベタベタですが

  IsEmpty (テーブルA::区分b) or
  PatternCount ( テーブルB::区分b ; GetValue ( テーブルA::区分b ; 1 ) or
  Case ( ValueCount ( テーブルA::区分b ) >= 2 ; PatternCount ( テーブルB::区分b ; GetValue ( テーブルA::区分b ; 2 ) ) or
  Case ( ValueCount ( テーブルA::区分b ) >= 3 ; PatternCount ( テーブルB::区分b ; GetValue ( テーブルA::区分b ; 3 ) ) or
  ・・・( 値一覧の項目数まで続ける )

これでいいと思いますが。。


それと、、
> フィールドb を設定した状態で、フィールドa を変更した時の処理が、要ですよ
この問題は、
間違えてフィールドaを変更して、フィールドbの内容を全部消される
より
フィールドbに値がある場合は、フィールドaの変更が出来ない様にする方がユーザに優しいと思いますね。

Offline

#13 2018-05-24 11:02:58

Shin
Member

Re: 動的値一覧によるポータル表示

テーブルを分ける意味があるのでしょうか。
どうしても分けたいのでしたら、グローバルフィールドのみを別テーブルへ持っていけばいいです。

> > フィールドb を設定した状態で、フィールドa を変更した時の処理が、要ですよ
> フィールドbに値がある場合は、フィールドaの変更が出来ない様にする方がユーザに優しいと思いますね。
それは同意しますが、項目の選び方との兼ね合いがあると思います。
複数を選択できる、ということでチェックボックスを使っているのでしたらいいのですが、(それはそれで、別の処理がややこしくなりますが)
1個のみを選択させる、という運用でしたら、ラジオボタンの方が適しています。この場合、shift クリックという特殊動作を行わないとリセットできないです。リセット、という項目を入れるためには、動的値一覧の処理が面倒になります。
また、チェックボックスに見えていないチェックがあるかどうかもわかりません。
どっちがいいんでしょうね。

Last edited by Shin (2018-05-24 11:04:13)

Offline

#14 2018-05-24 11:27:42

チポ
Member

Re: 動的値一覧によるポータル表示

動的値一覧のためのテーブルが必要ですよね。
それがテーブルAなのでは?

区分aが複数選択することがあるのなら、
単に
> フィールドbに値がある場合は、フィールドaの変更が出来ない様にする
では、まずい場合もありますね。

Offline

#15 2018-05-24 11:31:14

Shin
Member

Re: 動的値一覧によるポータル表示

スレ主さんに細かい運用条件を描いてもらえないので、その辺りは何とも言えないのですね。
私の考え方は、あくまで複数選択はなし、という前提です。

Offline

#16 2018-05-24 13:50:59

Koto
Member

Re: 動的値一覧によるポータル表示

チポ様
ご教授頂きました計算式で出来ました!!(3つまでの選択で止めました)
本当にありがとうございました


Shin様
テーブルを分けているのは参照元となるテーブルBにオブジェクト2つやポータルなどレイアウトが飽和状態であまりフィールドを増やすと見づらくなるので検索用テーブルを作成しております


お二方が懸念して下さっている区分Aはカテゴリーが異なり複数選択する事が無い為、ラジオボタンとスクリプトの『消去』で対応しました
もともとのご相談はお力添えで解決しました
ありがとうございました!!!



Shin様
重ねてご質問をさせて頂きます
※お忙しいかと思いますので可能であればお返事頂ければ幸いです

追加で区分C(チェックボックス)を作成しようと試みております
前回ご質問しました『g_AB』計算フィールドの値よりポータルフィルタで表示絞込みするにはどう計算式を組めば宜しいでしょうか?
※計算フィールドの計算式は区分Cの追加で出来ております

どうぞ宜しくお願い致します

Offline

#17 2018-05-26 13:21:00

Shin
Member

Re: 動的値一覧によるポータル表示

項目数が増えても、同じテクニックでいくらでも対応できます。
とりあえず、3項目でサンプルを更新しています。
https://www.dropbox.com/s/1nwtpxr9l5lgo … 7.zip?dl=0

Offline

#18 2018-05-27 15:43:14

Koto
Member

Re: 動的値一覧によるポータル表示

shin様
お忙しい中、ご対応ありがとうござます!
早速、参考にさせて頂きます!
※fCフィールドの品種名もありがとうございます!!

毎回、本当にありがとうございます

Last edited by Koto (2018-05-27 15:43:31)

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.016 seconds, 7 queries executed - Memory usage: 565.91 KiB (Peak: 586.82 KiB) ]