/// <summary> /// The PrimaryFilterControl_ItemSelected /// </summary> /// <param name="sender">The sender<see cref="object" /></param> /// <param name="e">The e<see cref="EventArgs" /></param> internal void PrimaryChartFilterControl_ItemSelected(object sender, EventArgs e) { try { PrimaryFilter = sender as VisualComboBox; PrimaryGrouping = (Field)Enum.Parse(typeof(Field), PrimaryFilter?.SelectedItem.ToString()); if (BocExpander1.Visible == false || BocExpander1.IsExpanded == false) { BocExpander1.Visible = true; BocExpander1.IsExpanded = true; } AssignChartFilterControls(BocFilter1, BocFilter2, BocFilter3, BocFilter4); AssignChartExpanders(BocExpander1, BocExpander2); PopulateFilterBoxItems(BocFilter3, ProgramElements[PrimaryGrouping.ToString()]); string[] tabpage = GetPrimaryChartFIlterItems() .AsEnumerable() .Where(p => p != PrimaryGrouping.ToString()) .Select(p => p) .ToArray(); PopulateFilterBoxItems(BocFilter4, tabpage); ChartMainTitle = new[] { $"{Source.ToString()} Funding By {PrimaryGrouping}" }; BocFilter4.Items.Remove(PrimaryGrouping.ToString()); BocChart = new BudgetChart(BocChart, ChartMainTitle, DbData, PrimaryGrouping, Stat.Total, ChartSeriesType.Column).Activate(); } catch (Exception ex) { new Error(ex).ShowDialog(); } }
/// <summary> /// The GetPrimarySummaryChart /// </summary> /// <param name="field">The field<see cref="Field"/></param> private void GetPrimarySummaryChart(Field field) { try { ChartMainTitle = new[] { $"{Source.ToString()} Resources By {field.ToString()} " }; BocChart = new BudgetChart(BocChart, ChartMainTitle, DbData, field, Measure, ChartType).Activate(); } catch (Exception ex) { new Error(ex).ShowDialog(); } }
private ChartControl GetMainChart(ChartControl chart, string title, Dictionary <string, double> data) { try { MainChart = new BudgetChart(chart, title, data).Activate(); return(MainChart); } catch (Exception ex) { new Error(ex).ShowDialog(); return(null); } }
// CONSTRUCTORS public MainForm() { InitializeComponent(); NinjaData = new FormData(); R6 = new DataBuilder(Source.RegionalAccounts); D6 = new DataBuilder(Source.DivisionAccounts); Metric = new PrcMetric(R6); Timer = new Timer(); Values = new[] { Metric.GetChartTotals(R6.Table, Field.FundCode), Metric.GetChartTotals(R6.Table, Field.BOC), Metric.GetChartTotals(D6.Table, Field.FundCode), Metric.GetChartTotals(R6.Table, Field.NPM), Metric.GetChartTotals(D6.Table, Field.NPM), Metric.GetChartTotals(R6.Table, Field.GoalName), Metric.GetChartTotals(D6.Table, Field.GoalName) }; Title = GetChartTitles(Values); Chart = GetMainChart; MainChart = new BudgetChart(MainChart, Title[1], Values[1]).Activate(); }
/// <summary> /// Initializes a new instance of the <see cref="SummaryForm"/> class. /// </summary> /// <param name="source">The source<see cref="Source" /></param> /// <param name="provider">The provider<see cref="Provider" /></param> public SummaryForm(Source source, Provider provider) { InitializeComponent(); Source = source; Provider = provider; DbData = new DataBuilder(Source, Provider); Table = DbData.Table; ProgramElements = DbData.ProgramElements; Metric = new PrcMetric(DbData); GetBindingSource(); Grid.DataSource = BindingSource; ChartMainTitle = new[] { $"{Source.ToString()} Resources" }; BocChart = new BudgetChart(BocChart, ChartMainTitle, DbData, Field.FundName, Stat.Total, ChartSeriesType.Column).Activate(); }
/// <summary> /// The SummaryTabPage_TabSelected /// </summary> /// <param name="sender">The sender<see cref="object" /></param> /// <param name="e">The e<see cref="EventArgs" /></param> internal void SummaryTabPage_TabSelected(object sender, EventArgs e) { try { SummaryTabControl = sender as TabControlAdv; if (SummaryTabControl != null) { CurrentIndex = SummaryTabControl.SelectedIndex; } switch (CurrentIndex) { case 0: AssignChartFilterControls(BocFilter1, BocFilter2, BocFilter3, BocFilter4); AssignChartExpanders(BocExpander1, BocExpander2); PopulateFilterBoxItems(BocFilter3, DbData.ProgramElements["BocName"]); PopulateFilterBoxItems(BocFilter4, GetPrimaryChartFIlterItems()); BocFilter4.Items.Remove("BocName"); if (DbData.Source == Source.RegionalAccounts) { BocFilter4.Items.Remove("RC"); } if (Division != null) { ChartMainTitle = new[] { $"{Division} Funding By Object Class" }; } else { ChartMainTitle = new[] { $"{Source.ToString()} Funding By Object Class" }; } BocChart = new BudgetChart(BocChart, ChartMainTitle, DbData, Field.BocName, Stat.Total, ChartSeriesType.Column).Activate(); break; case 1: DataTable table = DbData.Table.AsEnumerable().Select(p => p).CopyToDataTable(); lblCount.Text = table.Rows.Count.ToString(); lblAve.Text = table.AsEnumerable().Select(p => p.Field <decimal>("Amount")).Average().ToString("N"); lblTotal.Text = table.AsEnumerable().Select(p => p.Field <decimal>("Amount")).Sum().ToString("N"); GridGroupBox.Text = $"{Source.ToString()}"; break; } } catch (Exception ex) { new Error(ex).ShowDialog(); } }
/// <summary> /// The GetSecondaryGroupSummaryChart /// </summary> /// <param name="field">The field<see cref="Field"/></param> private void GetSecondaryGroupSummaryChart(Field field) { try { Dictionary <string, object> fp = new Dictionary <string, object> { [PrimaryFilter.SelectedItem.ToString()] = BocFilter3.SelectedItem.ToString() }; ChartMainTitle = new[] { $"{Source.ToString()} {ChartFilter} Resources By {field.ToString()} " }; DataBuilder fd = new DataBuilder(Source, Provider, fp); BocChart = new BudgetChart(BocChart, ChartMainTitle, fd, field, Measure, ChartType).Activate(); } catch (Exception ex) { new Error(ex).ShowDialog(); } }
/// <summary> /// The TransitionChart /// </summary> /// <param name="table">The table<see cref="DataTable"/></param> internal void TransitionChart(DataTable table) { try { DataRow row = table?.Rows[0]; decimal total = table.AsEnumerable().Where(p => p.Field <string>("BFY").Equals(row?["BFY"].ToString())).Where(p => p.Field <string>("Code").Contains(row?["Code"].ToString())).Select(p => p.Field <decimal>("Amount")).Sum(); decimal ratio = decimal.Parse(row?["Amount"].ToString()) / total; Dictionary <string, double> d = new Dictionary <string, double> { ["Total"] = (double)total, ["Allocation"] = (double)decimal.Parse(row?["Amount"].ToString()) }; ChartMainTitle = new[] { $"{ratio.ToString("P")} {Source.ToString()} PRC {row?["Code"]} Funding" }; AccountChart = new BudgetChart(AccountChart, ChartMainTitle, d, Field.ProgramProjectCode, Stat.Total, ChartSeriesType.Column).Activate(); } catch (Exception ex) { new Error(ex).ShowDialog(); } }
/// <summary> /// The UpdateAccountChart /// </summary> /// <param name="sender">The sender<see cref="object"/></param> /// <param name="e">The e<see cref="EventArgs"/></param> internal void UpdateAccountChart(object sender, EventArgs e) { try { Grid = sender as DataGridView; DataGridViewRow drv = Grid?.CurrentRow; decimal total = Table.AsEnumerable().Where(p => p.Field <string>("BFY").Equals(drv?.Cells["BFY"].Value.ToString())).Where(p => p.Field <string>("Code").Contains(drv?.Cells["Code"].Value.ToString())).Select(p => p.Field <decimal>("Amount")).Sum(); if (drv != null) { decimal ratio = (decimal)drv.Cells["Amount"].Value / total; Dictionary <string, double> d = new Dictionary <string, double> { ["Total"] = (double)total, ["Allocation"] = (double)(decimal)drv.Cells["Amount"].Value }; ChartMainTitle = new[] { $"{ratio.ToString("P")} {Source.ToString()} PRC {drv.Cells["Code"].Value} Funding" }; AccountChart = new BudgetChart(AccountChart, ChartMainTitle, d, Field.ProgramProjectCode, Stat.Total, ChartSeriesType.Column).Activate(); } } catch (Exception ex) { new Error(ex).ShowDialog(); } }