みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつも参考にさせて頂いております。
この度、初めて投稿させて頂きますので、言葉足らずな事が多いと思いますが、是非ご教授をお願いします。
環境:WIN10/FM11です。
テーブル「請求書」と、テーブル「データ」の2つのテーブル間でのお話です。
「テーブル:請求書」のレイアウトに、「データ:明細と金額(テキストと数字)」「データ:小計(集計)」をポータル表示させています。
1ページに25行のポータル表示をさせており、26行以上になると2ページ目に、更に51行以上になると3ページ目に行く様に構成しています。
ポータル表示は、明細表示用の25行のポータルと、小計表示用の1行のポータルを各ページに設けています。
※小計表示用の1行は、各項目毎の集計なので、フィールド5個ほど並べてます。
明細表示用のポータルは、表示を1ページ目「1」~25行、2ページ目「26」~25行、3ページ目「51」~25行と表示する様にして上手く行ってます。
全て同じリレーションのポータルです。
レイアウトは、1つのレイアウトに3ページ分を縦に並べて、レイアウトのページ設定で、A4で最大3ページ分印刷出来る様にしています。
問題は、各ページ毎の小計を出すのにつまづいており、ポータルフィルタをかけて各ページ毎の小計を出そうと試みてます。
それで、1ページ目のポータルのフィルタに「データ:レコード番号>26」をかけて、「データ」テーブルの「小計」集計フィールドは、うまく表示出来ました。
※「データ:レコード番号」フィールドは、計算フィールドの「Get(レコード番号)」です。
ですが、2ページ目の小計用のポータルのフィルタに「データ:レコード番号<25」とした時点で表示が無くなってしまいます。
ポータルのフィルタに「データ:レコード番号<25 and データ:レコード番号>51 」と指定出来れば、2ページ目の「小計」集計フィールドもうまく表示出来るのかと思い、色々と条件を試しましたがダメでした。
どなたか分かる方がいらっしゃれば、是非ご教授お願い致します。
質問文の訂正
大変失礼しました。
質問文で間違いがありましたので、訂正させて下さい。
13行目の文章で、「データ:レコード番号>26」と書いてますが、正しくは、「データ:レコード番号<26」です。
15行目からも同様に、「データ:レコード番号<25」→「データ:レコード番号>25」、
16行目も、「データ:レコード番号<25 and データ:レコード番号>51 」→「データ:レコード番号>25 and データ:レコード番号<51 」です。
※すべて、大なり小なりを逆にしてしまいました。
訂正いたします。
ポータルでの印刷は面倒ですよ。
明細テーブル側で集計レイアウトで印刷した方が、柔軟性があり楽です。
とりあえず、今のままで使うとして、
明細側に伝票ごとのシリアル番号(0開始)を持たせておき、Div ( シリアル番号 ; 25 ) という計算フィールドを用意します。
各行の表示用と小計表示用のポータルに、計算フィールド = $$n というフィルターを設定しておきます.
変数を設定 で $$n に0を設定すると1ページ目が、1を設定すると2ページ目が表示されるようになります。印刷時には、$$n を増やしていく loop を作るといいでしょう。
明細側で作業するには、その計算フィールドで集計するといいです。小計パートに集計フィールドを設定するだけで表示されます。
Last edited by Shin (2020-06-14 08:58:44)
Offline
shin様 ご回答ありがとう御座います!
今まで一度も使った事の無かった、「div関数」の活用大変勉強になりました!
明細側に「シリアル番号」フィールドを設けて、小計表示用ポータルのフィルタに「$$n」の設定でやりたい事は出来ました!
ありがとう御座いました!
ただ、ご指摘頂いた様に面倒な作りにした為、明細側のシリアル番号を振るのに苦戦しそうです。
複数のクライアントがいて、月毎にそれぞれのクライアントの明細を表示させたいので、クライアント毎に連番のシリアル番号を振れる様に、更に言うと月毎にシリアル番号を「0」からにする様に頭を悩ませたいと思います。
今回、質問させて頂いた件は、shin様に回答頂いた手法で解決した為、解決済みとさせて頂きます。
ありがとう御座いました!
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 511.16 KiB (Peak: 518.38 KiB) ]