I want to sort rows and columns by values (not fieldnames). One way to do that is like it's done by DevExpress (https://demos.devexpress.com/ASPxPivotGridDemos/OLAP/Browser.aspx). By right clicking a field i can choose for with field, row, column and measurement i want to sort. But even this solution could be more userfriendly. Another more direct solution would be to sort by clicking on a measurement field or if there is only one, on a fieldname. Both are just suggestions. But the functionality of sorting by values is really relevant. http://www.telerik.com/forums/sort-rows-and-columns-by-values
Your friend devexpress have very nice compact pivot grid layout https://demos.devexpress.com/MVCxPivotGridDemos/Layout/CompactLayout Can we also have it on kendo ui ?
Problem: The values and fieldnames can be very long or very short. Based on that, values and fieldnames are often truncated or lost in a way to wide column. That behavior has many downsides: - The PivotGrid need much more space then it should - Long values and fieldnames can't be read - It's totally not responsive and looks bad Competitors solution: - http://www.igniteui.com/pivot-grid/all-grid-features - http://webix.com/pivot/ Problem-solving approach: - Show resize icon when hovering over a the bar between two columns - Resize this column to it's min. width (value or fieldname) after a double click on this bar - Manual resizing of the column by drag and drop of this bar - Automatically size columns to there min. width on initialisation
I would like to see a persist state feature like in the grid control applied to the pivot grid. A complex cube state is difficult for our users to set up each time the page is loaded. It would be great to save the current state of the pivotgrid and restore it on future visit.
Kendo pivotgrid does not allow us to hide 'All' row/column.'All' row/column is not always needed in a OLAP report. Excel would allow us to hide/eliminate subtotall rows/columns. pivotgrid needs similar functionality. In general emulate Excel pivotgrid functionality in kendo pivotgrid
The PivotConfigurator is very static. It would be nice to change the layout. For example some options: - Hide / visibility of all four elements (Row, Column, Measure, Fieldlist) - Position of all four elements (Row, Column, Measure, Fieldlist)
Expanding programmatically all paths in a level in a pivot grid is coumbersome. One should be able to expand all itlems in a level. Also when one row.expand and column.expand configuration should work for all levels.
Currently there is no way to select database and cube in the analyzer. http://demos.telerik.com/kendo-ui/pivotgrid/index Please consider this functionality.
Now if you set filterable true for KendoPivotGrid you get two options - Include Fields and Fields Filter. In some cases you need only one of this options and it is not good to be with one option - filterable.
Kendo pivotgrid currently has only row and column filters. Filters and Filter area are also important. See other pivotgrid implementations - especially DevExpress ASPxPivotgrid and Excel pivot table
What we would need is te possibility to show the percentage of the gand total summary. For example: row / column value 1 / 2 2 / 3 3 / 5 summary / 10 => change calculation to percent of grand total 1 / 20% 2 / 30% 3 / 50%
As per this post: http://www.telerik.com/forums/pivotgrid-bug When using PivotGrid with a flat data source the handles for dragging the dimensions are labelled with a different string to the dimension headers. The dimension headers are labelled with the dataSource.schema.cube.dimensions.[name].caption. The dimension drag handles are labelled with the dataSource.rows.name (or dataSource.columns.name). Now, the dataSource.rows.name must be the key in the dataSource.schema.cube.dimensions of the dimension and this must also be a key in each item in the data array -- the field that stores the value of the dimension -- and therefore is in general not suitable for showing to users. In any case, it seems to me to be a bug that the drag handle is labelled with a different string to the dimension caption.
An OData feed that supports 'OData Extension for Data Aggregation Version 4.0' can be queried for all of the information required to populate a PivotGrid with rows and columns that are paged, sortable (including by different aggregates of the measures), and filterable, and have all calculations performed on the server. The pivot grid can be popualted using data obtained from a couple of requests to a suitable feed -- or feeds. Suppose we have an OData feed that we'd like to display in a pivot grid. Some of the columns in the feed will become dimensions, and some will become measures. (We may display the same measure more than once, with different aggregates applied.) In order to display the row/column headings for the pivotGrid we need to select the distinct values from the 'dimension' columns. The filtering provided by OData allows the row/column headings to be filtered, and even paged (in both directions). Sorting is more difficult because we want to sort not only by the row/column heading values themselves, but also by (aggregates of) the measures. However, that's a problem for the server side! In order to populate the body of the table we need to calculate a load of aggregates from the measure columns in the base dataset for the rows that correspond to visible row/column headers. We can write a rather long OData $filter expression to obtain the required rows from the original OData feed, and then aggregate them. All of this functionality is available in 'OData Extension for Data Aggregation Version 4.0'. However, as an interim solution we may establish two 'helper' OData feeds associated with the original feed: one for the dimensions for populating the row and column headers, and one for the measures to populate the body of the table. The grid has already established a convention for asking for aggregates computed on the server, although this can be overridden using parameterMap anyway.
In some applications one may not want aggregation on some or all dimenions on the pivot grid and jut show the raw data.
In the .NET for Ajax PivotGrid, you can set a caption for all fields, row and column. This does not seem possible in the kendo based version (MVC). The only property I see on a column or row is if we want it expanded by default or not. Here is how it is done on the Webforms version of the control <Fields> <telerik:PivotGridRowField DataField="Rep" ZoneIndex="1" Caption="Rep" </telerik:PivotGridRowField>
Currently the Pivot Grid have both Column and Row that will be used to be on display for Jquery type. Please add in additional Filter like others software givers on pivotgrid. This additional Filter is not used for display, as it is used for filter only.
I've bound the PivotGrid to a XMLA-WebService (with Mondrian as Backend).
In the Datasource I've defined the error-Function.
When PivotGrid requests Data and Mondrian runs an Exception, following XMLA is transferred:
<?xml version="1.0" encoding="ISO-8859-1"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" >
<SOAP-ENV:Header>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Server.00HSBE02</faultcode>
<faultstring>XMLA Discover unparse results error</faultstring>
<faultactor>Mondrian</faultactor>
<detail>
<XA:error xmlns:XA="http://mondrian.sourceforge.net">
<code>00HSBE02</code>
<desc>The Mondrian XML: Error in executeQuery. Stackdump follows. See SQL logfile for more info. Error Stack Dump, time : 22.11.2018 13:19:16 com.microsoft.sqlserver.jdbc.SQLServerException: Die Sachbearbeiter-Spalte wurde für 'Beschluss' mehrmals angegeben. 	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216) 	at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1515) 	at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteCursored(SQLServerStatement.java:1879) 	at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:766) 	at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:689) 	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696) 	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715) 	at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180) 	at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155) 	at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQuery(SQLServerStatement.java:616) 	at net.abit.base.support.StatementImpl.executeQuery(StatementImpl.java:504) 	at mondrian.rolap.SqlStatement.execute(SqlStatement.java:201) 	at mondrian.rolap.RolapUtil.executeQuery(RolapUtil.java:350) 	at mondrian.rolap.RolapUtil.executeQuery(RolapUtil.java:303) 	at mondrian.rolap.SqlMemberSource.getMemberCount(SqlMemberSource.java:149) 	at mondrian.rolap.SqlMemberSource.getLevelMemberCount(SqlMemberSource.java:142) 	at mondrian.rolap.SmartMemberReader.getLevelMemberCount(SmartMemberReader.java:158) 	at mondrian.rolap.RolapSchemaReader.getLevelCardinality(RolapSchemaReader.java:320) 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 	at java.lang.reflect.Method.invoke(Method.java:498) 	at mondrian.rolap.RolapUtil$2.invoke(RolapUtil.java:111) 	at com.sun.proxy.$Proxy33.getLevelCardinality(Unknown Source) 	at mondrian.olap4j.MondrianOlap4jExtra.getLevelCardinality(MondrianOlap4jExtra.java:74) 	at mondrian.xmla.RowsetDefinition$MdschemaDimensionsRowset.populateDimension(RowsetDefinition.java:3970) 	at mondrian.xmla.RowsetDefinition$MdschemaDimensionsRowset.populateCube(RowsetDefinition.java:3915) 	at mondrian.xmla.RowsetDefinition$MdschemaDimensionsRowset.populateCatalog(RowsetDefinition.java:3897) 	at mondrian.xmla.RowsetDefinition$MdschemaDimensionsRowset.populateImpl(RowsetDefinition.java:3885) 	at mondrian.xmla.Rowset.populate(Rowset.java:201) 	at mondrian.xmla.Rowset.unparse(Rowset.java:173) 	at mondrian.xmla.XmlaHandler.discover(XmlaHandler.java:2903) 	at mondrian.xmla.XmlaHandler.process(XmlaHandler.java:676) 	at mondrian.xmla.impl.DefaultXmlaServlet.handleSoapBody(DefaultXmlaServlet.java:517) 	at mondrian.xmla.XmlaServlet.doPost(XmlaServlet.java:318) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:660) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80) 	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651) 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) 	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:498) 	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:796) 	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1374) 	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 	at java.lang.Thread.run(Thread.java:748) </desc>
</XA:error>
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
in Result the error-Parameter contains:
As you can see, the Details are missing. This wouldn't be worse - but additional xhr is away (null) - so manually parsing the result is impossible.
It should be possible to use message details - or having access to the complete Response (but xhr is not present).
Make the COUNT measure count only distinct itens on PivotGrid. For instance, let's say we have a dataSource like this: var dados = [{ PersonID: 2958, Address: "5h St"},{ PersonID: 2958, Address: "​Lexington Ave"},{ PersonID: 2958, ​Address: "76th Street"}] Note that it is only 1 person, which has 3 address.. if I wanted to use the COUNT measure on the Address, it is correct (it counts 3 itens). But when I use the COUNT measure on the PersonID, it also counts 3 itens, but there is only one personID. I think it should count distinct values for the data in the measure.
On a screen, showing the totals to the left and bottom of the data it summarizes makes no sense. When a user drills through a data set, the totals are the deciding factors for which nodes to expand.
Kendo pivotgrid should show non-empty members in filters - currently when we open the row or column filter to see the members in the dimension all the members in the dimension seem to be shown. At least we need a field to let us indicate that the filter entries should be filtered out using 'non empty' clause.