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); }