private void InitFilters()
        {
            // Map filter
            var mf = new MapFilter()
            {
                HeaderText   = "Store",
                PropertyName = "Store.ID"
            };

            mf.SetStores(_dataProvider.GetStores());
            c1DataFilter1.Filters.Add(mf);

            // Model filter
            var mdf = new ModelFilter()
            {
                HeaderText   = "Model",
                PropertyName = "Car.Model"
            };

            mdf.SetTagList(_dataProvider.GetCars().ToList());
            c1ThemeController1.SetTheme(mdf.MultiSelect, "(default)");
            c1DataFilter1.Filters.Add(mdf);

            // Price filter
            var pf = new PriceFilter()
            {
                HeaderText    = "Price",
                PropertyName  = "Car.Price",
                LayoutType    = LayoutType.List,
                ShowSelectAll = false,
                ShowSearchBox = false
            };
            var intervals = new List <PriceInterval>
            {
                new PriceInterval {
                    MaxPrice = 20000
                },
                new PriceInterval {
                    MinPrice = 20000, MaxPrice = 40000
                },
                new PriceInterval {
                    MinPrice = 40000, MaxPrice = 70000
                },
                new PriceInterval {
                    MinPrice = 70000, MaxPrice = 100000
                },
                new PriceInterval {
                    MinPrice = 100000
                }
            };

            pf.SetPriceIntervals(intervals);
            c1DataFilter1.Filters.Add(pf);

            // Transmiss filter
            var tf = new ChecklistFilter
            {
                PropertyName  = "Car.TransmissAutomatic",
                HeaderText    = "Automatic transmission",
                ShowSelectAll = true,
                ShowSearchBox = false,
                SelectionMode = SelectionMode.Single,
                LayoutType    = LayoutType.List
            };

            tf.Items.Add(new ChecklistItem()
            {
                DisplayValue = "Yes", Value = "Yes"
            });
            tf.Items.Add(new ChecklistItem()
            {
                DisplayValue = "No", Value = "no"
            });
            c1DataFilter1.Filters.Add(tf);

            // Color filter
            var cf = new ColorFilter
            {
                HeaderText   = "Color",
                PropertyName = "Color"
            };

            cf.SetColors(_dataProvider.Colors.Select(x => Color.FromName(x)));
            c1DataFilter1.Filters.Add(cf);
        }
        private void InitFilters()
        {
            // model
            var modelFilter = new ChecklistFilter
            {
                Expanded      = false,
                ItemsSource   = dataSet1.Cars.Select(x => x.Model),
                ShowHeader    = false,
                ShowSearchBox = true,
                ShowSelectAll = true,
                PropertyName  = "Model"
            };

            _dropDownFilter.AddFilter(modelFilter);

            // brand
            var brandFilter = new ChecklistFilter
            {
                Expanded      = false,
                ItemsSource   = dataSet1.Cars.Select(x => x.Brand),
                ShowHeader    = false,
                ShowSearchBox = true,
                ShowSelectAll = true,
                PropertyName  = "Brand"
            };

            _dropDownFilter.AddFilter(brandFilter);

            // liter
            var literFilter = new RangeFilter
            {
                Expanded     = false,
                Digits       = 3,
                ShowHeader   = false,
                Maximum      = dataSet1.Cars.Max(x => x.Liter),
                Minimum      = dataSet1.Cars.Min(x => x.Liter),
                PropertyName = "Liter"
            };

            _dropDownFilter.AddFilter(literFilter);

            // category
            var categoryFilter = new ChecklistFilter
            {
                Expanded      = false,
                ItemsSource   = dataSet1.Cars.Select(x => x.Category),
                ShowHeader    = false,
                ShowSearchBox = true,
                ShowSelectAll = true,
                PropertyName  = "Category"
            };

            _dropDownFilter.AddFilter(categoryFilter);

            // price
            var priceFilter = new RangeFilter
            {
                Expanded     = false,
                Digits       = 0,
                ShowHeader   = false,
                Maximum      = dataSet1.Cars.Max(x => x.Price),
                Minimum      = dataSet1.Cars.Min(x => x.Price),
                PropertyName = "Price"
            };

            _dropDownFilter.AddFilter(priceFilter);
        }
