diff --git a/SAV/SAV_Database.Designer.cs b/SAV/SAV_Database.Designer.cs index e1d91b24d..28000fa6b 100644 --- a/SAV/SAV_Database.Designer.cs +++ b/SAV/SAV_Database.Designer.cs @@ -930,7 +930,8 @@ private void InitializeComponent() // this.Menu_Report.Name = "Menu_Report"; this.Menu_Report.Size = new System.Drawing.Size(176, 22); - this.Menu_Report.Text = "Box Data Report"; + this.Menu_Report.Text = "Create Data Report"; + this.Menu_Report.Click += new System.EventHandler(this.generateDBReport); // // P_Results // diff --git a/SAV/SAV_Database.cs b/SAV/SAV_Database.cs index 1ef5681c4..65e30a89b 100644 --- a/SAV/SAV_Database.cs +++ b/SAV/SAV_Database.cs @@ -88,7 +88,8 @@ public SAV_Database(Main f1) // Fetch from save file for (int i = 0; i < 930; i++) { - PK6 pk6 = new PK6(PKX.decryptArray(Main.savefile.Skip(Main.SaveGame.Box + 0xE8*i).Take(0xE8).ToArray()), "Boxes"); + string Identifier = String.Format("B{0}:{1}", (i / 30 + 1).ToString("00"), (i % 30 + 1).ToString("00")); + PK6 pk6 = new PK6(PKX.decryptArray(Main.savefile.Skip(Main.SaveGame.Box + 0xE8*i).Take(0xE8).ToArray()), Identifier); if (pk6.Species != 0) Database[0].Slot.Add(pk6); } @@ -199,6 +200,16 @@ private void resetFilters(object sender, EventArgs e) CB_GameOrigin.SelectedIndex = 0; CB_Generation.SelectedIndex = 0; } + private void generateDBReport(object sender, EventArgs e) + { + if (Util.Prompt(MessageBoxButtons.YesNoCancel, "Generate a Report on all data?", "This may take a while...") + != DialogResult.Yes) + return; + + frmReport ReportForm = new frmReport(); + ReportForm.Show(); + ReportForm.PopulateData(Results.ToArray()); + } // IO Usage private class DatabaseList diff --git a/SAV/frmReport.cs b/SAV/frmReport.cs index eb8217d58..552d1949a 100644 --- a/SAV/frmReport.cs +++ b/SAV/frmReport.cs @@ -151,6 +151,24 @@ public void PopulateData(byte[] InputData, int BoxDataOffset) } BoxBar.Visible = false; } + public void PopulateData(PK6[] data) + { + BoxBar.Step = 1; + PokemonList PL = new PokemonList(); + foreach (PK6 p in data) + PL.Add(new Preview(p)); + + dgData.DataSource = PL; + dgData.AutoGenerateColumns = true; + BoxBar.Maximum = data.Length + dgData.Columns.Count; + for (int i = 0; i < dgData.Columns.Count; i++) + { + BoxBar.PerformStep(); + if (dgData.Columns[i] is DataGridViewImageColumn) continue; // Don't add sorting for Sprites + dgData.Columns[i].SortMode = DataGridViewColumnSortMode.Automatic; + } + BoxBar.Visible = false; + } private void promptSaveCSV(object sender, FormClosingEventArgs e) { if (Util.Prompt(MessageBoxButtons.YesNo,"Save all the data to CSV?") == DialogResult.Yes)