internal void MoveFirst(TBandMoveType MoveType) { if (DataSource != null) { DataSource.First(); } if (MoveType == TBandMoveType.Alone) { return; } TBandMoveType NewMoveType = MoveType; if (MoveType == TBandMoveType.DirectChildren) { NewMoveType = TBandMoveType.Alone; } for (int i = 0; i < DetailBands.Count; i++) { TFlexCelDataSource fs = DetailBands[i].DataSource; if (fs != null) { fs.MoveMasterRecord(); } DetailBands[i].MoveFirst(NewMoveType); } }
internal void MoveNext(TBandMoveType MoveType) { if (DataSource == null) { return; } DataSource.Next(); if (MoveType == TBandMoveType.Alone) { return; } TBandMoveType NewMoveType = MoveType; if (MoveType == TBandMoveType.DirectChildren) { NewMoveType = TBandMoveType.Alone; } for (int i = 0; i < DetailBands.Count; i++) { TFlexCelDataSource fs = DetailBands[i].DataSource; if (fs != null) { fs.MoveMasterRecord(); } DetailBands[i].MoveFirst(NewMoveType); //Detail bands return to first record when moving the parent. } }
internal TBand(TFlexCelDataSource aDataSource, TBand aMasterBand, TXlsCellRange aCellRange, string aName, TBandType aBandType, bool aDeleteLastRow, string aDataSourceName) : this(aDataSource, aMasterBand, aMasterBand, aCellRange, aName, aBandType, aDeleteLastRow, aDataSourceName) { //On an normal band, Searchband=Masterband. The only case this doesn't happen is on Sheet bands, //where we search on all other sheets but they are not in master/detail relationship. }
internal TBand(TFlexCelDataSource aDataSource, TBand aMasterBand, TBand aSearchBand, TXlsCellRange aCellRange, string aName, TBandType aBandType, bool aDeleteLastRow, string aDataSourceName) { FDataSource = aDataSource; FMasterBand = aMasterBand; FSearchBand = aSearchBand; FDetailBands = new TBandList(); if (aCellRange != null) { FCellRange = (TXlsCellRange)aCellRange.Clone(); } else { FCellRange = null; } FBandType = aBandType; FName = aName; FDataSourceName = aDataSourceName; FDeleteLastRow = aDeleteLastRow; }