private void buttonExtExcel_Click(object sender, EventArgs e) { if (dataGridViewRoute.Rows.Count == 0) { ExtendedControls.MessageBoxTheme.Show(FindForm(), "No Route Plotted", "Route", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } Forms.ExportForm frm = new Forms.ExportForm(); frm.Init(new string[] { "All" }, disablestartendtime: true); if (frm.ShowDialog(FindForm()) == DialogResult.OK) { BaseUtils.CSVWriteGrid grd = new BaseUtils.CSVWriteGrid(); grd.SetCSVDelimiter(frm.Comma); grd.GetLineStatus += delegate(int r) { if (r < dataGridViewRoute.Rows.Count) { return(BaseUtils.CSVWriteGrid.LineStatus.OK); } else { return(BaseUtils.CSVWriteGrid.LineStatus.EOF); } }; grd.GetLine += delegate(int r) { DataGridViewRow rw = dataGridViewRoute.Rows[r]; return(new Object[] { rw.Cells[0].Value, rw.Cells[1].Value, rw.Cells[2].Value, rw.Cells[3].Value, rw.Cells[4].Value, rw.Cells[5].Value, rw.Cells[6].Value }); }; grd.GetHeader += delegate(int c) { return((c < dataGridViewRoute.Columns.Count) ? dataGridViewRoute.Columns[c].HeaderText : null); }; grd.WriteGrid(frm.Path, frm.AutoOpen, FindForm()); } }
private void buttonExtExcel_Click(object sender, EventArgs e) { var current_mc = discoveryform.history.CashLedger; if (current_mc != null) { Forms.ExportForm frm = new Forms.ExportForm(); frm.Init(false, new string[] { "Export Current View" }, showflags: new Forms.ExportForm.ShowFlags[] { Forms.ExportForm.ShowFlags.DisableDateTime }); if (frm.ShowDialog(this.FindForm()) == DialogResult.OK) { BaseUtils.CSVWriteGrid grd = new BaseUtils.CSVWriteGrid(); grd.SetCSVDelimiter(frm.Comma); grd.GetHeader += delegate(int c) { return((frm.IncludeHeader && c < dataGridViewLedger.ColumnCount) ? dataGridViewLedger.Columns[c].HeaderText : null); }; grd.GetLine += delegate(int r) { if (r < dataGridViewLedger.RowCount) { DataGridViewRow rw = dataGridViewLedger.Rows[r]; return(new Object[] { rw.Cells[0].Value, rw.Cells[1].Value, rw.Cells[2].Value, rw.Cells[3].Value, rw.Cells[4].Value, rw.Cells[5].Value, rw.Cells[6].Value }); } else { return(null); } }; grd.WriteGrid(frm.Path, frm.AutoOpen, FindForm()); } } else { ExtendedControls.MessageBoxTheme.Show(this.FindForm(), "No Ledger available".T(EDTx.UserControlLedger_NOLG), "Warning".T(EDTx.Warning), MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void buttonExtExcel_Click(object sender, EventArgs e) { Forms.ExportForm frm = new Forms.ExportForm(); frm.Init(new string[] { "Export Current View", "Export as Journals" }, outputext: new string[] { "CSV export| *.csv", "Journal Export|*.log" }); if (frm.ShowDialog(this.FindForm()) == DialogResult.OK) { if (frm.SelectedIndex == 1) { try { using (StreamWriter writer = new StreamWriter(frm.Path)) { foreach (DataGridViewRow dgvr in dataGridViewJournal.Rows) { HistoryEntry he = dgvr.Tag as HistoryEntry; if (dgvr.Visible && he.EventTimeUTC.CompareTo(frm.StartTimeUTC) >= 0 && he.EventTimeUTC.CompareTo(frm.EndTimeUTC) <= 0) { string forExport = he.journalEntry.GetJsonString().Replace("\r\n", ""); if (forExport != null) { forExport = System.Text.RegularExpressions.Regex.Replace(forExport, "(\"(?:[^\"\\\\]|\\\\.)*\")|\\s+", "$1"); writer.Write(forExport); writer.WriteLine(); } } } } if (frm.AutoOpen) { try { System.Diagnostics.Process.Start(frm.Path); } catch { ExtendedControls.MessageBoxTheme.Show(FindForm(), "Failed to open " + frm.Path, "Warning".Tx(), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } } catch { ExtendedControls.MessageBoxTheme.Show(this.FindForm(), "Failed to write to " + frm.Path, "Export Failed", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } else { BaseUtils.CSVWriteGrid grd = new BaseUtils.CSVWriteGrid(); grd.SetCSVDelimiter(frm.Comma); grd.GetLineStatus += delegate(int r) { if (r < dataGridViewJournal.Rows.Count) { HistoryEntry he = dataGridViewJournal.Rows[r].Tag as HistoryEntry; return((dataGridViewJournal.Rows[r].Visible && he.EventTimeUTC.CompareTo(frm.StartTimeUTC) >= 0 && he.EventTimeUTC.CompareTo(frm.EndTimeUTC) <= 0) ? BaseUtils.CSVWriteGrid.LineStatus.OK : BaseUtils.CSVWriteGrid.LineStatus.Skip); } else { return(BaseUtils.CSVWriteGrid.LineStatus.EOF); } }; grd.GetLine += delegate(int r) { DataGridViewRow rw = dataGridViewJournal.Rows[r]; return(new Object[] { rw.Cells[0].Value, rw.Cells[2].Value, rw.Cells[3].Value }); }; grd.GetHeader += delegate(int c) { return((c < 3 && frm.IncludeHeader) ? dataGridViewJournal.Columns[c + ((c > 0) ? 1 : 0)].HeaderText : null); }; grd.WriteGrid(frm.Path, frm.AutoOpen, FindForm()); } } }
private void buttonExtExcel_Click(object sender, EventArgs e) { Forms.ExportForm frm = new Forms.ExportForm(); frm.Init(new string[] { "Export Current View" }); if (frm.ShowDialog(FindForm()) == DialogResult.OK) { if (frm.SelectedIndex == 0) { // 0 1 2 3 4 5 6 7 8 9 10 11 12 string[] colh = { "Time", "System", "Visits", "Other Info", "Scan Value", "Unused", "Body", "Ship", "Description", "Detailed Info", "Travel Dist", "Travel Time", "Travel Jumps", "Travelled MisJumps" }; BaseUtils.CSVWriteGrid grd = new BaseUtils.CSVWriteGrid(); grd.SetCSVDelimiter(frm.Comma); grd.GetLineStatus += delegate(int r) { if (r < dataGridViewStarList.Rows.Count) { HistoryEntry he = dataGridViewStarList.Rows[r].Tag as HistoryEntry; return((dataGridViewStarList.Rows[r].Visible && he.EventTimeUTC.CompareTo(frm.StartTimeUTC) >= 0 && he.EventTimeUTC.CompareTo(frm.EndTimeUTC) <= 0) ? BaseUtils.CSVWriteGrid.LineStatus.OK : BaseUtils.CSVWriteGrid.LineStatus.Skip); } else { return(BaseUtils.CSVWriteGrid.LineStatus.EOF); } }; grd.GetLine += delegate(int r) { HistoryEntry he = dataGridViewStarList.Rows[r].Tag as HistoryEntry; DataGridViewRow rw = dataGridViewStarList.Rows[r]; he.journalEntry.FillInformation(out string EventDescription, out string EventDetailedInfo); return(new Object[] { rw.Cells[0].Value, rw.Cells[1].Value, rw.Cells[2].Value, rw.Cells[3].Value, rw.Cells[4].Value, "", he.WhereAmI, he.ShipInformation != null ? he.ShipInformation.Name : "Unknown", EventDescription, EventDetailedInfo, he.isTravelling ? he.TravelledDistance.ToString("0.0") : "", he.isTravelling ? he.TravelledSeconds.ToString() : "", he.isTravelling ? he.Travelledjumps.ToString() : "", he.isTravelling ? he.TravelledMissingjump.ToString() : "", }); }; grd.GetHeader += delegate(int c) { return((c < colh.Length && frm.IncludeHeader) ? colh[c] : null); }; grd.WriteGrid(frm.Path, frm.AutoOpen, FindForm()); } } }
private void buttonExtExcel_Click(object sender, EventArgs e) { if (last_si != null) { Forms.ExportForm frm = new Forms.ExportForm(); frm.Init(new string[] { "Export Current View" }, disablestartendtime: true, allowRawJournalExport: false); if (frm.ShowDialog(this.FindForm()) == DialogResult.OK) { BaseUtils.CSVWriteGrid grd = new BaseUtils.CSVWriteGrid(); grd.SetCSVDelimiter(frm.Comma); grd.GetPreHeader += delegate(int r) { if (r == 0) { return new Object[] { last_si.ShipUserName ?? "", last_si.ShipUserIdent ?? "", last_si.ShipType ?? "", last_si.ID } } ; else if (r == 1) { return new Object[] { } } ; else { return(null); } }; grd.GetHeader += delegate(int c) { return((frm.IncludeHeader && c < dataGridViewModules.ColumnCount) ? dataGridViewModules.Columns[c].HeaderText : null); }; grd.GetLine += delegate(int r) { if (r < dataGridViewModules.RowCount) { DataGridViewRow rw = dataGridViewModules.Rows[r]; return(new Object[] { rw.Cells[0].Value, rw.Cells[1].Value, rw.Cells[2].Value, rw.Cells[3].Value, rw.Cells[4].Value, rw.Cells[5].Value, rw.Cells[6].Value, rw.Cells[7].Value }); } else { return(null); } }; var x = discoveryform.history.shipinformationlist.Ships.GetEnumerator(); x.MoveNext(); grd.GetPostHeader += delegate(int r) { if (r == 0) { return new Object[] { } } ; else if (r == 1) { return new Object[] { "Ships:" } } ; while (x.MoveNext()) { if (x.Current.Value.State == ShipInformation.ShipState.Owned) { return new Object[] { x.Current.Value.ShipFullInfo() } } ; } return(null); }; grd.WriteGrid(frm.Path, frm.AutoOpen, FindForm()); } } else { ExtendedControls.MessageBoxTheme.Show(this.FindForm(), "No Ship Information available".T(EDTx.UserControlModules_NOSI), "Warning".T(EDTx.Warning), MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
private void buttonExtExcel_Click(object sender, EventArgs e) { Forms.ExportForm frm = new Forms.ExportForm(); frm.Init(new string[] { "All" }, disablestartendtime: true); if (frm.ShowDialog(FindForm()) == DialogResult.OK) { BaseUtils.CSVWriteGrid grd = new BaseUtils.CSVWriteGrid(); grd.SetCSVDelimiter(frm.Comma); var found = ReadHistory(out int prospectorsused, out int collectorsused, out int asteroidscracked, out int prospected, out int[] content); grd.GetPreHeader += delegate(int r) { if (r == 0) { return new Object[] { "Limpets left ", limpetsleftdisplay, "Prospectors Fired", prospectorsused, "Collectors Deployed", collectorsused } } ; else if (r == 1) { return(new object[0]); } else { return(null); } }; grd.GetSetsPad = delegate(int s, int r) { return(r < 2 ? new object[0] : null); }; { grd.GetSetsHeader.Add(delegate(int s, int r) { if (r == 0) { return new object[] { "", "Ref.", "Coll.", "Pros", "Ratio%", "Avg%", "Min%", "Max%", "M.Load", "High Ct", "Med Ct", "Low Ct", "Discv" } } ; else { return(null); } }); grd.GetSetsData.Add(delegate(int s, int r) { if (r == 0) { return(new object[] { "", "", "", prospected.ToString("N0"), "", "", "", "", "", content[0].ToString("N0"), content[1].ToString("N0"), content[2].ToString("N0") }); } else if (r <= found.Count) { MaterialsFound f = found[r - 1]; return(new object[] { f.friendlyname, f.amountrefined, f.amountcollected - f.amountdiscarded, f.prospectednoasteroids > 0 ? f.prospectednoasteroids.ToString("N0") : "", f.prospectednoasteroids > 0 ? (100.0 * (double)f.prospectednoasteroids / prospected).ToString("N1") : "", f.prospectednoasteroids > 0 ? f.prospectedamounts.Average().ToString("N1") : "", f.prospectednoasteroids > 0 ? f.prospectedamounts.Min().ToString("N1") : "", f.prospectednoasteroids > 0 ? f.prospectedamounts.Max().ToString("N1") : "", f.motherloadasteroids > 0 ? f.motherloadasteroids.ToString("N0") : "", f.prospectednoasteroids > 0 ? f.content[0].ToString("N0") :"", f.prospectednoasteroids > 0 ? f.content[1].ToString("N0") : "", f.prospectednoasteroids > 0 ? f.content[2].ToString("N0") : "", f.discovered ? "*" : "" }); } else { return(null); } }); } var prosmat = found.Where(x => x.prospectednoasteroids > 0).ToList(); { grd.GetSetsHeader.Add(delegate(int s, int r) { if (r == 0) { Object[] ret = new object[prosmat.Count + 1]; ret[0] = "CDFb"; for (int i = 0; i < prosmat.Count; i++) { ret[i + 1] = prosmat[i].friendlyname; } return(ret); } else { return(null); } }); grd.GetSetsData.Add(delegate(int s, int r) { if (r < CFDbMax) { Object[] ret = new object[prosmat.Count + 1]; int percent = r; ret[0] = percent.ToString("N0") + "%"; for (int m = 0; m < prosmat.Count; m++) { if (prosmat[m].prospectednoasteroids > 0) { ret[m + 1] = ((double)prosmat[m].prospectedamounts.Count(x => x >= percent) / prosmat[m].prospectednoasteroids * 100.0).ToString("N1"); } else { ret[m + 1] = ""; } } return(ret); } else { return(null); } }); } { const int precol = 4; grd.GetSetsHeader.Add(delegate(int s, int r) { if (r == 0) { Object[] ret = new object[found.Count + precol]; ret[0] = "Event"; ret[1] = "Time"; ret[2] = "Content"; ret[3] = "Motherload"; for (int i = 0; i < prosmat.Count; i++) { ret[i + precol] = prosmat[i].friendlyname; } return(ret); } else { return(null); } }); var proslist = curlist.Where(x => x.EntryType == JournalTypeEnum.ProspectedAsteroid).ToList(); grd.GetSetsData.Add(delegate(int s, int r) { if (r < proslist.Count) { var jp = proslist[r].journalEntry as JournalProspectedAsteroid; Object[] ret = new object[prosmat.Count + precol]; ret[0] = (r + 1).ToString("N0"); ret[1] = jp.EventTimeUTC.ToStringZulu(); ret[2] = jp.Content.ToString(); ret[3] = MaterialCommodityData.GetByFDName(jp.MotherlodeMaterial)?.Name ?? jp.MotherlodeMaterial; for (int m = 0; m < prosmat.Count; m++) { int mi = Array.FindIndex(jp.Materials, x => x.Name == prosmat[m].matnamefd2); if (mi >= 0) { ret[m + precol] = jp.Materials[mi].Proportion.ToString("N2"); } else { ret[m + precol] = ""; } } return(ret); } else { return(null); } }); } grd.WriteGrid(frm.Path, frm.AutoOpen, FindForm()); } }
private void toolStripButtonExport_Click(object sender, EventArgs e) { if (dataGridViewExplore.Rows.Count == 0 || (dataGridViewExplore.Rows.Count == 1 && ((string)dataGridViewExplore[0, 0].Value).IsEmpty())) { ExtendedControls.MessageBoxTheme.Show(FindForm(), "There is no route to export".T(EDTx.UserControlExploration_NoRoute), "Warning".T(EDTx.Warning), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } Forms.ExportForm frm = new Forms.ExportForm(); frm.Init(new string[] { "Route", "Grid" }, disablestartendtime: true, outputext: new string[] { "Text File|*.txt", "CSV export| *.csv" }); if (frm.ShowDialog(FindForm()) == DialogResult.OK) { if (frm.SelectedIndex == 0) // old route export { try { using (StreamWriter writer = new StreamWriter(frm.Path, false)) { for (int i = 0; i < dataGridViewExplore.Rows.Count; i++) { String sysname = (String)dataGridViewExplore[0, i].Value; if (!String.IsNullOrWhiteSpace(sysname)) { writer.WriteLine(sysname); } } } if (frm.AutoOpen) { try { System.Diagnostics.Process.Start(frm.Path); } catch { ExtendedControls.MessageBoxTheme.Show(FindForm(), "Failed to open " + frm.Path, "Warning".Tx(), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } } catch (IOException) { ExtendedControls.MessageBoxTheme.Show(FindForm(), string.Format("Error exporting route. Is file {0} open?".T(EDTx.UserControlExploration_ErrorW), frm.Path), "Warning".T(EDTx.Warning), MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } else { BaseUtils.CSVWriteGrid grd = new BaseUtils.CSVWriteGrid(); grd.SetCSVDelimiter(frm.Comma); grd.GetLineStatus += delegate(int r) { if (r < dataGridViewExplore.Rows.Count) { return(BaseUtils.CSVWriteGrid.LineStatus.OK); } else { return(BaseUtils.CSVWriteGrid.LineStatus.EOF); } }; grd.GetLine += delegate(int r) { DataGridViewRow rw = dataGridViewExplore.Rows[r]; return(new Object[] { rw.Cells[0].Value, rw.Cells[1].Value, rw.Cells[2].Value, rw.Cells[3].Value, rw.Cells[4].Value, rw.Cells[5].Value, rw.Cells[6].Value, rw.Cells[7].Value, rw.Cells[8].Value, rw.Cells[9].Value, rw.Cells[10].Value }); }; grd.GetHeader += delegate(int c) { return((c < 3 && frm.IncludeHeader) ? dataGridViewExplore.Columns[c].HeaderText : null); }; grd.WriteGrid(frm.Path, frm.AutoOpen, FindForm()); } } }
private void extButtonExcel_Click(object sender, EventArgs e) { Forms.ExportForm frm = new Forms.ExportForm(); frm.Init(new string[] { "Export Current View", "All" }, disablestartendtime: true); if (frm.ShowDialog(this.FindForm()) == DialogResult.OK) { BaseUtils.CSVWriteGrid grd = new BaseUtils.CSVWriteGrid(); grd.SetCSVDelimiter(frm.Comma); grd.GetLineHeader += delegate(int c) { if (c == 0) { return new string[] { "Time", "System", "Body", "Note", "Tags" } } ; else { return(null); } }; if (frm.SelectedIndex == 1) { List <CaptainsLogClass> logs = GlobalCaptainsLogList.Instance.LogEntries; int i = 0; grd.GetLine += delegate(int r) { while (i < logs.Count) { CaptainsLogClass ent = logs[i++]; if (ent.Commander == EDCommander.CurrentCmdrID) { return(new object[] { EDDConfig.Instance.ConvertTimeToSelectedFromUTC(ent.TimeUTC), ent.SystemName, ent.BodyName, ent.Note, ent.Tags }); } } return(null); }; } else { grd.GetLine += delegate(int r) { if (r < dataGridView.RowCount) { DataGridViewRow rw = dataGridView.Rows[r]; CaptainsLogClass ent = rw.Tag as CaptainsLogClass; return(new Object[] { rw.Cells[0].Value, rw.Cells[1].Value, rw.Cells[2].Value, rw.Cells[3].Value, ent.Tags }); } return(null); }; } grd.WriteGrid(frm.Path, frm.AutoOpen, FindForm()); } }
private void toolStripButtonExport_Click(object sender, EventArgs e) { var rt = new SavedRouteClass(); UpdateRouteInfo(rt); if (rt.Systems.Count < 1) { ExtendedControls.MessageBoxTheme.Show(FindForm(), "There is no route to export ".T(EDTx.UserControlExpedition_NoRouteExport), "Warning".T(EDTx.Warning), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } Forms.ExportForm frm = new Forms.ExportForm(); frm.Init(new string[] { "Route", "Grid" }, disablestartendtime: true, outputext: new string[] { "Text File|*.txt", "CSV export| *.csv" }); if (frm.ShowDialog(FindForm()) == DialogResult.OK) { if (frm.SelectedIndex == 0) // old route export { try { using (StreamWriter writer = new StreamWriter(frm.Path, false)) { foreach (var sysname in rt.Systems) { if (!string.IsNullOrWhiteSpace(sysname)) { writer.WriteLine(sysname); } } } if (frm.AutoOpen) { try { System.Diagnostics.Process.Start(frm.Path); } catch { ExtendedControls.MessageBoxTheme.Show(FindForm(), "Failed to open " + frm.Path, "Warning".Tx(), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } } catch { ExtendedControls.MessageBoxTheme.Show(FindForm(), $"Problem exporting route. Is file {frm.Path} already open?", "Export route", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } else { BaseUtils.CSVWriteGrid grd = new BaseUtils.CSVWriteGrid(); grd.SetCSVDelimiter(frm.Comma); grd.GetLineStatus += delegate(int r) { if (r < dataGridViewRouteSystems.Rows.Count) { return(BaseUtils.CSVWriteGrid.LineStatus.OK); } else { return(BaseUtils.CSVWriteGrid.LineStatus.EOF); } }; grd.GetLine += delegate(int r) { DataGridViewRow rw = dataGridViewRouteSystems.Rows[r]; return(new Object[] { rw.Cells[0].Value, rw.Cells[1].Value, rw.Cells[2].Value }); }; grd.GetHeader += delegate(int c) { return((c < 3 && frm.IncludeHeader) ? dataGridViewRouteSystems.Columns[c].HeaderText : null); }; grd.WriteGrid(frm.Path, frm.AutoOpen, FindForm()); } } }
private void buttonExtExcel_Click(object sender, EventArgs e) { if (dataGridViewBookMarks.Rows.Count == 0) { ExtendedControls.MessageBoxTheme.Show(FindForm(), "No data to export", "Export EDSM", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } Forms.ExportForm frm = new Forms.ExportForm(); frm.Init(false, new string[] { "Export Current View" }, showflags: new Forms.ExportForm.ShowFlags[] { Forms.ExportForm.ShowFlags.DisableDateTime }); if (frm.ShowDialog(FindForm()) == DialogResult.OK) { if (frm.SelectedIndex == 0) { string path = frm.Path; //string path = "C:\\code\\f.csv"; // debug BaseUtils.CSVWriteGrid grd = new BaseUtils.CSVWriteGrid(); grd.SetCSVDelimiter(frm.Comma); List <string> colh = new List <string>(); colh.AddRange(new string[] { "Type", "Time", "System/Region", "Note", "X", "Y", "Z", "Planet", "Name", "Comment", "Lat", "Long" }); grd.GetHeader += delegate(int c) { return((c < colh.Count && frm.IncludeHeader) ? colh[c] : null); }; int bkrowno = 0; IEnumerator <Tuple <PlanetMarks.Planet, PlanetMarks.Location> > planetloc = null; System.Diagnostics.Debug.WriteLine("Rows " + dataGridViewBookMarks.Rows.Count); grd.GetLineStatus += delegate(int r) { return(bkrowno < dataGridViewBookMarks.Rows.Count ? BaseUtils.CSVWriteGrid.LineStatus.OK : BaseUtils.CSVWriteGrid.LineStatus.EOF); }; grd.GetLine += delegate(int r) { DataGridViewRow rw = dataGridViewBookMarks.Rows[bkrowno]; BookmarkClass bk = rw.Tag as BookmarkClass; bool firstplanetrow = false; if (planetloc == null && bk.hasPlanetaryMarks) // if not iterating planets, but it has one, iterate { planetloc = bk.PlanetaryMarks.GetEnumerator(); planetloc.MoveNext(); // move to first firstplanetrow = true; } List <Object> retrow = new List <Object> { bk.isRegion ? "Region" : "System", EDDConfig.Instance.ConvertTimeToSelectedFromUTC(bk.TimeUTC).ToStringYearFirst(), bk.isRegion ? bk.Heading : bk.StarName, bk.Note, bk.x.ToString("0.####"), bk.y.ToString("0.####"), bk.z.ToString("0.####"), }; System.Diagnostics.Debug.WriteLine("Export system " + bkrowno + " " + bk.StarName); if (planetloc != null) { var plloc = planetloc.Current; List <Object> planetrow = new List <Object> { plloc.Item1.Name, plloc.Item2.Name, plloc.Item2.Comment, plloc.Item2.IsWholePlanetBookmark ? "" : plloc.Item2.Latitude.ToString("0.##"), plloc.Item2.IsWholePlanetBookmark ? "" : plloc.Item2.Longitude.ToString("0.##"), }; if (!firstplanetrow) { retrow = new List <object>() { "", "", "", "", "", "", "" }; } retrow.AddRange(planetrow); } if (planetloc == null || planetloc.MoveNext() == false) { planetloc = null; bkrowno++; } return(retrow.ToArray()); }; grd.WriteGrid(path, frm.AutoOpen, FindForm()); } } }
public void Excel(int columnsout) { if (Rows.Count == 0) { ExtendedControls.MessageBoxTheme.Show(FindForm(), "No data to export", "Export EDSM", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } Forms.ExportForm frm = new Forms.ExportForm(); frm.Init(new string[] { "Export Current View" }, disablestartendtime: true); if (frm.ShowDialog(FindForm()) == DialogResult.OK) { if (frm.SelectedIndex == 0) { BaseUtils.CSVWriteGrid grd = new BaseUtils.CSVWriteGrid(); grd.SetCSVDelimiter(frm.Comma); grd.GetLineStatus += delegate(int r) { if (r < Rows.Count) { return(BaseUtils.CSVWriteGrid.LineStatus.OK); } else { return(BaseUtils.CSVWriteGrid.LineStatus.EOF); } }; List <string> colh = new List <string>(); for (int i = 0; i < columnsout; i++) { colh.Add(Columns[i].HeaderText); } colh.AddRange(new string[] { "X", "Y", "Z", "ID" }); grd.GetHeader += delegate(int c) { return((c < colh.Count && frm.IncludeHeader) ? colh[c] : null); }; grd.GetLine += delegate(int r) { DataGridViewRow rw = Rows[r]; ISystem sys = SysFrom(rw.Tag); List <Object> data = new List <object>(); for (int i = 0; i < columnsout; i++) { data.Add(rw.Cells[i].Value); } data.Add(sys.X.ToString("0.#")); data.Add(sys.Y.ToString("0.#")); data.Add(sys.Z.ToString("0.#")); data.Add(sys.EDSMID); return(data.ToArray()); }; grd.WriteGrid(frm.Path, frm.AutoOpen, FindForm()); } } }
private void buttonExtExcel_Click(object sender, EventArgs e) { Forms.ExportForm frm = new Forms.ExportForm(); frm.Init(false, new string[] { "View", "FSD Jumps only", "With Notes only", "With Notes, no repeat", //0-3 "Scans All Bodies", "Scans Planets", "Scans Stars", "Scans Rings" }, //4-7 suggestedfilenames: new string[] { "TravelGrid", "FSDJumps", "TravelGrid", "TravelGrid", "Scans", "ScanPlanet", "ScanStars", "ScanRings" } ); if (frm.ShowDialog(FindForm()) == DialogResult.OK) { if (frm.SelectedIndex == 7) { var saaentries = JournalEntry.GetByEventType(JournalTypeEnum.SAASignalsFound, EDCommander.CurrentCmdrID, frm.StartTimeUTC, frm.EndTimeUTC).ConvertAll(x => (JournalSAASignalsFound)x); var scanentries = JournalEntry.GetByEventType(JournalTypeEnum.Scan, EDCommander.CurrentCmdrID, frm.StartTimeUTC, frm.EndTimeUTC).ConvertAll(x => (JournalScan)x); BaseUtils.CSVWriteGrid grd = new BaseUtils.CSVWriteGrid(); grd.SetCSVDelimiter(frm.Comma); string[] headers1 = { "", "", "", "", "", "", "Icy Ring", "", "", "", "", "","", "", "", "", "Rocky", "", "", "", "", "","", "", "Metal Rich", "", "", "", "", "Metalic", "", "", "", "", "Other" }; string[] headers2 = { "Time", "BodyName", "Ring Types", "Mass MT", "Inner Rad (ls)", "Outer Rad (ls)", // icy ring "Water", "Liquid Oxygen", "Methanol Mono", "Methane", "Bromellite", "Grandidierite", "Low Temp Diamonds","Void Opals", "Alexandrite", "Tritium", // rocky "Bauxite", "Indite", "Alexandrite", "Monazite", "Musgravite", "Benitoite", "Serendibite", "Rhodplumsite", // metal rich "Rhodplumsite", "Serendibite", "Platinum", "Monazite", "Painite", // metalic "Rhodplumsite", "Serendibite", "Platinum", "Monazite", "Painite", // others "Geological", "Biological", "Thargoid", "Human", "Guardian", }; string[] fdname = { "Water", "LiquidOxygen", "methanolmonohydratecrystals", "MethaneClathrate", // icy "Bromellite", "Grandidierite", "lowtemperaturediamond", "Opal", "Alexandrite", "Tritium", "Bauxite", "Indite", "Alexandrite", "Monazite", "Musgravite","Benitoite", "Serendibite", "Rhodplumsite", // rocky "Rhodplumsite", "Serendibite", "Platinum", "Monazite", "Painite", // metal rich "Rhodplumsite", "Serendibite", "Platinum", "Monazite", "Painite", // metalic "$SAA_SignalType_Geological;", "$SAA_SignalType_Biological;", "$SAA_SignalType_Thargoid;", "$SAA_SignalType_Human;","$SAA_SignalType_Guardian;" }; grd.GetLineHeader = (row) => { return(row == 1 ? headers2 : row == 0 ? headers1 : null); }; grd.GetLineStatus = (row) => { if (row < saaentries.Count) { for (int rp = row + 1; rp < saaentries.Count; rp++) { if (saaentries[rp].BodyName == saaentries[row].BodyName && (saaentries[rp].EventTimeUTC - saaentries[row].EventTimeUTC) < new TimeSpan(30, 0, 0, 0)) { return(BaseUtils.CSVWriteGrid.LineStatus.Skip); // if matches one in front, and its less than 30 days from it, ignore } } return(BaseUtils.CSVWriteGrid.LineStatus.OK); } else { return(BaseUtils.CSVWriteGrid.LineStatus.EOF); } }; grd.GetLine = (r) => { var entry = saaentries[r]; string signals = string.Join(",", entry.Signals.Select(x => x.Type_Localised)); JournalScan scanof = scanentries.Find(x => x.FindRing(entry.BodyName) != null); bool showrocky = true, showmr = true, showmetalic = true, showicy = true; // only used if item appears more than once below string ringtype = "", mass = "", innerrad = "", outerrad = ""; if (scanof != null) { var ri = scanof.FindRing(entry.BodyName); ringtype = ri.RingClassNormalised(); if (ringtype.Contains("metalic", StringComparison.InvariantCultureIgnoreCase)) { showicy = showrocky = showmr = false; } else if (ringtype.Contains("Metal", StringComparison.InvariantCultureIgnoreCase)) { showicy = showrocky = showmetalic = false; } else if (ringtype.Contains("rocky", StringComparison.InvariantCultureIgnoreCase)) { showicy = showmetalic = showmr = false; } else if (ringtype.Contains("icy", StringComparison.InvariantCultureIgnoreCase)) { showrocky = showmetalic = showmr = false; } mass = ri.MassMT.ToStringInvariant(); innerrad = (ri.InnerRad / JournalScan.oneLS_m).ToStringInvariant("N3"); outerrad = (ri.OuterRad / JournalScan.oneLS_m).ToStringInvariant("N3"); } //string sig = string.Join(",", entry.Signals.Select(x=>x.Type)); // debug return(new object[] { EDDConfig.Instance.ConvertTimeToSelectedFromUTC(entry.EventTimeUTC), entry.BodyName, ringtype, mass, innerrad, outerrad, entry.ContainsStr(fdname[0]), entry.ContainsStr(fdname[1]), entry.ContainsStr(fdname[2]), entry.ContainsStr(fdname[3]), entry.ContainsStr(fdname[4]), entry.ContainsStr(fdname[5]), entry.ContainsStr(fdname[6]), entry.ContainsStr(fdname[7]), entry.ContainsStr(fdname[8], showicy), entry.ContainsStr(fdname[9]), // "Bauxite","Indite","Alexandrite","Monazite", // rocky entry.ContainsStr(fdname[10]), entry.ContainsStr(fdname[11]), entry.ContainsStr(fdname[12], showrocky), entry.ContainsStr(fdname[13], showrocky), // "Musgravite","Benitoite","Serendibite","Rhodplumsite", // rocky entry.ContainsStr(fdname[14]), entry.ContainsStr(fdname[15]), entry.ContainsStr(fdname[16], showrocky), entry.ContainsStr(fdname[17], showrocky), // "Rhodplumsite","Serendibite","Platinum","Monazite","Painite", // metal rich entry.ContainsStr(fdname[18], showmr), entry.ContainsStr(fdname[19], showmr), entry.ContainsStr(fdname[20], showmr), entry.ContainsStr(fdname[21], showmr), entry.ContainsStr(fdname[22], showmr), // "Rhodplumsite","Serendibite","Platinum","Monazite","Painite", // metalic entry.ContainsStr(fdname[23], showmetalic), entry.ContainsStr(fdname[24], showmetalic), entry.ContainsStr(fdname[25], showmetalic), entry.ContainsStr(fdname[26], showmetalic), entry.ContainsStr(fdname[27], showmetalic), entry.ContainsStr(fdname[28]), entry.ContainsStr(fdname[29]), entry.ContainsStr(fdname[30]), entry.ContainsStr(fdname[31]), entry.ContainsStr(fdname[32]), }); }; grd.WriteGrid(frm.Path, frm.AutoOpen, FindForm()); } else if (frm.SelectedIndex >= 4) { var entries = JournalEntry.GetByEventType(JournalTypeEnum.Scan, EDCommander.CurrentCmdrID, frm.StartTimeUTC, frm.EndTimeUTC); var scans = entries.ConvertAll(x => (JournalScan)x); bool ShowStars = frm.SelectedIndex == 4 || frm.SelectedIndex == 6; bool ShowPlanets = frm.SelectedIndex == 4 || frm.SelectedIndex == 5; bool ShowBeltClusters = frm.SelectedIndex == 4; if (ShowPlanets) { // because they come from the DB, they don't have the mapped/efficient mapped flags set. So we need to set them List <JournalSAAScanComplete> mappings = JournalEntry.GetByEventType(JournalTypeEnum.SAAScanComplete, EDCommander.CurrentCmdrID, frm.StartTimeUTC, frm.EndTimeUTC).ConvertAll(x => (JournalSAAScanComplete)x); foreach (var m in mappings) { var scan = scans.Find(x => x.BodyID == m.BodyID && x.BodyName == m.BodyName); if (scan != null) { //System.Diagnostics.Debug.WriteLine($"Set mapping {scan.BodyName}"); scan.SetMapped(true, m.ProbesUsed <= m.EfficiencyTarget); } } } if (!CSVHelpers.OutputScanCSV(scans, frm.Path, frm.Comma, frm.IncludeHeader, ShowStars, ShowPlanets, ShowPlanets, ShowBeltClusters)) { throw new Exception(); // throw to get to scan excel error } if (frm.AutoOpen) { System.Diagnostics.Process.Start(frm.Path); } } else { BaseUtils.CSVWriteGrid grd = new BaseUtils.CSVWriteGrid(); grd.SetCSVDelimiter(frm.Comma); List <SystemNoteClass> sysnotecache = new List <SystemNoteClass>(); string[] colh = null; grd.GetLineStatus += delegate(int r) { if (r < dataGridViewTravel.Rows.Count) { HistoryEntry he = (HistoryEntry)dataGridViewTravel.Rows[r].Tag; return((dataGridViewTravel.Rows[r].Visible && he.EventTimeUTC.CompareTo(frm.StartTimeUTC) >= 0 && he.EventTimeUTC.CompareTo(frm.EndTimeUTC) <= 0) ? BaseUtils.CSVWriteGrid.LineStatus.OK : BaseUtils.CSVWriteGrid.LineStatus.Skip); } else { return(BaseUtils.CSVWriteGrid.LineStatus.EOF); } }; if (frm.SelectedIndex == 1) // export fsd jumps { colh = new string[] { "Time", "Name", "X", "Y", "Z", "Distance", "Fuel Used", "Fuel Left", "Boost", "Note" }; grd.VerifyLine += delegate(int r) // addition qualifier for FSD jump { HistoryEntry he = (HistoryEntry)dataGridViewTravel.Rows[r].Tag; return(he.EntryType == JournalTypeEnum.FSDJump); }; grd.GetLine += delegate(int r) { HistoryEntry he = (HistoryEntry)dataGridViewTravel.Rows[r].Tag; EliteDangerousCore.JournalEvents.JournalFSDJump fsd = he.journalEntry as EliteDangerousCore.JournalEvents.JournalFSDJump; return(new Object[] { EDDConfig.Instance.ConvertTimeToSelectedFromUTC(fsd.EventTimeUTC), fsd.StarSystem, fsd.StarPos.X, fsd.StarPos.Y, fsd.StarPos.Z, fsd.JumpDist, fsd.FuelUsed, fsd.FuelLevel, fsd.BoostUsed, he.SNC != null ? he.SNC.Note : "", }); }; } else { colh = new string[] { "Time", "Event", "System", "Body", //0 "Ship", "Summary", "Description", "Detailed Info", //4 "Note", "Travel Dist", "Travel Time", "Travel Jumps", //8 "Travelled MisJumps", "X", "Y", "Z", //12 "JID", "EDSMID" }; //16 grd.GetLine += delegate(int r) { HistoryEntry he = (HistoryEntry)dataGridViewTravel.Rows[r].Tag; he.FillInformation(out string EventDescription, out string EventDetailedInfo); return(new Object[] { EDDConfig.Instance.ConvertTimeToSelectedFromUTC(he.EventTimeUTC), he.EventSummary, (he.System != null) ? he.System.Name : "Unknown", // paranoia he.WhereAmI, he.ShipInformation != null ? he.ShipInformation.Name : "Unknown", he.EventSummary, EventDescription, EventDetailedInfo, dataGridViewTravel.Rows[r].Cells[4].Value, he.isTravelling ? he.TravelledDistance.ToString("0.0") : "", he.isTravelling ? he.TravelledSeconds.ToString() : "", he.isTravelling ? he.Travelledjumps.ToString() : "", he.isTravelling ? he.TravelledMissingjump.ToString() : "", he.System.X, he.System.Y, he.System.Z, he.Journalid, he.System.EDSMID, }); }; if (frm.SelectedIndex == 2 || frm.SelectedIndex == 3) // export notes { grd.VerifyLine += delegate(int r) // second hook to reject line { HistoryEntry he = (HistoryEntry)dataGridViewTravel.Rows[r].Tag; if (he.SNC != null) { if (sysnotecache.Contains(he.SNC)) { return(false); } else { if (frm.SelectedIndex == 3) { sysnotecache.Add(he.SNC); } return(true); } } else { return(false); } }; } } grd.GetHeader += delegate(int c) { return((c < colh.Length && frm.IncludeHeader) ? colh[c] : null); }; grd.WriteGrid(frm.Path, frm.AutoOpen, FindForm()); } } }