예제 #1
0
        protected override string GetGraphXml()
        {
            using (var helper = new FusionChartsMultiSeriesHelper())
            {
                SetGraphConfiguration(helper);

                var hoursInShift = new FusionChartsDataset {
                    Name = CultureManager.GetLabel("HS_EN_TURNO")
                };
                hoursInShift.SetPropertyValue("seriesName", CultureManager.GetLabel("HS_EN_TURNO"));

                var hoursOutOfShift = new FusionChartsDataset {
                    Name = CultureManager.GetLabel("HS_FUERA_DE_TURNO")
                };
                hoursOutOfShift.SetPropertyValue("seriesName", CultureManager.GetLabel("HS_FUERA_DE_TURNO"));
                hoursOutOfShift.SetPropertyValue("color", "1E90FF");

                if (!ReportObjectsList.Any(d => !d.HoursInShift.Equals(0) || !d.HoursOutOfShift.Equals(0)))
                {
                    return(helper.BuildXml());
                }

                foreach (var item in ReportObjectsList)
                {
                    helper.AddCategory(item.Date.ToShortTimeString());
                    hoursInShift.addValue(item.HoursInShift.ToString(CultureInfo.InvariantCulture));
                    hoursOutOfShift.addValue(item.HoursOutOfShift.ToString(CultureInfo.InvariantCulture));
                }

                helper.AddDataSet(hoursInShift);
                helper.AddDataSet(hoursOutOfShift);
                return(helper.BuildXml());
            }
        }
예제 #2
0
        protected override string GetGraphXml()
        {
            using (var helper = new FusionChartsMultiSeriesHelper())
            {
                if (ReportObjectsList.Count <= 0)
                {
                    throw new Exception("No se encontraron datos asociados a los filtros seleccionados!");
                }

                SetGraphProperties(helper);

                AddDates(helper);

                var maxTurnos = ReportObjectsList.Select(res => res.HsTurnos.Count).Max();

                var colorGenerator = new ColorGenerator();
                FusionChartsDataset niveles;

                for (var i = 0; i < maxTurnos; i++)
                {
                    niveles = new FusionChartsDataset();
                    niveles.SetPropertyValue("color", HexColorUtil.ColorToHex(colorGenerator.GetNextColor()));

                    foreach (var dia in ReportObjectsList)
                    {
                        if (dia.HsTurnos.Count > 1)
                        {
                            niveles.addValue(dia.HsTurnos.First().ToString(CultureInfo.InvariantCulture));
                            dia.HsTurnos.Remove(dia.HsTurnos.First());
                            niveles.addValue(dia.HsReales.First().ToString(CultureInfo.InvariantCulture));
                            dia.HsReales.Remove(dia.HsReales.First());
                            niveles.addValue("0");
                        }
                        else
                        if (dia.HsTurnos.Count == 1)
                        {
                            niveles.addValue("0");
                            niveles.addValue("0");
                            niveles.addValue("0");
                        }
                    }
                    helper.AddDataSet(niveles);
                }

                niveles = new FusionChartsDataset();
                niveles.SetPropertyValue("color", HexColorUtil.ColorToHex(Color.Gray));
                niveles.SetPropertyValue("seriesName", "Fuera de Turno");
                foreach (var dia in ReportObjectsList)
                {
                    niveles.addValue(dia.HsTurnos.First().ToString(CultureInfo.InvariantCulture));
                    niveles.addValue(dia.HsReales.First().ToString(CultureInfo.InvariantCulture));
                    niveles.addValue("0");
                }
                helper.AddDataSet(niveles);

                return(helper.BuildXml());
            }
        }
