Пример #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            DashboardFileStorage dashboardFileStorage = new DashboardFileStorage("~/App_Data/Dashboards");

            ASPxDashboardExcel.SetDashboardStorage(dashboardFileStorage);

            // Uncomment the next line to allow users to create new data sources based on predefined connection strings.
            //ASPxDashboardExcel.SetConnectionStringsProvider(new DevExpress.DataAccess.Web.ConfigFileConnectionStringsProvider());

            // Create a data source storage.
            DataSourceInMemoryStorage dataSourceStorage = new DataSourceInMemoryStorage();

            // Register an Excel data source.
            DashboardExcelDataSource excelDataSource = new DashboardExcelDataSource("Excel Data Source");

            excelDataSource.ConnectionName = "excelDataConnection";
            excelDataSource.SourceOptions  = new ExcelSourceOptions(new ExcelWorksheetSettings("Sheet1"));
            dataSourceStorage.RegisterDataSource("excelDataSource", excelDataSource.SaveToXml());

            // Set the configured data source storage.
            ASPxDashboardExcel.SetDataSourceStorage(dataSourceStorage);

            ASPxDashboardExcel.ConfigureDataConnection += ASPxDashboardExcel_ConfigureDataConnection;

            ASPxDashboardExcel.InitialDashboardId = "dashboardExcel";
        }
Пример #2
0
        public static void RegisterService(RouteCollection routes)
        {
            routes.MapDashboardRoute("dashboardControl", "DefaultDashboard");

            DashboardFileStorage dashboardFileStorage = new DashboardFileStorage("~/App_Data/Dashboards");

            DashboardConfigurator.Default.SetDashboardStorage(dashboardFileStorage);

            // Uncomment this string to allow end users to create new data sources based on predefined connection strings.
            //DashboardConfigurator.Default.SetConnectionStringsProvider(new DevExpress.DataAccess.Web.ConfigFileConnectionStringsProvider());

            DataSourceInMemoryStorage dataSourceStorage = new DataSourceInMemoryStorage();

            // Registers an SQL data source.
            DashboardSqlDataSource sqlDataSource = new DashboardSqlDataSource("SQL Data Source", "NWindConnectionString");
            SelectQuery            query         = SelectQueryFluentBuilder
                                                   .AddTable("SalesPerson")
                                                   .SelectAllColumns()
                                                   .Build("Sales Person");

            sqlDataSource.Queries.Add(query);
            dataSourceStorage.RegisterDataSource("sqlDataSource", sqlDataSource.SaveToXml());

            // Registers an Excel data source.
            DashboardExcelDataSource excelDataSource = new DashboardExcelDataSource("Excel Data Source");

            excelDataSource.FileName      = HostingEnvironment.MapPath(@"~/App_Data/Sales.xlsx");
            excelDataSource.SourceOptions = new ExcelSourceOptions(new ExcelWorksheetSettings("Sheet1"));
            dataSourceStorage.RegisterDataSource("excelDataSource", excelDataSource.SaveToXml());

            DashboardConfigurator.Default.SetDataSourceStorage(dataSourceStorage);
        }
Пример #3
0
        public ActionResult AddDataSource(string id, string sheetId, string tableId, string rangeId, string scope)
        {
            string name = new PrefixNameGenerator("Google Sheets Source", " ", 1)
                          .GenerateName(n => ((IDataSourceStorage)DashboardConfig.DataSourceStorage).GetDataSourcesID().Contains(n));
            ExcelSettingsBase excelSettings = null;

            if (!string.IsNullOrEmpty(sheetId))
            {
                excelSettings = new ExcelWorksheetSettings(sheetId);
            }
            else if (!string.IsNullOrEmpty(tableId))
            {
                excelSettings = new ExcelTableSettings(tableId);
            }
            else if (!string.IsNullOrEmpty(rangeId))
            {
                excelSettings = new ExcelDefinedNameSettings(rangeId, scope);
            }
            if (excelSettings != null)
            {
                var excelDataSource = new DashboardExcelDataSource {
                    Name                 = name,
                    SourceOptions        = new ExcelSourceOptions(excelSettings),
                    StreamDocumentFormat = ExcelDocumentFormat.Xlsx,
                    FileName             = id,
                };

                DashboardConfig.DataSourceStorage.RegisterDataSource(name, excelDataSource.SaveToXml());
            }

            return(View("Index"));
        }
