みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
キャプションテーブルに材料選択フィールドとして、値一覧でチェックボックスの項目を作り、チェックが入ったものだけを、製品情報フィールドにまとめて表示したいと考えています。
材料群テーブルに、材料名情報のレコードを記録しています。
1. 材料名が増えてきて、チェックボックス表示スペースに収まりきらなくなりそうなため、材料群をA,B,C,Dに分けたいと考えています。
材料名テーブルは一つのまま、群ごとに値一覧に登録できたらいいと思っています。
2. 材料名を日本語表記と英語表記で用意して、それぞれで表示したいと考えています。
最初に、材料群テーブルを作り、材料名フィールドに個別の材料を登録して、それをキャプションテーブルの値一覧に登録しました。
( 値一覧 材料g0 ) 材料群::材料名
キャプション::tmp0として、Substitute ( キャプション::製品情報 ; "¶" ; "、" )
FileMakerの仕様なのか、チェックボックスは、表示順ではなく、チェックを入れた順番で、表示されるようなので、番号を振って並び順を固定したいと考えていました。
そこで、材料群テーブルに通し番号の通番フィールド、通番&"_"&材料名の結合フィールドとして、順材料名フィールドを作り値一覧に登録しました。通番10以下は01等とする。
( 値一覧 材料g1 ) 材料群::順材料名
キャプション::tmp1として、Substitute ( SortValues ( キャプション::製品情報 ) ; ¶ ; "、" )
通番を消したいので、キャプション::tmp1の結果から、通番を消すための式を書きました。
キャプション::tmp3として、Filter ( tmp1 ; tmp0 )
1. ここから、材料群で分けるために、通番を材料群Aは1,000番台、Bは2,000、Cは3,000、Dは4,000とし、数字で絞り込みできないかと考えたのですが、その先がどうやればいいかが考えつきません。
・excelのように1000番等で絞り込んだ表として値一覧で、場合分けして登録できないか?
・1000番台、2000番台の値をどうやってわければいいのだろう?
・他の良い方法があるか?
2. 日本語表記と英語表記をそれぞれで表示するのに、材料群テーブルに英語表記フィールドを作り、
材料群::材料名英
さらに、通番と日本語表記と英語表記の結合フィールドを作りました。
通番&"_"&日本語表記&"_"&英語表記の結合フィールド、日英材料名を作り値一覧に登録しました。通番10以下は01等とする。
( 値一覧 材料je ) 材料群::日英材料名
分けて表示するときは、アンダーバーで分ければいいと考えています。
しかし、1. で詰まってしまって進めません。
Offline
>キャプションテーブルの値一覧に登録しました
とありますが、値一覧を登録(設定)できるのは、ファイルかレイアウト上のフィールドです。
>チェックボックスは、表示順ではなく、チェックを入れた順番で、表示される
FilterValues ( 値一覧 ; フィールド )
で計算値自動入力(既存値置き換え)にしておけば表示順になります。
値一覧のリストは ValueListItems関数で取得できます。
>材料群で分ける
関連レコードのみの値一覧を作ることになるでしょう。
「群」が固定なら、群ごとの計算フィールドを作って全レコードの値一覧でもできます。この方が説明は簡単
1000番台の計算式
Case ( Left ( 通番 ; 1 ) = "1" ; 材料名 )
これを値一覧にすれば、他の群のレコードは計算結果が空欄になり無視される。
材料は、1フィールドにチェックボックスで多数入力するのではなく、1材料ごとに関連レコードを追加する形で入力することをオススメします。その方が、ソートも自由です。
それを踏まえて、こんな動きが欲しいのでは。
https://www.dropbox.com/s/85u7rvisu828h … 2.zip?dl=0
または、別のスレッド のサンプルですが、
https://www.dropbox.com/s/9oconqsif8o46 … 2.zip?dl=0
という動きがいいのかも。カテゴリーごとに絞り込んだ商品一覧を表示し、その中のチェックボックスのクリックで、商品を明細レコードに追加していく動きです。
構造そのものはシンプルなんですが、ちょっと特殊なリレーションの使い方と値一覧の設定をしているので、理解するにはちょっと経験が必要かも。
Last edited by Shin (2022-04-04 16:18:34)
Offline
himadaneeさん、ご教示くださりありがとうございます。
>チェックボックスは、表示順ではなく、チェックを入れた順番で、表示される
は、理解できて希望する結果が得られました。
>材料群で分ける
ずっとやっていたのですが、分からないので再び教えてください
計算フィールドをどこに作ればいいのかわかりません。
関連レコードをリレーションをどうつないでいいかわかりません。
やったことは
材料群テーブルに対して関連レコードだから、
材料群テーブルとは別にテーブルを作って、それを結ぶのだと考えました。
群グループテーブルの中に、計算フィールド、群1000を作り
Case ( Left ( 材料群::通番 ; 1 ) = "1" ; 材料群::材料名 )
材料群::通番 = 群グループ::群1000 でつないで、
材料群::通番に包含される群グループ::群1000だけを表示させる
としたかったのですが、上手くいかず。
材料群テーブルに計算フィールド、群1000を作り、
Case ( Left ( 通番 ; 1 ) = "1" ; 材料名 ) と指定しました。
その結果、1000番台のフィールドだけ材料名が表示され、他は空欄。
同様に、2000番台、3000、4000とフィールドを増やし、それぞれの番台が
表示されるようにしました。
そのフィールド値を値一覧の管理に設定しました。
別な方法で、希望する表示結果が得られたのですが、
ご教示いただいた方法を理解できず、どう考えるといいのかを知りたいです。
Shinさんよりご教示いただいた分は、まだ見れてないです。
Offline
関連レコードを使うのと、その後書いてる計算フィールドを使うのは、全く別の方法です。
計算の方が説明が簡単なのでそっちだけ説明しました。それが、「別な方法で、希望する表示結果が得られた」といってるものです。
リレーションの方は面倒なので省略します。群を絞り込むためのフィールドが必要になるので、群が固定されてる今回の場合には特に利点はないでしょう。
ありがとうございます。解決しました。
Offline
Pages: 1
[ Generated in 0.017 seconds, 9 queries executed - Memory usage: 521.92 KiB (Peak: 526.83 KiB) ]