private static void FillData(DataSetElement dataSet, int factoryId)
        {
            //
            // Build Data
            //
            var outputs = FactoryRepository.FindAllFactoryOutputByFactoryId(factoryId);

            var num = 0;

            foreach (var output in outputs)
            {
                var set = new ValueSetElement
                {
                    //Label = output.DatePro.Value.ToShortDateString(),
                    Value = output.Quantity ?? 0
                };

                if ((num++ % 2) == 0)
                {
                    set.Link.SetLink(FusionLinkMethod.Local, "javascript:PopUp('April');");
                }
                // 실제 Javascript 메소드를 쓰려면 "PopUp-April" 로만 쓰면 된다.
                else
                {
                    set.Link.SetLink(FusionLinkMethod.PopUp,
                                     WebTool.GetScriptPath("~/Charts/Ajax/Default.aspx?FactoryId=") + factoryId);
                    set.Link.Width  = 600;
                    set.Link.Height = 400;
                }

                dataSet.AddSet(set);
            }
        }
        private static void FillData(SingleSeriesChart chart, int factoryId)
        {
            //
            // Build Data
            //
            var outputs = FactoryRepository.FindAllFactoryOutputByFactoryId(factoryId);

            var num = 0;

            foreach (var output in outputs)
            {
                var set = new ValueSetElement
                {
                    Label = output.DatePro.Value.ToShortDateString(),
                    Value = output.Quantity ?? 0
                };

                switch (num % 4)
                {
                case 0:
                    set.Link.SetLink(FusionLinkMethod.Local, "javascript:PopUp('April')");
                    break;

                case 1:
                    set.Link.SetLink(FusionLinkMethod.PopUp,
                                     WebTool.GetScriptPath("~/Charts/Ajax/Default.aspx?FactoryId=") + factoryId);
                    break;

                case 2:
                    set.Link.SetFameLink(WebTool.GetScriptPath("~/Charts/Ajax/Default.aspx?FactoryId=") + factoryId, "_blank");
                    break;

                case 3:
                    set.Link.SetJavascriptLink("PopUp", "April");
                    break;

                default:
                    set.Link.SetLink(FusionLinkMethod.Local, "http://www.realweb21.com");
                    break;
                }

                num++;
                //if ((num++ % 2) == 0)
                //    set.Link.SetLink(FusionLinkMethod.Local, "javascript:PopUp('April');"); // 실제 Javascript 메소드를 쓰려면 "PopUp-April" 로만 쓰면 된다.
                //else
                //{
                //    set.Link.SetLink(FusionLinkMethod.PopUp, WebTool.GetScriptPath("~/Charts/Ajax/Default.aspx?FactoryId=") + factoryId.ToString());
                //    set.Link.Width = 600;
                //    set.Link.Height = 400;
                //}

                chart.SetElements.Add(set);
            }
        }
        /// <summary>
        /// Application_Start 시에 실행할 비동기 작업의 본체입니다.
        /// </summary>
        protected override void ApplicationStartAfter(HttpContext context)
        {
            base.ApplicationStartAfter(context);

            // 이 함수 자체가 비동기로 실행되는데, 거기다가 병렬로 미리 Factory 관련 Data를 로드합니다.
            //
            var masters = FactoryRepository.FindAllFactoryMaster();

            Parallel.ForEach(masters,
                             master => FactoryRepository.FindAllFactoryOutputByFactoryId(master.Id));
        }