Пример #4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            DashboardFileStorage dashboardFileStorage = new DashboardFileStorage("~/App_Data/Dashboards");

            ASPxDashboard1.SetDashboardStorage(dashboardFileStorage);

            DataSourceInMemoryStorage dataSourceStorage = new DataSourceInMemoryStorage();

            using (Workbook workbook = new Workbook()) {
                Directory
                .EnumerateFiles(HostingEnvironment.MapPath(@"~/App_Data/ExcelFiles/"), "*.xlsx")
                .SelectMany(file => {
                    workbook.LoadDocument(file);
                    return(workbook.Worksheets.Select(sheet => {
                        var dataSourceId = string.Format("{0} - {1}", Path.GetFileNameWithoutExtension(file), sheet.Name);
                        var excelDataSource = new DashboardExcelDataSource(dataSourceId);
                        excelDataSource.ConnectionName = dataSourceId;
                        excelDataSource.FileName = file;
                        var worksheetSettings = new ExcelWorksheetSettings()
                        {
                            WorksheetName = sheet.Name
                        };
                        excelDataSource.SourceOptions = new ExcelSourceOptions(worksheetSettings);
                        return new {
                            Name = excelDataSource.Name,
                            Xml = excelDataSource.SaveToXml()
                        };
                    }));
                })
                .ToList()
                .ForEach(ds => dataSourceStorage.RegisterDataSource(ds.Name, ds.Xml));
            }
            ASPxDashboard1.SetDataSourceStorage(dataSourceStorage);
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            DashboardFileStorage dashboardFileStorage = new DashboardFileStorage("~/App_Data/Dashboards");

            ASPxDashboard1.SetDashboardStorage(dashboardFileStorage);

            // Uncomment this string to allow end users to create new data sources based on predefined connection strings.
            //ASPxDashboard1.SetConnectionStringsProvider(new DevExpress.DataAccess.Web.ConfigFileConnectionStringsProvider());

            DataSourceInMemoryStorage dataSourceStorage = new DataSourceInMemoryStorage();

            // Registers an SQL data source.
            DashboardSqlDataSource sqlDataSource = new DashboardSqlDataSource("SQL Data Source", "NWindConnectionString");
            SelectQuery            query         = SelectQueryFluentBuilder
                                                   .AddTable("SalesPerson")
                                                   .SelectAllColumns()
                                                   .Build("Sales Person");

            sqlDataSource.Queries.Add(query);
            dataSourceStorage.RegisterDataSource("sqlDataSource", sqlDataSource.SaveToXml());

            // Registers an Object data source.
            DashboardObjectDataSource objDataSource = new DashboardObjectDataSource("Object Data Source");

            dataSourceStorage.RegisterDataSource("objDataSource", objDataSource.SaveToXml());

            // Registers an Excel data source.
            DashboardExcelDataSource excelDataSource = new DashboardExcelDataSource("Excel Data Source");

            excelDataSource.FileName      = HostingEnvironment.MapPath(@"~/App_Data/Sales.xlsx");
            excelDataSource.SourceOptions = new ExcelSourceOptions(new ExcelWorksheetSettings("Sheet1"));
            dataSourceStorage.RegisterDataSource("excelDataSource", excelDataSource.SaveToXml());

            ASPxDashboard1.SetDataSourceStorage(dataSourceStorage);
        }
