DevExpress XtraReports server side filtering - devexpress

I am trying out DevExpress XtraReports and I have a simple report with a few filter conditions and parameters passed via the front end application. I want to know is this filter appended to the SQL generated and evaluated server side (efficient) or is the filter performed client side once the data has been returned? If it is done client side I will need to convert the reports to use stored procs or else they will be too inefficient on large data sources.

The XtraReports Suite supports two different filtration kinds: client side and server side. All these options are described in our documentation at:
Filtering Data
So, you can implement the server side filtration. Please also refer to the How to: Filter Data at a Data Source's Level topic.

Related

Filter Calculated Model

I am trying to use a calculated model in Google App Maker to store data from an external API. I am able to load the data to a model and render it in a table. But now I want to filter the data in the table without calling the external API again.
For example if I use the Weather (Call REST services) sample code, after the weather is rendered on screen I want to click a button to only show the days with the temperature is below 32F. How would I do that without calling the external APIs again to reload the model.
After talking out loud, I believe I can answered my own question. I hope this helps others and please correct me if I am wrong.
What I am asking isn't possible with Calculated Models. How a Calculated Model works is the server script (query script) calls the external database, receives the data and formats (cleans up) the data following a Datasource. The datasource cleans up the data to fit within the Model before returning the data as Records to the
Client. Once the data is on the Client everything on the serve is forgotten.
So to search the data 2 options I can think of:
Create different Datasources, Models or Parameters that calls the external database every time and returning the filtered data to the Client.
Or use the javascript filter() method on the records already loaded to client and some extra code and ui to show the filtered results. The filter() method doesn't modify the records on the client but the results can shown on another table.

Devextreme Grid remote grouping Sql Query formation

I am evaluating this devextreme grid for its remote grouping feature. However I am unable to get enough idea on how to form my SQL Server query to support remote grouping. There aren't enough demos available that can help me getting the idea o how to prepare my SQL query to support the remote grouping feature on devextreme datagrid. Has anyone ever worked on that scenario?
I suggest you to read the documentation section for Remote Grouping, It works when you assign a remote data source to the grid control e.g. OData.
The DataGrid widget allows your end users to shape data as needs
dictate. In this example, we demonstrate the use of the built-in data
grouping feature against a remote data source. Data is provided by an
OData service and grid content is grouped by both Country and City
columns. Note that this demo uses the DataGrid in a virtual mode and
loads data on-demand as the grid content is scrolled vertically.
See the reference documentation guide for Data Source Examples.
References:
How to implement a data service for dxDataGrid based on Web API
dxDataGrid - How to display data from WCF OData data service

Limiting result in DevExpress ASPxGridView

i want show to data result based on top result in ASPxGridView, is there any property which handle that case?
there are multiple ways of solving this, server side, UI side, hybrid...
Server side means you have a stored procedure on the SQL Server which contains a TOP x in the select.
UI side means you specify paging and a pageSize of X in the Grid and even if this would work is not so good because in any case the SQL Server will return all records to the web server over the network.
many different ways to implement hybrid solutions like using bindToLinq methods or other ORM approaches which would generate the TOP X for you depending on the settings and usage of the grid.
this as introduction, please show us how you are fetching the data and binding the grid to the result set.

Programmatically populate an ASP.net data table

I'm trying to show a Sharepoint list on an ASP page that's running on a different server to the Sharepoint site. I originally tried using the Server Object Model, but with no success (see: Using Sharepoint GridViews on server without SharePoint installed)
So I have settled for using the Client Object Model instead. Now this allows me to pull data from Sharepoint, however, and please correct me if I'm wrong, there is no built in functionality that allows you to bind ASP.net data tables/grid views to Sharepoint objects. The ASP.net page runs on a server that does not have Sharepoint installed.
I would very much like to use ASP.net grid view objects, as they're very design friendly (visible in the GUI) and provide a whole host of functionality - sorting, paging, and so on. These objects need to consume ASP data sets afaik (I'm new to ASP.net development), so I've created a data set object, and a data table to source the data from.
These data tables are clearly designed to retreive data from SQL based sources, as the only options Visual Studio provides for populating them is from the various SQL platforms. However I was able to use the GUI to add the columns I wanted to the data table. These column names correspond to columns of metadata in the Sharepoint list I want to retreive from.
Now can anyone provide me with the steps - preferably with regard to best practice, that I need to go through in order to ensure that the grid view is populated with values when the user loads the page. I already know how to access the values via the Sharepoint web service, but I'm just not sure how to get them into the ASP data set.
By making use of the GetListItems method, I can have all the items of a particular list in the form of XML node. All I need is to convert this XML into data set. Here is how you can convert the XML node to DataSet. You can iterate through the xml nodes and create rows to your dataset as shown here.

DevExpress aspxgridview with LinqServerModeDataSource or alternative for fast filtering and sorting

DevExpress aspxgridview with LinqServerModeDataSource or alternative for fast filtering and sorting
We are trying to produce a read-only grid of results where speed is the prioirity. Currently using a gridview control with some customization for select row on click and fixed header / footers. Data access is from either objectdatasource or code binding from our business layer, database is SQL Server 2008.
The plan is to buy 3rd party controls for the gridview and have been looking at DevExpress aspxgridview. We would like to be able to add attributes to the gridview data, filter and very quickly bind the grid and have looked at the LinqServerModeDataSource, This would probably mean having another data access technology in the solution but would be happy with this for any read-only queries where we can easily do joins and sorts quickly at the database but use the n-tier BLL / DAL / DTOs for any insert / update / deletes.
Does anyone have any thoughts on this plan. Would the LinqServerModeDataSource and the aspxgridview be quick to display data and give the options to pile on filters (joins / exists queries) to the table we are binding to or is there a better way of doing this.
(I assume we would need to edit the linq query in LinqServerModeDataSource OnSelecting) Would prefer not to write any custom ajax or html and let a custom control do this.
When ASPxGridView is bound to a LinqServerModeDataSource all data related operations are performed on the DB server. In this situation, the dataSource sends many requests to the DB server but all these requests are light, i.e. they should be executed fast and do not result in large data passed to the web server. Also, I would like to warn you that the grid working in server mode has some limitations and they are described in our help:
Server-side Data Management
Finally, I think that ASPxGridView working in server mode is very fast and you eventually should give it a try. However, a server mode should be used only when an underlying DataSource returns a lot of data. Otherwise, it is better to use the "classic" binding mode when all is managed on the web server.
Update
I will try to explain at which point a server mode is needed. By default, all grid controls (standard, our ...) fetch all data to the web server from the DB server and than manage it. For example, sort. If a data size is small and a connection between DB and web servers is fast, this operation is done fairly fast and a server mode is not needed. From my point of view, 5k records is not large data and thus the ASPxGridView's code should work with it effectively and fast. However, if there are a lot of records which should be processed on the web server, for example, 100k the picture is different. Obviously, fetching 100k to the web server and transferring them via net can be slow. Also, the DB server is optimized to work with such data much more better and it should manage this data, for example, sort them faster. In this case, it is more profitable to propagate this work to the DB server and gain the performance.
So, the main criteria which must be used to decide whether or not to use a server mode is the following:
the number of records passed from the DB server to the web server and the time needed to manage it.
Hope, this helps.

Resources