예제 #3
0
        private void Analysis_Load(object sender, EventArgs e)
        {
            dfOlap.AutoApply           = true;
            dfOlap.AutoGenerateFilters = false;
            dfOlap.FilterChanged      += DfOlap_FilterChanged;
            dfMap                     = new C1DataFilter();
            dfMap.AutoApply           = true;
            dfMap.AutoGenerateFilters = false;
            dfMap.FilterChanged      += DfMap_FilterChanged;

            var dashboardLayout = new C1DashboardLayout();

            _vectorLayer = new C1.Win.Map.VectorLayer()
            {
                LabelVisibility = LabelVisibility.Visible
            };
            _vectorLayer.LabelStyle.Font = new Font(Font.FontFamily, 7);

            Map.TileLayer.TileSource = new VirtualEarthRoadSource();
            Map.Layers.Add(_vectorLayer);

            var engine = OlapPanel.FlexPivotEngine;

            engine.DataSource = DataService.GetService().ProductWiseSaleCollection;
            InitOlap(engine);

            var selector = new ValRangeSelector()
            {
                Dock = DockStyle.Bottom
            };

            ChecklistFilter fCategories = new ChecklistFilter("Category", true);

            fCategories.HeaderText      = Strings.Resource.DataFilter_Categories;
            fCategories.ItemsSource     = DataService.GetService().ProductWiseSaleCollection;
            fCategories.ValueMemberPath = "Category";
            fCategories.SelectAll();
            dfOlap.Filters.Add(fCategories);
            dfMap.Filters.Add(fCategories);
            ChecklistFilter fModels = new ChecklistFilter("Product", true);

            fModels.HeaderText      = Strings.Resource.DataFilter_Products;
            fModels.ItemsSource     = fCategories.ItemsSource;
            fModels.ValueMemberPath = "Product";
            fModels.SelectAll();
            dfOlap.Filters.Add(fModels);
            dfMap.Filters.Add(fModels);
            RangeFilter fSales = new RangeFilter("Sales", true);

            fSales.HeaderText = Strings.Resource.DataFilter_Sales;
            var list = from prod in DataService.GetService().ProductWiseSaleCollection.Cast <ProductsWiseSaleItem>() select prod.Sales;

            fSales.Maximum = list.Max();
            fSales.Minimum = list.Min();
            dfOlap.Filters.Add(fSales);
            dfMap.Filters.Add(fSales);

            selector.DateRangeChanged += (s, ev) =>
            {
                dfOlap.DataSource = DataService.GetService().ProductWiseSaleCollection;
                dfMap.DataSource  = DataService.GetService().GetRegionWiseSalesWithCategory();

                DataService.GetService().GetRegionWiseSaleCollection = () => dfMap.View.ToList();

                DataService.GetService().DateRange = ev.NewValue;
                UpdataMapMark();

                chartOpportunities.DataSource = DataService.GetService().OpportunityItemList;
                chartOpportunities.Series.Clear();
                var series = new Series();
                series.Binding = series.Name = "Sales";
                chartOpportunities.Series.Add(series);
                chartOpportunities.BindingX           = "Level";
                chartOpportunities.DataLabel.Position = C1.Chart.LabelPosition.Center;
                chartOpportunities.DataLabel.Content  = "{}{y:C0}";
                chartOpportunities.ChartType          = C1.Chart.ChartType.Funnel;
            };
            Controls.Add(selector);
            dashboardLayout.Options.ToolIconAppearance = ToolIconAppearance.UpperRight;
            dashboardLayout.AttachToLayout(new SplitLayout(c1SplitContainerMain));
            IconBox settings = new IconBox()
            {
                BackgroundImage = Properties.Resources.settings_work_tool
            };

            settings.Click += (s, ev) =>
            {
                OlapPanel.Location = PointToClient(settings.PointToScreen(new Point(-2, settings.Height + 2)));
                if (OlapPanel.Right > Right)
                {
                    OlapPanel.Left = Right - OlapPanel.Width - 2;
                }
                OlapPanel.Parent  = this;
                OlapPanel.Visible = true;
                OlapPanel.BringToFront();
            };
            OlapPanel.MouseLeave += (s, ev) => OlapPanel.Visible = false;
            IconBox dataFilter = new IconBox()
            {
                BackgroundImage = Properties.Resources.C1DataFilter
            };

            dataFilter.Click += (s, ev) =>
            {
                dfOlap.Location = PointToClient(dataFilter.PointToScreen(new Point(-2, dataFilter.Height + 2)));
                if (dfOlap.Right > Right)
                {
                    dfOlap.Left = Right - dfOlap.Width - 2;
                }
                dfOlap.Parent  = this;
                dfOlap.Visible = true;
                dfOlap.BringToFront();
            };
            settings.VisibleChanged += (s, ev) => {
                settings.Visible   = dashboardLayout.GetSelectedItem()?.ItemContainer == c1SplitterPanelGrid;
                dataFilter.Visible = settings.Visible;
            };
            dfOlap.MouseLeave += (s, ev) => dfOlap.Visible = false;
            OlapGrid.Resize   += (s1, ev1) => { OlapPanel.Visible = false; dfOlap.Visible = false; };
            dashboardLayout.ItemContainerSelected += (s, ev) =>
            {
                settings.Visible   = dashboardLayout.GetSelectedItem()?.ItemContainer == c1SplitterPanelGrid;
                dataFilter.Visible = settings.Visible;
            };
            dashboardLayout.Options.HeaderElements.Add(dataFilter);
            dashboardLayout.Options.HeaderElements.Add(settings);
            dashboardLayout.SetCaption(c1SplitterPanelGrid, Strings.Resource.ProductWise_Header);
            dashboardLayout.SetCaption(c1SplitterPanel3, Strings.Resource.RegionWise_Header);
            dashboardLayout.SetCaption(c1SplitterPanel4, Strings.Resource.Opportunities_Header);
            this.c1SplitterPanelGrid.Width = 565;
            selector.SendToBack();
            ScanControls(this);
        }