示例#4
0
        protected void UpdateChart()
        {
            // ViewState가 유지되는지
            lblFactory.Text = "Previous Factory = Factory " + FactoryId.AsText();

            FactoryId = RadioButtonList1.SelectedValue.AsInt();

            var outputs = FactoryRepository.FindAllFactoryOutputByFactoryId(FactoryId);

            GridView1.DataSource = outputs.OrderBy(output => output.DatePro);
            GridView1.DataBind();

            factoryOutputChart.DataUrl = "FactoryDataHandler.ashx?FactoryId=" + FactoryId;
        }
        /// <summary>
        /// 원하는 Chart를 빌드합니다.
        /// </summary>
        public override IChart BuildFusionChart()
        {
            var factoryId      = Request["FactoryId"].AsInt(1);
            var numVisiblePlot = Request["numVisiblePlot"].AsInt(12);

            var chart = new MultiSeriesChart
            {
                Caption      = "Factory 정보",
                SubCaption   = "일일 생산량",
                Palette      = rnd.Next(1, 5),
                RotateLabels = true,
                // PlaceValuesInside = true,
                // RotateValues = true,
                XAxisName      = "Day",
                YAxisName      = "Units",
                NumVisiblePlot = numVisiblePlot,
                BaseFontAttr   = { Font = "맑은 고딕" },
                BorderAttr     = { Show = true },
                BackgroundAttr = { BgColor = Color.White, BgAlpha = 100 },
                ShowShadow     = true
            };

            var outputs = FactoryRepository.FindAllFactoryOutputByFactoryId(factoryId);

            foreach (var output in outputs)
            {
                chart.AddCategory(output.DatePro.Value.ToMonthDayString(), true);
                //var category = new CategoryElement
                //               {
                //                   Label = output.DatePro.Value.ToMonthDayString()
                //               };
                // chart.Categories.CategoryElements.Add(category);
            }


            for (int i = 1; i < 4; i++)
            {
                var dataSet = new DataSetElement
                {
                    SeriesName = "Factory " + i,
                    ShowValues = false
                };
                FillData(dataSet, i);
                chart.DataSets.Add(dataSet);
            }

            return(chart);
        }
示例#6
0
        private static void FillData(DataSetElement dataSet, int factoryId, string chartName)
        {
            //
            // Build Data
            //
            var outputs = FactoryRepository.FindAllFactoryOutputByFactoryId(factoryId);

            var num = 0;

            foreach (var output in outputs)
            {
                SetElementBase set;
                if (chartName == "Scatter")
                {
                    set = new XYSetElement(output.DatePro.Value.DayOfYear, output.Quantity ?? 0);
                }
                else
                {
                    set = new XYSetElement(output.DatePro.Value.DayOfYear, output.DatePro.Value.DayOfYear, output.Quantity ?? 0);
                }

                if ((num++ % 2) == 0)
                {
                    set.Link.SetLink(FusionLinkMethod.Local, "javascript:PopUp('April');");
                }
                // 실제 Javascript 메소드를 쓰려면 "PopUp-April" 로만 쓰면 된다.
                else
                {
                    set.Link.SetLink(FusionLinkMethod.PopUp,
                                     WebTool.GetScriptPath("~/Charts/Ajax/Default.aspx?FactoryId=") + factoryId.ToString());
                    set.Link.Width  = 600;
                    set.Link.Height = 400;
                }

                dataSet.AddSet(set);
            }
        }
        /// <summary>
        /// 원하는 Chart를 빌드합니다.
        /// </summary>
        public override IChart BuildFusionChart()
        {
            var factoryId      = Request["FactoryId"].AsInt(1);
            var lineDual       = Request["LineDual"].AsInt(0);
            var numVisiblePlot = Request["numVisiblePlot"].AsInt(12);

            var chart = new MultiSeriesStackedChart
            {
                Caption      = "Factory 정보",
                SubCaption   = "일일 생산량",
                Palette      = rnd.Next(1, 5),
                RotateLabels = true,
                // PlaceValuesInside = true,
                // RotateValues = true,
                SlantLabels    = true,
                XAxisName      = "Day",
                YAxisName      = "Units",
                NumVisiblePlot = numVisiblePlot,
                BaseFontAttr   = { Font = "맑은 고딕" },
                BorderAttr     = { Show = true },
                BackgroundAttr = { BgColor = Color.White, BgAlpha = 100 }
            };

            chart.ShowShadow = true;

            var outputs = FactoryRepository.FindAllFactoryOutputByFactoryId(factoryId);

            foreach (var output in outputs)
            {
                chart.AddCategory(output.DatePro.Value.ToMonthDayString(), true);
                //var category = new CategoryElement
                //               {
                //                   Label = output.DatePro.Value.ToMonthDayString()
                //               };
                //chart.Categories.CategoryElements.Add(category);
            }


            for (int d = 0; d < 2; d++)
            {
                var datasetCollection = new DataSetCollection();

                for (int i = 1; i < 4; i++)
                {
                    var dataSet = new DataSetElement
                    {
                        SeriesName = "Factory " + i,
                        ShowValues = false
                    };

                    if (lineDual == 1 && i == 3)
                    {
                        dataSet.RenderAs    = GraphKind.Line;
                        dataSet.ParentYAxis = YAxisKind.S;
                    }

                    FillData(dataSet, i);
                    datasetCollection.Add(dataSet);
                }
                chart.DataSetCollections.Add(datasetCollection);
            }

            // add LineSet
            chart.LineSet.SeriesName = "Cost as % of Revenue";

            foreach (var output in outputs)
            {
                chart.LineSet.SetElements.Add(new ValueSetElement {
                    Value = rnd.Next(40, 100)
                });
            }

            return(chart);
        }
