void printDocument_BeginPrint(object sender, PrintEventArgs e) { currentPrintRecord = 0; currentPage = 0; switch (printType) { case PrintType.CDList: { cdQuery = dataBase.ExecuteCDQuery(); CDView = new CDDataView(dataBase, cdQuery, printFilter, cdSortFields, cdListFields.GetFields()); break; } case PrintType.DetailList: { cdQuery = dataBase.ExecuteCDQuery(); DataView view = dataBase.GetCDQueryView(cdQuery, detailListFields, printFilter, cdSortFields); queryTable = view.ToTable(); break; } case PrintType.DetailListWithTracks: { cdQuery = dataBase.ExecuteCDQuery(); CDView = new CDDataView(dataBase, cdQuery, printFilter, cdSortFields); break; } case PrintType.TrackList: { cdQuery = dataBase.ExecuteTrackQuery(); TrackView = new TrackDataView(dataBase, cdQuery, printFilter, trackSortFields); break; } } }
void bwAlbumView_DoWork(object sender, DoWorkEventArgs e) { TrackDataView TrackView; CDQuery = DataBase.ExecuteTrackQuery(); // Hier die Felder auflisten, die ich für die Albumansicht brauche FieldCollection fc = new FieldCollection(); fc.AddRange(new Field[] { Field.ArtistCDName, Field.ArtistCDSaveAs, Field.Title, Field.CDCoverFront, Field.Category, Field.ArchiveNumber, Field.YearRecorded, Field.TrackNumber, Field.TrackTitle, Field.TrackLength, Field.TrackRating, Field.ArtistTrackName, Field.ComposerTrackName, Field.TrackSoundFile }); SortFieldCollection sfc = new SortFieldCollection(); sfc.Add(Field.ArtistCDSaveAs); sfc.Add(Field.Title); sfc.Add(Field.CDID); sfc.Add(Field.TrackNumber); TrackView = new TrackDataView(DataBase, CDQuery, Condition, sfc, fc); int count = 0; List <AlbumViewItem> items = new List <AlbumViewItem>(); AlbumViewItem newItem = null; string lastArtist = ""; string lastTitle = ""; int lastcdid = 0; for (int row = 0; row < TrackView.Rows.Count; row++) { string artistDisplay = TrackView.GetRowStringValue(row, Field.ArtistCDName); string artist = TrackView.GetRowStringValue(row, Field.ArtistCDSaveAs); string title = TrackView.GetRowStringValue(row, Field.Title); int cdid = TrackView.GetCDID(row); if (artist != lastArtist || title != lastTitle || cdid != lastcdid) { if (newItem != null) { items.Add(newItem); } newItem = new AlbumViewItem(); newItem.ID = cdid; newItem.Artist = artistDisplay; newItem.Title = title; newItem.ImageFilename = TrackView.GetRowStringValue(row, Field.CDCoverFront); newItem.Genre = TrackView.GetRowStringValue(row, Field.Category); newItem.ArchiveNumber = TrackView.GetRowStringValue(row, Field.ArchiveNumber); int yearRecorded = (int)TrackView.GetRowRawValue(row, Field.YearRecorded); if (yearRecorded > 0) { newItem.Year = yearRecorded.ToString(); } newItem.Tracks = new List <Track>(); lastArtist = artist; lastTitle = title; } if (newItem != null) { Track track = new Track(); track.TrackNumber = (int)TrackView.GetRowRawValue(row, Field.TrackNumber); track.Title = TrackView.GetRowStringValue(row, Field.TrackTitle); track.Length = (int)TrackView.GetRowRawValue(row, Field.TrackLength); track.Rating = (int)TrackView.GetRowRawValue(row, Field.TrackRating); track.Artist = TrackView.GetRowStringValue(row, Field.ArtistTrackName); track.Composer = TrackView.GetRowStringValue(row, Field.ComposerTrackName); track.Soundfile = TrackView.GetRowStringValue(row, Field.TrackSoundFile); track.ID = TrackView.GetTrackID(row); newItem.Tracks.Add(track); } //toolStripStatusProgressBar.Value = (int)(100.0 / TrackView.Rows.Count * count); count++; lastcdid = cdid; } if (newItem != null) { items.Add(newItem); } e.Result = items; }