예제 #3
0
        protected override string GetGraphXml()
        {
            ToogleItems(lbBase);

            using (var helper = new FusionChartsMultiSeriesHelper())
            {
                SetGraphConfiguration(helper);

                var iniDate  = SecurityExtensions.ToDataBaseDateTime(dtpDate.SelectedDate.GetValueOrDefault());
                var finDate  = SecurityExtensions.ToDataBaseDateTime(dtpDate.SelectedDate.GetValueOrDefault()).AddHours(23).AddMinutes(59).AddSeconds(59);
                var colorGen = new ColorGenerator();

                var noCategoriesAdded = true;
                var hasValue          = false;
                if (lbBase.GetSelectedIndices().Length == 0)
                {
                    lbBase.ToogleItems();
                }

                foreach (var index in lbBase.GetSelectedIndices())
                {
                    var data = ReportFactory.IdleTimesDAO.GetAllMovilesStoppedInPlanta(Convert.ToInt32((string)lbBase.Items[index].Value),
                                                                                       iniDate, finDate, chkUndefined.Checked);

                    var dataset = new FusionChartsDataset {
                        Name = lbBase.Items[index].Text
                    };
                    dataset.SetPropertyValue("SeriesName", lbBase.Items[index].Text);
                    dataset.SetPropertyValue("color", HexColorUtil.ColorToHex(colorGen.GetNextColor()));

                    foreach (var item in data)
                    {
                        if (noCategoriesAdded)
                        {
                            helper.AddCategory(item.Date.ToShortTimeString());
                        }
                        dataset.addValue(item.TotalVehicles.ToString(CultureInfo.InvariantCulture));
                        if (!item.TotalVehicles.Equals(0))
                        {
                            hasValue = true;
                        }
                    }

                    helper.AddDataSet(dataset);
                    noCategoriesAdded = false;
                }

                if (!hasValue)
                {
                    throw new Exception(CultureManager.GetError("NO_MOBILE_IN_BASE"));
                }

                return(helper.BuildXml());
            }
        }
예제 #4
0
        protected override string GetGraphXml()
        {
            using (var helper = new FusionChartsMultiSeriesHelper())
            {
                SetGraphProperties(helper);

                var consumos            = new FusionChartsDataset();
                var ingresos            = new FusionChartsDataset();
                var conciliacionEgreso  = new FusionChartsDataset();
                var conciliacionIngreso = new FusionChartsDataset();

                var categories = new List <string>();

                consumos.SetPropertyValue("seriesName", CultureManager.GetLabel("CONSUMOS"));

                ingresos.SetPropertyValue("seriesName", CultureManager.GetLabel("INGRESOS"));
                ingresos.SetPropertyValue("color", "008ED6");

                conciliacionEgreso.SetPropertyValue("seriesName", CultureManager.GetLabel("EGRESOS_CONCILIACION"));
                conciliacionEgreso.SetPropertyValue("color", "FF9933");

                conciliacionIngreso.SetPropertyValue("seriesName", CultureManager.GetLabel("INGRESOS_CONCILIACION"));
                conciliacionIngreso.SetPropertyValue("color", "339900");

                foreach (var c in ReportObjectsList)
                {
                    var category = String.Format("{0}", c.Fecha.ToShortDateString());

                    if (!categories.Contains(category))
                    {
                        categories.Add(category);
                        helper.AddCategory(category);
                    }

                    consumos.addValue(c.VolumenConsumido.ToString(CultureInfo.InvariantCulture));
                    ingresos.addValue(c.Ingresos.ToString(CultureInfo.InvariantCulture));
                    conciliacionEgreso.addValue(c.EgresosPorConciliacion.ToString(CultureInfo.InvariantCulture));
                    conciliacionIngreso.addValue(c.IngresosPorConciliacion.ToString(CultureInfo.InvariantCulture));
                }
                helper.AddDataSet(consumos);
                helper.AddDataSet(ingresos);
                helper.AddDataSet(conciliacionEgreso);
                helper.AddDataSet(conciliacionIngreso);

                GraphCategories = helper.GetCategoriesList();
                GraphDataSet    = new List <FusionChartsDataset> {
                    consumos, ingresos, conciliacionEgreso, conciliacionIngreso
                };

                var s = helper.BuildXml();
                return(s);
            }
        }
