Пример #1
0
        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;
            }
            }
        }
Пример #2
0
        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;
        }