みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
OS:[windows10]FileMaker Ver:[FileMaker pro15 ]
いつもお世話になっております。
フラグを考慮した値一覧の表示について、最適な方法がわからずに困っております。
やりたいことは、例えば、下記のような動作です。
廃番フラグが立っている商品を値一覧に表示しない。
退職フラグが立っている社員を表示しない。
過去ログを参照したところ、下記のトピックを見つけまして、実施してみたところ、一瞬は動作の実現はできたのですが、テーブルを作成したフラグの値を編集すると、値一覧として何も表示されなくなってしまいました。
またフラグごとに、テーブルを作成しないといけない部分が気にかかっていまして、テーブル作成せずにシンプルな方法をご存じの方がいれば、ご教授願いたいです。
https://fm-aid.com/bbs2/viewtopic.php?id=438
よろしくお願い致します。
Offline
索引が作成できなかったために、表示されていない物と思います。
フラグで判断する計算式に、関連フィールドやグローバルを入れない、参照するフィールドに索引を作らないフィールドを使わない、などを考慮されれば良いかと思います。
Offline
Shin様
ご回答ありがとうございます!
索引の問題なのですね。
索引については、あまり考える機会がなかったのですが、理解致しました。
そして、「すべて索引する」設定にすれば、うまく動作しました。
ありがとうございます!
やはりフラグを作るためには、テーブルが必要なのですね。
フラグごとにテーブルを作らずに、テーブルに項目を増やしていき、レコードは1つのみとすれば、そんなにはごちゃごちゃはしないから、そういう設計で問題ないのでしょうか。
よろしくお願い致します。
Offline
> フラグを作るためには、テーブルが必要
全体の構成にもよると思いますが、普通は不要でしょう。データと同じテーブルに保存するのが一般的です。
Offline
Shin様
ご回答ありがとうございます!
言葉足らずですみません。
現行での動作として、フラグ自体は同じテーブルにありますが、
関連フィールドのテーブルによって値一覧の絞り込みを行っています。
関連フィールドのテーブルは必ず必要なのかどうかについて疑問に思っているのです。
Offline
具体的にどのような状況ですか。
Offline
Shin様
ご回答ありがとうございます!
下記のような感じです。
備品出庫登録テーブルで、社員IDを選択した場合の動作についてです。
■備品出庫登録テーブル
シリアル番号
社員ID
備品ID
数量
■社員マスタテーブル
社員ID
社員名称
状態(在籍or退職)
■フラグテーブル
フラグ
レコードは1つのみで、中身は”在籍”
■リレーション
社員ID(備品出庫登録テーブル)=社員ID(社員マスタテーブル)
状態(社員マスタテーブル)=フラグ(フラグテーブル)
Last edited by あきひろ009 (2016-11-19 16:29:02)
Offline
追加で気づいたのですが、備品出庫登録テーブルの社員IDの値が入っていない場合には、値一覧が表示されないです。
正しい値を一度入れれば、正常に値一覧が表示されます。
リレーションが良くないからですかね。。。うーん。
Offline
一応、社員マスタに、「未選択」という値を追加して、備品出庫登録テーブルで新規レコード作成時に、初期値を自動入力で「未選択」の値を入力することにより、機能的には動作させることはできました。ただ、もう少し上手な動作のさせ方がありそうな気がします。。
Offline
備品出庫登録テーブル の中に、グローバルフィールドで在籍フラグを設定し、社員マスタテーブル::状態 と リレーションすれば良いでしょう。
Offline
Shin様
ご回答ありがとうございます!
初期値がなくても、入力が可能な形でできました!
グローバルフィールドを初めて使用しましたが、条件を自分のテーブルに保持するということですね。
ありがとうございます!!
値によるフィルターを使用できたら、一番スッキリしそうな気がするんですけど、FileMakerで追加してくれないかな。追加するほどのものでもないかもですが。。
Last edited by あきひろ009 (2016-11-19 17:41:32)
Offline
値によるフィルター とは、何の事ですか。ポータルフィルターの条件には、フィールド値や変数も使えますが。
Offline
Shin様
ご返信頂きまして、ありがとうございます。
値によるフィルター とは、
フィールドの選択で使用する値一覧を、ポータルのように値によってフィルターするような動作をイメージしました。
値一覧には、下記の2つのオプションが存在していますが、もう一つ「次の条件に一致するレコードの値のみ含める」といったようなオプションがあればな。ということです。条件は、状態=”在籍”。
・値を絞り込まない通常の「すべての値を含める」
・値を絞り込む「次のテーブルから関連レコードの値のみ含める」
Offline
動的な値一覧 を勉強してください。
常に、値を絞り込む 設定にしておいて、リレーション条件のリレーション元の条件を変化させると、対象のレコードを動的に変更できます。例えば、状態 を数値にしておくとそれを作りやすいのですが、例えば 0 を退職、1 を在籍にしておくとして、リレーション条件を 以上 という比較条件にしておきます。リレーション元側を 1 にしておけば、在籍者のみに、0 にすると全職員が対象になります。
Offline
Shin様
ご返信頂きまして、ありがとうございます。
なかなか理解できておらず、申し訳ないです。
Shin様の意見を参考にして、動的な値一覧について、もう少し調べてみます。
また、まだ理解できていないのですが、グローバルフィールドを設定しなくても、今回実現したことと、同様のことが実現できるということでしょうか。
Offline
動的な値一覧には、リレーションが必須です。その元キーを設定するフィールドが必要でしょうね。それが、各レコードで共通ならば、グローバルフィールドを作るのが簡単でしょう。
Offline
Shin様
ご返信頂きまして、ありがとうございます。
確かにそうですね。グローバルフィールドを作って、リレーションを作成するのが、最適な解ということですね。
まだFileMakerを触りだしてから、日が浅いですが、すごく可能性のある素晴らしい製品だと感じてますので、
勉強不足ですが、精進して、がんばります!
Offline
Pages: 1
[ Generated in 0.013 seconds, 9 queries executed - Memory usage: 553.88 KiB (Peak: 574.78 KiB) ]