ActiveReports - 获取数据触发次数过多

ActiveReports - Fetch data firing too many times

我有一份主报告和一份子报告。

//主报表调用子报表

DataView dvDetails = new DataView(_dtDetails); // _dtDetails is a datatable
rptSubHistory rptSubHistory = new rptSubHistory(dvDetails);
rptSubHistory.DataSource = dvDetails;
subHistory.Report = rptSubHistory;

// 从子报表中获取数据

public void rptSubHistory_FetchData(object sender, GrapeCity.ActiveReports.SectionReport.FetchEventArgs eArgs)
  {
       _intRecordCount++;
  }

// 子报告的详细格式

 public void Detail_Format(object sender, System.EventArgs eArgs)
  {
      if (_dvDetails.Count > 0)
      {
          txtColumn.Text = _dvDetails.Table.Rows[_intRecordCount]["ColumnName"].ToString();
          txtOrigValue.Text = _dvDetails.Table.Rows[_intRecordCount]["OrigValue"].ToString();
          txtNewValue.Text = _dvDetails.Table.Rows[_intRecordCount]["CurrentValue"].ToString();
      }
  }

我遇到的问题是,当主报表调用子报表时,从子报表中获取数据会遍历自身,数据源包含的确切计数。希望这是有道理的。因此,例如,dvDetails 的计数为 32。当从子报表中获取数据时,它会在自身上迭代 32 次并且从不触及 Detail_Format。是什么导致了这种行为。上周这很有效。它会点击 FetchData,然后点击详细格式以生成一个订单项,冲洗重复。

从设计方面的事件属性我 "FetchData" 指向上面列出的获取数据。任何帮助表示赞赏。

我解决了我遇到的问题。显然,只需将数据视图指定为子报表的数据源就足够了。在子报告的数据文件 属性 中,我将 DV 的列名指定为值。并从子报告中一起删除了 fetchdata 和 detailFormat 函数。因为我在 DV 中已经有了我需要的值,所以它会自动填充。