Пример #6
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

            services.AddDevExpressControls();
            services.AddMvc()
            .AddDefaultReportingControllers()
            .AddDefaultDashboardController((configurator, serviceProvider) => {
                configurator.SetConnectionStringsProvider(new DashboardConnectionStringsProvider(Configuration));

                DashboardFileStorage dashboardFileStorage = new DashboardFileStorage(FileProvider.GetFileInfo("Data/Dashboards").PhysicalPath);
                configurator.SetDashboardStorage(dashboardFileStorage);

                DataSourceInMemoryStorage dataSourceStorage = new DataSourceInMemoryStorage();

                // Registers an SQL data source.
                DashboardSqlDataSource sqlDataSource = new DashboardSqlDataSource("SQL Data Source", "NWindConnectionString");
                sqlDataSource.DataProcessingMode     = DataProcessingMode.Client;
                SelectQuery query = SelectQueryFluentBuilder
                                    .AddTable("Categories")
                                    .Join("Products", "CategoryID")
                                    .SelectAllColumns()
                                    .Build("Products_Categories");
                sqlDataSource.Queries.Add(query);
                dataSourceStorage.RegisterDataSource("sqlDataSource", sqlDataSource.SaveToXml());

                // Registers an Object data source.
                DashboardObjectDataSource objDataSource = new DashboardObjectDataSource("Object Data Source");
                dataSourceStorage.RegisterDataSource("objDataSource", objDataSource.SaveToXml());

                // Registers an Excel data source.
                DashboardExcelDataSource excelDataSource = new DashboardExcelDataSource("Excel Data Source");
                excelDataSource.FileName      = FileProvider.GetFileInfo("Data/Sales.xlsx").PhysicalPath;
                excelDataSource.SourceOptions = new ExcelSourceOptions(new ExcelWorksheetSettings("Sheet1"));
                dataSourceStorage.RegisterDataSource("excelDataSource", excelDataSource.SaveToXml());

                configurator.SetDataSourceStorage(dataSourceStorage);

                configurator.DataLoading += (s, e) => {
                    if (e.DataSourceName == "Object Data Source")
                    {
                        e.Data = Invoices.CreateData();
                    }
                };
            });
            services.ConfigureReportingServices(configurator => {
                configurator.ConfigureReportDesigner(designerConfigurator => {
                    designerConfigurator.RegisterDataSourceWizardConfigFileConnectionStringsProvider();
                });
            });
            services.AddSpaStaticFiles(configuration => {
                configuration.RootPath = "ClientApp/dist";
            });
        }
        public static void ConfigureDataSource(DashboardConfigurator configurator, DataSourceInMemoryStorage storage)
        {
            // Registers an Excel data source.
            DashboardExcelDataSource excelDataSource = new DashboardExcelDataSource("Excel Data Source");

            excelDataSource.ConnectionName = "excelDataConnection";
            excelDataSource.SourceOptions  = new ExcelSourceOptions(new ExcelWorksheetSettings("Sheet1"));
            storage.RegisterDataSource("excelDataSource", excelDataSource.SaveToXml());

            configurator.ConfigureDataConnection += Configurator_ConfigureDataConnection;
        }
