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

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

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

You are not logged in.

Announcement

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


#1 2017-01-16 07:37:51

sfi
Guest

関連レコードを2回絞り込み

Mac OS 10 ・ FMP14
宜しくお願いします。

関連レコードを「対象レコードの絞り込み」で絞り込んだものを別テーブルにインポートして、
最初の「対象レコードの絞り込み」条件を解除して、関連レコードをさらに別の条件で絞り込み、別テーブルにインポートしたいのですが可能ですか?

関連レコードを2回別の条件で絞り込み、それぞれのレコードを別のテーブルにインポートして集計や検索などを行こなうことが目的です。

ポータルも挑戦してみましたが、ポータルフィルタ機能を実行したレコードではインポートできませんでした。

最初の関連レコードを作業用のテーブルにインポートして、そこから絞り込みを行った方がよいですか?

拙い状況説明で申し訳ありません。
ご指導よろしくお願いいたします。

#2 2017-01-16 08:33:49

Moz
Member

Re: 関連レコードを2回絞り込み

現在の対象レコードの関連レコードであれば[関連レコードへ移動]で表示でき、
その状態から絞り込み検索を繰り返せば関連レコードから必要なレコードが表示されますがそれではダメですか?

Offline

#3 2017-01-16 09:05:44

シャチ
Member

Re: 関連レコードを2回絞り込み

しかしなぜ別テーブルに取り込まなければいけないのでしょう。
こういたことを繰り返すと
ファイルがどんどん大きくなりませんか?
別ファイルならまだ理解はできるけど。

同じテーブル内で検索をどんどん絞り込むのではできないことなのでしょうか?

Offline

#4 2017-01-16 09:32:06

sfi
Guest

Re: 関連レコードを2回絞り込み

Mozさまありがとうございます。

説明が下手ですみません。
以下のような流れを想定しているのですが、4. の部分でつまずいています。

1. 受注テーブルと商品テーブルは商品IDでリレーション
2. 受注テーブルの受注日などで絞り込まれたレコードを [ 関連レコードへ移動 ]で、商品テーブルを絞り込み
3. 関連レコードを「フラグ1」で「対象レコードの絞り込み」→ レコードを別テーブルにインポート
4. 「フラグ1」での絞り込みを解除して、関連レコードを「フラグ2」で絞り込み、別テーブルにインポート

3. の「対象レコードの絞り込み」での後に、重ねて「対象レコードの絞り込み」で「フラグ2」の検索を行うと1回目の絞り込んだレコードからの検索になり、「フラグ1」と「フラグ2」の両方に該当するものになりました。

関連レコードから一旦「フラグ1」の条件のみ解除して、「フラグ2」で検索し直したいのですが、関連レコードからは無理でしょうか??

引き続きご指導いただけますよう宜しくお願いいたします。

#5 2017-01-16 09:35:04

tim
Guest

Re: 関連レコードを2回絞り込み

「フラグ1」での絞り込みを解除
という機能はないので、その状態への再検索になります。

絞込みする前に「新規ウィンドウ」終わったら「ウィンドウを閉じる」で元のウィンドウ(検索状態)に戻れます。

#6 2017-01-16 09:43:01

Shin
Member

Re: 関連レコードを2回絞り込み

その別テーブルでは何を行っているのでしょうか。納品票・請求書の作成のように見えますが。
上手に作れば、その明細テーブルの中だけの処理で終わりますよ。

Offline

#7 2017-01-16 09:53:51

sfi
Guest

Re: 関連レコードを2回絞り込み

シャチさまありがとうございます。

商品テーブルには商品IDごとに商品を構成するパーツが約30レコードずつ登録されていて、
受注日やパーツごとに集計やソートなどを行いたいと思い、「フラグ1」と「フラグ2」では別の処理をするので
いちいちフラグで検索をしてから更に条件検索をするより、取り込む時に別テーブルにしてしまおうと思ったのですが
間違っていますか??(汗)

ファイルサイズは大きくなってしまいますが、手動で検索をする時にフラグでの検索条件をつい忘れてしまい
やり直すことが多々ありまして・・・。

集計対象のレコードですが、別ファイルにした方がよいですか?

そもそも集計の考え方が間違っているのでしょうか・・・。(震)
ちょっとヘルプを読んできます。。。すみません。