예제 #5
0
        private static string GetGraphXml(IEnumerable <ResumenDeEntregasVo> entregas)
        {
            using (var helper = new FusionChartsMultiSeriesHelper())
            {
                helper.AddConfigEntry("xAxisName", CultureManager.GetLabel("INTERNO"));
                helper.AddConfigEntry("yAxisName", CultureManager.GetLabel("CANTIDAD"));
                helper.AddConfigEntry("decimalPrecision", "0");
                helper.AddConfigEntry("showValues", "0");
                helper.AddConfigEntry("showNames", "1");
                helper.AddConfigEntry("hoverCapSepChar", " - ");

                var completados = new FusionChartsDataset();
                completados.SetPropertyValue("color", "#008000");
                completados.SetPropertyValue("seriesName", CultureManager.GetLabel("COMPLETADOS"));
                var visitados = new FusionChartsDataset();
                visitados.SetPropertyValue("color", "#FFFF00");
                visitados.SetPropertyValue("seriesName", CultureManager.GetLabel("VISITADOS"));
                var enSitio = new FusionChartsDataset();
                enSitio.SetPropertyValue("color", "#00A2E8");
                enSitio.SetPropertyValue("seriesName", CultureManager.GetLabel("EN_SITIO"));
                var enZona = new FusionChartsDataset();
                enZona.SetPropertyValue("color", "#808080");
                enZona.SetPropertyValue("seriesName", CultureManager.GetLabel("EN_ZONA"));
                var noCompletados = new FusionChartsDataset();
                noCompletados.SetPropertyValue("color", "#FF0000");
                noCompletados.SetPropertyValue("seriesName", CultureManager.GetLabel("NO_COMPLETADOS"));
                var noVisitados = new FusionChartsDataset();
                noVisitados.SetPropertyValue("color", "#FF4500");
                noVisitados.SetPropertyValue("seriesName", CultureManager.GetLabel("NO_VISITADOS"));

                foreach (var entrega in entregas)
                {
                    helper.AddCategory(entrega.Vehiculo.Replace('&', 'y'));
                    completados.addValue(entrega.Completados.ToString("#0"));
                    visitados.addValue(entrega.Visitados.ToString("#0"));
                    enSitio.addValue(entrega.EnSitio.ToString("#0"));
                    enZona.addValue(entrega.EnZona.ToString("#0"));
                    noCompletados.addValue(entrega.NoCompletados.ToString("#0"));
                    noVisitados.addValue(entrega.NoVisitados.ToString("#0"));
                }

                helper.AddDataSet(completados);
                helper.AddDataSet(visitados);
                helper.AddDataSet(enSitio);
                helper.AddDataSet(enZona);
                helper.AddDataSet(noCompletados);
                helper.AddDataSet(noVisitados);

                return(helper.BuildXml());
            }
        }
예제 #6
0
        protected override string GetGraphXml()
        {
            using (var helper = new FusionChartsMultiSeriesHelper())
            {
                SetGraphProperties(helper);

                var teoricDataset = new FusionChartsDataset();
                var realDataset   = new FusionChartsDataset();
                var labelInterval = (ReportObjectsList.Count / MaxLabels) + 1;
                var i             = labelInterval;

                int resto;
                Math.DivRem(Convert.ToInt32(npInterval.Value), 1440, out resto);
                var printOnlyDate = resto.Equals(0);

                teoricDataset.SetPropertyValue("seriesName", "Te&oacute;rico");

                realDataset.SetPropertyValue("seriesName", "Real");
                realDataset.SetPropertyValue("color", "008ED6");

                if (ReportObjectsList.Any(o => o.StockReal > 0 || o.StockTeorico > 0))
                {
                    foreach (var consist in ReportObjectsList)
                    {
                        var str = String.Empty;
                        if (i == labelInterval)
                        {
                            str = printOnlyDate ? String.Format("{0}", consist.Fecha.ToShortDateString())
                                      : String.Format("{0} - {1}", consist.Fecha.ToShortDateString(), consist.Fecha.ToShortTimeString());
                            i = 0;
                        }
                        i++;
                        helper.AddCategory(str);
                        teoricDataset.addValue(consist.StockTeorico.ToString(CultureInfo.InvariantCulture));
                        realDataset.addValue(consist.StockReal.ToString(CultureInfo.InvariantCulture));
                    }
                }
                if (chkTeorico.Checked)
                {
                    helper.AddDataSet(teoricDataset);
                }
                if (chkReal.Checked)
                {
                    helper.AddDataSet(realDataset);
                }

                var s = helper.BuildXml();
                return(s);
            }
        }
