Blogs

DevExpress Data Blog

This blog features all things having to do with data shaping, layout, and presentation!
  • Enterprise Ready Reporting with the DevExpress Report Server

    Ever since our beta release of the DevExpress Report Server we have been busy adding important enterprise features to the product. One of those essential features is enterprise ready security. Starting with this release the DevExpress Report Server includes 4 unique built-in security groups associated with the report process:

    • System Administrator: Full access to all server functionality and user account administration.
    • Data Administrator: Ability to manage and control the data available to reports.
    • Report Creator: Maintain report categories and create/manage individual reports.
    • Report Viewer: Access to view and print reports and to receive report distributions.

    While these were available in our previous release, the level of customizability we have added was not. These built-in groups are completely customizable. You can delete them (with the exception of the System Administrator group), rename them, and even modify the access and scope available to members of the group. In addition to these customizable roles you can create an infinite number of groups with 4 different access modes (Read, Read/Modify, Read/Modify/Delete, and Create) in 9 separate scopes (All Categories, Specific Category, All Reports, Reports in Category, Specific Report, All Data Views, Specific Data View, All Scheduled Jobs, and Specific Scheduled Job).

    Groups

    Adding, removing, and editing groups can now be done via a special Group Tab.

    Report Server Groups

    Clicking on the pencil icon leads to a screen where group membership can be established:

    Report Server Group Membership

    Clicking on the gears icon brings up the permission set window:

    Report Server Group Permissions

    Notice that when adding permissions you can select both an Access Mode,

    Report Server Access Modes

    and restrict the Access Mode to a particular Scope:

    Report Server Access Scopes

    In all, these collection of features allow for an infinite number of combinations in order to tailor to your specific security needs.

    Individual

    Adding an individual to a group automatically adds all of the corresponding permissions to the users. In addition to this automatic application of rights, you can also add additional permissions to the individual user by clicking on the gear icon of the user:

    Report Server User Screen

    This leads to the familiar permissions area but for only the particular user in question:

    Report Server User Permissions

    Notice that in addition to the inherited permissions one can add additional ones by clicking “Add Permission".”

    FAQ’s and Pricing

    We are excited to finally release the DevExpress Report Server as a standalone product. We have a truly affordable price and clear licensing for the product.

    Try It!

    We would love for you to give it a spin! We have created an Azure based demo where you can try the server yourself: http://dxrs-demo.cloudapp.net/. There are a couple of things you need to do to try it:

    1. Create an account by clicking “New User”
    2. Install the Client Side Report Designer (you will receive an email with a download link)
    3. Activate your account.

    We really want this to be a product that you come to rely upon to deliver on your reporting needs. I want to personally know how you use the product, where it succeeds, and how we can make it better.

    As always, if there are any comments and/or questions, feel free to get a hold of me!

    Seth Juarez
    Email: sethj@devexpress.com
    Twitter: @SethJuarez

  • Table of Contents Report Control (coming in 13.1)

    The DevExpress reporting suite has a tremendous bookmarking and document map feature which makes it extremely easy to quickly understand and navigate the data inside of a report. We have decided to take that same functionality to the next level by introducing a new table of contents control which leverages the the already powerful bookmarking set of features. Simply put, if your report already uses bookmarks then all you need to do is drop the new XRTableOfContents control on to your report, change the LevelTitle, and you have a ready made table of contents available to the consumers of your report:

    Table of Contents Control

    This control also leverages all of the existing styling as well as fine grained control over the granularity (or levels) available in the table of contents.

    Table of Contents Control in a Report

    This is an exciting addition to an already feature rich staple of controls available in the DevExpress Reporting toolset.

    As always, if there are any comments and/or questions, feel free to get a hold of me!

    Seth Juarez
    Email: sethj@devexpress.com
    Twitter: @SethJuarez

  • Dashboard Printing and Exporting (coming in 13.1)

    One key feature many requested for our powerful dashboard tool was printing and exporting. Beginning with 13.1 you will be able to print both individual elements as well as the entire dashboard with little to no code.

    Printing/Exporting Individual Elements

    Dashboard Item Print (WinForms)

    This feature is available in both the Windows and Web versions.

    Dashboard Item Print (WebForms)

    Full Print Preview

    Printing an entire dashboard is also straight forward in WinForms:

    dashboardViewer.PrintingOptions.PageLayout = DashboardPrintingPageLayout.Landscape;
    dashboardViewer.PrintingOptions.ScaleMode = DashboardPrintingScaleMode.AutoFitToPageWidth;
    dashboardViewer.ShowRibbonPrintPreview();

    Notice that you have access to printing options as well as the option to use a Bar Preview or a Ribbon Preview form (in this example I use the latter).

    WinForms Print Preview

    This print preview uses our award winning XtraReports preview form which enables a large array of features including exporting, sizing, etc..

    As always, if there are any comments and/or questions, feel free to get a hold of me!

    Seth Juarez
    Email: sethj@devexpress.com
    Twitter: @SethJuarez

  • Report Improvements (coming in 13.1)

    We have decided to make usability a point of emphasis when it comes to our great set of tools designed to deal with complex data. As such we have introduced a number of enhancements which should improve the way you interact with our reporting suite.

    Consolidation

    When dealing with WinForms reporting there were a number of components one could choose from in order to either view or design reports.

    Old Reporting Toolbox

    We realized that the use case was pretty simple: you want to either add the ability to view a report or edit one. As such we have greatly simplified the way in which this is done by consolidating some of the tools available in the toolbox.

    New Reporting Toolbox

    When dropping a Document Viewer you can then choose to create a standard or ribbon toolbar as well as choose the initial report you would like to load:

    New Report Viewer Component

    Dropping the End User Designer item from the toolbox creates everything you need to get started with editing and designing reports.

    Building Reports

    By the time you are ready to build reports we understand you want to get them out the door as quickly and as easily as possible. Here are a couple of features that will help:

    Cntrl + Select fields then drag to table

    Dragging Fields

    Cntrl + Select fields then drag (right mouse button) to drag labels to a table

    Dragging Headers

    Convert Table to Labels

    Converting to Labels

    We pledge to continue this trend of enabling you to procrastinate (effectively) the task of writing reports.

    As always, if there are any comments and/or questions, feel free to get a hold of me!

    Seth Juarez
    Email: sethj@devexpress.com
    Twitter: @SethJuarez

  • Report Sparklines (coming in 13.1)

    With the debut of our WinForms Sparkline control we’ve decided to also add it to our reporting toolbox.

    Reports Sparkline Design

    Using Sparklines in reports is fairly straightforward. In this case I created the simple Category/Products report from the Northwind Database and added several Sparkline controls to the group header band of the Product detail section. From there it was a simple case of selecting the appropriate data member (which is already available from the report bindings) and value member. From there one can select the appropriate view and customize the colors as well as specific view properties.

    Reports Sparkline Preview

    The end result is both elegant and informative! At a glance we cam compare product price, stock, and orders at a glance. For Beverages it becomes readily apparent that we have a stocking problem with one product and a pricing problem with another.

    I am excited for the kinds of reports this type of control will enable and am looking forward to what you create!

    As always, if there are any comments and/or questions, feel free to get a hold of me!

    Seth Juarez
    Email: sethj@devexpress.com
    Twitter: @SethJuarez

  • WinForms Map Control (coming in 13.1)

    As we near release I thought I would show you another WinForms gem we are adding in 13.1: the WinForms Map Control. When it comes to data analysis the key to understanding is the concise display of many dimensions. A map allows you to convey locality in a truly unparalleled way. This sample represents the top 25 US airports (zoomed into the New York/New Jersey area):

    WinForms Map Control

    Adding a Map to your WinForms project is a simple drag and drop operation. Once the control is on your Form, you can add an Image Layer from either Bing or OpenStreet (the example above is OpenStreet). You can additionally add any number of vector layers from either a file (KML, SHP supported), from a database, or directly in code.

    WinForms Map Control Layers

    For this example I used our soon-to-be-released Spreadsheet API to load a csv file of airport locations directly into the map:

    var layer = (VectorItemsLayer)mapControl1.Layers[1];
    
    Workbook workbook = new Workbook();
    workbook.LoadDocument("airports.csv");
    
    Worksheet sheet = workbook.Worksheets.ActiveWorksheet;
    
    for (int i = 1; i <= sheet.Rows.LastUsedIndex; i++)
    {
        string code = sheet[i, 0].DisplayText;
        double lat = sheet[i, 1].Value.NumericValue;
        double lng = sheet[i, 2].Value.NumericValue;
    
        MapPushpin pushpin = new MapPushpin { Location = new GeoPoint(lat, lng), ToolTipPattern = code };
        layer.Items.Add(pushpin);
    }
    
    mapControl1.ZoomLevel = 4.5;
    mapControl1.CenterPoint = new GeoPoint(37.50, -98.35);

    The code simply loads the csv file and creates pusphins for each airport represented in the data. Since these are only US airports, I zoom in and center the map using the ZoomLevel and CenterPoint properties in the map. Aside from the pushpin, there are a number of other map elements that can be added including Dots, Rectangles, Polygons, Paths, and even a Custom Element:

    WinForms Map Control Map Elements

    We are tremendously excited for the great crop of things coming during our 13.1 series of releases.

    As always, if there are any comments and/or questions, feel free to get a hold of me!

    Seth Juarez
    Email: sethj@devexpress.com
    Twitter: @SethJuarez

  • WinForms Spreadsheet Control (coming in 13.1)

    Whether we like it or not, the spreadsheet has become a de facto analysis tool for small datasets. Its debut in June of 1979 as a software package called VisiCalc predated my own birth by an entire month!

    VisiCalc 
    Source: http://commons.wikimedia.org/wiki/File:Visicalc.png

    Since then there have been a number of revisions and consolidations culminating in the widely known software package we all know and love: Microsoft Excel. At DevExpress we recognize the importance spreadsheets and wanted to empower our users to take advantage of the rich facilities this tool provides without the hassle of having to learn a complex API or interact with foreign runtimes. To give you an idea of how easy it is to work with our client agnostic API I wrote a simple console application that generates an entire Excel spreadsheet in about 5 minutes:

    // 1. Creating document
    Workbook book = new Workbook();
    var sheet = book.Worksheets.Add("mysheet");
    
    // 2. Adding Data
    Random r = new Random(DateTime.Now.Millisecond);
    for (int i = 0; i < 15; i++)
    {
        for (int j = 0; j < 20; j++)
        {
            sheet.Cells[i, j].Value = r.NextDouble() * 100;
            if ((i + j) % 2 == 0)
                sheet.Cells[i, j].Font.Color = Color.Red;
            else
                sheet.Cells[i, j].Font.Color = Color.Blue;
        }
    }
    
    // 3. Saving Spreadsheet
    book.SaveDocument("myfile.xls");

    UPDATE: Found a better and more correct way of doing the same thing in less lines of code thanks to the development team (updated above).

    As is to be expected, the largest portion of the application deals with generating data. Notice how easy it is to access, edit, and style each individual cell. During our initial usability tests I mentioned to the development team that there were a number of things we should be able to do easily and without much ceremony. I then sat down and tried to implement a couple of things I thought should be easy. Within a matter of minutes I had completed each task without assistance or intervention from the development team.

    One of the tasks that proved to be the easiest was using the SpreadsheetControl inside of a WinForms application. In a couple of clicks you can create a fully functioning spreadsheet application complete with formatting, layout, forumlas, etc.:

    DevExpress Spreadsheet Control

    I am extremely proud of the work that has been done in order to get these great tools to you, our valued customer.

    As always, if there are any comments and/or questions, feel free to get a hold of me!

    Seth Juarez
    Email: sethj@devexpress.com
    Twitter: @SethJuarez

  • Managing Data Views in the Report Server

    The most important part of any report is the data which it displays. Here I will spend a bit of time explaining how data views within the report server are managed, who manages them, and some best practices when considering these issues. Also we will look at some general network considerations to take into account when setting up data views in order to elucidate the “why” behind certain limitations when working in a truly distributed environment.

    Report Server Topology

    Report Server Network TopologyOne of our primary concerns was enabling high throughput (getting as many reports out as possible). As such the report server actually consists of three separate things: the administrative site (IIS), the scheduling mechanism (IIS), and the worker processes. The administrative site and the scheduling process live on the same server. The administrative site is an IIS site where all of the management of users, data views, reports, and report scheduling occur. In addition to the IIS site there is a TaskScheduler service that checks if there are report tasks that need to run. Unlike the administrative site, the TaskScheduler is actually a Service process. When a particular report task needs to run, the TaskScheduler informs the Worker process (also a Service). The Worker process then takes the time to render the report and send the emails to the interested parties.

    The beauty of this setup is that with our report server we have an option where the Worker process can be installed on multiple machines. This can greatly improve the scenario where hundreds of reports need to be generated at the same time every day. The TaskScheduler will route each task to an available Worker thus maximizing the computing resources devoted to generating reports (I will get more into the specifics of setting this type of structure up in later posts).

    Given that the administrative site (and report creation) can be exposed across the web (the administrative site is a web site after all), there are certain limitations that need to be understood. Consider the case where the data that is used in reports is behind a firewall. This database, while accessible to the Report Worker process (since it is behind the firewall as well), will not be accessible to the users accessing the system from outside the firewall. This creates a unique challenge that the Report Server solves with the concept of Data Views.

    Data Views

    Data Views are collections of data shapes available to reports created in the report server. Often I am told that a business has hundreds of reports. Often these boil down into less than 10 actual data shapes. For example, a consulting firm with hundreds of reports may have only two reportable shapes: Client Reports and Project Reports. In other words they have two basic reportable data shapes. One of my most oft given suggestions when engineering a reporting system is to boil down all reports into their basic shapes. My strategy for doing so involves finding the most important database entities (clients and projects) an hoisting these entities as the root of a data shape. While this is inexact science, creating these basic data shapes allows for easy field addition (on the root or sub entities) without having to modify existing reports bound to the same shape.

    Creating Data Views

    Data View Screen

    The first step is to navigate to the data views section and select “Add Data View.” Clicking on this option yields the following screen:

    Data View Form

    In this example I used the Microsoft SQL Server Provider. The reality is you can use any provide which XPO supports. The key is to remember the general report server layout when creating the connection string. This connection string has a Data Source equal to (local). In the context of the network diagram above (local) refers to the actual IIS server. If any of the worker processes lived on a separate machine, this would cause a problem. Consider also the case where Integrated Security is used to access SQL Server rather than an explicit username and password. In this case which user is accessing SQL Server? If the default installation path was chosen this would be none other than the NETWORK SERVICE user:

    App Pool Identity

    Notice that the custom AppPool created in IIS contains the NetworkService Identity. This is also the case for the TaskScheduler and Worker services:

    Services Identity

    It is essential to understand these key principles when creating Data Views.

    Once the Data View form is filled out and the users presses “Add Data View” the user then can create the data shape to be exposed to the report designers:

    Creating Data Shapes

    One can even control the exact fields within tables that are exposed:

    Creating Data Shapes (Fields)

    In this case I selected the Products and Categories table. Once the user clicks “Fill Data View” they are taken back to the Data Views page:

    Added Data View

    Managing Data Views

    The task of managing data views falls specifically to data administrators (although System Administrators also have that right). Once a Data View has been created there are two changes that can be made: edit the connection information and edit the shape. Clicking on the pencil icon will take the user to the Data View Form while clicking on the gear will allow the user to change the data shape.

    Consuming Data Views

    With the data view created, one need only fire up the End User Report Designer to consume the new data shape. There are two options to do this. If you are trying to create a flat table report (i.e. no sub reports) you can select “Databound Report” after adding a new server report:

    Report Wizard

    This will lead the user through a standard reporting wizard designed primarily to create flat data bound reports (i.e. no hierarchy in the data shape). This is an absolutely great wizard for the majority of simple reports. If you need to create a more complex report based on a master-detail hierarchy in the data shape, simply select “Empty Report” and fill the data source manually:

    Add Data Source 

    Clicking “Add New DataSource” invokes a new Wizard which lets you select the Data View

    Select Data View 

    as well as the participating entities:

    Select Tables or Views

    Once the users selects finish they will have access to all of the fields participating in the created data view:

    Report Field List

    Conclusion

    That is it! I hope this little tour through Data Views inside of the Report Server has been helpful. The part that trips most people up is awareness of the actual topology of the network wherein the Report Server resides. Once this is clear, everything else flows much easier.

    As always, if there are any comments and/or questions, feel free to get a hold of me!

    Seth Juarez
    Email: sethj@devexpress.com
    Twitter: @SethJuarez

  • Working with Data in Dashboards

    This write-up is next in a series of posts about dashboards. The introductory post can be found here. One of our overriding concerns when creating a new complex product is making it easy to use. One of the fundamental tasks associated with creating dashboards is accessing data.

    Working with a Database

    As previously mentioned, we were very concerned with usability. In other words, we wanted you to be able to access data quickly and easily. Clicking on “New Data Source” gets everything started.

    New Data Source

    This process starts the Data Source wizard.

    Create Data Source

    Connecting to a database is simple and intuitive once a connection has been established.

    Query Designer

    You can pick the series of tables (and respective associations) you would like to make or craft whatever SQL query you wish:

    wizard3

    This process is made painless by the ability to preview any changes or selections made.

    Data Preview

    Once you are satisfied with the results, simply click OK. Once the process is complete, you are ready to start adding dashboard elements and binding fields by dragging from the field list over to the data items section.

    Dashboard Element Data Items

    Working with Objects

    Working with objects is really quite simple.

    Object Binding Code

    In this case, the designer contains the specific dashboard where the data sources are stored. As we will see later, a dashboard can indeed have multiple data sources represented even in the same dashboard. With dashboards, we use a special wrapper class called DataSource which provides all of the ancillary methods needed to manage the disparate data providers available. When binding to objects, we can new up a new DataSource class, give it a name, and pass the object collection as a member of the class. Now all that is left is adding the data source to the dashboard. Literally three lines of code.

    Element Data Items

    The outcome is exactly the same as if we had bound our dashboard to a database.

    Binding to Dashboard Elements

    Although I will go into greater detail later for each element, let me lay the ground work for binding here. Every dashboard element has (mostly) the same binding mechanism.

    Data Items Area

    Each dashboard element has Values, Arguments, and Series. The values would correspond to what is typically considered the Y value in an XY graph. The Arguments would be considered the X value. In this example, the Grade is the argument (or X value) being examined while the value indicates the corresponding number of friends for that grade. The Series area allows for the multiplicity of values across another cross section of data. This particular data also has a Boolean value indicating whether or not a student is tall. If we were to drag that over to the series section, it would produce an extra lines (if a line chart) for each value of Tallness. In this case there would be a line for the friend count based on different grades for those that are tall and another for those that are not.

    Series Binding

    Here you see the line and pie chart with exactly the same bindings. For each dashboard element there are also a number of data shaping tools that will be discussed later

    In Summary

    We have placed a tremendous amount of emphasis (and will continue to do so) on creating an easy path to complex analysis. We are beginning to pay this promise off with our dashboard product and will continue to refine and perfect this path in all of our complex analysis tools (charts, reports, and dashboards).

    In subsequent posts I will spend time on each dashboard element in order to give you a good view of the breadth of functionality available in our dashboards.

    As always, if there are any comments and/or questions, feel free to get a hold of me!

    Seth Juarez
    Email: sethj@devexpress.com
    Twitter: @SethJuarez

  • The DevExpress Report Server

    I am tremendously excited to introduce an entirely new type of product for DevExpress. This has been a culmination of many requests and questions surrounding:

    1. Customizing the End User Designer,
    2. Managing reports in a database,
    3. Scheduling and distributing reports, and finally
    4. Managing report access

    We get many requests for samples and general guidance on how to accomplish these important reporting tasks. The choice was made to simply produce software that covers all of these scenarios. It is engineered from the ground up with your reporting needs in mind. So without further ado, here is the DevExpress Report Server:

    fullserver

    Getting Started

    In an effort to get everyone up and running as quickly as possible, we have authored a number of videos showing you every important aspect of the DevExpress Report Server:

    1. Preparing Your Server – This video will walk you through getting the prerequisites installed on your server in order to get the report server set up.
    2. Installation – This video walks you through installing both the server as well as the report designer.
    3. Managing Users – In this video, we show how to manage report server users and describe how to get the server email capabilities set up properly along with the different account types as well as the notion of standard and pending accounts. Additionally, we delve into the four different roles available in the report server.
    4. Managing Data Views – Here we present how to expose data shapes that will be consumed by those designing reports.
    5. Managing Reports – This is the bread and butter of where the report server shines. Here we show the process of actually creating and designing reports.
    6. Managing Tasks – This video shows how easy it is to create report distribution tasks and shows how to manage internal as well as external distribution lists.

    These resources are designed to describe exactly how to work with the report server as well as exactly what you can do. One of the things that bothers me as a consumer of software products is the lack of transparency when it comes to what software does and and how it is accomplished.

    Licensing and Distribution

    The DevExpress Report Server and End User Designer ships as part of the Universal Subscription and includes a single Server and 5 simultaneous client access licenses (CALs). I have looked around a bit at comparable reporting servers and can honestly say that this is a bargain. This does not even include all of the other software that comes bundled with our Universal Subscription. My sense is that now is the best time to buy as we are eyeing the possibility of making this a separate product with its own server and access costs. This is a completely self contained product and as such cannot be distributed to your clients as part of any software you create. Simply put, a single Universal Subscription will get you a single server license, a report designer license, and 5 concurrent report viewer licenses.

    Server Requirements

    There are 5 requirements needed to run the DevExpress Report Server:

    1. SQL Server – the report server uses SQL server to manage reports, users, tasks, etc.
    2. IIS 7.0+, .NET 4.0, ASP.NET MVC 3 – The report server administration site is run through IIS and is built on MVC 3 and .NET 4.0
    3. HTTP Activation – HTTP Activation is required in order to have the report designer communicate with the report server
    4. Windows Authentication – this is required at initial install since we add the current windows user as the default administrator. By default the report server uses windows authentication (although this can be changed).
    5. SMTP Mail Server – this is used to send report distributions out to those on your distribution lists as well as for user management emails sent when creating new user accounts.

    User Accounts

    There are 4 distinct roles that come with the DevExpress Report Server:

    1. System Administrator – this account has permissions to manage users as well as all other permissions given to the other three roles
    2. Data Administrator – this account has permissions to manage the Data Views available to the report creators as well as all other permissions given to the other two roles
    3. Report Creator – the report creator can create, manage, view, and distribute reports
    4. Report Viewer – the report viewer has permissions to view any report

    The administrative console for managing users is very straightforward:

    useraccounts

    Administrators can add new users by simply clicking on “Add Account” and filling in some information. The server takes care of the rest.

    userreg

    After the administrator clicks “Add Account” the server sends an email to the new user with a custom link requesting they create a new password. The entire process is completely automatic. During the time between the request is sent and the new user creates a new password, the user is placed in a “Pending Account” state where the user is in essence inactive.

    pendingaccounts

    Getting the Bits

    If you would like to try out this brand new product, head on over to our trial page and click on the “Download Universal Trial” button. As soon as you fill in a couple of particulars, you will be met with this:

    download

    During your trial each report you create will have a modest watermark along with a custom footer explaining that the report was creating with demo software.

    Finally

    Finally is right! We are tremendously excited to be providing this brand new product in your already rich arsenal of DevExpress tools. We are truly at a point where Reporting is a self-service task and no longer fills the plate of your already time crunched and busy schedule.

    In subsequent posts we will be discussing how to provide data shapes to your report creators, managing and creating reports, and scheduling and distributing reports.

    As always, if there are any comments and/or questions, feel free to get a hold of me!

    Seth Juarez
    Email: sethj@devexpress.com
    Twitter: @SethJuarez

Next page »
LIVE CHAT

Chat is one of the many ways you can contact members of the DevExpress Team.
We are available Monday-Friday between 7:30am and 4:30pm Pacific Time.

If you need additional product information, write to us at info@devexpress.com or call us at +1 (818) 844-3383

FOLLOW US

DevExpress engineers feature-complete Presentation Controls, IDE Productivity Tools, Business Application Frameworks, and Reporting Systems for Visual Studio, along with high-performance HTML JS Mobile Frameworks for developers targeting iOS, Android and Windows Phone. Whether using WPF, Silverlight, ASP.NET, WinForms, HTML5 or Windows 8, DevExpress tools help you build and deliver your best in the shortest time possible.

Your Privacy - Legal Statements

Copyright © 1998-2013 Developer Express Inc.
ALL RIGHTS RESERVED
All trademarks or registered trademarks
are property of their respective owners