Пример #8
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services
            .AddCors(options => {
                options.AddPolicy("CorsPolicy", builder => {
                    builder.WithOrigins("http://localhost:4200");
                    builder.WithMethods(new String[] { "GET", "POST" });
                    builder.WithHeaders("Content-Type");
                });
            })
            .AddResponseCompression()
            .AddDevExpressControls()
            .AddMvc()
            .AddDefaultDashboardController((configurator, serviceProvider) => {
                configurator.SetConnectionStringsProvider(new DashboardConnectionStringsProvider(Configuration));

                DashboardFileStorage dashboardFileStorage = new DashboardFileStorage(FileProvider.GetFileInfo("Data/Dashboards").PhysicalPath);
                configurator.SetDashboardStorage(dashboardFileStorage);

                DataSourceInMemoryStorage dataSourceStorage = new DataSourceInMemoryStorage();

                // Registers an SQL data source.
                DashboardSqlDataSource sqlDataSource = new DashboardSqlDataSource("SQL Data Source", "NWindConnectionString");
                sqlDataSource.DataProcessingMode     = DataProcessingMode.Client;
                SelectQuery query = SelectQueryFluentBuilder
                                    .AddTable("Categories")
                                    .Join("Products", "CategoryID")
                                    .SelectAllColumns()
                                    .Build("Products_Categories");
                sqlDataSource.Queries.Add(query);
                dataSourceStorage.RegisterDataSource("sqlDataSource", sqlDataSource.SaveToXml());

                // Registers an Object data source.
                DashboardObjectDataSource objDataSource = new DashboardObjectDataSource("Object Data Source");
                dataSourceStorage.RegisterDataSource("objDataSource", objDataSource.SaveToXml());

                // Registers an Excel data source.
                DashboardExcelDataSource excelDataSource = new DashboardExcelDataSource("Excel Data Source");
                excelDataSource.FileName      = FileProvider.GetFileInfo("Data/Sales.xlsx").PhysicalPath;
                excelDataSource.SourceOptions = new ExcelSourceOptions(new ExcelWorksheetSettings("Sheet1"));
                dataSourceStorage.RegisterDataSource("excelDataSource", excelDataSource.SaveToXml());

                configurator.SetDataSourceStorage(dataSourceStorage);

                configurator.DataLoading += (s, e) => {
                    if (e.DataSourceName == "Object Data Source")
                    {
                        e.Data = Invoices.CreateData();
                    }
                };
            });
        }
Пример #9
0
        protected void Page_Load(object sender, EventArgs e)
        {
            DashboardFileStorage dashboardFileStorage = new DashboardFileStorage("~/App_Data/Dashboards");

            ASPxDashboard1.SetDashboardStorage(dashboardFileStorage);

            // Creates an Excel data source and selects the specific cell range from the SalesPerson worksheet.
            DashboardExcelDataSource excelDataSource = new DashboardExcelDataSource("Excel Data Source");

            excelDataSource.ConnectionName = "xlsProducts";
            excelDataSource.FileName       = HostingEnvironment.MapPath(@"~/App_Data/ExcelDataSource.xlsx");
            ExcelWorksheetSettings worksheetSettings = new ExcelWorksheetSettings("SalesPerson", "A1:L2000");

            excelDataSource.SourceOptions = new ExcelSourceOptions(worksheetSettings);

            // Specifies the fields that will be available for the created data source.
            IExcelSchemaProvider schemaProvider = excelDataSource.GetService(typeof(IExcelSchemaProvider))
                                                  as IExcelSchemaProvider;

            FieldInfo[] availableFields = schemaProvider.GetSchema(excelDataSource.FileName, null,
                                                                   ExcelDocumentFormat.Xlsx, excelDataSource.SourceOptions, System.Threading.CancellationToken.None);
            List <string> fieldsToSelect = new List <string>()
            {
                "CategoryName", "ProductName", "Country", "Quantity",
                "Extended Price"
            };

            foreach (FieldInfo field in availableFields)
            {
                if (fieldsToSelect.Contains(field.Name))
                {
                    excelDataSource.Schema.Add(field);
                }
                else
                {
                    field.Selected = false;
                    excelDataSource.Schema.Add(field);
                }
            }

            // Adds the created data source to the data source storage.
            DataSourceInMemoryStorage dataSourceStorage = new DataSourceInMemoryStorage();

            dataSourceStorage.RegisterDataSource("excelDataSource", excelDataSource.SaveToXml());
            ASPxDashboard1.SetDataSourceStorage(dataSourceStorage);
        }