예제 #7
0
        /// <summary>
        /// Adds tank level variation.
        /// </summary>
        /// <param name="helper"></param>
        private void AddEnginesCaudal(FusionChartsMultiSeriesHelper helper)
        {
            var niveles = new FusionChartsDataset();

            var avgCaudal = (from nivel in ReportObjectsList select nivel.Caudal).Average();

            niveles.SetPropertyValue("seriesName", string.Format("{0}: {1}lit", CultureManager.GetLabel("CAUDAL"), (int)avgCaudal));
            niveles.SetPropertyValue("color", HexColorUtil.ColorToHex(Color.SteelBlue));

            foreach (var nivel in ReportObjectsList)
            {
                niveles.addValue(nivel.Caudal.ToString(CultureInfo.InvariantCulture));
            }
            helper.AddDataSet(niveles);
        }
예제 #8
0
        protected override string GetGraphXml()
        {
            using (var helper = new FusionChartsMultiSeriesHelper())
            {
                if (ReportObjectsList.Count <= 0)
                {
                    throw new Exception("No se encontraron datos asociados a los filtros seleccionados!");
                }

                if (!ReportObjectsList.Any(r => r.HsOff > 0 || r.HsOn > 0 || r.HsTurnoOff > 0 || r.HsTurnoOn > 0))
                {
                    return(helper.BuildXml());
                }

                SetGraphProperties(helper);

                var hsTurnoOn = new FusionChartsDataset();
                hsTurnoOn.SetPropertyValue("color", "2E8B57");
                hsTurnoOn.SetPropertyValue("seriesName", CultureManager.GetLabel("HS_TURNO_ON"));

                var hsTurnoOff = new FusionChartsDataset();
                hsTurnoOff.SetPropertyValue("color", "FFD700");
                hsTurnoOff.SetPropertyValue("seriesName", CultureManager.GetLabel("HS_TURNO_OFF"));

                var hsOn = new FusionChartsDataset();
                hsOn.SetPropertyValue("color", "4876FF");
                hsOn.SetPropertyValue("seriesName", CultureManager.GetLabel("HS_ON"));

                var hsOff = new FusionChartsDataset();
                hsOff.SetPropertyValue("color", "B22222");
                hsOff.SetPropertyValue("seriesName", CultureManager.GetLabel("HS_OFF"));

                foreach (var result in ReportObjectsList)
                {
                    helper.AddCategory(String.Format("{0}", result.Fecha.ToShortDateString()));
                    hsTurnoOn.addValue(result.HsTurnoOn.ToString(CultureInfo.InvariantCulture));
                    hsTurnoOff.addValue(result.HsTurnoOff.ToString(CultureInfo.InvariantCulture));
                    hsOn.addValue(result.HsOn.ToString(CultureInfo.InvariantCulture));
                    hsOff.addValue(result.HsOff.ToString(CultureInfo.InvariantCulture));
                }
                helper.AddDataSet(hsTurnoOn);
                helper.AddDataSet(hsTurnoOff);
                helper.AddDataSet(hsOn);
                helper.AddDataSet(hsOff);

                return(helper.BuildXml());
            }
        }
예제 #9
0
        /// <summary>
        /// Gets the graph XML file.
        /// </summary>
        /// <returns></returns>
        protected override string GetGraphXml()
        {
            var datasets = new List <FusionChartsDataset>();

            using (var helper = new FusionChartsMultiSeriesHelper())
            {
                SetGraphProperties(helper);
                var flag = true;

                var colores = new ColorGenerator();

                foreach (var m in _horas.Keys)
                {
                    var horas       = new FusionChartsDataset();
                    var descripcion = DAOFactory.CaudalimetroDAO.FindById(m).Descripcion;
                    horas.SetPropertyValue("seriesName", descripcion);
                    horas.SetPropertyValue("color", HexColorUtil.ColorToHex(colores.GetNextColor()));
                    var list = _horas[m];

                    if (list.Count.Equals(0))
                    {
                        continue;
                    }

                    foreach (var h in list)
                    {
                        if (flag)
                        {
                            helper.AddCategory(h.Fecha.ToShortDateString());
                        }
                        horas.addValue(h.HsEnMarcha.ToString(CultureInfo.InvariantCulture));
                    }
                    flag = false;
                    helper.AddDataSet(horas);
                    datasets.Add(horas);
                }
                var categories = new List <string>();
                categories.AddRange(helper.GetCategoriesList());
                GraphCategories = categories;
                GraphDataSet    = datasets;
                return(helper.BuildXml());
            }
        }