#8 2017-01-16 09:59:11

sfi
Guest

Re: 関連レコードを2回絞り込み

timさまありがとうございます。

「新規ウィンドウ」を使うのですね。
「ウィンドウを閉じる」で元の検索状態に戻れるとは感動です。
大変勉強になりました。ありがとうございます!

#9 2017-01-16 10:16:32

sfi
Guest

Re: 関連レコードを2回絞り込み

Shinさまありがとうございます。

どうやら根本的に間違っているらしいということがわかっただけでも勉強になったのですが、
私のケースでいうと「明細テーブル」とは「関連レコード全体」という解釈でよろしいでしょうか?

今までは「関連レコード全体」だけでレイアウトで対象レコードを絞り込み、集計などを行っていたのですが
「フラグ1」にも「フラグ2」にも属さない集計対象外のレコードもそこそこあるので
必要なレコードだけでいいかな?と思った次第です。。。安直過ぎですね(涙)

「明細テーブル」は年月と共にレコード数が増えていく一方なので、別ファイルにした方がよいですか?

#10 2017-01-16 12:28:57

Shin
Member

Re: 関連レコードを2回絞り込み

全体の構成がわかりませんので、取りあえず書き出してみていただけませんか。
私がよく作る構造は、
受注テーブル:受注毎に1レコード、受注番号、受注元、受注日付、発送予定など
受注明細:受注の1商品毎に1レコード、受注番号(受注テーブルとリレーション)、商品管理番号、数量など
商品マスター:商品管理番号、商品名、単価など(単価は変動するので別テーブルにする事もあり)
という構成にします。納品書等は、受注明細の中で必要なレコードを抽出して印刷、その後、別の請求テーブルから請求番号を振出して全置換で設定、という事をする事もあります。請求書は、受注明細の中で納品日から締日を計算し、その受注元と締日で抽出すれば、請求明細になりますので、そのまま印刷。請求テーブルが必要ならばそちらから請求番号を振出して、明細に設定、という事をする事もあります。

明細テーブルはどんどんレコードが増えますが、通常の環境でしたら数百万レコード程度は気にしないで良いでしょう。数千万になる様でしたら、それなりの環境が必要です。

Offline

#11 2017-01-16 13:01:00

Hiro
Member

Re: 関連レコードを2回絞り込み

直接解答でありませんが、老婆心から、...

【 #1 質問を引用 】
> 関連レコードを「対象レコードの絞り込み」で絞り込んだものを別テーブルにインポートして、
> 最初の「対象レコードの絞り込み」条件を解除して、関連レコードをさらに別の条件で絞り込み、別テーブルにインポートしたいのですが可能ですか?
> 関連レコードを2回別の条件で絞り込み、それぞれのレコードを別のテーブルにインポートして集計や検索などを行こなうことが目的です。

質問に使用されている用語が異種混在している処から、2系統の基本レコード操作で間違った理解があるものと思います。
・1つは、検索に代表される現物レコードの実体操作系用語です。(検索、ソート、対象レコード、全置換、集計機能、イン&エクスポートなど)※直観的ですが、現物レコードセットそのものだけの一次元操作しか出来ません。
・もう1つは、照合に表せる非現物レコードの参照操作系用語です。(照合、参照、リレーション、ポータル、関連レコード、値一覧機能、など)※抽象的ですが、仮想参照レコードセットなので多次元同時操作が可能です。
両者2系統は全く別に動作し、連動はしません。目的により両者の特性を活かした使い分けが必要です。混入はトラブルの基で極力避けましょう。

また、それとは別に、同一データの重複持ちもトラブルの基で極力避けましょう。
データベースの正規化の考えに反するのは基より、データ同期の点で安全運用が困難なためです。

Last edited by Hiro (2017-01-16 14:48:21)

Offline

#12 2017-01-16 13:56:57

sfi
Guest

Re: 関連レコードを2回絞り込み

Shinさまありがとうございます。

説明がうまくできなくて申し訳ありません。
商品テーブルとして端折って書いてしまったのですが、正確には以下のような構造です。
--------------------------------------
受注テーブル : 1受注ごとに1レコード
                    受注ID(明細テーブルとリレーション)、商品ID(商品マスターとリレーション)、受注日、受注数、納品日