Пример #10
0
    public CustomDataSourceStorage()
    {
        DashboardSqlDataSource sqlDataSource = new DashboardSqlDataSource(sqlDataSourceId, "sqlCategories");
        SelectQuery            query         = SelectQueryFluentBuilder
                                               .AddTable("Categories")
                                               .SelectAllColumnsFromTable()
                                               .Build("Categories");

        query.Parameters.Add(new QueryParameter("CategoryNameStartsWith", typeof(DevExpress.DataAccess.Expression), new DevExpress.DataAccess.Expression("[Parameters.CategoryPattern]")));
        sqlDataSource.Queries.Add(query);

        DashboardJsonDataSource jsonDataSource = new DashboardJsonDataSource(jsonDataSourceId)
        {
            RootElement    = "Customers",
            ConnectionName = "jsonCustomers"
        };

        DashboardObjectDataSource objDataSource = new DashboardObjectDataSource(odsDataSourceId)
        {
            DataId = "odsSales"
        };

        DashboardOlapDataSource olapDataSource = new DashboardOlapDataSource(olapDataSourceId, "olapAdventureWorks");

        DashboardExtractDataSource extractDataSource = new DashboardExtractDataSource(extractDataSourceId)
        {
            ConnectionName = "extractSalesPerson"
        };

        DashboardExcelDataSource excelDataSource = new DashboardExcelDataSource(excelDataSourceId)
        {
            ConnectionName = "excelSales",
            SourceOptions  = new ExcelSourceOptions(new ExcelWorksheetSettings("Sheet1"))
        };

        DashboardEFDataSource efDataSource = new DashboardEFDataSource(efDataSourceId, new EFConnectionParameters(typeof(NorthwindDbContext)));

        documents[sqlDataSourceId]     = new XDocument(sqlDataSource.SaveToXml());
        documents[jsonDataSourceId]    = new XDocument(jsonDataSource.SaveToXml());
        documents[odsDataSourceId]     = new XDocument(objDataSource.SaveToXml());
        documents[olapDataSourceId]    = new XDocument(olapDataSource.SaveToXml());
        documents[extractDataSourceId] = new XDocument(extractDataSource.SaveToXml());
        documents[excelDataSourceId]   = new XDocument(excelDataSource.SaveToXml());
        documents[efDataSourceId]      = new XDocument(efDataSource.SaveToXml());
    }
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            RegisterGlobalFilters(GlobalFilters.Filters);
            RegisterRoutes(RouteTable.Routes);

            ModelBinders.Binders.DefaultBinder = new DevExpressEditorsBinder();
            AccessSettings.StaticResources.TrySetRules(DirectoryAccessRule.Allow());

            // See https://documentation.devexpress.com/Dashboard/DevExpress.DashboardWeb.DashboardFileStorage.class
            //DashboardConfigurator.Default.SetDashboardStorage(new DashboardFileStorage(@"~/App_Data/Dashboards"));
            DashboardConfigurator.Default.SetDashboardStorage(PublicDemo.SessionDashboardStorage.Instance);// this code based on DevExpress demo

            DashboardExcelDataSource ds = new DashboardExcelDataSource("Excel Data Source");

            ds.SourceOptions = new ExcelSourceOptions(new ExcelWorksheetSettings("List"));
            ds.FileName      = @"|DataDirectory|Data\PresidentsData.xlsx";
            DataSourceInMemoryStorage dataSourceStorage = new DataSourceInMemoryStorage();

            dataSourceStorage.RegisterDataSource("dashboardExcelDataSource1", ds.SaveToXml());
            DashboardConfigurator.Default.SetDataSourceStorage(dataSourceStorage);
        }
