質問

ネブローナデザインズ 絶賛レポート が使用するレポート エンジンです。 エンバカデロの デルフィ IDE。

これを私は Rave の無限ループ バグと呼んでいます。Delphi 2006にバンドルされたRave Reportsバージョン6.5.0(VCL10)には、多くのRave Report Developersを悩ませる無知なバグがあります。空ではないデータセットがあり、このデータセットのデータ行がページに正確に適合する場合(つまり、未亡人の行がありません)、PrintPreviewでは、Raveは無限のループ生成ページに閉じ込められます。

この問題は、次の見出しの下でこのニュースグループで以前に報告されています。

  1. "エラー:無限のページを生成します";ヒューゴ・ハイラム 2006/9/20 8:44PM
  2. 「レイヴループのバグ。助けてください";トーマス・ラザール 11/07/2006 7:35PM
  3. "データのページ全体をループしますか?";トニー・チスティアンセン 2004/12/23 15:41
  4. (3) に対する別の申立人による回答。オリバー・ピッシュ
  5. 「エンドレスロッププリントバグ」;リクソ 2004/9/11 4:44PM

これらの各投稿では、ネブロナからの応答はなく、解決策は報告されていません。

おそらく、この問題は、Allied NewsGroup(nevrona.public.rave.reports.general)でも報告されています。6.「継続的にレポートを生成」;Jobard 20/11/2005ただし、(6)が絶え間ないループバグまたは別の問題であるかどうかは明らかではありません。この投稿はネブロナから返信を受け取りましたが、ゼロの未亡人の問題よりも、複数の地域(「ページブレイクを超える複数の領域を使用する場合に問題があります」に関してより多くのものでした。

役に立ちましたか?

解決

これは真の解決策というよりは、むしろ回避策です。私は最初にこの回避策を Nevrona ニュースグループ (Group=nevrona.public.rave.developer.delphi.rave;Subject="Rave の無限ループのバグに悩まされていませんか?:回避策が発表されました。";日付=2006/11/13 午後 7:06)

それで、これが私の解決策です。それは良い長期的な解決策というよりも仕事の方が多いため、ネブロナがこの問題に近い将来に深刻な注意を払うことを願っています。

  1. 特定のレポートレイアウトを考えると、ページあたりの行の最大数をカウントします。これが40だとしましょう。
  2. (レポート全体内の行ではなく) ページ内の行を数えるカウンターを設定します。これは、イベント スクリプトまたは CalcTotal コンポーネントによって実行できます。
  3. メイン データ バンドの OnBeforePrint スクリプト イベント ハンドラーを定義します。
  4. このイベント ハンドラーでは、ページあたりの行数が最大値 (この例では 38) より 1 または 2 少ない場合に、メイン データ バンドの FinishNewPage プロパティを True に設定します。それ以外の場合はすべて False に設定します。この結果、すべてのページにゼロ以外のウィドウ数 (この場合は 1..38) が与えられ、Rave の無限ループ問題を引き起こす状態が回避されます。

他のヒント

ショーンさん、本当にありがとうございます。残念ながら、これは私にとってはうまくいきませんでしたが、別の解決策を思いつきました...領域の上部にメモがあり、ユーザーがデータベースに残したメモの数に応じて拡大または縮小する可能性があります。これは、1 ページに収まる行数が異なることを意味します。しかし。別の解決策があります。データバンドの MaxHeightLeft プロパティを使用します。データバンドの高さを測定し、2 を掛けて、これを MaxHeightLeft プロパティに設定するだけです。これにより、ページがいっぱいになると、1 つまたは 2 つのレコードが次のページに強制的に移動されます。

どうもありがとうございます。このスレッドは、Nevrona Rave の無限印刷ループの問題から私を助けてくれます。...、MinHeightLeft を 0,500 に設定しました。この設定は機能しますが、他の結果セットで機能するかどうかはわかりません。クエリレポート。

マスター、解決策は0,500からMinHeightLeftです。2番目の印刷でループを生成したプロパティWasteFitエリアを使用して、2番目の印刷でループを生成しましたが、プロパティMineightLeftを0,500に変更すると、エラーが消滅します。

ありがとう !

Atte Fabiola Herrera。Fabi_ucv@hotmail.com

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top