みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
請求書を作成しています。
1ページに小計込みで25行入ります。
請求書が二枚に渡る場合は他ページ目の小計を削除し、28行まで入ることになります。
(例
請求書が一枚
1ページ目 25行
請求書が二枚
1ページ目 28行
2ページ目 25行
請求書が三枚
1ページ目 28行
2ページ目 28行
3ページ目 25行 )
ページに対して、レコードが不足している場合は空白行を作る処理を行います。
(例 取得行数が20の場合、5行の空白行を作成)
(例2 取得行数が26の場合、2ページに渡るので25+2)
この空白行算出を動的にスクリプトで行うためにはどうすればよろしいでしょうか?
明細テーブル側で、リスト表示で印刷するのが一番楽ですよ。
レコードの絞り込みは、関連レコードへ移動 で行うと楽です。
集計レイアウトを使うと、同日〆の請求書を一気に作れます。
Offline
作るべきレコード数は
Case ( 26 ≤ ( レコード数 - Div ( レコード数 ; 28 ) * 28 ) ; 53 ; 25) - Mod ( レコード数 ; 28 )
でいいんじゃないかな。
Offline
申し訳ありません、訂正です。
一枚目にはヘッダがありますが、二枚目以降はヘッダが存在しません、そのことから二枚目以降の行数が変動します。
(例
請求書が一枚
1ページ目 24行 (ヘッダ、小計あり)
請求書が二枚
1ページ目 28行 (小計がない)
2ページ目 33行 (ヘッダがない)
請求書が三枚
1ページ目 28行 (小計がない)
2ページ目 37行 (ヘッダ、小計ともにない)
3ページ目 33行 (ヘッダがない )
請求書がN枚
1ページ目 28行 (小計がない)
2ページ目 37行 (ヘッダ、小計ともにない)
. ×N行
Nページ目 33行 (ヘッダがない)
罫線などがあって空白行が無いと不格好になるのを避けたい的な話ですよね?
空白行(レコード)を作成するのではなく予め用意しておいては如何でしょう?
空白行用のフラグフィールドを作成して空白行の場合のみ1にしておけば
ソートの際にフラグフィールドの昇順でソートすればフラグフィールド必ず全体のケツにまとまります。
空白行の最大数は32なので33レコード作っておけば良いでしょう。
関連レコードへ移動で明細のレコードを表示した後で、
フラグフィールド1で[対象レコードの拡大]で検索すれば必要なレコード+空白行のレコードが表示されます。
フラグフィールドで昇順ソートを行えば末尾に空白行のレコードが溜まるので
[レコード/検索条件/ページへ移動]で最後のレコードに移動して必要なレコード数になるまで
[レコードを対象外に]を実行すれば明細行と必要な分の空白行が残ります。
全体として必要なレコード数の計算はもっと賢い式があるかも知れません。
Case ( Get ( 対象レコード数 ) ≤ 24 ; 24 ; Get ( 対象レコード数 ) ≤ 61 ; 61 ; 61 + 37 * ( Ceiling ( ( Get ( 対象レコード数 ) - 61 ) / 37 ) ) )// Case
Last edited by Moz (2019-01-21 16:25:41)
Offline
作るべきレコード数は
Case ( レコード数 ≤ 24 ; 24 - レコード数 ;
61 - ( レコード数 - Div ( レコード数 - 25 ; 37 ) * 37 ) )
でいいと思います。
Offline
請求書用の専用のテーブルを別途作ります
--------------
宛名
ページ数
合計金額
・・・
品名 繰り返し50 <= 多めにとります
数量 繰り返し50
・・・
金額 繰り返し50
--------------
レイアウトはリストではなくフォームで作ります
ヘッダなど「ページ数=1」で非表示にします
※わかりにくかったらごめんなさい<(_ _)>
Last edited by gotani (2019-01-23 17:02:27)
Offline
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 557.63 KiB (Peak: 581.44 KiB) ]