public PageRecord(PageRecordList owner, int startNo, int fieldCount, FieldList sortFields)
 {
     _owner               = owner;
     StartRecordNo        = startNo;
     StartColumnSummaries = new ColumnSummary[sortFields.Count];
     for (int i = 0; i < StartColumnSummaries.Length; i++)
     {
         StartColumnSummaries[i] = new ColumnSummary(sortFields[i].Index, fieldCount);
     }
     EndColumnSummaries = new ColumnSummary[sortFields.Count];
     for (int i = 0; i < EndColumnSummaries.Length; i++)
     {
         EndColumnSummaries[i] = new ColumnSummary(sortFields[i].Index, fieldCount);
     }
     StartSummaryKeys = new Variant[fieldCount];
     EndSummaryKeys   = new Variant[fieldCount];
 }
 public PageRecord(PageRecordList owner, int startNo, int fieldCount, FieldList sortFields, Variant[] keys, ColumnSummary[] sums)
     : this(owner, startNo, fieldCount, sortFields)
 {
     if (sums != null)
     {
         for (int k = 0; k < StartColumnSummaries.Length; k++)
         {
             sums[k].ColumnSummaries.CopyTo(StartColumnSummaries[k].ColumnSummaries, 0);
             sums[k].ColumnSummaries.CopyTo(EndColumnSummaries[k].ColumnSummaries, 0);
             //
             sums[k].ColumnRecordCount.CopyTo(StartColumnSummaries[k].ColumnRecordCount, 0);
             sums[k].ColumnRecordCount.CopyTo(EndColumnSummaries[k].ColumnRecordCount, 0);
         }
     }
     if (keys != null)
     {
         keys.CopyTo(StartSummaryKeys, 0);
         keys.CopyTo(EndSummaryKeys, 0);
     }
 }