예제 #10
0
        /// <summary>
        /// Adds tank level variation.
        /// </summary>
        /// <param name="helper"></param>
        private void AddTankLevelVariation(FusionChartsMultiSeriesHelper helper)
        {
            var niveles = new FusionChartsDataset();

            var labelInterval = (ReportObjectsList.Count / _MAX_LABELS) + 1;
            var i             = labelInterval;

            int resto;

            Math.DivRem(Convert.ToInt32(npIntervalo.Value), 1440, out resto);
            var printOnlyDate = resto.Equals(0);

            niveles.SetPropertyValue("seriesName", ddlTanque.SelectedItem.Text);
            niveles.SetPropertyValue("color", HexColorUtil.ColorToHex(Color.SteelBlue));

            if (ReportObjectsList.Any(o => o.VolumenConsumido > 0.01))
            {
                foreach (var nivel in ReportObjectsList)
                {
                    var str = string.Empty;

                    if (i.Equals(labelInterval))
                    {
                        str = printOnlyDate ? String.Format("{0}", nivel.Fecha.ToShortDateString()) :
                              String.Format("{0} - {1}", nivel.Fecha.ToShortDateString(), nivel.Fecha.ToShortTimeString());

                        i = 0;
                    }

                    i++;

                    helper.AddCategory(str);

                    niveles.addValue(nivel.VolumenConsumido.ToString(CultureInfo.InvariantCulture));
                }
            }
            helper.AddDataSet(niveles);
        }
예제 #11
0
        /// <summary>
        /// adds the consumptions made by all engines associated to the tank.
        /// </summary>
        /// <param name="helper"></param>
        private void AddEnginesConsumption(FusionChartsMultiSeriesHelper helper)
        {
            var niveles = new FusionChartsDataset();

            var avgConsumption = (from nivel in ReportObjectsList select nivel.Consumo).Average();

            niveles.SetPropertyValue("seriesName", string.Format("{0}: {1}lit", CultureManager.GetLabel("CONSUMO"), (int)avgConsumption));

            foreach (var dia in ReportObjectsList)
            {
                niveles.addValue(dia.Consumo.ToString(CultureInfo.InvariantCulture));
            }

            helper.AddDataSet(niveles);
        }
예제 #12
0
        /// <summary>
        /// adds the consumptions made by all engines associated to the tank.
        /// </summary>
        /// <param name="helper"></param>
        private void AddEnginesConsumption(FusionChartsMultiSeriesHelper helper)
        {
            var niveles = new FusionChartsDataset();

            niveles.SetPropertyValue("seriesName", CultureManager.GetLabel("MOTORES"));

            if (_motores.Where(o => o.VolumenConsumido > 0.01).Count() > 0)
            {
                foreach (var consumo in _motores)
                {
                    niveles.addValue(consumo.VolumenConsumido.ToString(CultureInfo.InvariantCulture));
                }
            }

            helper.AddDataSet(niveles);
        }
