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

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

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

You are not logged in.

Announcement

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


#1 2022-05-16 16:12:12

マツダ
Guest

1対多で重複日付を非表示にするレポートがうまくできません

日付などの基本テーブルと売上の詳細テーブルをわけました。
レポートを作成するときに、
同じ日付は一度だけ表示させたいので、この掲示板にあった情報から
Get ( レコード番号 ) > 1 and 売上::日付 = GetNthRecord ( 売上::日付  ; Get ( レコード番号 ) - 1 )
としました。
小計パートを作り、売上::日付としたところ、仕切り線などで日付ごとの区切りはつきましたが、
1つ目の区切り以外の部分の日付が表示されません。
テーブルを一つにまとめて重複した日付をもたせたテーブルでやると、想定通りの表示になります。

テーブルをまたいだ場合にはやり方がかわるのでしょうか?
よろしくお願いします。

WINDOWS10でファイルメーカー19です。

#2 2022-05-17 01:01:32

マツダ
Guest

Re: 1対多で重複日付を非表示にするレポートがうまくできません

小計パートなどの設定の問題でしょうか?

#3 2022-05-17 07:36:51

himadanee
Guest

Re: 1対多で重複日付を非表示にするレポートがうまくできません

売上テーブルのレイアウトですよね?
「日付など」が基本テーブルにあるなら、売上::日付は存在しないはずですし、基本テーブルが全く使われてないので、質問の意図がよくわかりません。
日付を基本テーブルから小計パートに表示してるなら、「(ボディの)重複日付を非表示」の必要もないですし...

#4 2022-05-17 12:22:48

マツダ
Guest

Re: 1対多で重複日付を非表示にするレポートがうまくできません

すみまけん、式のところは
基本::日付
でした

それをボディに配置していまふ

#5 2022-05-17 13:22:12

チポ
Member

Re: 1対多で重複日付を非表示にするレポートがうまくできません

売上テーブルに日付を持たせればいいのでは。

Offline

#6 2022-05-17 13:40:20

マツダ
Guest

Re: 1対多で重複日付を非表示にするレポートがうまくできません

>チポさん
あえて正規化しないということになりますか?

ファイルメーカーの機能としまして、今回のような日付が別テーブルの場合には、
レポート作成時に重複する日付を非表示にしてユニークなものだけ表示させる
2022/05/1   AAA
                  BBB
                  CCC
2022/05/2  AAA
                 BBB
のような形にはできないということでしょうか?
一つのテーブルだと上記になりますが、日付を別テーブルにして同じ仕組みにすると、
2022/05/1 以外は空欄になってしまいます。

#7 2022-05-17 17:12:43

チポ
Member

Re: 1対多で重複日付を非表示にするレポートがうまくできません

必要なフィールドを一つ増やして、
正規化しないとは言わないでしょう。

同日付のレコードが限られた数個ならば、
「基本テーブル」のレイアウトにポータルを置いてもいいのでは。

Offline

#8 2022-05-17 18:08:11

himadanee
Guest

Re: 1対多で重複日付を非表示にするレポートがうまくできません

別テーブルにしたら「同じ仕組み」になってないことに気づいてないだけです。
GetNthRecord(フィールド;n)
は、現在のテーブルのフィールドなら現在のテーブルのnレコード目を参照しますが、
フィールドを関連テーブルのに変えてしまってますから、関連レコードのnレコード目を参照します。
売上テーブルから基本テーブルの関連レコードは1つしかないのでnを指定する意味がなくなって
Get ( レコード番号 ) > 1 and 基本::日付 = 基本::日付
と書いているのと同じです。

#9 2022-05-17 18:40:27

マツダ
Guest

Re: 1対多で重複日付を非表示にするレポートがうまくできません

どのようにしたら関連テーブルから持ってきた日付フィールドの重複を非表示にできるでしょうか?

#10 2022-05-18 11:14:56

himadanee
Guest

Re: 1対多で重複日付を非表示にするレポートがうまくできません

「売上テーブルに日付を持たせれば」一番簡単だと思います。
非保存の計算フィールドが1つ増えるだけです。

あとは、隠そうと思わずにボディでなく前部小計パートに配置する。無駄なスペースがなくなります。
(別の質問で使ってた、ヘッダに配置して下に伸ばすテクニックが使えたと思ったが、小計パートから伸ばしても印字されませんでした)

他には、オブジェクトを隠す計算式で変数を使う方法。フィールド値をグローバル変数に入れておいて、それと比較する(あんまりテストしてません。レコード数に応じて大量に変数が作られる。)
Let ($$v[Get(レコード番号)]=Self;
Get(レコード番号)>1
and
Self=$$v[Get(レコード番号)-1]
)
これを応用すると「ページをまたいだら最初のレコードには表示する」とかもできるかも?

#11 2022-05-18 15:56:38

チポ
Member

Re: 1対多で重複日付を非表示にするレポートがうまくできません

割り切って、
売上テーブルで計算フィールドを作って、
基本テーブルの日付を得るようにすればいいと思いますが。。


んん?
現状は
基本テーブルには日付があって、
売上テーブルにはないのですよね?

ではリレーションは何を照合しているのでしょうか?

Offline

#12 2022-05-18 21:51:18

マツダ
Guest

Re: 1対多で重複日付を非表示にするレポートがうまくできません

チポさん、計算フィールドに転記する方法でよさそうですね

mm/dd 曜日

などの書式設定はどのようにしたらよいのでしょうか
書式設定が選択できなくて
yyyy/mm/dd
で表示されてしまいます

#13 2022-05-19 01:30:57

マツダ
Guest

Re: 1対多で重複日付を非表示にするレポートがうまくできません

Right(0 & Month(日付); 2) & "/"  &  Right(0 & Day(日付); 2) & " "  & Left(DayNameJ(日付);1)
とするとうまくいっているようですが、あってますか?

#14 2022-05-19 08:41:54

チポ
Member

Re: 1対多で重複日付を非表示にするレポートがうまくできません

計算フィールドの計算結果が日付になっていないのでは?

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: 525.98 KiB (Peak: 546.52 KiB) ]