123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Drawing;
- using System.Data;
- using System.Text;
- using System.Windows.Forms;
- using FastReport.DataVisualization.Charting;
- using FastReport.Utils;
- using FastReport.Data;
- namespace FastReport.MSChart
- {
- internal partial class SeriesEditorControl : UserControl
- {
- private MSChartSeries series;
- private bool updating;
- public event EventHandler Changed;
- public MSChartSeries Series
- {
- get { return series; }
- set
- {
- series = value;
- UpdateControls();
- }
- }
- public int ActivePageIndex
- {
- get { return pageControl2.ActivePageIndex; }
- set { pageControl2.ActivePageIndex = value; }
- }
- private Series ChartSeries
- {
- get { return series.SeriesSettings; }
- }
- private Report Report
- {
- get { return series.Report; }
- }
- private MSChartObject Chart
- {
- get { return Series.Parent as MSChartObject; }
- }
- private void UpdateControls()
- {
- updating = true;
- #region Data tab
- // name
- tbName.Text = ChartSeries.Name;
- // data panel
- int yValues = ChartSeries.YValuesPerPoint;
- string[] yValuesNames = Helper.GetYValuesNames(ChartSeries.ChartType);
- bool valueVisible = false;
- cbxXValue.Report = Report;
- cbxXValue.DataSource = Chart.DataSource;
- cbxXValue.Text = Series.XValue;
- cbxYValue1.Report = Report;
- cbxYValue1.DataSource = Chart.DataSource;
- cbxYValue1.Text = Series.YValue1;
- lblYValue1.Text = yValuesNames[0];
- cbxYValue2.Report = Report;
- cbxYValue2.DataSource = Chart.DataSource;
- cbxYValue2.Text = Series.YValue2;
- valueVisible = yValues > 1;
- cbxYValue2.Visible = valueVisible;
- lblYValue2.Visible = valueVisible;
- if (valueVisible)
- lblYValue2.Text = yValuesNames[1];
- cbxYValue3.Report = Report;
- cbxYValue3.DataSource = Chart.DataSource;
- cbxYValue3.Text = Series.YValue3;
- valueVisible = yValues > 2;
- cbxYValue3.Visible = valueVisible;
- lblYValue3.Visible = valueVisible;
- if (valueVisible)
- lblYValue3.Text = yValuesNames[2];
- cbxYValue4.Report = Report;
- cbxYValue4.DataSource = Chart.DataSource;
- cbxYValue4.Text = Series.YValue4;
- valueVisible = yValues > 3;
- cbxYValue4.Visible = valueVisible;
- lblYValue4.Visible = valueVisible;
- if (valueVisible)
- lblYValue4.Text = yValuesNames[3];
- pnData.Height = cbxYValue1.Top * (yValues + 1);
- pnOtherData.Location = new Point(pnData.Left, pnData.Bottom);
- // other data panel
- cbxColor.Report = Report;
- cbxColor.DataSource = Chart.DataSource;
- cbxColor.Text = Series.Color;
- tbFilter.Text = Series.Filter;
- cbxXValueType.SelectedIndex = (int)ChartSeries.XValueType;
- cbxYValueType.SelectedIndex = (int)ChartSeries.YValueType;
- cbxXAxisType.SelectedIndex = (int)ChartSeries.XAxisType;
- cbxYAxisType.SelectedIndex = (int)ChartSeries.YAxisType;
- // autoseries
- cbxAutoSeriesData.Report = Report;
- cbxAutoSeriesData.Text = Series.AutoSeriesColumn;
- cbAutoSeriesForce.Enabled = Chart.AutoSeriesForce;
- cbAutoSeriesForce.Checked = Series.AutoSeriesForce;
- cbxAutoSeriesData.DataSource = Chart.DataSource;
- cbxAutoSeriesData.Enabled = Chart.AutoSeriesForce;
- #endregion
- #region Values tab
- colX.HeaderText = lblXValue.Text;
- colY1.HeaderText = yValuesNames[0];
- colY2.Visible = yValues > 1;
- if (colY2.Visible)
- colY2.HeaderText = yValuesNames[1];
- colY3.Visible = yValues > 2;
- if (colY3.Visible)
- colY3.HeaderText = yValuesNames[2];
- colY4.Visible = yValues > 3;
- if (colY4.Visible)
- colY4.HeaderText = yValuesNames[3];
- gvValues.Rows.Clear();
- foreach (DataPoint point in ChartSeries.Points)
- {
- object[] values = new object[yValues + 1];
- values[0] = point.AxisLabel;
- if (String.IsNullOrEmpty(point.AxisLabel))
- values[0] = point.XValue;
- for (int i = 0; i < yValues; i++)
- {
- values[i + 1] = point.YValues[i];
- }
- gvValues.Rows.Add(values);
- }
- #endregion
- #region Data processing tab
- // sort by
- cbxSortBy.SelectedIndex = (int)Series.SortBy;
- // sort order
- cbxSortOrder.SelectedIndex = (int)Series.SortOrder;
- // group
- cbxGroupBy.SelectedIndex = (int)Series.GroupBy;
- udGroupInterval.Value = (decimal)Series.GroupInterval;
- cbxGroupFunction.SelectedIndex = (int)Series.GroupFunction;
- // collect
- cbxCollectData.SelectedIndex = (int)Series.Collect;
- udCollectValue.Value = (decimal)Series.CollectValue;
- tbCollectedItemText.Text = Series.CollectedItemText;
- cbxCollectedItemColor.Color = Series.CollectedItemColor;
- // explode
- pnExplode.Visible = ChartSeries.ChartType == SeriesChartType.Pie ||
- ChartSeries.ChartType == SeriesChartType.Doughnut;
- cbxExplode.SelectedIndex = (int)Series.PieExplode;
- tbExplodedValue.Text = Series.PieExplodeValue;
- #endregion
- #region Appearance tab
- Helper.ConstructCustomPropertiesEditor(pgAppearance, ChartSeries, Changed);
- #endregion
- #region Fill & Border tab
- // palette
- cbxPalette.SelectedIndex = (int)ChartSeries.Palette;
- // colors
- cbxBackColor.Color = ChartSeries.Color;
- cbxSecondaryColor.Color = ChartSeries.BackSecondaryColor;
- // gradient
- cbxGradient.SelectedIndex = (int)ChartSeries.BackGradientStyle;
- // hatch
- cbxHatchStyle.SelectedIndex = (int)ChartSeries.BackHatchStyle;
- // border
- cbxBorderColor.Color = ChartSeries.BorderColor;
- cbxBorderStyle.SelectedIndex = (int)ChartSeries.BorderDashStyle;
- udBorderWidth.Value = ChartSeries.BorderWidth;
- // shadow
- cbxShadowColor.Color = ChartSeries.ShadowColor;
- udShadowOffset.Value = ChartSeries.ShadowOffset;
- #endregion
- #region Labels tab
- // label view
- cbxLabelView.SelectedIndex = 0;
- tbLabelPattern.Text = ChartSeries.Label;
- tbLabelFormat.Text = ChartSeries.LabelFormat;
- // label font
- tbLabelFont.Text = Converter.ToString(ChartSeries.Font);
- // label colors
- cbxLabelForeColor.Color = ChartSeries.LabelForeColor;
- cbxLabelBackColor.Color = ChartSeries.LabelBackColor;
- // label border
- cbxLabelBorderColor.Color = ChartSeries.LabelBorderColor;
- cbxLabelBorderStyle.SelectedIndex = (int)ChartSeries.LabelBorderDashStyle;
- udLabelBorderWidth.Value = ChartSeries.LabelBorderWidth;
- #endregion
- #region Markers tab
- // marker style
- cbxMarkerStyle.SelectedIndex = (int)ChartSeries.MarkerStyle;
- // marker size
- udMarkerSize.Value = ChartSeries.MarkerSize;
- // marker step
- udMarkerStep.Value = ChartSeries.MarkerStep;
- // marker color
- cbxMarkerColor.Color = ChartSeries.MarkerColor;
- // border color
- cbxMarkerBorderColor.Color = ChartSeries.MarkerBorderColor;
- // border width
- udMarkerBorderWidth.Value = ChartSeries.MarkerBorderWidth;
- #endregion
- updating = false;
- }
- private void OnChange()
- {
- if (Changed != null)
- Changed(this, EventArgs.Empty);
- }
- private void Init()
- {
- MyRes res = null;
- MyRes cmnRes = new MyRes("Forms,ChartEditor,Common");
- #region Comboboxes
- cbxXValueType.Items.Clear();
- cbxXValueType.Items.AddRange(new string[] {
- "Auto", "Double", "Single", "Int32", "Int64", "UInt32", "UInt64",
- "String", "DateTime", "Date", "Time", "DateTimeOffset" });
- cbxYValueType.Items.Clear();
- cbxYValueType.Items.AddRange(new string[] {
- "Auto", "Double", "Single", "Int32", "Int64", "UInt32", "UInt64",
- "DateTime", "Date", "Time", "DateTimeOffset" });
- res = new MyRes("Forms,ChartEditor,SeriesEditorControl,Data");
- cbxXAxisType.Items.Clear();
- cbxXAxisType.Items.AddRange(new string[] {
- res.Get("PrimaryAxis"), res.Get("SecondaryAxis") });
- cbxYAxisType.Items.Clear();
- cbxYAxisType.Items.AddRange(new string[] {
- res.Get("PrimaryAxis"), res.Get("SecondaryAxis") });
- res = new MyRes("Forms,ChartEditor,SeriesEditorControl,DataProcessing");
- cbxSortBy.Items.Clear();
- cbxSortBy.Items.AddRange(new string[] {
- Res.Get("Forms,GroupBandEditor,NoSort"), res.Get("SortByX"), res.Get("SortByY") });
- res = new MyRes("Forms,GroupBandEditor");
- cbxSortOrder.Items.Clear();
- cbxSortOrder.Items.AddRange(new string[] {
- res.Get("Ascending"), res.Get("Descending") });
- res = new MyRes("Forms,ChartEditor,SeriesEditorControl,DataProcessing,GroupBy");
- cbxGroupBy.Items.Clear();
- cbxGroupBy.Items.AddRange(new string[] {
- res.Get("None"), res.Get("XValue"), res.Get("Number"), res.Get("Years"), res.Get("Months"),
- res.Get("Weeks"), res.Get("Days"), res.Get("Hours"), res.Get("Minutes"), res.Get("Seconds"),
- res.Get("Milliseconds") });
- res = new MyRes("Forms,TotalEditor");
- cbxGroupFunction.Items.Clear();
- cbxGroupFunction.Items.AddRange(new object[] {
- res.Get("Sum"), res.Get("Min"), res.Get("Max"), res.Get("Avg"), res.Get("Count") });
- res = new MyRes("Forms,ChartEditor,SeriesEditorControl,DataProcessing,CollectData");
- cbxCollectData.Items.Clear();
- cbxCollectData.Items.AddRange(new string[] {
- res.Get("None"), res.Get("TopN"), res.Get("BottomN"),
- res.Get("LessThan"), res.Get("LessThanPercent"),
- res.Get("GreaterThan"), res.Get("GreaterThanPercent") });
- res = new MyRes("Forms,ChartEditor,SeriesEditorControl,DataProcessing,Explode");
- cbxExplode.Items.Clear();
- cbxExplode.Items.AddRange(new string[] {
- res.Get("None"), res.Get("Biggest"), res.Get("Lowest"), res.Get("Specific") });
- cbxPalette.Items.Clear();
- cbxPalette.Items.AddRange(Enum.GetNames(typeof(ChartColorPalette)));
- cbxGradient.Items.Clear();
- cbxGradient.Items.AddRange(Enum.GetNames(typeof(GradientStyle)));
- cbxHatchStyle.Items.Clear();
- cbxHatchStyle.Items.AddRange(Enum.GetNames(typeof(ChartHatchStyle)));
- cbxBorderStyle.Items.Clear();
- cbxBorderStyle.Items.AddRange(Enum.GetNames(typeof(ChartDashStyle)));
- cbxLabelView.Items.Clear();
- cbxLabelView.Items.AddRange(new string[] {
- "Custom", "X", "Y", "Percent", "X: Y", "X: Percent" });
- cbxLabelBorderStyle.Items.Clear();
- cbxLabelBorderStyle.Items.AddRange(Enum.GetNames(typeof(ChartDashStyle)));
- cbxMarkerStyle.Items.Clear();
- cbxMarkerStyle.Items.AddRange(Enum.GetNames(typeof(DataVisualization.Charting.MarkerStyle)));
- #endregion
- #region Data
- res = new MyRes("Forms,ChartEditor,SeriesEditorControl,Data");
- pgData.Text = res.Get("");
- lblName.Text = res.Get("Name");
- lblXValue.Text = res.Get("XValue");
- lblColor.Text = res.Get("Color");
- lblFilter.Text = res.Get("Filter");
- lblXValueType.Text = res.Get("XValueType");
- lblYValueType.Text = res.Get("YValueType");
- lblXAxisType.Text = res.Get("XAxisType");
- lblYAxisType.Text = res.Get("YAxisType");
- res = new MyRes("Forms,ChartEditor,ChartEditorControl,Data");
- cbAutoSeriesForce.Text = res.Get("ForceAutoSeries");
- lblAutoSeriesData.Text = res.Get("DataColumn");
- lblAutoSeries.Text = res.Get("AutoSeries");
- #endregion
- #region Values
- res = new MyRes("Forms,ChartEditor,SeriesEditorControl,Values");
- pgValues.Text = res.Get("");
- #endregion
- #region Data processing
- res = new MyRes("Forms,ChartEditor,SeriesEditorControl,DataProcessing");
- pgDataProcessing.Text = res.Get("");
- lblSortBy.Text = res.Get("SortBy");
- lblSortOrder.Text = res.Get("SortOrder");
- lblGroupBy.Text = res.Get("GroupBy");
- lblGroupInterval.Text = res.Get("GroupInterval");
- lblGroupFunction.Text = res.Get("GroupFunction");
- lblCollectData.Text = res.Get("CollectData");
- lblCollectValue.Text = res.Get("Value");
- lblCollectedItemText.Text = res.Get("CollectedText");
- lblCollectedItemColor.Text = res.Get("CollectedColor");
- lblExplode.Text = res.Get("Explode");
- lblExplodedValue.Text = res.Get("Value");
- #endregion
- #region Appearance
- pgAppearance.Text = Res.Get("Forms,ChartEditor,SeriesEditorControl,Appearance");
- #endregion
- #region Fill & border
- res = new MyRes("Forms,ChartEditor,SeriesEditorControl,FillBorder");
- pgFillBorder.Text = res.Get("");
- lblPalette.Text = res.Get("Palette");
- lblBackColor.Text = cmnRes.Get("Color");
- lblSecondaryColor.Text = cmnRes.Get("SecondaryColor");
- lblGradient.Text = cmnRes.Get("Gradient");
- lblHatchStyle.Text = cmnRes.Get("HatchStyle");
- lblBorderColor.Text = cmnRes.Get("BorderColor");
- lblBorderStyle.Text = cmnRes.Get("BorderStyle");
- lblBorderWidth.Text = cmnRes.Get("BorderWidth");
- lblShadowColor.Text = cmnRes.Get("ShadowColor");
- lblShadowOffset.Text = cmnRes.Get("ShadowOffset");
- #endregion
- #region Labels
- res = new MyRes("Forms,ChartEditor,SeriesEditorControl,Labels");
- pgLabels.Text = res.Get("");
- lblLabelView.Text = res.Get("LabelView");
- lblLabelPattern.Text = res.Get("Pattern");
- lblLabelFormat.Text = cmnRes.Get("Format");
- lblLabelFont.Text = cmnRes.Get("Font");
- lblLabelForeColor.Text = cmnRes.Get("ForeColor");
- lblLabelBackColor.Text = cmnRes.Get("BackColor");
- lblLabelBorderColor.Text = cmnRes.Get("BorderColor");
- lblLabelBorderStyle.Text = cmnRes.Get("BorderStyle");
- lblLabelBorderWidth.Text = cmnRes.Get("BorderWidth");
- #endregion
- #region Markers
- res = new MyRes("Forms,ChartEditor,SeriesEditorControl,Markers");
- pgMarkers.Text = res.Get("");
- lblMarkerStyle.Text = res.Get("Style");
- lblMarkerSize.Text = res.Get("Size");
- lblMarkerStep.Text = res.Get("Step");
- lblMarkerColor.Text = res.Get("Color");
- lblMarkerBorderColor.Text = cmnRes.Get("BorderColor");
- lblMarkerBorderWidth.Text = cmnRes.Get("BorderWidth");
- #endregion
- }
- public void UpdateDpiDependencies()
- {
- tbFilter.Image = this.GetImage(52);
- tbLabelFont.Image = this.GetImage(59);
- tbExplodedValue.Image = this.GetImage(52);
- }
- public SeriesEditorControl()
- {
- InitializeComponent();
- Init();
- }
- #region Data tab
- private void tbName_Leave(object sender, EventArgs e)
- {
- ChartSeries.Name = tbName.Text;
- OnChange();
- }
- private void cbxXValue_Leave(object sender, EventArgs e)
- {
- Series.XValue = cbxXValue.Text;
- OnChange();
- }
- private void cbxYValue1_Leave(object sender, EventArgs e)
- {
- Series.YValue1 = cbxYValue1.Text;
- OnChange();
- }
- private void cbxYValue2_Leave(object sender, EventArgs e)
- {
- Series.YValue2 = cbxYValue2.Text;
- OnChange();
- }
- private void cbxYValue3_Leave(object sender, EventArgs e)
- {
- Series.YValue3 = cbxYValue3.Text;
- OnChange();
- }
- private void cbxYValue4_Leave(object sender, EventArgs e)
- {
- Series.YValue4 = cbxYValue4.Text;
- OnChange();
- }
- private void cbxColor_Leave(object sender, EventArgs e)
- {
- Series.Color = cbxColor.Text;
- OnChange();
- }
- private void tbFilter_Leave(object sender, EventArgs e)
- {
- Series.Filter = tbFilter.Text;
- OnChange();
- }
- private void tbFilter_ButtonClick(object sender, EventArgs e)
- {
- tbFilter.Text = Editors.EditExpression(Report, tbFilter.Text);
- }
- private void cbxXValueType_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- ChartSeries.XValueType = (ChartValueType)cbxXValueType.SelectedIndex;
- OnChange();
- }
- private void cbxYValueType_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- ChartSeries.YValueType = (ChartValueType)cbxYValueType.SelectedIndex;
- OnChange();
- }
- private void cbxXAxisType_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- ChartSeries.XAxisType = (AxisType)cbxXAxisType.SelectedIndex;
- OnChange();
- }
- private void cbxYAxisType_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- ChartSeries.YAxisType = (AxisType)cbxYAxisType.SelectedIndex;
- OnChange();
- }
- #endregion
- #region Values tab
- private void gvValues_CellEndEdit(object sender, DataGridViewCellEventArgs e)
- {
- GetGridValues();
- }
- private void gvValues_UserAddedRow(object sender, DataGridViewRowEventArgs e)
- {
- GetGridValues();
- }
- private void gvValues_UserDeletedRow(object sender, DataGridViewRowEventArgs e)
- {
- GetGridValues();
- }
- private void GetGridValues()
- {
- if (updating)
- return;
- if (gvValues.IsCurrentCellInEditMode)
- gvValues.EndEdit();
- int yValuesCount = Series.YValuesPerPoint;
- ChartSeries.Points.Clear();
- for (int i = 0; i < gvValues.Rows.Count - 1; i++)
- {
- object[] yValues = new object[yValuesCount];
- object xValue = gvValues[0, i].Value;
- if (ChartSeries.XValueType != ChartValueType.String)
- {
- try
- {
- xValue = double.Parse((string)xValue);
- }
- catch
- {
- xValue = 0;
- }
- }
- for (int j = 0; j < yValuesCount; j++)
- {
- object yValue = gvValues[j + 1, i].Value;
- try
- {
- yValues[j] = double.Parse(yValue.ToString());
- }
- catch
- {
- yValues[j] = 0;
- }
- }
- ChartSeries.Points.AddXY(xValue, yValues);
- }
- OnChange();
- }
- #endregion
- #region Data processing tab
- private void cbxSortBy_SelectedIndexChanged(object sender, EventArgs e)
- {
- Series.SortBy = (SortBy)cbxSortBy.SelectedIndex;
- cbxSortOrder.Enabled = Series.SortBy != SortBy.None;
- lblSortOrder.Enabled = cbxSortOrder.Enabled;
- OnChange();
- }
- private void cbxSortOrder_Leave(object sender, EventArgs e)
- {
- Series.SortOrder = (ChartSortOrder)cbxSortOrder.SelectedIndex;
- OnChange();
- }
- private void cbxGroupBy_SelectedIndexChanged(object sender, EventArgs e)
- {
- Series.GroupBy = (GroupBy)cbxGroupBy.SelectedIndex;
- udGroupInterval.Enabled = Series.GroupBy != GroupBy.None && Series.GroupBy != GroupBy.XValue;
- lblGroupInterval.Enabled = udGroupInterval.Enabled;
- cbxGroupFunction.Enabled = Series.GroupBy != GroupBy.None;
- lblGroupFunction.Enabled = cbxGroupFunction.Enabled;
- OnChange();
- }
- private void udGroupInterval_Leave(object sender, EventArgs e)
- {
- Series.GroupInterval = (float)udGroupInterval.Value;
- OnChange();
- }
- private void cbxGroupFunction_Leave(object sender, EventArgs e)
- {
- Series.GroupFunction = (TotalType)cbxGroupFunction.SelectedIndex;
- OnChange();
- }
- private void cbxCollectData_SelectedIndexChanged(object sender, EventArgs e)
- {
- pnCollectData.Enabled = cbxCollectData.SelectedIndex != 0;
- if (!updating)
- {
- Series.Collect = (Collect)cbxCollectData.SelectedIndex;
- OnChange();
- }
- }
- private void udCollectValue_Leave(object sender, EventArgs e)
- {
- Series.CollectValue = (int)udCollectValue.Value;
- OnChange();
- }
- private void tbCollectedItemText_Leave(object sender, EventArgs e)
- {
- Series.CollectedItemText = tbCollectedItemText.Text;
- OnChange();
- }
- private void cbxCollectedItemColor_ColorSelected(object sender, EventArgs e)
- {
- Series.CollectedItemColor = cbxCollectedItemColor.Color;
- OnChange();
- }
- private void cbxExplode_SelectedIndexChanged(object sender, EventArgs e)
- {
- bool valueEnabled = cbxExplode.SelectedIndex == 3;
- lblExplodedValue.Enabled = valueEnabled;
- tbExplodedValue.Enabled = valueEnabled;
- if (!valueEnabled)
- tbExplodedValue.Text = "";
- if (!updating)
- {
- Series.PieExplode = (PieExplode)cbxExplode.SelectedIndex;
- if (!valueEnabled)
- Series.PieExplodeValue = "";
- OnChange();
- }
- }
- private void tbExplodedValue_Leave(object sender, EventArgs e)
- {
- Series.PieExplodeValue = tbExplodedValue.Text;
- OnChange();
- }
- private void tbExplodedValue_ButtonClick(object sender, EventArgs e)
- {
- tbExplodedValue.Text = Editors.EditExpression(Report, tbExplodedValue.Text);
- }
- #endregion
- #region Fill & Border tab
- private void cbxPalette_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- ChartSeries.Palette = (ChartColorPalette)cbxPalette.SelectedIndex;
- OnChange();
- }
- private void cbxBackColor_ColorSelected(object sender, EventArgs e)
- {
- if (updating)
- return;
- ChartSeries.Color = cbxBackColor.Color;
- OnChange();
- }
- private void cbxSecondaryColor_ColorSelected(object sender, EventArgs e)
- {
- if (updating)
- return;
- ChartSeries.BackSecondaryColor = cbxSecondaryColor.Color;
- OnChange();
- }
- private void cbxGradient_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- ChartSeries.BackGradientStyle = (GradientStyle)cbxGradient.SelectedIndex;
- OnChange();
- }
- private void cbxHatchStyle_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- ChartSeries.BackHatchStyle = (ChartHatchStyle)cbxHatchStyle.SelectedIndex;
- OnChange();
- }
- private void cbxBorderColor_ColorSelected(object sender, EventArgs e)
- {
- if (updating)
- return;
- ChartSeries.BorderColor = cbxBorderColor.Color;
- OnChange();
- }
- private void cbxBorderStyle_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- ChartSeries.BorderDashStyle = (ChartDashStyle)cbxBorderStyle.SelectedIndex;
- OnChange();
- }
- private void udBorderWidth_ValueChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- ChartSeries.BorderWidth = (int)udBorderWidth.Value;
- OnChange();
- }
- private void cbxShadowColor_ColorSelected(object sender, EventArgs e)
- {
- if (updating)
- return;
- ChartSeries.ShadowColor = cbxShadowColor.Color;
- OnChange();
- }
- private void udShadowOffset_ValueChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- ChartSeries.ShadowOffset = (int)udShadowOffset.Value;
- OnChange();
- }
- #endregion
- #region Labels tab
- private void cbxLabelView_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- string pattern = "";
- switch (cbxLabelView.SelectedIndex)
- {
- case 1:
- pattern = "#VALX";
- break;
- case 2:
- pattern = "#VALY";
- break;
- case 3:
- pattern = "#PERCENT";
- break;
- case 4:
- pattern = "#VALX: #VALY";
- break;
- case 5:
- pattern = "#VALX: #PERCENT";
- break;
- }
- tbLabelPattern.Text = pattern;
- ChartSeries.Label = pattern;
- OnChange();
- }
- private void tbLabelPattern_Leave(object sender, EventArgs e)
- {
- ChartSeries.Label = tbLabelPattern.Text;
- OnChange();
- }
- private void tbLabelFormat_Leave(object sender, EventArgs e)
- {
- ChartSeries.LabelFormat = tbLabelFormat.Text;
- OnChange();
- }
- private void tbLabelFont_ButtonClick(object sender, EventArgs e)
- {
- using (FontDialog dialog = new FontDialog())
- {
- dialog.Font = ChartSeries.Font;
- if (dialog.ShowDialog() == DialogResult.OK)
- {
- ChartSeries.Font = dialog.Font;
- tbLabelFont.Text = Converter.ToString(dialog.Font);
- OnChange();
- }
- }
- }
- private void cbxLabelForeColor_ColorSelected(object sender, EventArgs e)
- {
- if (updating)
- return;
- ChartSeries.LabelForeColor = cbxLabelForeColor.Color;
- OnChange();
- }
- private void cbxLabelBackColor_ColorSelected(object sender, EventArgs e)
- {
- if (updating)
- return;
- ChartSeries.LabelBackColor = cbxLabelBackColor.Color;
- OnChange();
- }
- private void cbxLabelBorderColor_ColorSelected(object sender, EventArgs e)
- {
- if (updating)
- return;
- ChartSeries.LabelBorderColor = cbxLabelBorderColor.Color;
- OnChange();
- }
- private void cbxLabelBorderStyle_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- ChartSeries.LabelBorderDashStyle = (ChartDashStyle)cbxLabelBorderStyle.SelectedIndex;
- }
- private void udLabelBorderWidth_ValueChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- ChartSeries.LabelBorderWidth = (int)udLabelBorderWidth.Value;
- OnChange();
- }
- #endregion
- #region Markers tab
- private void cbxMarkerStyle_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- ChartSeries.MarkerStyle = (DataVisualization.Charting.MarkerStyle)cbxMarkerStyle.SelectedIndex;
- OnChange();
- }
- private void udMarkerSize_ValueChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- ChartSeries.MarkerSize = (int)udMarkerSize.Value;
- OnChange();
- }
- private void udMarkerStep_ValueChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- ChartSeries.MarkerStep = (int)udMarkerStep.Value;
- OnChange();
- }
- private void cbxMarkerColor_ColorSelected(object sender, EventArgs e)
- {
- if (updating)
- return;
- ChartSeries.MarkerColor = cbxMarkerColor.Color;
- OnChange();
- }
- private void cbxMarkerBorderColor_ColorSelected(object sender, EventArgs e)
- {
- if (updating)
- return;
- ChartSeries.MarkerBorderColor = cbxMarkerBorderColor.Color;
- OnChange();
- }
- private void udMarkerBorderWidth_ValueChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- ChartSeries.MarkerBorderWidth = (int)udMarkerBorderWidth.Value;
- OnChange();
- }
- #endregion
- private void cbxAutoSeriesData_Leave(object sender, EventArgs e)
- {
- Series.AutoSeriesColumn = cbxAutoSeriesData.Text;
- OnChange();
- }
- private void cbAutoSeriesForce_Leave(object sender, EventArgs e)
- {
- Series.AutoSeriesForce = cbAutoSeriesForce.Checked;
- OnChange();
- }
- }
- }
|