Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
THRUST SERVICES & TOOLS
CLOUD EDITIONS
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Intelligence (Analytics)
table border cut in pdf report
vash
Hi,
I am generating a pdf report with a list of users, and the table border seems to get cut at certain places.
Can you please suggest, how to avoid that.
This report goes to our clients.
And as you see in the report, the table should be continued on the second page, but it adds a pagebreak and the rest of the users list continues on 3rd page.
I need to even avoid this.
Thanks,
vash
Find more posts tagged with
Comments
mwilliams
Hi Vash,
What version of BIRT are you using?
vash
Hi Michael,
I am using version 2.3.1
-Vash
mwilliams
Vash,<br />
<br />
Sorry for the delayed response. This looks like a bug with the pdf page break. It may already be logged. You can search the bugs at <a class='bbc_url' href='
http://www.eclipse.org/birt/phoenix/reportabug.php'>BIRT
: Reporting Bugs and Requesting Enhancements</a>. If you don't see one for it, please log one. Be sure to include a good description and screenshots. Also, please post any bug information you find or log in here for future reference.<br />
<br />
As a workaround, you can create a running count binding on your table and create an "interval" grouping on the table that uses that count to set the page breaks. You make the range like 40 or an amount that fits on one page and the base value for the interval the amount of lines that will fit on the first page after your static information. Then, choose "always excluding last" in the after page break drop down in the group editor. Let me know if I'm not explaining this very well.
vash
Hi Michael,
Sorry for late reply from my side as well.
I actually figured out the pagebreak thing.
But table borders seem to be a big problem when generating report in PDF.
And it happens in larger chunk, when the data flows across more pages.
I guess this issue occurs, when we have grouping in the table.
I have attached a new report, and you can see how the table border is cut randomly on the left side.
As I mentioned earlier, we have these reports going to our clients.
So can you please suggest a solution.
mwilliams
Vash,
Can you make a report that does this with the sample database? I'll try it out in BIRT 2.3.2 and see if it does it there. It does it on every page but the first page in the pdf file you sent me. Each one of those lines is a continuation of a section of the report. Not sure if that has anything to do with it or not though. What did you do to get the pagebreak deal working correctly?
vash
Michael,
I will try generating a report with sample database.
In fact, in all the reports generated the first page seems to be fine.
For the pagebreak - I set the table pagebreak interval to 0.
Please let me know, if you find anything for border cut of the tables.
-Vash
vash
Hi Michael,
Can you look at this report, I have attached the pdf which has border cut on left side, the reportdesign and the xml data source as well.
-Vash
mwilliams
Vash,
I don't think that that XML dataSource has all the data in it I need to run the report attached. It only has the data fields for the "usage" dataSet. I just get errors when I try to run the report.
vash
Michael,
I am so sorry, I by mistake attached a wrong xml file.
Here you go.
-Vash
mwilliams
Vash,
What is an appropriate value for the parameter?
vash
Michael,
Its the location of the xml file.
-Vash
mwilliams
Vash,
Alright, I've got good news and bad news. First, the bad. It's a bug in the PDF output of BIRT 2.3.1. The second group header loses its border on page break somehow. In BIRT 2.3.2, the border problem is fixed, but there are issues with the row highlight not going all the way the the left side of the table in your report. The good news is, in the latest milestone, M6, of the next version, BIRT 2.5.0, everything seems to work correctly.
vash
Michael,
Thanks a lot for the reply.
I saw on the website, that M6 was just released last month which is good.
But I am not sure if we are ready to bump up from 2.3.1 to 2.5
But as the version is available, we have options.
Thanks,
Vash
mwilliams
Vash,
No problem. 2.3.2 could be an option for you in the meantime. I didn't mess with the highlighting to see if there was an easy fix for what was happening there. You might give it a try and see if it works for you.
Let us know if you have any other questions.
vash
Hi Michael,
In the earlier post you had mentioned - that the report works fine in Birt 2.5
We were not ready then to upgrade from Birt 2.3.1 to 2.5
Now, we were considering to upgrade and I ran the report in 2.5.2 - and the problem seems to persist.
I have attached the output - can you please take a look, because I assume it ran fine for you in 2.5.
Thanks,
Vash.
mwilliams
Vash,<br />
<br />
It seems that somewhere between 2.5.0M6 and the actual release, the current issue started. It seems to be a little different than the problem you were having in 2.3.1. I just tried this in 2.6.0 M7 with the same result. Please log a bug for this.<br />
<br />
<a class='bbc_url' href='
http://www.birt-exchange.org/bug-reporting/'>Report
Bugs - BIRT Exchange</a>
vash
Logged a bug:<br />
<a class='bbc_url' href='
https://bugs.eclipse.org/bugs/show_bug.cgi?id=314120#c0'>https://bugs.eclipse.org/bugs/show_bug.cgi?id=314120#c0</a><br
/>
<br />
Thanks,<br />
Vash
Nikonianer
The bug ist already persits.
In my Report i merge some rows which goes over 2 or more pages and after the first page break the border of the merged cells go away.
I use BIRT Framework 2.6.2.r262_v20101008-9iF7A9JGHMBCRz-R8tbxRel8kQrI
mwilliams
So, the issue happens if you have multiple detail rows and you merge them? Can you reproduce this with the sample database so I can see the setup that causes this and see if there's a workaround? Thanks.
Nikonianer
Hi,<br />
<br />
yes i have multiple detailrows. <br />
<br />
Update:<br />
We have update Birt to Version 3.7.0 and the problem is already persist.<br />
<br />
My setup is a littlebit different from the standard way.<br />
We use embedded java objects (Hibernate) and must fill the report per java-method.<br />
<br />
The designfile is only a very simple and stupid table with some columns, 1 headrow and the detailrow.<br />
To show text i use standard lables.<br />
The are no aggregations, no scripts or other ruls in the designfile.<br />
<br />
<span class='bbc_underline'>How i fill the report:</span><br />
At first i generate detailrows and fill them.<br />
So that each java-object is represented as a single detailrow.<br />
If i merge the rows only column 0 and column 1 are used.<br />
<br />
The row-merge is generated into a java-method.<br />
At first i start in column 1 (Titel 'Detail 1').<br />
I run through the detailrows from top down and compare for each row the current label in column 1 with the label in the row before. The same for the label in column 0.<br />
If they are equal i drop the current cell in column 1.<br />
If the current label and the label in the row before are not equal i begin to merge.<br />
<br />
private void createRowSpanDetail() throws SemanticException {<br />
String detail_old = "";<br />
String risk_old = "";<br />
int counter = 0;<br />
for (int i = 0; i < data_table.getDetail().getCount(); i++) {<br />
<br />
RowHandle row = (RowHandle) data_table.getDetail().get(i);<br />
CellHandle cell_risik = (CellHandle) row.getCells().get(0);<br />
LabelHandle lh_risk = (LabelHandle) cell_risk.getContent().get(0);<br />
<br />
CellHandle cell_detail = (CellHandle) row.getCells().get(1);<br />
LabelHandle lh_detail = (LabelHandle) cell_detail.getContent().get(0);<br />
<br />
if (detail_old.equals(lh_detail.getText()) <br />
&& risk_old.equals(lh_risk.getText())) <br />
{<br />
counter++;<br />
((RowHandle) data_table.getDetail().get(i)).getCells().get(1).drop();<br />
} else {<br />
if (i != 0 && counter > 0) {<br />
((CellHandle) ((RowHandle) data_table.getDetail().get(i - (counter + 1)))<br />
.getCells().get(1)).setRowSpan(counter + 1);<br />
counter = 0;<br />
}<br />
}<br />
<br />
detail_old = lh_detail.getText();<br />
risk_old = lh_risk.getText();<br />
}<br />
}<br />
<br />
At next i take the same for column 0.<br />
But here i compare only the lables in column 0.
mwilliams
Please log a bug for this border issue at
http://www.birt-exchange.org/org/resources/bug-reporting/