示例#8
0
        /// <summary>
        /// 원하는 Chart를 빌드합니다.
        /// </summary>
        public override IChart BuildFusionChart()
        {
            var factoryId      = Request["FactoryId"].AsInt(1);
            var lineDual       = Request["LineDual"].AsInt(0);
            var numVisiblePlot = Request["numVisiblePlot"].AsInt(12);

            var chart = new MultiSeriesChart
            {
                Caption      = "Factory 정보",
                SubCaption   = "일일 생산량",
                Palette      = rnd.Next(1, 5),
                RotateLabels = true,
                // PlaceValuesInside = true,
                // RotateValues = true,
                SlantLabels    = true,
                XAxisName      = "Day",
                YAxisName      = "Units",
                NumVisiblePlot = numVisiblePlot,
                BaseFontAttr   = { Font = "맑은 고딕" },
                BorderAttr     = { Show = true },
                BackgroundAttr = { BgColor = Color.White, BgAlpha = 100 }
            };

            chart.ShowShadow = true;

            var outputs = FactoryRepository.FindAllFactoryOutputByFactoryId(factoryId);

            foreach (var output in outputs)
            {
                chart.AddCategory(output.DatePro.Value.ToMonthDayString(), true);
                //var category = new CategoryElement
                //               {
                //                   Label = output.DatePro.Value.ToMonthDayString()
                //               };
                // chart.Categories.CategoryElements.Add(category);
            }


            for (int i = 1; i < 4; i++)
            {
                var dataSet = new DataSetElement
                {
                    SeriesName = "Factory " + i.ToString(),
                    ShowValues = false,
                    RenderAs   = (i % 4 == 1) ? GraphKind.Area : ((i % 4 == 3) ? GraphKind.Line : GraphKind.Column)
                };

                if (lineDual == 1 && i == 3)
                {
                    dataSet.RenderAs    = GraphKind.Line;
                    dataSet.ParentYAxis = YAxisKind.S;
                }

                FillData(dataSet, i);
                chart.DataSets.Add(dataSet);
            }

            chart.TrendLines.Add(new DoubleLineElement
            {
                StartValue   = 120,
                DisplayValue = "Good",
                Color        = "#009933".FromHtml()
            });
            //chart.TrendLines.TrendlineElements.Add(new DoubleLineElement
            //                                       {
            //                                           StartValue = 120,
            //                                           DisplayValue = "Good",
            //                                           Color = "#009933".FromHtml()
            //                                       });

            return(chart);
        }