商品マスター : 1商品ごとに1レコード
                    商品ID(受注テーブル、構成マスター、明細テーブルとリレーション)、商品品名、商品品番

パーツマスター : 1パーツごとに1レコード
                     パーツID(構成マスター、明細テーブル、作業順マスターとリレーション)、パーツ品名、パーツ品番、単価、フラグ1、フラグ2

構成マスター : 1製品ごとに複数レコード (1商品を構成しているパーツの一覧)
                    構成ID、商品ID(商品マスターとリレーション)、パーツID(パーツマスターとリレーション)、所要数

明細テーブル : 1受注ごとに複数レコード
                    明細ID、受注ID(受注テーブルとリレーション)、商品ID(商品マスターとリレーション)、パーツID(パーツマスターとリレーション)、数量(所要数×受注数)、フラグ1(パーツマスターの関連レコード)、フラグ2(パーツマスターの関連レコード)

作業順マスター : 1パーツごとに複数レコード  (フラグ1のパーツを作るための作業順を登録してあるマスター)
                     作業順ID、パーツID(パーツマスターとリレーション)、作業名
--------------------------------------
処理の主な流れ
1. 毎日受注した分をエクセルから受注テーブルに取り込み後、受注IDを振る
2. 繰り返しスクリプトで受注IDごとに商品の構成テーブルを関連レコードで表示
3. 関連レコードを明細テーブルにインポート
4. フラグ1のパーツの集計結果と、作業順などを印刷
5. フラグ2のパーツの集計結果を印刷
6. フラグ2のパーツのみ入出庫テーブルにインポート
7. その他の帳票類を印刷

納品書や請求書などはファイルメーカーからは作っていません。
前任者から引き継いだものの、まだまだ勉強不足なため初歩的な質問かと思いますが、引き続きご指導いただけますよう宜しくお願いいたします。

#13 2017-01-16 14:07:50

sfi
Guest

Re: 関連レコードを2回絞り込み

Hiroさまありがとうございます。

教えていただいた内容はヘルプにも記載されている基本なのかも知れませんが、噛み砕いて解説してくださったのでとてもよくわかりました。
初めて腹に落ちた感じで、今日まで全然理解できていなかったことを痛感しています・・・。
リレーション、ポータル、関連レコードは非現物レコードの参照操作系用語なんですね。
ノートに全部メモりました!

ありがとうございます!

#14 2017-01-16 17:54:21

Shin
Member

Re: 関連レコードを2回絞り込み

フラグ等を使って一気にインポートしようとしている様ですが、不具合が出るのでは。フラグ等を使うと、異なる商品に同じパーツが使われていた場合に、全体の必要数量が合わなくなります。
以前、同じ様な質問でサンプルを作った事があります。
https://fm-aid.com/bbs2/viewtopic.php?id=1265
その日の受注入力が全て終わったら、受注テーブルのその日のレコードを抽出し、該当レコードから明細テーブルへ 関連レコードへ移動 します。
そこから loop で1レコードずつ処理が必要で、商品数量を変数へ保存し、パーツテーブルへ 関連レコードへ移動、パーツ出庫テーブルへ移動し、パーツテーブルからインポート、数量に商品数量を乗じて全置換、明細テーブルで次のレコードへ移動、を繰り返す。
最後までくれば、関連レコードへ移動で、手順マスターへ移動し、該当レコードを印刷、
という手順にされるのが一番確実では。

Last edited by Shin (2017-01-16 17:58:26)

Offline

#15 2017-01-16 23:22:04

sfi
Guest

Re: 関連レコードを2回絞り込み

Shinさまありがとうございます。

ご紹介いただいたページは恐らく弊社の前任者が相談させていただいたものと思います。
引き継ぎの時にこちらのサイトで相談していたと聞いていました。
Shinさまに作っていただいたサンプルが基礎になっていたんですねー!
いつもお世話になっています。ありがとうございます。

サンプルは拝見したことがなかったので、今夜と明日で勉強します!
またわからないことが出てきたら質問させてください。
ありがとうございます!!

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.009 seconds, 11 queries executed - Memory usage: 562.88 KiB (Peak: 583.78 KiB) ]