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

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

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

You are not logged in.

Announcement

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


#1 2024-02-05 11:41:23

sio
Guest

Aテーブルのレコードを日別に別テーブルのフィールドに横並びで表示したい

FilemakerPro20 win1164bitの構成です。

ご質問させていただきます。

農産物の生産記録をつけたいと考えております。

現在のテーブル構成として、Aテーブル内に、AテーブルのリレーションテーブルBをポータル上で表示し、Aテーブル上のBテーブルポータルで各商品コードを選択して商品ごとの商品名、数量をBテーブルのレコードに持たせている、という形です。
BテーブルにはAテーブルの主キーの外部キー、商品コード、商品数量が記録されています。1商品1レコードです。商品は栽培基準、規格ごとに全部で80種類強あり、その中から最大21種類が選択されて商品コードと数量が入力されます。
毎回21種類というわけではなく、選択される商品コードは日によって異なります。(同じ場合もあります)

そのBテーブル上の対象レコードを、全商品の数量を横並びに表示するテーブルCを作り、全商品の数量フィールドを配置して、Aテーブルの主キーごとに生産された商品を1レコードで管理したいのです。Bテーブル上で選択されていない商品数量のフィールドには0を表示するようにしたいと考えています。
また、テーブルBの商品数量を修正、追加した際には、Cテーブル上の数量も同時に変更される形が望ましいと考えています。
実現するためにはどのようにリレーションを設定したらよいか等を含めて、ご教示願えますでしょうか。

Cテーブルの目的は、Aテーブルの主キー別の全商品の生産数量を一覧で確認したい、というものです。

よろしくお願いいたします。

#2 2024-02-05 11:43:15

sio
Guest

Re: Aテーブルのレコードを日別に別テーブルのフィールドに横並びで表示したい

件名に間違いがありました、Aテーブルとありますが、正しくはBテーブルです。

#3 2024-02-05 12:12:49

チポ
Member

Re: Aテーブルのレコードを日別に別テーブルのフィールドに横並びで表示したい

Aテーブルではもちろん主キーはユニークですよね。
Cテーブルも同様と読めましたが、
そうであるならCテーブルは不要で、
Aテーブルのレイアウトでいいことになりますよね。

方法は
> Bテーブル上で選択されていない商品数量のフィールドには0を表示
これが理解できないので、無視すれば、
1行ポータルを開始行を一つずつ変えて横並びに配置すればいいのでは。

上記、無視した条件はどういうことなんでしょう?

Offline

#4 2024-02-05 13:11:26

sio
Guest

Re: Aテーブルのレコードを日別に別テーブルのフィールドに横並びで表示したい

チポ様、回答いただきありがとうございます。
Aテーブルの主キーはユニークです。Cも同様です。

”Bテーブル上で選択されていない商品数量のフィールドには0を表示”

わかりづらい説明で申し訳ございません。こちらについてご説明させていただきます。

例えば農産物の規格として、3L 2L L M S 格落ち品のB3L B2L BL BM BS という商品があったとして、

Bレコード上には生産した商品の商品コードしか入力されていません。数量が0の商品はそもそもレコードが存在していません。

その状態でこちらが行いたい表示として、Aテーブルのレコードに関連したBテーブルのレコードに、M3L L M S B3L B2L BM の7レコード分がその日に生産されていたとして、
Cテーブルのレコード上の、3L 2L L M S B3L B2L BL BM BSのフィールドのうち、 上記の7レコード分を対象フィールドに数量表示させ、残りの商品は0を表示するようにしたい。ということです。

Cテーブル上である必要はなく、Aテーブル上のレイアウトで実現が可能であるのであれば、それで全く問題はありません。

#5 2024-02-05 13:31:18

チポ
Member

Re: Aテーブルのレコードを日別に別テーブルのフィールドに横並びで表示したい

1商品ごとの全規格を表示
これをリアルタイムで変更に対応

となるとポータルが手っ取り早いですよね。
とすると、数量0のレコードも必要になってきます。

Offline

#6 2024-02-05 14:33:11

sio
Guest

Re: Aテーブルのレコードを日別に別テーブルのフィールドに横並びで表示したい

チポ様、回答いただきありがとうございます。

数量0のレコードも必要とのことでご回答いただきましたが、こちらの意図している運用上でなかなか難しいことがあり、その点も含めてご相談させてください。

先に商品コードの現時点での属性分け、というかカテゴリ分けをご説明させていただきます。

まず、栽培基準AとBとCいう3種類の区分けが存在します。そして、その中に品種AとB、という区分けが存在します。
栽培基準Aと品種Aを組み合わせて商品AAと呼称します。その商品AA群が20種類あり、それぞれに商品コードが採番されています。
同様にAB群,BA群,BB群も20種類ずつ商品コードが採番されています。
最後に商品CAとCBで1種類ずつ商品コードが採番されています。

先ほどの私の投稿で最大21種類と申しましたのは、AA郡の20種類+CAの1種類の合計で21種類ということになります。
他の商品群の場合もそれは同様です。商品CA,CBを除き商品群が違う商品群のコードが同じA主キーで同時に入力されることはありません。

