Implement Create Data Report

Required adding a pre-filtered method to the report form in order to
process data.

Probably gonna end up with stupid identifiers stretching everything, but
at least it shows where everything is. Best to export to a csv table
anyway.
This commit is contained in:
Kurt
2015-10-10 18:29:02 -07:00
parent 03900d1414
commit 805300a41d
3 changed files with 32 additions and 2 deletions

View File

@@ -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
//

View File

@@ -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

View File

@@ -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)