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

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

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

You are not logged in.

Announcement

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


#1 2019-10-12 15:25:05

Koto
Member

日付フィールドを別テーブルへ『年』と『月』『日』で取り出し方法について

FMP18

入力テーブル
表示テーブル
入力id=表示id


と2つテーブルが存在しております
※報告書を作成するにあたり表示テーブルは複数(○○報告書・△△報告書など)あり、重複入力が手間なので入力テーブルに1度で済ませたく思っております

報告書のレイアウトは変更してはいけないので『年』『月』『日』もレイアウト内にテキストとして予め書いております
希望はエクセルの様に入力テーブルに記入し、表示テーブルの各セルにyear・month・day関数で参照して表示したいと思っております
つまずいているのは表示テーブル内のフィールドを複数増やしたくなく、1つで賄いたい(日付入力箇所がA・B・C・Dと有り表示させるのに×3フィールドだと多くなる為)


ファイルメーカーではこの様なことは可能でしょうか?

Offline

#2 2019-10-12 18:30:24

koeda
Member

Re: 日付フィールドを別テーブルへ『年』と『月』『日』で取り出し方法について

そもそもなのですが、入力テーブルと表示テーブルとに分けないといけないでしょうか?
入力と表示を分けてしまうと、転記などの処理が必要になりませんか?

フィールド数が多く、各報告書ごとにテーブルを分けて管理したいのであれば

共通項目テーブル
┣○○報告書テーブル
┣△△報告書テーブル
┣◇◇報告書テーブル

という風に分けるのはいかがでしょう?

共通項目ID=各報告書IDでリレーションします。
日付など複数の報告書で用いられる共通項目は、共通項目テーブルで管理します。

○○報告書・△△報告書など報告書ごとにレイアウトを作成し、日付などは共通項目テーブルのフィールドを配置します。

Last edited by koeda (2019-10-12 18:32:45)

Offline

#3 2019-10-12 19:39:51

koeda
Member

Re: 日付フィールドを別テーブルへ『年』と『月』『日』で取り出し方法について

肝心なことに回答していませんでした。
日付を年、月、日に分割して既存のレイアウトに配置したいという場合、必ずしも関数を用いる必要はありません。
同じ日付を3つ配置して、それぞれ書式を年のみ、月のみ、日のみに指定すれば良いです。

というわけで、お節介なサンプルを作成したのでご参考に。

https://www.dropbox.com/s/xazoid8fz25pa … fmp12?dl=0
報告書Aの日付1が上記説明の実例になっています。

Last edited by koeda (2019-10-12 19:44:23)

Offline

#4 2019-10-13 06:58:11

Koto
Member

Re: 日付フィールドを別テーブルへ『年』と『月』『日』で取り出し方法について

koeda様
サンプルまでご提供頂きとてもよく理解できました!
ルックアップで表示しようと考えておりましたがこちらの方が簡便ですね
年月日もとてもよく解りました。関数より簡単ですね
誠にありがとうございます!

まだまだ未熟なものでこれからもご相談させて頂きますがどうぞ宜しくお願い致します!!
ありがとうございました

Offline

#5 2019-10-13 15:04:15

Koto
Member

Re: 日付フィールドを別テーブルへ『年』と『月』『日』で取り出し方法について

早速次の壁にぶち当たりました。。。

電話番号・FAX・郵便番号も同じく1つのフィールドから複数のフィールド(電話・FAXなら3つに、郵便番号も2つに)に表示させる必要が有ります。
さすがにこの場合はLeft関数を用いてフィールドを増やすしか方法はございませんでしょうか?
出来れば日付の様に1つのフィールドで賄いたいです。

ご検討宜しくお願い致します

Offline

#6 2019-10-13 16:11:20

koeda
Member

Re: 日付フィールドを別テーブルへ『年』と『月』『日』で取り出し方法について

さすがに日付のように、書式設定では切り抜けられませんね。
何らかの計算が必要です。

最初のサンプルに電話番号、郵便番号を分割する機能を追加してみました。
https://www.dropbox.com/s/t5l38zgxanjnm … fmp12?dl=0

電話番号には3つの繰り返し計算式フィールドを設け、-()の3種類の文字を改行に置き換え(値一覧)、
GetValue関数で1〜3に取得しています。

090-1234-5678 ならば

まず、
090
1234
5678
に変形し、それをさらに

090 | 1234 | 5678
と繰り返しフィールドに入れるのです。
郵便番号もやり方は全く同じです。
関数の詳細は、Substitute関数やGetValue関数のヘルプを参照してください。
(もしハイフンなどで区切られていないのであれば、書かれているとおり、LeftやMiddleなどの関数で分割すればよいでしょう。
また、必ずしも計算フィールドではなく、スクリプトで分割する方法でも良いと思います。)

繰り返しフィールドや、繰り返し計算式フィールドは、インスペクタで表示の向きと表示範囲を指定することができます。
例えば5つの繰り返しが定義されている場合、下限値2、上限値4とすれば、中間の2〜4番目のセルだけを表示することができます。
印刷用レイアウトを作成する場合などに便利です。

Last edited by koeda (2019-10-13 16:36:52)

Offline

#7 2019-10-13 16:35:52

koeda
Member

Re: 日付フィールドを別テーブルへ『年』と『月』『日』で取り出し方法について

余談ですが、電話番号なら3つではなく11の繰り返しフィールド、郵便番号なら2つではなく7の繰り返しフィールドにしておき、
各フィールドには1文字ずつ分割して保存しておく、というのも手かと思います。

このフィールドは、例えばハガキ、封筒、宅配便の宛名ラベルなど、それぞれのフォーマットに合わせて相手の郵便番号や電話番号を
配置したいとき意外に便利なのです。
この手のレイアウトは、印字位置の調整が面倒なのですが、上限値〜下限値の機能を使うと、郵便番号等を2つに分割したり、
場合によっては1文字ずつに分割して配置することもできます。

Offline

#8 2019-10-13 16:40:04

Koto
Member

Re: 日付フィールドを別テーブルへ『年』と『月』『日』で取り出し方法について

koeda様
いつも本当にご丁寧にありがとうごいます!
解説まで頂いて理解が深まりありがたい限りです

むやみにフィールドを増やさずファイルメーカー的に出来てとても光栄です

追加下さっている『決算期』フィールドの計算式『入力日to決算期(日付1)』とはどういう意味の計算式ですか?
せっかくなので興味がありお尋ねさせて頂きます。
ご教授頂けると幸いです

Offline

#9 2019-10-13 16:45:21

koeda
Member

Re: 日付フィールドを別テーブルへ『年』と『月』『日』で取り出し方法について

あ、忘れてた。
別スレッドで質問されていた「決算期を求める式」をカスタム関数として組み込んでみました(^O^)。

管理の「カスタム関数...」から確認してみてください。
Shinさんの回答をそのまま埋め込んで、日付1から決算期を返すようになっています。

Last edited by koeda (2019-10-13 17:44:49)

Offline

#10 2019-10-13 17:14:58

Koto
Member

Re: 日付フィールドを別テーブルへ『年』と『月』『日』で取り出し方法について

koeda様

なるほど!!
細やかなご配慮に感謝致します

理解出来ました
本当にありがとうございます!!

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 7 queries executed - Memory usage: 528.63 KiB (Peak: 549.54 KiB) ]