Пример #12
0
        public static void RegisterService(RouteCollection routes)
        {
            routes.MapDashboardRoute("dashboardControl", "DefaultDashboard");

            DashboardFileStorage dashboardFileStorage = new DashboardFileStorage("~/App_Data/Dashboards");

            DashboardConfigurator.Default.SetDashboardStorage(dashboardFileStorage);

            DataSourceInMemoryStorage dataSourceStorage = new DataSourceInMemoryStorage();

            // Registers an SQL data source.
            DashboardSqlDataSource sqlDataSource = new DashboardSqlDataSource("SQL Data Source", "NWindConnectionString");
            SelectQuery            query         = SelectQueryFluentBuilder
                                                   .AddTable("SalesPerson")
                                                   .SelectAllColumns()
                                                   .Build("Sales Person");

            sqlDataSource.Queries.Add(query);
            dataSourceStorage.RegisterDataSource("sqlDataSource", sqlDataSource.SaveToXml());

            // Registers an Object data source.
            DashboardObjectDataSource objDataSource = new DashboardObjectDataSource("Object Data Source");

            objDataSource.DataId = "odsInvoices";
            dataSourceStorage.RegisterDataSource("objDataSource", objDataSource.SaveToXml());

            // Registers an Excel data source.
            DashboardExcelDataSource excelDataSource = new DashboardExcelDataSource("Excel Data Source");

            excelDataSource.ConnectionName = "xlsSales";
            excelDataSource.FileName       = HostingEnvironment.MapPath(@"~/App_Data/Sales.xlsx");
            excelDataSource.SourceOptions  = new ExcelSourceOptions(new ExcelWorksheetSettings("Sheet1"));
            dataSourceStorage.RegisterDataSource("excelDataSource", excelDataSource.SaveToXml());

            DashboardConfigurator.Default.SetDataSourceStorage(dataSourceStorage);
            DashboardConfigurator.Default.DataLoading += DataLoading;
        }
        static IDashboardDataSource CreateDataSourceCopy(IDashboardDataSource dataSourceToCopy)
        {
            DashboardEFDataSource efDataSource = dataSourceToCopy as DashboardEFDataSource;

            if (efDataSource != null)
            {
                XElement element = efDataSource.SaveToXml();
                DashboardEFDataSource newDataSource = new DashboardEFDataSource();
                newDataSource.LoadFromXml(element);
                newDataSource.Fill();
                return(newDataSource);
            }

            DashboardExcelDataSource excelDataSource = dataSourceToCopy as DashboardExcelDataSource;

            if (excelDataSource != null)
            {
                XElement element = excelDataSource.SaveToXml();
                DashboardExcelDataSource newDataSource = new DashboardExcelDataSource();
                newDataSource.LoadFromXml(element);
                newDataSource.Fill();
                return(newDataSource);
            }

            DashboardExtractDataSource extractDataSource = dataSourceToCopy as DashboardExtractDataSource;

            if (extractDataSource != null)
            {
                XElement element = extractDataSource.SaveToXml();
                DashboardExtractDataSource newDataSource = new DashboardExtractDataSource();
                newDataSource.LoadFromXml(element);
                return(newDataSource);
            }

            DashboardObjectDataSource objectDataSource = dataSourceToCopy as DashboardObjectDataSource;

            if (objectDataSource != null)
            {
                XElement element = objectDataSource.SaveToXml();
                DashboardObjectDataSource newDataSource = new DashboardObjectDataSource();
                newDataSource.LoadFromXml(element);
                newDataSource.Fill();
                return(newDataSource);
            }

            DashboardOlapDataSource olapDataSource = dataSourceToCopy as DashboardOlapDataSource;

            if (olapDataSource != null)
            {
                XElement element = olapDataSource.SaveToXml();
                DashboardOlapDataSource newDataSource = new DashboardOlapDataSource();
                newDataSource.LoadFromXml(element);
                newDataSource.Fill();
                return(newDataSource);
            }

            DashboardSqlDataSource sqlDataSource = dataSourceToCopy as DashboardSqlDataSource;

            if (sqlDataSource != null)
            {
                XElement element = sqlDataSource.SaveToXml();
                DashboardSqlDataSource newDataSource = new DashboardSqlDataSource();
                newDataSource.LoadFromXml(element);
                newDataSource.Fill();
                return(newDataSource);
            }
            return(null);
        }