예제 #1
0
        private void btnUpdateLayout_Click(object sender, EventArgs e)
        {
            Dashboard dashboard = new Dashboard();

            dashboard.LoadFromXml(@"..\..\Data\Dashboard.xml");
            DashboardItem grid  = (GridDashboardItem)dashboard.Items[0];
            DashboardItem chart = (ChartDashboardItem)dashboard.Items[1];
            DashboardItem range = (RangeFilterDashboardItem)dashboard.Items[2];

            // Creates layout items used to display dashboard items.
            DashboardLayoutItem gridItem  = new DashboardLayoutItem(grid, 35);
            DashboardLayoutItem chartItem = new DashboardLayoutItem(chart, 65);
            DashboardLayoutItem rangeItem = new DashboardLayoutItem(range, 20);

            // Creates a layout group that contains two layout items.
            DashboardLayoutGroup group1 =
                new DashboardLayoutGroup(DashboardLayoutGroupOrientation.Horizontal, 80,
                                         gridItem, chartItem);
            // Creates a root layout group that contains the previously created group and
            // the layout item displaying the Range Filter dashboard item.
            DashboardLayoutGroup rootGroup =
                new DashboardLayoutGroup(DashboardLayoutGroupOrientation.Vertical, 1,
                                         group1, rangeItem);

            // Specifies the root dashboard layout group.
            dashboard.LayoutRoot = rootGroup;

            dashboardViewer1.Dashboard = dashboard;
        }
예제 #2
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 Dashboard CreateDashboard()
        {
            Dashboard dBoard = new Dashboard();

            OlapConnectionParameters olapParams = new OlapConnectionParameters();

            olapParams.ConnectionString = @"provider=MSOLAP;
                                  data source=http://demos.devexpress.com/Services/OLAP/msmdpump.dll;
                                  initial catalog=Adventure Works DW Standard Edition;
                                  cube name=Adventure Works;";

            DashboardOlapDataSource olapDataSource = new DashboardOlapDataSource(olapParams);

            dBoard.DataSources.Add(olapDataSource);

            CardDashboardItem cardItem = new CardDashboardItem();

            cardItem.DataSource = olapDataSource;
            cardItem.SeriesDimensions.Add(new Dimension("[Sales Territory].[Sales Territory Country].[Sales Territory Country]"));
            cardItem.SparklineArgument = new Dimension("[Date].[Month of Year].[Month of Year]", DateTimeGroupInterval.MonthYear);
            Card card = new Card();

            card.LayoutTemplate = new CardStretchedLayoutTemplate();
            card.ActualValue    = new Measure("[Measures].[Internet Sales Amount]");
            card.TargetValue    = new Measure("[Measures].[Sales Amount]");
            cardItem.Cards.Add(card);

            ChartDashboardItem chartItem = new ChartDashboardItem();

            chartItem.DataSource = olapDataSource;
            chartItem.Arguments.Add(new Dimension("[Sales Territory].[Sales Territory].[Country]"));
            chartItem.Panes.Add(new ChartPane());
            SimpleSeries salesAmountSeries = new SimpleSeries(SimpleSeriesType.Bar);

            salesAmountSeries.Value = new Measure("[Measures].[Sales Amount]");
            chartItem.Panes[0].Series.Add(salesAmountSeries);
            SimpleSeries salesInernetAmountSeries = new SimpleSeries(SimpleSeriesType.Bar);

            salesInernetAmountSeries.Value = new Measure("[Measures].[Internet Sales Amount]");
            chartItem.Panes[0].Series.Add(salesInernetAmountSeries);
            dBoard.Items.AddRange(cardItem, chartItem);

            DashboardLayoutItem  cardLayoutItem  = new DashboardLayoutItem(cardItem);
            DashboardLayoutItem  chartLayoutItem = new DashboardLayoutItem(chartItem);
            DashboardLayoutGroup rootGroup       = new DashboardLayoutGroup(DashboardLayoutGroupOrientation.Vertical,
                                                                            50D, cardLayoutItem, chartLayoutItem);

            dBoard.LayoutRoot = rootGroup;

            return(dBoard);
        }
        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;
        }