I have report.jrxml report generated from my application. Its only a one page report. I set the column footer and it is set at the end of the page and not immediately after the detail section. I have only couple of rows to be listed and I want the columnfooter to display immediately after the 2 rows of data.
I searched for a solution for this and they mention something about changing the property to floatcolumn header. I am not sure how you do that? I am writing this report.rxml from my IDE. Does anyone know the solution to this problem?
I am assuming you are using the Jasper Studio IDE.
In any case, you said you need the column footer to float i.e. change its position with the height of the Detail band.
You can find the property in the Report root node properties. In that go to Pagination, and there is the Float Column Footer property.
Otherwise, you can set the isFloatColumnFooter="true" attribute in the root node jasperReport of the JRXML.
Related
When updating a tree that uses footers in React, none of the footer columns are updating once rendered once.
To render the footer once, I can either start the tree expanded, or expand a row to create the footer row. Once rendered, the values never change even when collapsing and re-expanding the row.
I'm not sure why this behavior is different between the grid modes. After many sleepness nights, my current working theory is that the inferred footer row is not being updated or linked to the original row correctly.
There are a couple of discovered workarounds/clues:
1) deltaRowDataMode=false will work as expected. Because we work with react and immutable stores, I believe we still need this mode to be true.
2) Changing the ID field when doing an update also works as expected. To build a full composite key for our table to detect any change, however, would be very complicated as we can have up to 50 columns as a worst case scenario. The key size would also be huge.
//full plnkr example: https://embed.plnkr.co/Ty1AdL2oQzk9MUqnTHQs/
<AgGridReact
columnDefs={this.state.columnDefs}
rowData={this.state.rowData}
treeData={true}
animateRows={true}
groupDefaultExpanded={this.state.groupDefaultExpanded}
getDataPath={this.state.getDataPath}
autoGroupColumnDef={this.state.autoGroupColumnDef}
onGridReady={this.onGridReady}
groupIncludeFooter={true}
groupIncludeTotalFooter={true}
deltaRowDataMode={true}
getRowNodeId={data => data.id}
groupSuppressAutoColumn={true}
/>
I expect the footer values to change when the total row changes, including the name. Using the first workaround (deltaRowDataMode=false) will show the desired behavior.
Any insight into the cause of the re-rendering issue would be appreciated, or a fix to what I may be doing wrong.
As an alternative, groupRowAggNode can be provided that does update as expected. Still unsure why the original problem exists though.
Example:
https://next.plnkr.co/edit/0zTN0RNzapWbtfTW?preview
Update #2: It turned out that our project setup was not optimal, which is why I had to manually copy the updated VAADIN folder with the theme to another location. The problem was not caused by vaadin but our project setup.
Thank you #SteffenHarbich and the Vaadin-Devs who helped me find the source of my problem here and in the issue ticket.
I am using Vaadin Framework 8.2.0 and I have a Grid with SelectionMode.MULTI
Because of the multiselection mode an additional column appears with checkboxes to select rows, which is fine!
But: these Checkboxes also have a label with the Text Selects row number XX. This label bothers me very much and I can't find a way to remove them.
In the Demo from Vaadin there are no such labels, so I'm sure that it can be achieved somehow.
Hiding the labels with CSS does not help me here, because the column width stays as if there was a label.
Here is my simplified code:
Grid<MyItem> myGrid = new Grid<MyItem>(MyItem.class);
myGrid.setSelectionMode(Grid.SelectionMode.MULTI);
myGrid.getEditor().setEnabled(true);
myGrid.setColumnReorderingAllowed(true);
//all columns match membervariables of MyItem. I use setColumns in order to control which fields are shown (not all of them are)
myGrid.setColumns(GRID_COLUMNS);
myGrid.getColumn("foo").setHidable(false).setCaption("bar");
// configure each column similarly
myGrid.getColumn("foo").setEditorComponent(new TextField());
// some more setters of editorComponents and editorBindings
// finally, set items.
// binder contains a bean that has many MyItems. binder is of type com.vaadin.data.Binder;
myGrid.setItems(binder.getBean().getMyItems());
See the corresponding ticket on github. Problem was old theme CSS.
Add your theme with
.v-assistive-device-only-label label {
font-size:0;
width: 0px;
}
I have a ui grid that has 20 columns, and I would like to be able to tell what the next column will be as I scroll through the horizontal axis so that I can have some text that will tell the users what the names of all the columns they can't see are.
Anyone know if this is possible? As I watch the the inspector and scroll through the columns, I see html attributes changing.
---UPDATE 1----
This is what is all looks like (where it says "home #" is dynamic and will change to show the next column that is out of site)
Based on the ui-grid configuration that you use to render the grid, you already know the order of the columns. You can use this information together with the visible on each column added by the gird itself.
What you need to do is bind a event handler on scroll to iterate over the columns on each change and check the visibility of them. Then the first one with visible === false is the upcoming.
Here is a working Plunker where is used this flag.
I have a report created with Digital Metaphors ReportBuilder (VCL edition, in Delphi XE3).
It's an invoice, with header, detail and footer bands.
When the data fits in one page, all is well.
If I have more data, that fills, lets say for the sake of argument, 2 pages, I would requires:
Footer band only in the last page
On all other pages, the footer band should be replaced with only the running amount from the detail band, up until that page (from the first one).
On all but the first, the header should include the running totals of all previous pages.
Something like:
Page 1:
- (Header)
- Detail
- "Value until now: (Sum of one the the fields present in the detail band)"
Page 2:
- (Header)
- "Value until now: (Sum of one the the fields present in the detail band) of previous pages"
- Detail
- Footer
I've tried to investigate group totals, using a DBCalc component, but those aren't aware of the page. It only shows the total in the end, and not at the end of the page.
Any pointers of how I could do this?
Thank you
You will need to make some use of the Calc tab, in order to decide when you want certain bands to be shown or hidden. The Report has a PageNo property which you can use to decide when to show a header or a footer, in the header or footer's BeforePrint event.
As for showing a running total at the bottom of each page, you could use a ppRegion component (which is the ReportBuilder equivalent of a Panel). Again, you can use the BeforePrint event to decide when this shows.
The running totals themselves should be done using ppVariables. As you traverse through the data, add values into each variable that you need. Put these variables in the Region mentioned above, and they will display the value as it is at the end of each page. Timing can play a part here, so you may need to adjust the Variable's CalcType, ResetType, CalcComponent and ResetComponent properties to fit your needs.
I have been using ReportBuilder for almost 10 years and believe me, everything can be done, but some operations may just take time to perfect. We now use it exclusively in our software, both for the standard reports that we issue with our product (over 300) and for users to create their own reports.
This is a Delphi project, but I suspect DevExpress's component works similar for Delphi and .NET.
I have a DevExpress GridDBTableView, when selecting a cell in one of the column, I want a LookupComboBox to show up, where user can select an item, and the value gets display in the table cell. Simple.
I've set the column's Properties set to 'LookupComboBox'.
I have ListColumns setup with 'LocationName' and 'QuantityOnHand'.
ListSource is set to a datasource that's linked a dataset of 'LocationID', 'LocationName', and 'QuantityOnhand'.
ListFieldNames is set to 'LocationName;QuantityOnHand'
When I click on the cell, the combo box shows up with locations for me to choose, but when I choose a location, the table cell doesn't show the location name. In fact, I can't type anything in the cell.
What am I missing?
Ideally, I would like to be able to select a location from the combo box, the location name shows up in the table cell, and I can somehow store the corresponding LocationID that was selected.
I think that you should also set the column's Properties.KeyFieldName property to the KeyField of the Lookup DataSource. In this case, everything should work properly.
OK, all the answer is in the Express Editors' help file article 'Using Lookup Editors'.
The only step I missed was setting the LookupComboBox's KeyFieldNames property to 'LocationID'.