예제 #13
0
        protected override void GetGraphCategoriesAndDatasets()
        {
            var datasets   = new List <FusionChartsDataset>();
            var categories = new List <string>();

            var iniDate  = SecurityExtensions.ToDataBaseDateTime(dtpDate.SelectedDate.GetValueOrDefault());
            var finDate  = SecurityExtensions.ToDataBaseDateTime(dtpDate.SelectedDate.GetValueOrDefault()).AddHours(23).AddMinutes(59).AddSeconds(59);
            var colorGen = new ColorGenerator();

            var noCategoriesAdded = true;

            if (lbBase.GetSelectedIndices().Length == 0)
            {
                lbBase.ToogleItems();
            }

            foreach (var index in lbBase.GetSelectedIndices())
            {
                var data = ReportFactory.IdleTimesDAO.GetAllMovilesStoppedInPlanta(Convert.ToInt32((string)lbBase.Items[index].Value),
                                                                                   iniDate, finDate, chkUndefined.Checked);

                var dataset = new FusionChartsDataset {
                    Name = lbBase.Items[index].Text
                };
                dataset.SetPropertyValue("color", HexColorUtil.ColorToHex(colorGen.GetNextColor()));

                foreach (var item in data)
                {
                    if (noCategoriesAdded)
                    {
                        categories.Add(item.Date.ToShortTimeString());
                    }
                    dataset.addValue(item.TotalVehicles.ToString(CultureInfo.InvariantCulture));
                }

                datasets.Add(dataset);
                noCategoriesAdded = false;
            }

            GraphCategories = categories;
            GraphDataSet    = datasets;
        }
