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

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

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

You are not logged in.

Announcement

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


#1 2022-04-26 15:37:40

sic3605
Member

テーブルA::IDとテーブルB::IDで一致するレコードをテーブルAから除外して表示したい

お世話になります、FM初心者です。お知恵を貸して頂けませんでしょうか。
使用バージョンは最新版のFileMaker Cloud(Pro)です。

【やりたいこと】
1.『T_除外商品リスト』に登録した商品を、『T_売上商品一覧』から除外して『L_売上商品一覧』に表示したい
2.『L_売上商品一覧』を開いた時点でその除外が適用されていてほしい(スクリプト?)

【テーブル】
①T_売上商品一覧(テーブルA)※約1,000件/毎日データを入れ替えます
・JANコード(ID)
・商品名
・販売数

②T_除外商品リスト(テーブルB)※約20件/随時データを増減させます
・除外JANコード(ID)
・除外理由

【レイアウト】
①L_売上商品一覧
②L_除外商品登録

『T_除外商品リスト』には、
・有料紙袋やレジ袋
・特定カテゴリの商品
・”0”(不備でJANコードが”0”になってしまっている)
などのJANコードが現在20件ほど登録されています。

リレーションで出来るのか、レコード検索で出来るのか、Google検索するワードすら掴めません。
ヒントなりとも頂けましたら、出来るだけ自分でも調べてみます。

https://fm-aid.com/bbs2/viewtopic.php?id=7252
こちらの#14、『手順前後を逆にすれば手順2.は簡単ですが』の手順2だけでは無いかと思っているのですが…。

宜しくお願い致します。

Offline

#2 2022-04-26 15:58:32

Shin
Member

Re: テーブルA::IDとテーブルB::IDで一致するレコードをテーブルAから除外して表示したい

商品リスト が2重に存在している、のを解消すれば、ごく簡単なことです。
商品一覧に、除外フラグを設定するフィールドを作ります。これに該当しない商品だけにJANコードを設定する計算フィールドを作ります。
レイアウトを開いたタイミングで、有効JANを検索すればいいです。

フラグの設定は、現存の除外リストからルックアップしてもいいですし、適当なリストを作っておき、それを参照してもいいでしょう。

Offline

#3 2022-04-26 16:15:01

チポ
Member

Re: テーブルA::IDとテーブルB::IDで一致するレコードをテーブルAから除外して表示したい

両テーブルをIDでリレーション。
T_除外商品リストから、T_売上商品一覧へ
  関連レコードへ移動
  対象外のみを表示

スクリプトにすればいいですね。

Offline

#4 2022-04-26 18:18:47

sic3605
Member

Re: テーブルA::IDとテーブルB::IDで一致するレコードをテーブルAから除外して表示したい

お忙しいところ、ご回答ありがとうございます。


>Shin様
説明不足で申し訳ありません。
『T_売上商品一覧』の方は、FMではない別システムでcsvをエクスポートし、それを無加工でインポートするものです。
(FM側は、毎日レコードを全削除してからインポートします)
この構造は変えられないので、商品のリストを1つに集約できないのではないかなと思うのですが、理解不足でしたら申し訳ありません。


>チポ様
下記のようにすれば良いのかな?とやってみました。

①『L_除外商品登録』を開く
②下記スクリプトを実行する
  関連レコードへ移動 [ 関連レコードのみを表示: テーブル:「T_売上商品一覧 」; 使用するレイアウト:「L_売上商品一覧」(T_売上商品一覧)]
  対象外のみを表示

こちらを実行したところ、『L_除外商品登録』で選択していたレコードの関連レコードだけが『L_売上商品一覧』に表示されました。
確かに挙動としてはこうなりそうな気がしました…。
除外リストにあるすべての商品を『L_売上商品一覧』で非表示にしたいのですが、間違っているところをご指摘頂けますと助かります。

Offline

#5 2022-04-26 20:08:05

Shin
Member

Re: テーブルA::IDとテーブルB::IDで一致するレコードをテーブルAから除外して表示したい

> FMではない別システムでcsvをエクスポートし、それを無加工でインポート
この運用では、確かにテーブルは2個必要ですが、運用は同じですよ、そのフラグフィールドを作っておき、インポート時に自動入力させればいいです。そうすれば、商品リスト側に索引の作成も可能で、検索も早いですし、値一覧が設定できます。
また、全レコードを削除、インポート、という手順は、ファイルの中の構成を断片化していきますので、できる限り避けられた方がいいです。せめてJANコードで照合置換のインポートにしましょう。

チポさんの提案の方法も、リスト表示をさせるだけでしたらいいと思いますが。JANが設定されていない(空白)というレコードがあれば、別に除外処理する必要があります。

Last edited by Shin (2022-04-27 09:53:49)

Offline

#6 2022-04-27 09:12:22

チポ
Member

Re: テーブルA::IDとテーブルB::IDで一致するレコードをテーブルAから除外して表示したい

スクリプトステップ
  関連レコードへ移動
のオプションで
  関連レコードのみを表示
    現在の対象レコード内のすべての・・・
にチェックを入れます。

JANコードのフィールドが0
とは書いてありますが、
空白もあるのでしょうか?

Offline

#7 2022-04-27 10:57:59

sic3605
Member

Re: テーブルA::IDとテーブルB::IDで一致するレコードをテーブルAから除外して表示したい

遅くなって申し訳ありません、ご回答ありがとうございます。

>Shin様
ご指摘ありがとうございました。
この構成自体がスマートで無いのですね。シンプルな構成なので特に問題は無いかと思っていました。
ただ、私の勉強不足でまだ理解が及ばない部分が多く申し訳ない限りです…。
本来であれば即実行すべき実戦的な内容だと思いますので、Shin様の返信をローカル保存して折々に確認していこうと思います。

>チポ様
ご指摘の部分にチェックを入れると、無事に『L_売上商品一覧』に『T_除外商品リスト』と一致しない全件を表示できました!
このチェックについて曖昧な理解しかしていなかったので勉強になりました、ありがとうございました。
JANコードが空白のデータはありませんので、こちらで運用していけそうです。

Last edited by sic3605 (2022-04-27 10:58:44)

Offline

#8 2022-04-27 11:21:45

Shin
Member

Re: テーブルA::IDとテーブルB::IDで一致するレコードをテーブルAから除外して表示したい

そのデータをどう使っているのかわかりませんが、日ごとの販売数がインポートされているのですよね。それを利用しない手は無いと思うのですが。
それは、別のシステムで管理されて利用されているのでしょうかね。

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, 12 queries executed - Memory usage: 571.12 KiB (Peak: 576.37 KiB) ]