データを入力しているときに完全に正常に表示されるレポートがあります。複雑なチャート、テーブル、および大量のデータ (約 20,000 のメモリ オブジェクト) があります。一部のデータ計算用に for ループを追加するまで、レポートは完全に正常に表示されました。for ループは次のとおりです。
public void InsertLineBreaks(List<LineChart> inputList, int sampleInterval)
{
List<LineChart> breaklinesList = new List<LineChart> { };
for (int i = 1; i <= inputList.Count; i++)
{
if ((inputList[i].X - inputList[i - 1].X).TotalMinutes > sampleInterval)
{
LineChart breakline = inputList[i];
breakline.BreakLine = 1;
breaklinesList.Add(breakline);
}
inputList.AddRange(breaklinesList);
}
このコードは基本的に、すべてのデータの間隔が同じかどうかをチェックします。それ以外の場合はブレークラインを追加します。このコードを追加すると、レポート ビューアーはエラーやレポート コントロール (次へ、印刷、エクスポートなどのボタン) なしで空白のページを直接表示します。ただし、このコードをコメントアウトすると、レポートは問題なく正常に生成されます。
コードのデバッグを試み、データ ソースにブレークポイントを設定しました。reportviewer がまだ実行されていて、ブレークポイントがあるにもかかわらず空白のページが表示されることに驚きました。明らかに、データはバインドされていないため、レポート ビューアーは空白になっています。
reportviewer が割り当てられたメモリを超えていると思われるため、コードとデータ バインディングをスキップし、空白のページを出力します。誰でも助けることができますか?