0 行または複数行を含むテーブルを持つフォームがあります。問題は、複数の行がある場合、コンテンツが次のページにあふれる前に最初のページでテーブルを閉じたいことです。次に、次のページの残りの行の別の表を、見栄えの良いヘッダーと表の見出しと共に作成します。難しいのは、文字の幅が異なり、ユーザーが何を入力するかを予測できないため、1 行に収まる文字数とページに収まる行数を計算するのが難しいことです。また、ユーザーが行データの一部に何かを入力すると、2 行目に折り返されます。下部に空白がたくさんあるため、行が数行しかない場合、印刷出力が悪く見えるので、空白行を追加して埋めることを考えていました。しかし、もう一度、私はしません' 次のページにこぼれる前に、入力する必要がある行数を正確に知りません。誰にもこれに対する解決策がありますか?
編集:
申し訳ありません。私が何をしているのかをより明確にするために、CF と HTML を使用して、紙の請求書のように視覚的に模倣するフォーム ビューを作成しました。請求書の項目は、AJAX を介して動的に追加できます。一番上に記入する情報がたくさんあり (会社名、住所など)、真ん中に列見出しのある表に請求書の行があり、その下に署名フィールドを含む記入する情報があります。この形式は要件であるため、変更できません。
したがって、フォームのレイアウトは次のとおりです。
トップセクション(顧客情報やその他の情報を含む情報)
中段(請求明細表)
下部セクション (署名フィールドを含むその他の情報)
ページ上で視覚的に上記のフォーマットが維持され、多くの請求書の項目が追加されている場合、ページはスクロールするだけで、一番下のセクションは最後のままです。
請求書の行は無制限に追加できるため、単純にページを印刷すると、請求書の行が次のページにオーバーフローし、署名を含む「下部情報」が最終ページのどのページにも表示されますが、これは望ましくありません。フォームがオーバーフローせずに最初のページに収まる行数が、署名を含む「下部情報」とともに最初のページに表示されるようにする必要があります。余分な行は、請求書行の表の列見出しとともに、「継続ページ」という見出しが付いた次のページに表示されます。
私の解決策は、入力された情報を含むフォームを作成し、請求書明細クエリを cfloops する「印刷ビュー」を作成することですが、最初のページを埋めるのに十分なだけループします。別の行を追加するとフォームがオーバーフローする場合は、ループを停止し、「下部情報」と署名を含むフォームの残りの部分を表示して、すべてが最初のページにうまく収まるようにし、ヘッダーで改ページを行います。継続ページ」を開き、列ヘッダーと残りの請求書品目を含む請求書品目テーブルを表示します。もちろん、継続ページがオーバーフローする場合は、改ページを行って「継続ページ」プロセスを繰り返す必要があります。各行のデータの長さはユーザーの入力によって異なるため、実際にページに収まる行数を決定する方法は難しい部分です。大量のデータで満たされた 1 行の請求書行だけが、フォームがオーバーフローすることなく最初のページに収まる可能性があります。ほとんどのデータが入力されていない場合は、請求明細行が 10 行になる可能性があります。
私の主な目的は、フォーム全体を最初のページに保持することです。フォームの下部を次のページに押し出す複数の請求書明細項目が追加された場合、フォームを最初のページに保持するのに十分な請求書明細行のみを表示し、残りの請求書明細の継続ページを表示したいと考えています。後続のページには収まりません。
注: 印刷は、別のウィンドウに印刷ビュー ページ (サイトの見出しなどなし) をポップアップ表示するフォーム ページの印刷リンクを介して行われます。そこから、ブラウザーから印刷するか、JavaScript 印刷を行う印刷リンクをクリックすることができます。請求書をきれいに印刷するために作成した同じ「印刷ビュー」は、CFDocument を使用して作成した PDF ビューにも使用されます。1 行あたりの文字数は、生成された PDF では HTML 印刷ビューと同じではないため、収まる行数を判断するのはさらに困難です。