Suppress Duplicate Rows only in the Same Page - birt

I am using Suppress Duplicate function to prevent the same item code to be displayed more than once.
I have just one question:
Is it possible to hide the duplicates only in the same page?
For example, Item Code "1111" is displayed in Page-1, no duplication is shown under it. But in case "1111" has a long list in other columns and continues to Page-2, is it possible to display the item code in the first row of Page-2 and then suppressed again? So if it has an even longer list and extends to Page-3, the item code can be displayed again in the top row?

You could add a group by on the item code and place the information about in the group header. That way there are no duplicates, but you have the option to repeat the header with information on each new page.

Thank you for the comment.
It is already grouped by the item code. But I cannot use the table header to display the code because one item code is not always repeated. So one page might have 2 item codes only, but the next page might have 50 different codes. In the latter case, using the table header can be tricky(probably need to iterate the table for 50 times?). Also it is tricky because my report layout has to be consistent with the excel layout sample prepared by my client.
Thank you for your input anyway.

Related

Orbeon: add section for each row in repeating grid

I would like to build a form that has some kind of overview at the top, where the user defines a list of items (repeating grid). For each item, there should then be a section further below (repeating section) where the user needs to add additional information to that specific item (it's A LOT of information, that's why I need a whole section per item and can't just add additional fields in my repeating grid).
So the easiest way would be to let the user manually add a section per item, but that's not very user friendly and also I need to make sure that there is exactly 1 section for every item.
I tried using count($my-item), count($my-grid) and count(xxf:repeat-items($my-grid)) as the min and max iteration count of my repeating section, but neither work. Also when I add $my-item as the calculated value of the first text field, always the first item in my grid is taken (should be the i-th, i being current iteration count).
Demo here (should be self-explanatory):
http://demo.orbeon.com/demo/fr/orbeon/builder/edit/92384bdcfd5dfeef2f79e79540e566501e6e5243
How can I achieve this?
Orbeon Forms 2018.2 will have a component to automatically synchronized repeated content. See the documentation for details.

Multiple detail rows and page breaks on report

I have a problem with a rdlc page breaking and table with multiple detail rows. Tried everything that crossed my mind, none works.
As you can see on the picture below, the table has 7 detail rows.
Now, when report is rendered, the page gets spitted between, for example, rows 2 and 3 which is bad.
I wish to keep all of detail rows (that belong to one record) on the same page. How can I accomplish this?
I think you should create a group based on whatever joins the one record together, let's call it PlaceID. So right click, Add Group, choose what to group by.
Then, under the row groups you should have a group by PlaceID, and underneath that, a row marked "Details". Highlight Details in the lower section, which should highlight in the report the rows involved. Set the KeepTogether property of that section to True, should keep details on the same page.
If you don't want to use the Group option mentioned by Jerry, this option in the Table Properties may help...

Push items to bottom of report

I'm trying to create a report with some controls "anchored" to the very end. The difficulty is that I can't add this to the page footer because the report could span multiple pages leaving a giant white space at the end of each report if I decide to toggle visibility. The items I have should only appear on the very last page and be positioned just above the footer.
For example, in this scenario, I need the letter's closing signature, titles, etc. positioned at the very end of the last page the report spans.
As an alternative to adding a sub report you could try the suggestion below.
It all depends on how you data is laid out in your report whether it could work for you.
If all the data required to populate the controls exists in the report dataset why not add an outer lever of grouping that encompasses the entire dataset. You could do this using a dummy column containing 1 for example.
Just add a footer to this group and put your data in the group footer.
You can additional rows as necessary to the group footer.
This footer will always appear as the last row(s) in the tablix

Using XPath to locate on a button within a table

I have a table with several columns. The first column contains unique data, the 5th contains three buttons (Edit, Assignments and Delete).
I would like to use an XPath expression to locate on the edit button for one of the rows by indentifying the row using the unique data from column one (think that made sense).
I have built some expressions which will allow me to locate on the first column and edit button independantly as follows:
//td[text()='Managers']
and
tr[2]//button[text()='Edit']
The closest I can get to doing what I want is:
//td[text()='Managers'] | //tr[2]//button[text()='Edit']
...However this will locate on the data/button in column 1 AND 5 at the same time, what I want is just for the button in column 5.
The reason I want to do it this way, is so later I can pass in 'Managers' as a varaible in order to select the row (as its unique and meaningful data), and then press the edit button in a different column on that row.
Hope this makes sense!
Thanks
The question isn't very clear as posted, especially because I can't see any relevant part of the HTML. But if I understand this correctly, you can try to select the row that has Manager in it then get corresponding Edit button like so :
//tr[.//td='Managers']//button[.='Edit']

Different layout for 1st and rest pages of report

I currently have a detailed report to design:
A report which has different header-footer-detail for the first and rest of the pages. I tried to overcome the challange by using 2 Master Pages (not quite achieved anything yet) but I am stuck at the point which row count of 1st and rest of the pages... 1st page has 20 rest of the pages have 35 rows. Namely the question is:
"How can I set different pagebreak intervals for the table for each page?"
PS: BIRT version: 3.7
Edit: I've tried to create a group on row number and put a filter on row number to maintain flow between 2 different tables but no luck. (It didnt make real sense to put row filter but tried anyway :))
What you may need to do in the body section of your report is create a grid of one column and two rows. In the advanced properties for the upper cell, look under the section property for the Master Page setting, set that value equal to the name of your first master page. Place your report contents in that cell and set the master page references to your first master page as well. Repeat this for the second cell and references to the second page. Your table(s) have an advanced property for page break interval that you can adjust to control how many rows go on a page.
However if you want your table data to flow continuously from the first page into the second page and onward, I am not sure if this is possible but will update my answer if I find a way.

Resources