Jump to content
We've recently updated our Privacy Statement, available here ×

iReport - Place border around entire group column


barneskd
Go to solution Solved by barneskd,

Recommended Posts

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:

http://i.imgur.com/al8Wk.png

**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.

Link to comment
Share on other sites

  • Replies 3
  • Created
  • Last Reply

Top Posters In This Topic

  • Solution

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.

Link to comment
Share on other sites

  • 2 months later...

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.<<<<<< This comment was blocked and unpublished because Project Honeypot indicates it came from a suspicious IP address.

Link to comment
Share on other sites

  • 3 years later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...