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

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

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

You are not logged in.

Announcement

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


#1 2018-01-22 05:32:50

YUYA
Member

各ページの最初と最後のレコードの日付を取得する

複数ページの印刷をするときに
各ページごとに、そのページの最初と最後のレコードの日付を、ヘッダーに表示させるにはどのようにしたらよいですか?

2018/01/22 〜 2018/01/28

のように、そのページにあるレコードの期間を表示させたいです

Offline

#2 2018-01-22 08:51:05

Shin
Member

Re: 各ページの最初と最後のレコードの日付を取得する

どんなレイアウト構成?パートの高さの自動変更は行っている?

Last edited by Shin (2018-01-22 14:43:07)

Offline

#3 2018-01-22 17:36:27

YUYA
Member

Re: 各ページの最初と最後のレコードの日付を取得する

リスト表示です
スライド設定ありなので、1ページに何レコードくるかは、確実には把握できません

Offline

#4 2018-01-22 18:01:51

qb_dp
Member

Re: 各ページの最初と最後のレコードの日付を取得する

以下のようにすると、1ページのレコード数に関係なく、そのページの最初と最後の値が取得出来ます。

ヘッダーにマージ変数を設置
例:
<<$$sDATE>> ~ <<$$eDATE>>
「次の場合にオブジェクトを隠す」に以下の計算式を設定。
式:
Let($$sDATE=日付フィールド;0)

フッターにマージ変数を設置(何でもイイんですが)
<<$$eDATE>>
「次の場合にオブジェクトを隠す」に以下の計算式を設定。
式:
Let($$eDATE=日付フィールド;1)

Offline

#5 2018-01-22 18:25:49

qb_dp
Member

Re: 各ページの最初と最後のレコードの日付を取得する

検証不足でした。
誤:

ヘッダーにマージ変数を設置
例:
<<$$sDATE>> ~ <<$$eDATE>>
「次の場合にオブジェクトを隠す」に以下の計算式を設定。
式:
Let($$sDATE=日付フィールド;0)

フッターにマージ変数を設置(何でもイイんですが)
<<$$eDATE>>
「次の場合にオブジェクトを隠す」に以下の計算式を設定。
式:
Let($$eDATE=日付フィールド;1)

ヘッダーには無理でした。
フッターに表示ならOKです。

正:

ヘッダーにマージ変数を設置
例:
<<$sDATE>>(何でも良い)
「次の場合にオブジェクトを隠す」に以下の計算式を設定。
式:
Let($sDATE=日付フィールド;1)

フッターにマージ変数を設置
<<$sDATE>> ~ <<$eDATE>>
「次の場合にオブジェクトを隠す」に以下の計算式を設定。
式:
Let($eDATE=日付フィールド;0)

Offline

#6 2018-01-22 18:29:56

YUYA
Member

Re: 各ページの最初と最後のレコードの日付を取得する

ありがとうございます
なぜ
=日付フィールド でそれぞれの変数に最初と最後の日付データが取得できるのですか?

本当はページの全てのレコードの日付が重なって表示されているけど
隠すことによって、最初と最後の日付のみを表示しているんですよね?

Offline

#7 2018-01-22 22:52:49

Shin
Member

Re: 各ページの最初と最後のレコードの日付を取得する

ページ番号を設定するフィールド、日付けの最大と最小を集計するフィールドを作っておきます。
印刷対象の最後のレコードへ移動し、プレビューモードで Get ( ペーコ番号 ) をページフィールドに設定、最後のフィールドを対象外、を全レコードで loop。
ヘッダの代わりに、ページ番号での小計パートにしておき、日付けの最小、最大フィールドを配置すれば良いのですが。結構面倒です。
または、qb_dpさんの最初の変数を作っておき、ページ番号を全置換してもいいかも。

Offline

#8 2018-01-22 23:27:22

YUYA
Member

Re: 各ページの最初と最後のレコードの日付を取得する

ページ番号を全置換とはどういことですか?

Offline

#9 2018-01-23 00:04:08

Shin
Member

Re: 各ページの最初と最後のレコードの日付を取得する

端折りましたが、ページ番号を設定するフィールド を全置換。

と書いたけど、検証していないので、うまく動かないかも。

Last edited by Shin (2018-01-23 00:05:28)

Offline

#10 2018-01-23 00:08:48

YUYA
Member

Re: 各ページの最初と最後のレコードの日付を取得する

ヘッダーにボディに表示するレコードの見出しを配置しているので。
小計フィールドでは表としてなりたたなくなってしまいそうです…

用紙の右上などに
そのページの最初と最後の日付を表示したいのですが
むずかしいですかね?

qb_dpさんのやり方でも、フッターにしか表示できないようですし

Offline

#11 2018-01-23 11:12:43

wader
Member

Re: 各ページの最初と最後のレコードの日付を取得する

フッターに日付のフィールドを配置して、「オブジェクトを隠す」計算式
Let ( $$lastValues[Get(PageNumber)] = Self ; 1 )
で常時非表示にする。
ヘッダーにはマージ変数
<<$$lastValue>>
を置いて、「オブジェクトを隠す」計算式
Let ( $$lastValue = $$lastValues[Get(PageNumber)] ; 0 )
で値を取得する。

プレビューモードで一度全ページをプレビューする(早すぎるとスキップされるので、スクリプトでページごとに0.1秒ポーズするなどが必要)と、値が配列変数に設定されて、その後の印刷/プレビューでは正しく表示されます。


プレビューしないでやる方法を考えて、フッターの方でフィールドにオブジェクト名を付けて、ヘッダのGetLayoutObjectAttribute("obj";"content")で参照できるかと思ったけど、無理でした。

Offline

#12 2018-01-23 12:08:01

qb_dp
Member

Re: 各ページの最初と最後のレコードの日付を取得する

$$lastValues[Get(PageNumber)]
お~! これイイですね。思いつきまでした...。

ちなにみ一度、PDFに保存すると、プレビューモードで一度全ページをプレビューしなくても、$$lastValues[1...] に値が入ります。
※最初に作成したPDFでは、変数に値は入らないので、一度捨てPDFを作成してから、印刷が必要です。

Offline

#13 2018-01-23 17:16:38

YUYA
Member

Re: 各ページの最初と最後のレコードの日付を取得する

waderさんのやりかたですと、
日付 〜 日付
の配置はないようですが、どうなっているのですか?

Last edited by YUYA (2018-01-23 17:17:02)

Offline

#14 2018-01-23 22:31:07

Shin
Member

Re: 各ページの最初と最後のレコードの日付を取得する

開始日付は、そのままフィールドを置けば良いです

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.009 seconds, 9 queries executed - Memory usage: 578.08 KiB (Peak: 594.62 KiB) ]