続きまして現行のAレコード上のBポータルでの入力工程についてご説明いたします。
作業者は、上記の商品群から実際に生産がおこなわれた商品のみを作業者が選択、もしくは一括で商品コードを登録するスクリプトボタンでを押下し、対象の商品コードを入力します。
入力完了後は商品数量が入力されているレコードかどうかを判別し、スクリプトで数量が空欄のレコードを一括消去しています。そのため、一括入力で21レコードが自動で作成された後で10レコード分しか数量が入力されていない場合には、残りの11レコードはレコード消去されています。
Bテーブルの1レコード上には、B主キー,A外部キー,1商品分の商品コード,数量という内容のレコードが10個登録される。という形です。

上記が現在の商品コードの採番と運用方法になります。

入力する予定の無い商品群も併せて82商品コードがBポータル上に存在すると、Bレコードポータル上での数量入力時にミスの原因になるため、可能な限り入力する予定がある商品以外の商品をポータル上に表示したくないのです。

私の説明不足で申し訳ございませんが、現状の入力業務をあまり変更しない形で全商品を各商品コード毎の数量を横並びで表示する方法はございますでしょうか。

最終的には、テーブルに表示されたフィールド上の各商品を期間ごとに区切って集計を取りたいと考えています。
仮にCテーブル上だとした場合、そこに表示された数量を変更したり、そこから商品を追加したい、等の要望は無く商品の追加、数量の変更、修正はAテーブルレイアウト上のBテーブルポータル上で行い、その変更がCテーブルの表示上反映されれば問題ありません。


よろしくお願いいたします。

#7 2024-02-05 15:06:30

チポ
Member

Re: Aテーブルのレコードを日別に別テーブルのフィールドに横並びで表示したい

> 入力完了後は商品数量が入力されているレコードかどうかを判別し、
> スクリプトで数量が空欄のレコードを一括消去しています

これをレコード削除ではなく、
フラグを立てて、数量有りと0とを分けて、
0はポータル非表示とできますよね。

ご希望は全82商品を横一列に並べたいのですか?


レコード削除を前提とした運用はあまりいいとは言えないのでは。
ファイルを壊す原因になりやすいですよ。

Offline

#8 2024-02-05 15:53:14

sio
Guest

Re: Aテーブルのレコードを日別に別テーブルのフィールドに横並びで表示したい

チポ様、回答いただきありがとうございます。

恥ずかしながらDB構築の経験が無く、不要なレコードをあまり作らないようにしたほうが良い、という内容の文章をどこかで確認し、じゃあどうしようかということで行きついたのが今の運用です。
将来データが蓄積していった際にデータが重くなるのを防ぎたいという意図がありましたが、大体1日にAテーブル上で1もしくは2レコード(2レコード登録される日は10日~15日程度)なので、
日毎にBテーブルではMAXで164レコードになります。対象作物生産が1年のうち3カ月程度、凡そ75~85日程度なので、年に1万レコード行くか行かないくらいでしょうか。この程度であれば動作への影響の件は無視しても問題なさそうでしょうか。

現状は栽培基準と品種のデータを参照しに行ってそれに適合した商品コードのみを自動で登録する、というスクリプトを組んでボタン化してあり、それによって登録された数量フィールドが空欄の状態のレコードに
作業者が数量を入力していく形をとっています。もしくはボタンを使わずに作業者が対象商品を手動で選択して、入力するという流れのが入力業務の2種類です。
ご教示いただいた内容としては、それに加えて、作成された以外の商品コードも一括登録し、自動で数量に0を入力したうえで数量に0が入力されたレコードはポータル上で表示しないというフィルタをかける、という運用にするということでしょうか。
それに加えて、手動で商品コードが入力されていた場合は、入力済みのコード以外のなコードをすべて登録し、数量に自動で0を入力して入力を完了する、ということでしょうか。

その場合に教えて頂きたいこととして、ポータルでのフィルタのかけ方についてと、一度0と入力した商品にやはり数量を入力したい、となった場合にどのように対応をすればよいか、ということです。
ポータルフィルタをかけた経験が無く、低レベルな質問になってしまい申し訳ございません。

希望としては全82商品を横一列に並べたいです。レイアウト表示上無理があるとしたら、品種ごとに分けて41商品ごとでレイアウトを分けるかを考えています。

#9 2024-02-05 16:32:05

チポ
Member

Re: Aテーブルのレコードを日別に別テーブルのフィールドに横並びで表示したい

> 不要なレコードをあまり作らないようにしたほうが良い
もちろんそうですが、
作って削除
はもっと悪いでしょう。

0のレコードを作りたくないのでしたら、
商品に対応する数量フィールドを商品の数分作り、
Bテーブルの終了フィールドに入力した時、
その値を入力。
これをスクリプトにして、トリガで自動入力できますね。

Offline

#10 2024-02-05 17:50:13

Shin
Member

Re: Aテーブルのレコードを日別に別テーブルのフィールドに横並びで表示したい

こんな構造にされたら簡単ですよ。
https://www.dropbox.com/scl/fi/djwja8u0 … i8nui&dl=0

Last edited by Shin (2024-02-07 17:17:35)

Offline

#11 2024-02-05 19:37:59

sio
Guest

Re: Aテーブルのレコードを日別に別テーブルのフィールドに横並びで表示したい

チポ様・Shin様

教えていただいた情報をもとに、いろいろ試してみたいと思います。
明日は健診で出社できないため、明後日サンプルファイルを確認させていただきます。
質問があればまたご相談させて下さい。

ありがとうございました。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.016 seconds, 11 queries executed - Memory usage: 554.68 KiB (Peak: 575.59 KiB) ]