iReport - Place border around entire group column

Using iReport v3.7.6 and Jasper, I have a request to create a table where the first column acts to section/categorize the questions and answers displayed in the rest of the table.  Example of requested output:

**EDIT:** For those of you not able to view the image, it is a 3-column table containing fields "Context", "Question", and "Answer".  Each set of Question and Answer belongs to a single Context, which acts as a category for the set, and Context can act as a category for multiple sets of Question and Answer.  The request is that it look something like this:
    | Context1 | Question1 | Answer1 |
    |                |_________|________|
    |                | Question2 | Answer2 |
    |                |_________|________|
    |                | Question3 | Answer3 |
    |                |_________|________|
    |                | Question4 | Answer4 |
    | Context2 | Question5 | Answer5 |
    |                |_________|________|
    |                | Question6 | Answer6 |

I know I can set iReport to not print repeated values, which solves part of my issue of not printing the Context on each line, but the second part of my problem is placing a cell border around the entire Context field so that it looks like the example above, that is, it looks like a dynamically expanding field that covers N number of rows.  If I place a border around Context in the Details band of a report then I get the border for ever row in the table, resulting in a number of empty cells in the Context column.  Is this kind of formatting possible using iReport 3.7.6?  Would it be possible to group on the "Context" field and somehow place a border around the entire group?  

Since the quantity of questions per Context category is known it would be possible to use flags in my dataset and conditionally style around the Context fields (e.g. flag set to "top" for first record in group and "last" for last record in group and style a frame's borders to show a top or bottom border according to flags), but that seems likes an awfully messy way of handling the issue.  Plus, that bandage would break as soon as questions were dropped/added.

Another thought was creating a subreport that generated each Context individually, placing borders around the entire subreport, and combining the results in a master report's Detail band, but again that seems like a complex solution to an easy problem.

barneskd's picture
Joined: Dec 12 2012 - 9:09am
Last seen: 9 years 7 months ago

1 Answer:

Problem solved. I created a group on the context field, told the Context field not to print repeated values, placed a right and left border on the Context field in the Details band, overlayed a static text field with a top border over top of the Context field in the Details band and told it to only print when the group count == 1, and then I added a horizontal line to the column footer to act as the bottom border of the column. Convoluted, but it works.

barneskd's picture
Joined: Dec 12 2012 - 9:09am
Last seen: 9 years 7 months ago

Hi Mr barneskd,
I am very happy to have found your post on this page. I am actually in need of the same solution. I am relatively new to iReport. Could you please explain the steps mentioned above in detail, if possible with some screenshots? It would be of great help.
Thank you.<strong><<<<<< This comment was blocked and unpublished because <a href="">Project Honeypot</a> indicates it came from a suspicious IP address.</strong>

javajamesb08 - 10 years 7 months ago

Your post is very useful but if you give the screen shots for this we would be more benefited.Would you kindly give the pictures to make the procedure clear?

orny09sust - 7 years 4 months ago