1

0 行または複数行を含むテーブルを持つフォームがあります。問題は、複数の行がある場合、コンテンツが次のページにあふれる前に最初のページでテーブルを閉じたいことです。次に、次のページの残りの行の別の表を、見栄えの良いヘッダーと表の見出しと共に作成します。難しいのは、文字の幅が異なり、ユーザーが何を入力するかを予測できないため、1 行に収まる文字数とページに収まる行数を計算するのが難しいことです。また、ユーザーが行データの一部に何かを入力すると、2 行目に折り返されます。下部に空白がたくさんあるため、行が数行しかない場合、印刷出力が悪く見えるので、空白行を追加して埋めることを考えていました。しかし、もう一度、私はしません' 次のページにこぼれる前に、入力する必要がある行数を正確に知りません。誰にもこれに対する解決策がありますか?

編集:

申し訳ありません。私が何をしているのかをより明確にするために、CF と HTML を使用して、紙の請求書のように視覚的に模倣するフォーム ビューを作成しました。請求書の項目は、AJAX を介して動的に追加できます。一番上に記入する情報がたくさんあり (会社名、住所など)、真ん中に列見出しのある表に請求書の行があり、その下に署名フィールドを含む記入する情報があります。この形式は要件であるため、変更できません。

したがって、フォームのレイアウトは次のとおりです。

トップセクション(顧客情報やその他の情報を含む情報)

中段(請求明細表)

下部セクション (署名フィールドを含むその他の情報)

ページ上で視覚的に上記のフォーマットが維持され、多くの請求書の項目が追加されている場合、ページはスクロールするだけで、一番下のセクションは最後のままです。

請求書の行は無制限に追加できるため、単純にページを印刷すると、請求書の行が次のページにオーバーフローし、署名を含む「下部情報」が最終ページのどのページにも表示されますが、これは望ましくありません。フォームがオーバーフローせずに最初のページに収まる行数が、署名を含む「下部情報」とともに最初のページに表示されるようにする必要があります。余分な行は、請求書行の表の列見出しとともに、「継続ページ」という見出しが付いた次のページに表示されます。

私の解決策は、入力された情報を含むフォームを作成し、請求書明細クエリを cfloops する「印刷ビュー」を作成することですが、最初のページを埋めるのに十分なだけループします。別の行を追加するとフォームがオーバーフローする場合は、ループを停止し、「下部情報」と署名を含むフォームの残りの部分を表示して、すべてが最初のページにうまく収まるようにし、ヘッダーで改ページを行います。継続ページ」を開き、列ヘッダーと残りの請求書品目を含む請求書品目テーブルを表示します。もちろん、継続ページがオーバーフローする場合は、改ページを行って「継続ページ」プロセスを繰り返す必要があります。各行のデータの長さはユーザーの入力によって異なるため、実際にページに収まる行数を決定する方法は難しい部分です。大量のデータで満たされた 1 行の請求書行だけが、フォームがオーバーフローすることなく最初のページに収まる可能性があります。ほとんどのデータが入力されていない場合は、請求明細行が 10 行になる可能性があります。

私の主な目的は、フォーム全体を最初のページに保持することです。フォームの下部を次のページに押し出す複数の請求書明細項目が追加された場合、フォームを最初のページに保持するのに十分な請求書明細行のみを表示し、残りの請求書明細の継続ページを表示したいと考えています。後続のページには収まりません。

注: 印刷は、別のウィンドウに印刷ビュー ページ (サイトの見出しなどなし) をポップアップ表示するフォーム ページの印刷リンクを介して行われます。そこから、ブラウザーから印刷するか、JavaScript 印刷を行う印刷リンクをクリックすることができます。請求書をきれいに印刷するために作成した同じ「印刷ビュー」は、CFDocument を使用して作成した PDF ビューにも使用されます。1 行あたりの文字数は、生成された PDF では HTML 印刷ビューと同じではないため、収まる行数を判断するのはさらに困難です。

4

1 に答える 1

0

あなたの質問を正しく理解できれば、CFDocument で生成された PDF が最適なソリューションのように思えます。cfdocumentitem タグを使用すると、ヘッダーとフッターを指定できます。これにより、目的のコンテンツが最初のページに確実に表示されるようになります。cfdocument.currentpagenumber 変数を使用して、ページが 1 ページのみに表示され、2 ページ以上のヘッダーに必要な「継続ページ」テキストが表示されるようにすることができます。DDX ファイルを使用して PDF を自動印刷する方法もありますが、これにはセキュリティ上の制限があります。

CFDocument を使用して別の印刷ビューを作成することについて言及されていますが、HTML バージョンも必要な理由についての説明はありませんでした。見逃していたらすみません。

昨年の同様のプロジェクトでの個人的な経験から、これには CSS を使用しないことをお勧めする傾向があり、代わりに PDF リーダーが必要です。私よりもスキルの高い人が簡単に機能させることができた可能性がありますが、それは私たちにとって頭痛の種であり、完全に機能させることはできませんでした.

于 2013-10-02T19:23:47.370 に答える