예제 #14
0
        protected void CreateGraphic(List <Pedido> list)
        {
            try
            {
                using (var helper = new FusionChartsMultiSeriesHelper())
                {
                    var carga = GetCarga(null);
                    var bocas = cbBocaDeCarga.Selected > 0
                        ? new List <BocaDeCarga> {
                        DAOFactory.BocaDeCargaDAO.FindById(cbBocaDeCarga.Selected)
                    }
                        : DAOFactory.BocaDeCargaDAO.GetList(new[] { cbEmpresa.Selected }, new[] { cbLinea.Selected });

                    var inicio      = bocas.Min(boca => GetInicioActividad(boca));
                    var fin         = bocas.Max(boca => GetFinActividad(boca));
                    var rendimiento = bocas.Sum(boca => boca.Rendimiento);

                    var    tiempoPromedio = Convert.ToInt32(_tiempoCiclos.Sum() / CantidadTotal);
                    var    prev           = 0;
                    double maxValue       = rendimiento;
                    var    maxMixers      = CantidadMixers;

                    #region DataSet Rendimiento (Trendline)
                    var dataSetTrendLineRendimiento = new FusionChartsDataset();
                    dataSetTrendLineRendimiento.SetPropertyValue("seriesName", CultureManager.GetLabel("RENDIMIENTO"));
                    dataSetTrendLineRendimiento.SetPropertyValue("color", "c30000");
                    dataSetTrendLineRendimiento.SetPropertyValue("parentYAxis", "S");
                    dataSetTrendLineRendimiento.SetPropertyValue("showAnchors", "0");
                    dataSetTrendLineRendimiento.SetPropertyValue("alpha", "60");
                    dataSetTrendLineRendimiento.SetPropertyValue("lineThickness", "2");
                    helper.AddDataSet(dataSetTrendLineRendimiento);
                    #endregion

                    #region DataSet Volumen por Hora (Barras)
                    var dataSetVolumen = new FusionChartsDataset();
                    dataSetVolumen.SetPropertyValue("seriesName", CultureManager.GetLabel("PROGRAMACION_VOLUMEN_HORA"));
                    dataSetVolumen.SetPropertyValue("color", "6868c3");
                    dataSetVolumen.SetPropertyValue("parentYAxis", "P");
                    helper.AddDataSet(dataSetVolumen);
                    #endregion

                    #region DataSet Mixers Disponibles (Trendline)
                    var dataSetTrendLineMixers = new FusionChartsDataset();
                    dataSetTrendLineMixers.SetPropertyValue("seriesName", CultureManager.GetLabel("AVAILABLE_VEHICLES"));
                    dataSetTrendLineMixers.SetPropertyValue("color", "c39600");
                    dataSetTrendLineMixers.SetPropertyValue("parentYAxis", "S");
                    dataSetTrendLineMixers.SetPropertyValue("showAnchors", "0");
                    dataSetTrendLineMixers.SetPropertyValue("alpha", "60");
                    dataSetTrendLineMixers.SetPropertyValue("lineThickness", "2");
                    helper.AddDataSet(dataSetTrendLineMixers);
                    #endregion

                    #region DataSet Mixers Equivalentes (Linea)
                    var dataSetMixers = new FusionChartsDataset();
                    dataSetMixers.SetPropertyValue("seriesName", CultureManager.GetLabel("PROGRAMACION_MIXERS_EQUIVALENTES"));
                    dataSetMixers.SetPropertyValue("color", "009900");
                    dataSetMixers.SetPropertyValue("parentYAxis", "S");
                    dataSetMixers.SetPropertyValue("anchorSides", "10");
                    dataSetMixers.SetPropertyValue("anchorRadius", "3");
                    dataSetMixers.SetPropertyValue("anchorBorderColor", "009900");
                    helper.AddDataSet(dataSetMixers);
                    #endregion

                    #region Llenado de Categorias y Valores
                    for (var i = inicio; i <= fin; i = i.Add(TimeSpan.FromHours(1)))
                    {
                        var hora = Convert.ToInt32(i.Hours);
                        var val  = _volumenPorHora.ContainsKey(hora) ? _volumenPorHora[hora] : 0;
                        var mix  = (int)Math.Ceiling(1.0 * val / carga);
                        var equi = (int)Math.Round((prev + mix) * tiempoPromedio / TiempoReferencia);


                        helper.AddCategory(FormatTimeSpan(i));
                        dataSetVolumen.addValue(val.ToString().Replace(',', '.'));
                        dataSetMixers.addValue(equi.ToString());

                        if (val > maxValue)
                        {
                            maxValue = val;
                        }
                        if (equi > maxMixers)
                        {
                            maxMixers = equi;
                        }

                        prev = mix;
                    }
                    #endregion

                    #region Calculo proporcional de maximos y trendlines
                    maxMixers++;
                    maxValue++;
                    int divlines;
                    if (maxValue > maxMixers)
                    {
                        while (Math.Round(maxValue) % maxMixers != 0)
                        {
                            maxValue++;
                        }
                        divlines = Convert.ToInt32(maxValue / maxMixers);
                    }
                    else
                    {
                        while (maxMixers % Math.Round(maxValue) != 0)
                        {
                            maxMixers++;
                        }
                        divlines = Convert.ToInt32(maxMixers / maxValue);
                    }

                    var rend = rendimiento * maxMixers * 1.0 / maxValue;

                    for (var i = inicio; i <= fin; i = i.Add(TimeSpan.FromHours(1)))
                    {
                        dataSetTrendLineRendimiento.addValue(rend.ToString(CultureInfo.InvariantCulture));
                        dataSetTrendLineMixers.addValue(CantidadMixers.ToString());
                    }
                    #endregion

                    #region Valores de Cabecera
                    helper.AddConfigEntry("caption", "");
                    helper.AddConfigEntry("xAxisName", CultureManager.GetLabel("HORA"));
                    helper.AddConfigEntry("PyAxisName", CultureManager.GetLabel("VOLUMEN"));
                    helper.AddConfigEntry("SyAxisName", CultureManager.GetLabel("VEHICULOS"));
                    helper.AddConfigEntry("decimalPrecision", "0");
                    helper.AddConfigEntry("showValues", "0");
                    helper.AddConfigEntry("numberSuffix", "");
                    helper.AddConfigEntry("rotateNames", "1");
                    helper.AddConfigEntry("limitsDecimalPrecision", "0");
                    helper.AddConfigEntry("hoverCapSepChar", "-");
                    helper.AddConfigEntry("divLineAlpha", "60");
                    helper.AddConfigEntry("showAlternateHGridColor", "1");
                    helper.AddConfigEntry("alternateHGridColor", "d8d8d8");
                    helper.AddConfigEntry("alternateHGridAlpha", "60");
                    helper.AddConfigEntry("zeroPlaneThickness", "20");

                    helper.AddConfigEntry("numDivLines", (divlines - 1).ToString());
                    helper.AddConfigEntry("SyAxisMaxValue", maxMixers.ToString());
                    helper.AddConfigEntry("PyAxisMaxValue", Math.Round(maxValue).ToString());
                    #endregion


                    litGraph.Text = FusionCharts.RenderChartHTML("../FusionCharts/FCF_MSColumn2DLineDY.swf", "", helper.BuildXml(), "Report", (sizeField.Width).ToString(), (sizeField.Heigth).ToString(), false);
                }
            }
            catch (Exception ex) { ShowError(ex); }
        }