Ejemplo n.º 1
0
        /// <summary>
        /// Clear chart and add data from PXModel instance.
        /// </summary>
        /// <param name="px">PXModel to add to chart.</param>
        /// <param name="settings">Settings as PxChartSettings. Eg. as a Lambda expression.</param>
        public virtual void AddPxData(PXModel px, PxChartSettings settings)
        {
            Titles.Clear();
            Series.Clear();
            Legends.Clear();
            ChartAreas.Clear();

            initialize(px, settings);
        }
Ejemplo n.º 2
0
        public PxWebChart(PXModel px, ChartSettings settings, PxChartSettings settingsAsLambda)
            : base(px, settingsAsLambda)
        {
            CurrentCulture = settings.CurrentCulture;
            Settings       = settings;

            // Source text
            if (!String.IsNullOrEmpty(px.Meta.Source))
            {
                // Use Source from model if it exists...
                InfoText = ChartHelper.GetLocalizedString("PxWebChartsSourceLabel", CurrentCulture) + " " + px.Meta.Source;
            }
            else
            {
                // ...else use localized text
                InfoText = ChartHelper.GetLocalizedString("PxWebChartsSourceLabel", CurrentCulture) + " " + ChartHelper.GetLocalizedString("PxWebChartsSource", CurrentCulture);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Creates PxChart with chart settings.
        /// </summary>
        /// <param name="px">PXModel instance to create chart from.</param>
        /// <param name="settings">Settings as PxChartSettings. Eg. as a Lambda expression.</param>
        public DstChart(PXModel px, PxChartSettings settings)
            : base(
                px,
                c =>
        {
            c.EliminateAllSingleValueVariables = true;

            ((DstChart)c).PXMeta = px != null ? px.Meta : null;

            //c.PieLabelStyle = "Outside";

            //c.InfoText = "© " + Resources.DstChart.Copyright;

            //if (px != null && px.Meta.Matrix != "")
            //{
            //    c.InfoText +=
            //        String.Format(
            //            ", {0}: http://{1}/" + px.Meta.Matrix.ToLower(),
            //            Resources.DstChart.Source,
            //            Resources.DstChart.Site
            //        );
            //}

            try
            {
                c.Font.Family      = new FontFamily("Arial");
                c.Font.SizeRegular = 13;
                //c.Font.TitleTextColor = ColorTranslator.FromHtml("#333");
                c.Font.InfoTextBrush = new SolidBrush(ColorTranslator.FromHtml("#4c4c4c"));
            }
            catch
            { }

            if (settings != null)
            {
                settings(c);
            }
        }
                )
        { }
Ejemplo n.º 4
0
 /// <summary>
 /// Creates PxChart with chart settings.
 /// </summary>
 /// <param name="px">PXModel instance to create chart from.</param>
 /// <param name="settings">Settings as PxChartSettings. Eg. as a Lambda expression.</param>
 public PxChart(PXModel px, PxChartSettings settings)
     : this()
 {
     initialize(px, settings);
 }
Ejemplo n.º 5
0
        /// <summary>
        /// Override in derived class for initalizing the chart.
        /// You might wanna include execution of the base class.
        /// </summary>
        /// <param name="px">PXModel instance with data.</param>
        /// <param name="settings">Settings as eg. a Lambda expression</param>
        protected void initialize(PXModel px, PxChartSettings settings)
        {
            if (px != null && px.Meta.Copyright)
            {
                InfoText = "© " + px.Meta.Source;
            }

            settings?.Invoke(this);

            if (px != null && AsPopulationPyramid)
            {
                //px = px.PrepareForPopulationPyramid(MaleValueNameForPopulationPyramid);

                if (px.Meta.Variables.Count(x => x.Values.Count > 1) <= 2)
                {
                    ChartType = SeriesChartType.StackedBar;
                    AutoMoveMostValuesVariableToX = true;
                }
                else
                {
                    ChartType = SeriesChartType.Bar;
                    AutoMoveMostValuesVariableToX = false;
                    px =
                        px.PivotSpecificVariableToAloneInHead(
                            px.Meta.Variables.First(x => !x.IsTime && !x.Values.Any(z => z.Value.ToLower() == MaleValueNameForPopulationPyramid.ToLower())).Name
                            );
                }
            }

            additionalFunctionalityFirst();

            if (px != null)
            {
                initializePxData(px);
            }

            addTitle();
            addLegend();
            addChartArea();

            if (SecondaryAxisFromSeriesNumber > 0)
            {
                if (SecondaryAxisAddToSeriesName == null)
                {
                    throw new PxChartExceptions.PxChartException("SecondaryAxisAddToSeriesName must not be null, when moving series to secondary axis.");
                }

                ChartAreas["Main"].AxisY2 = templateAxisY;

                foreach (Series s in Series.Skip(SecondaryAxisFromSeriesNumber - 1))
                {
                    s.YAxisType = AxisType.Secondary;
                    s.Name     += SecondaryAxisAddToSeriesName;
                }

                if (SecondaryAxisAddToPrimarySeriesName != null)
                {
                    foreach (Series s in Series.Take(SecondaryAxisFromSeriesNumber - 1))
                    {
                        s.Name += SecondaryAxisAddToPrimarySeriesName;
                    }
                }
            }

            initializeDataLayout();

            additionalFunctionalityLast();
        }
Ejemplo n.º 6
0
 /// <summary>
 /// Creates a DstChart from a PXModel instance.
 /// </summary>
 /// <param name="px">PXModel instance to create chart from.</param>
 public DstChart(PxChartSettings settings)
     : this(null, settings)
 {
 }