Beispiel #1
0
        private Dashboard CreateDashboard()
        {
            DashboardExcelDataSource excelDataSource = CreateExcelDataSource();
            Dashboard dBoard = new Dashboard();

            dBoard.DataSources.Add(excelDataSource);

            dBoard.BeginUpdate();
            // Create dashboard items.
            ChartDashboardItem chart = CreateChart(excelDataSource);

            dBoard.Items.Add(chart);
            DateFilterDashboardItem dateFilterItem = CreateDateFilterItem(excelDataSource);

            dBoard.Items.Add(dateFilterItem);
            DashboardItemGroup group = CreateGroup();

            dBoard.Groups.Add(group);
            group.AddRange(dateFilterItem, chart);
            // Create layout tree.
            DashboardLayoutItem  dateFilterLayoutItem = new DashboardLayoutItem(dateFilterItem, 30);
            DashboardLayoutItem  chartLayoutItem      = new DashboardLayoutItem(chart, 70);
            DashboardLayoutGroup groupLayoutItem      = new DashboardLayoutGroup(group, 100);

            groupLayoutItem.ChildNodes.AddRange(dateFilterLayoutItem, chartLayoutItem);
            DashboardLayoutGroup rootGroup = new DashboardLayoutGroup(null, 100);

            rootGroup.ChildNodes.Add(groupLayoutItem);
            rootGroup.Orientation = DashboardLayoutGroupOrientation.Vertical;
            dBoard.LayoutRoot     = rootGroup;
            dBoard.EndUpdate();
            return(dBoard);
        }
        private void btnModify_ItemClick(object sender, DevExpress.Xpf.Bars.ItemClickEventArgs e)
        {
            Dashboard dashboard = new Dashboard();

            dashboard.LoadFromXDocument(dashboardControl.Dashboard.SaveToXDocument());

            dashboard.BeginUpdate();
            try
            {
                dashboard.Items["card1"].ParentContainer = dashboard.Items["list1"].ParentContainer;
            }
            catch (NullReferenceException) { };

            dashboard.Items.ForEach(delegate(DashboardItem item)
            {
                if (item is PieDashboardItem)
                {
                    ((PieDashboardItem)item).PieType = PieType.Donut;
                }
            });

            dashboard.DataLoading += Dashboard_DataLoading;
            // The RebuildLayout call is required because the WPF viewer control contains a dashboard whose layout is already built.
            // If the layout is null (dashboardControl.Dashboard = null or dashboardControl.Dashboard.LayoutRoot = null),
            // the RebuildLayout is called automatically after assigning a dashboard.
            dashboard.RebuildLayout();
            dashboard.EndUpdate();

            dashboardControl.Dashboard = dashboard;
        }
        private void btnCreate_ItemClick(object sender, DevExpress.Xpf.Bars.ItemClickEventArgs e)
        {
            Dashboard dashboard = new Dashboard();
            DashboardObjectDataSource dataSource = new DashboardObjectDataSource();

            dashboard.BeginUpdate();
            dashboard.DataSources.Add(dataSource);

            dashboard.Items.Add(DashboardItemGenerator.GenerateCardItem(dataSource, "card1"));
            dashboard.Items.Add(DashboardItemGenerator.GenerateGridItem(dataSource, "grid1"));
            dashboard.Items.Add(DashboardItemGenerator.GeneratePieItem(dataSource, "pie1"));
            dashboard.Items.Add(DashboardItemGenerator.GenerateListBoxItem(dataSource, "list1"));

            TabContainerDashboardItem tabContainer = new TabContainerDashboardItem();

            tabContainer.TabPages.Add(new DashboardTabPage()
            {
                Name = "Tab Page One", ComponentName = "page1"
            });
            tabContainer.TabPages["page1"].AddRange(dashboard.Items["grid1"], dashboard.Items["pie1"]);

            DashboardTabPage secondTabPage = tabContainer.CreateTabPage();

            secondTabPage.Name = "Tab Page Two";
            secondTabPage.Add(dashboard.Items["list1"]);
            secondTabPage.ShowItemAsTabPage = true;

            dashboard.Items.Add(tabContainer);

            dashboard.DataLoading += Dashboard_DataLoading;

            dashboard.EndUpdate();

            dashboardControl.Dashboard = dashboard;
        }
        private void ChangeLayout(DashboardToolbarItemClickEventArgs args)
        {
            Dashboard dashboard = new Dashboard();

            dashboard.LoadFromXml(@"Data\LayoutUnordered.xml");
            dashboard.BeginUpdate();
            // Switch off the DateFilter item's AutoHeight arrangement mode so that the DateFilter layout does not ignore its layout weight.
            ((DateFilterDashboardItem)(dashboard.Items["dateFilterDashboardItem1"])).ArrangementMode = DateFilterArrangementMode.Horizontal;
            // Hide captions.
            dashboard.Items.ForEach(item => item.ShowCaption  = false);
            dashboard.Groups.ForEach(item => item.ShowCaption = false);
            // Create layout items for the DateFilter and Chart dashboard items.
            DashboardLayoutItem dateFilterLayoutItem = new DashboardLayoutItem(dashboard.Items["dateFilterDashboardItem1"], 13);
            DashboardLayoutItem chartLayoutItem      = new DashboardLayoutItem(dashboard.Items["chartDashboardItem1"], 87);
            // Create a layout item for the dashboard Group item.
            DashboardLayoutGroup groupLayoutItem = new DashboardLayoutGroup()
            {
                Orientation   = DashboardLayoutGroupOrientation.Vertical,
                DashboardItem = dashboard.Groups["dashboardItemGroup1"],
                Weight        = 70
            };

            // Connect layout items in the layout tree.
            groupLayoutItem.ChildNodes.AddRange(dateFilterLayoutItem, chartLayoutItem);
            // Create a Grid layout item.
            DashboardLayoutItem gridLayoutItem = new DashboardLayoutItem(dashboard.Items["gridDashboardItem1"], 30);
            // Create a group layout item to organize the Grid layout item and a Dashboard Group layout item.
            DashboardLayoutGroup layoutGroup = new DashboardLayoutGroup(DashboardLayoutGroupOrientation.Horizontal, 85);

            // Connect layout items in the layout tree.
            layoutGroup.ChildNodes.AddRange(gridLayoutItem, groupLayoutItem);
            // Create a RangeFilter layout item.
            DashboardLayoutItem rangeFilterLayoutItem = new DashboardLayoutItem(dashboard.Items["rangeFilterDashboardItem1"], 15);
            // Create a root layout group. Its DashboardItem property is null.
            DashboardLayoutGroup rootGroup = new DashboardLayoutGroup()
            {
                Orientation   = DashboardLayoutGroupOrientation.Vertical,
                Weight        = 100,
                DashboardItem = null
            };

            // Connect layout items in the layout tree.
            rootGroup.ChildNodes.AddRange(layoutGroup, rangeFilterLayoutItem);
            // The layout treee is built. Set the dashboard's root layout node to finalize the layout.
            dashboard.LayoutRoot = rootGroup;
            dashboard.EndUpdate();

            dashboardViewer1.Dashboard = dashboard;
        }